diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinBundle.properties b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinBundle.properties index f9ee61a0b6e..21b87599368 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinBundle.properties +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinBundle.properties @@ -82,6 +82,7 @@ options.kotlin.attribute.descriptor.instance.property=Properties and Variables// options.kotlin.attribute.descriptor.package.property=Properties and Variables//Package-level property options.kotlin.attribute.descriptor.field=Properties and Variables//Backing field variable options.kotlin.attribute.descriptor.extension.property=Properties and Variables//Extension property +options.kotlin.attribute.descriptor.synthetic.extension.property=Properties and Variables//Synthetic extension property options.kotlin.attribute.descriptor.dynamic.property=Properties and Variables//Dynamic property options.kotlin.attribute.descriptor.android.extensions.property=Properties and Variables//Android Extensions synthetic properties options.kotlin.attribute.descriptor.it=Parameters//Lambda expression default parameter diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinHighlightingColors.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinHighlightingColors.java index de3cf1454d9..d4a33b0dd50 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinHighlightingColors.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinHighlightingColors.java @@ -70,6 +70,7 @@ public class KotlinHighlightingColors { public static final TextAttributesKey PACKAGE_PROPERTY = createTextAttributesKey("KOTLIN_PACKAGE_PROPERTY", DefaultLanguageHighlighterColors.STATIC_FIELD); public static final TextAttributesKey BACKING_FIELD_VARIABLE = createTextAttributesKey("KOTLIN_BACKING_FIELD_VARIABLE"); public static final TextAttributesKey EXTENSION_PROPERTY = createTextAttributesKey("KOTLIN_EXTENSION_PROPERTY", DefaultLanguageHighlighterColors.STATIC_FIELD); + public static final TextAttributesKey SYNTHETIC_EXTENSION_PROPERTY = createTextAttributesKey("KOTLIN_SYNTHETIC_EXTENSION_PROPERTY", EXTENSION_PROPERTY); public static final TextAttributesKey DYNAMIC_PROPERTY_CALL = createTextAttributesKey("KOTLIN_DYNAMIC_PROPERTY_CALL"); public static final TextAttributesKey ANDROID_EXTENSIONS_PROPERTY_CALL = createTextAttributesKey("KOTLIN_ANDROID_EXTENSIONS_PROPERTY_CALL"); diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/PropertiesHighlightingVisitor.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/PropertiesHighlightingVisitor.kt index b8221df6005..808935f0c33 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/PropertiesHighlightingVisitor.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/PropertiesHighlightingVisitor.kt @@ -28,6 +28,7 @@ import org.jetbrains.kotlin.psi.KtThisExpression import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.calls.tasks.isDynamic +import org.jetbrains.kotlin.resolve.calls.tower.isSynthesized internal class PropertiesHighlightingVisitor(holder: AnnotationHolder, bindingContext: BindingContext) : AfterAnalysisHighlightingVisitor(holder, bindingContext) { @@ -79,7 +80,7 @@ internal class PropertiesHighlightingVisitor(holder: AnnotationHolder, bindingCo DYNAMIC_PROPERTY_CALL descriptor.extensionReceiverParameter != null -> - EXTENSION_PROPERTY + if (descriptor.isSynthesized) SYNTHETIC_EXTENSION_PROPERTY else EXTENSION_PROPERTY DescriptorUtils.isStaticDeclaration(descriptor) -> PACKAGE_PROPERTY diff --git a/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinColorSettingsPage.kt b/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinColorSettingsPage.kt index 9826d8c681b..0e088747543 100644 --- a/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinColorSettingsPage.kt +++ b/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinColorSettingsPage.kt @@ -60,6 +60,7 @@ class KotlinColorSettingsPage : ColorSettingsPage, RainbowColorSettingsPage { dyn.dynamicCall() dyn.dynamicProp = 5 val klass = MyClass::class + val year = java.time.LocalDate.now().year } override fun hashCode(): Int { @@ -155,6 +156,7 @@ var globalCounterweekYear = java.util.Calendar.getInstance().weekYear \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightingTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightingTestGenerated.java index 279e21566b4..7b456ba0ec9 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightingTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightingTestGenerated.java @@ -120,6 +120,12 @@ public class HighlightingTestGenerated extends AbstractHighlightingTest { doTest(fileName); } + @TestMetadata("SyntheticExtensionProperty.kt") + public void testSyntheticExtensionProperty() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/highlighter/SyntheticExtensionProperty.kt"); + doTest(fileName); + } + @TestMetadata("Todo.kt") public void testTodo() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/highlighter/Todo.kt");