No more java lookup elements in code completion (except for one case)

This commit is contained in:
Valentin Kipyatkov
2014-04-30 17:37:04 +04:00
parent 33de0e8393
commit 717977af61
18 changed files with 102 additions and 119 deletions
@@ -56,7 +56,7 @@ public interface DescriptorRenderer extends Renderer<DeclarationDescriptor> {
DescriptorRenderer FQ_NAMES_IN_TYPES = new DescriptorRendererBuilder().build();
DescriptorRenderer SHORT_NAMES_IN_TYPES = new DescriptorRendererBuilder().setShortNames(true).build();
DescriptorRenderer SHORT_NAMES_IN_TYPES = new DescriptorRendererBuilder().setShortNames(true).setIncludeSynthesizedParameterNames(false).build();
DescriptorRenderer DEBUG_TEXT = new DescriptorRendererBuilder().setDebugMode(true).build();
@@ -38,6 +38,7 @@ public class DescriptorRendererBuilder {
private boolean prettyFunctionTypes = true;
private boolean uninferredTypeParameterAsName = false;
private boolean includePropertyConstant = false;
private boolean includeSynthesizedParameterNames = true;
@NotNull
private DescriptorRenderer.OverrideRenderingPolicy overrideRenderingPolicy = DescriptorRenderer.OverrideRenderingPolicy.RENDER_OPEN;
@NotNull
@@ -156,12 +157,18 @@ public class DescriptorRendererBuilder {
return this;
}
public DescriptorRendererBuilder setIncludeSynthesizedParameterNames(boolean includeSynthesizedParameterNames) {
this.includeSynthesizedParameterNames = includeSynthesizedParameterNames;
return this;
}
@NotNull
public DescriptorRenderer build() {
return new DescriptorRendererImpl(
shortNames, withDefinedIn, modifiers, startFromName, debugMode, classWithPrimaryConstructor, verbose, unitReturnType,
normalizedVisibilities, showInternalKeyword, prettyFunctionTypes, uninferredTypeParameterAsName,
overrideRenderingPolicy, valueParametersHandler, textFormat, excludedAnnotationClasses, includePropertyConstant);
overrideRenderingPolicy, valueParametersHandler, textFormat, excludedAnnotationClasses, includePropertyConstant,
includeSynthesizedParameterNames);
}
}
@@ -57,6 +57,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
private final boolean showInternalKeyword;
private final boolean prettyFunctionTypes;
private final boolean uninferredTypeParameterAsName;
private final boolean includeSynthesizedParameterNames;
@NotNull
private final OverrideRenderingPolicy overrideRenderingPolicy;
@@ -85,7 +86,8 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
@NotNull ValueParametersHandler handler,
@NotNull TextFormat textFormat,
@NotNull Collection<FqName> excludedAnnotationClasses,
boolean includePropertyConstant
boolean includePropertyConstant,
boolean includeSynthesizedParameterNames
) {
this.shortNames = shortNames;
this.withDefinedIn = withDefinedIn;
@@ -104,6 +106,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
this.excludedAnnotationClasses = Sets.newHashSet(excludedAnnotationClasses);
this.prettyFunctionTypes = prettyFunctionTypes;
this.uninferredTypeParameterAsName = uninferredTypeParameterAsName;
this.includeSynthesizedParameterNames = includeSynthesizedParameterNames;
}
/* FORMATTING */
@@ -322,7 +325,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
sb.append("(");
appendTypeProjections(KotlinBuiltIns.getInstance().getParameterTypeProjectionsFromFunctionType(type), sb);
sb.append(") " + arrow() + " ");
sb.append(") ").append(arrow()).append(" ");
sb.append(renderType(KotlinBuiltIns.getInstance().getReturnTypeFromFunctionType(type)));
if (type.isNullable()) {
@@ -582,7 +585,9 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
}
renderName(function, builder);
renderValueParameters(function, builder);
JetType returnType = function.getReturnType();
if (unitReturnType || !KotlinBuiltIns.getInstance().isUnit(returnType)) {
builder.append(": ").append(returnType == null ? "[NULL]" : escape(renderType(returnType)));
@@ -635,17 +640,18 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
}
private void renderValueParameters(@NotNull FunctionDescriptor function, @NotNull StringBuilder builder) {
boolean includeNames = includeSynthesizedParameterNames || !function.hasSynthesizedParameterNames();
handler.appendBeforeValueParameters(function, builder);
for (ValueParameterDescriptor parameter : function.getValueParameters()) {
handler.appendBeforeValueParameter(parameter, builder);
renderValueParameter(parameter, builder, false);
renderValueParameter(parameter, includeNames, builder, false);
handler.appendAfterValueParameter(parameter, builder);
}
handler.appendAfterValueParameters(function, builder);
}
/* VARIABLES */
private void renderValueParameter(@NotNull ValueParameterDescriptor valueParameter, @NotNull StringBuilder builder, boolean topLevel) {
private void renderValueParameter(@NotNull ValueParameterDescriptor valueParameter, boolean includeName, @NotNull StringBuilder builder, boolean topLevel) {
if (topLevel) {
builder.append(renderKeyword("value-parameter")).append(" ");
}
@@ -655,7 +661,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
}
renderAnnotations(valueParameter, builder);
renderVariable(valueParameter, builder, topLevel);
renderVariable(valueParameter, includeName, builder, topLevel);
boolean withDefaultValue = debugMode ? valueParameter.declaresDefaultValue() : valueParameter.hasDefaultValue();
if (withDefaultValue) {
builder.append(" = ...");
@@ -666,7 +672,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
builder.append(renderKeyword(variable.isVar() ? "var" : "val")).append(" ");
}
private void renderVariable(@NotNull VariableDescriptor variable, @NotNull StringBuilder builder, boolean topLevel) {
private void renderVariable(@NotNull VariableDescriptor variable, boolean includeName, @NotNull StringBuilder builder, boolean topLevel) {
JetType realType = variable.getType();
JetType varargElementType = variable instanceof ValueParameterDescriptor
@@ -681,8 +687,12 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
renderValVarPrefix(variable, builder);
}
renderName(variable, builder);
builder.append(": ").append(escape(renderType(typeToRender)));
if (includeName) {
renderName(variable, builder);
builder.append(": ");
}
builder.append(escape(renderType(typeToRender)));
renderInitializer(variable, builder);
@@ -824,13 +834,13 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
private class RenderDeclarationDescriptorVisitor extends DeclarationDescriptorVisitorEmptyBodies<Void, StringBuilder> {
@Override
public Void visitValueParameterDescriptor(ValueParameterDescriptor descriptor, StringBuilder builder) {
renderValueParameter(descriptor, builder, true);
renderValueParameter(descriptor, true, builder, true);
return null;
}
@Override
public Void visitVariableDescriptor(VariableDescriptor descriptor, StringBuilder builder) {
renderVariable(descriptor, builder, true);
renderVariable(descriptor, true, builder, true);
return null;
}