From 094c6cebc36d6964b20371b167cd8a693251e51c Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Wed, 16 Sep 2015 18:20:39 +0300 Subject: [PATCH] "field": highlighting fix, including color schemes and example --- .../src/org/jetbrains/kotlin/idea/JetBundle.properties | 1 + .../kotlin/idea/highlighter/JetHighlightingColors.java | 1 + .../highlighter/PropertiesHighlightingVisitor.java | 5 +++++ idea/resources/colorScheme/Darcula_Kotlin.xml | 5 +++++ idea/resources/colorScheme/Default_Kotlin.xml | 5 +++++ .../kotlin/idea/highlighter/KotlinColorSettingsPage.kt | 3 ++- idea/testData/highlighter/Field.kt | 10 ++++++++++ .../idea/highlighter/HighlightingTestGenerated.java | 6 ++++++ 8 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 idea/testData/highlighter/Field.kt diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/JetBundle.properties b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/JetBundle.properties index 70043c920c1..8f25ae7bbb2 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/JetBundle.properties +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/JetBundle.properties @@ -133,6 +133,7 @@ options.kotlin.attribute.descriptor.instance.property=Instance property options.kotlin.attribute.descriptor.package.property=Package-level property options.kotlin.attribute.descriptor.property.with.backing=Property with backing field options.kotlin.attribute.descriptor.backing.field.access=Backing field access +options.kotlin.attribute.descriptor.field=Backing field variable options.kotlin.attribute.descriptor.extension.property=Extension property options.kotlin.attribute.descriptor.dynamic.property=Dynamic property options.kotlin.attribute.descriptor.it=Function literal default parameter diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/JetHighlightingColors.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/JetHighlightingColors.java index 60f81964a74..da90b36b105 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/JetHighlightingColors.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/JetHighlightingColors.java @@ -66,6 +66,7 @@ public class JetHighlightingColors { public static final TextAttributesKey PACKAGE_PROPERTY = createTextAttributesKey("KOTLIN_PACKAGE_PROPERTY", CodeInsightColors.STATIC_FIELD_ATTRIBUTES); public static final TextAttributesKey PROPERTY_WITH_BACKING_FIELD = createTextAttributesKey("KOTLIN_PROPERTY_WITH_BACKING_FIELD"); public static final TextAttributesKey BACKING_FIELD_ACCESS = createTextAttributesKey("KOTLIN_BACKING_FIELD_ACCESS"); + public static final TextAttributesKey BACKING_FIELD_VARIABLE = createTextAttributesKey("KOTLIN_BACKING_FIELD_VARIABLE"); public static final TextAttributesKey EXTENSION_PROPERTY = createTextAttributesKey("KOTLIN_EXTENSION_PROPERTY"); public static final TextAttributesKey DYNAMIC_PROPERTY_CALL = createTextAttributesKey("KOTLIN_DYNAMIC_PROPERTY_CALL"); diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/PropertiesHighlightingVisitor.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/PropertiesHighlightingVisitor.java index 54c587f0f84..5736ac046da 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/PropertiesHighlightingVisitor.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/PropertiesHighlightingVisitor.java @@ -22,6 +22,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.descriptors.DeclarationDescriptor; import org.jetbrains.kotlin.descriptors.PropertyDescriptor; import org.jetbrains.kotlin.descriptors.VariableDescriptor; +import org.jetbrains.kotlin.descriptors.impl.SyntheticFieldDescriptor; import org.jetbrains.kotlin.lexer.JetTokens; import org.jetbrains.kotlin.psi.JetParameter; import org.jetbrains.kotlin.psi.JetProperty; @@ -42,6 +43,10 @@ class PropertiesHighlightingVisitor extends AfterAnalysisHighlightingVisitor { return; } DeclarationDescriptor target = bindingContext.get(BindingContext.REFERENCE_TARGET, expression); + if (target instanceof SyntheticFieldDescriptor) { + JetPsiChecker.highlightName(holder, expression, JetHighlightingColors.BACKING_FIELD_VARIABLE); + return; + } if (!(target instanceof PropertyDescriptor)) { return; } diff --git a/idea/resources/colorScheme/Darcula_Kotlin.xml b/idea/resources/colorScheme/Darcula_Kotlin.xml index 48aac225395..2f2a87f3207 100644 --- a/idea/resources/colorScheme/Darcula_Kotlin.xml +++ b/idea/resources/colorScheme/Darcula_Kotlin.xml @@ -20,6 +20,11 @@ + +