Escaping of keyword names in completion (more tests to be added)

This commit is contained in:
Valentin Kipyatkov
2014-08-13 22:39:09 +04:00
parent f5419cb04e
commit 5fb9aae68c
20 changed files with 151 additions and 67 deletions
@@ -20,6 +20,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.renderer.DescriptorRenderer;
public final class ImportPath {
private final @NotNull FqName fqName;
@@ -50,7 +51,7 @@ public final class ImportPath {
}
public String getPathStr() {
return fqName.asString() + (isAllUnder ? ".*" : "");
return DescriptorRenderer.SOURCE_CODE.renderFqName(fqName) + (isAllUnder ? ".*" : "");
}
@Override
@@ -21,6 +21,9 @@ import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor;
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.FqNameBase;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.TypeProjection;
@@ -110,6 +113,12 @@ public interface DescriptorRenderer extends Renderer<DeclarationDescriptor> {
@NotNull
String renderFunctionParameters(@NotNull FunctionDescriptor functionDescriptor);
@NotNull
String renderName(@NotNull Name name);
@NotNull
String renderFqName(@NotNull FqNameBase fqName);
enum TextFormat {
PLAIN, HTML
}
@@ -198,8 +198,9 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
}
/* NAMES RENDERING */
@Override
@NotNull
private String renderName(@NotNull Name identifier) {
public String renderName(@NotNull Name identifier) {
String asString = identifier.toString();
return escape(KeywordStringsGenerated.KEYWORDS.contains(asString) ? '`' + asString + '`' : asString);
}
@@ -219,8 +220,9 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
}
}
@Override
@NotNull
private String renderFqName(@NotNull FqNameBase fqName) {
public String renderFqName(@NotNull FqNameBase fqName) {
return renderFqName(fqName.pathSegments());
}