From bf8e53efad5ac8305d9531ec581c7e6062deee88 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Fri, 30 Mar 2012 20:46:59 +0400 Subject: [PATCH] Added highlighting for parameters. --- .../plugin/highlighter/JetColorSettingsPage.java | 1 + .../highlighter/JetHighlightingColors.java | 11 ++++++++--- .../VariablesHighlightingVisitor.java | 16 +++++++++++----- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/highlighter/JetColorSettingsPage.java b/idea/src/org/jetbrains/jet/plugin/highlighter/JetColorSettingsPage.java index b3ceb75d972..226871dc80f 100644 --- a/idea/src/org/jetbrains/jet/plugin/highlighter/JetColorSettingsPage.java +++ b/idea/src/org/jetbrains/jet/plugin/highlighter/JetColorSettingsPage.java @@ -132,6 +132,7 @@ public class JetColorSettingsPage implements ColorSettingsPage { new AttributesDescriptor("Mutable variable, parameter or property", JetHighlightingColors.MUTABLE_VARIABLE), new AttributesDescriptor("Local variable", JetHighlightingColors.LOCAL_VARIABLE), + new AttributesDescriptor("Parameter", JetHighlightingColors.PARAMETER), new AttributesDescriptor("Closure or anonymous object bound variable", JetHighlightingColors.WRAPPED_INTO_REF), new AttributesDescriptor("Instance property", JetHighlightingColors.INSTANCE_PROPERTY), diff --git a/idea/src/org/jetbrains/jet/plugin/highlighter/JetHighlightingColors.java b/idea/src/org/jetbrains/jet/plugin/highlighter/JetHighlightingColors.java index 1d76edfb713..b25f4e589b8 100644 --- a/idea/src/org/jetbrains/jet/plugin/highlighter/JetHighlightingColors.java +++ b/idea/src/org/jetbrains/jet/plugin/highlighter/JetHighlightingColors.java @@ -161,14 +161,19 @@ public class JetHighlightingColors { CodeInsightColors.ANNOTATION_NAME_ATTRIBUTES.getDefaultAttributes() ); + public static final TextAttributesKey MUTABLE_VARIABLE = TextAttributesKey.createTextAttributesKey( + "KOTLIN_MUTABLE_VARIABLE", + new TextAttributes(null, null, Color.BLACK, EffectType.LINE_UNDERSCORE, 0) + ); + public static final TextAttributesKey LOCAL_VARIABLE = TextAttributesKey.createTextAttributesKey( "KOTLIN_LOCAL_VARIABLE", CodeInsightColors.LOCAL_VARIABLE_ATTRIBUTES.getDefaultAttributes() ); - public static final TextAttributesKey MUTABLE_VARIABLE = TextAttributesKey.createTextAttributesKey( - "KOTLIN_MUTABLE_VARIABLE", - new TextAttributes(null, null, Color.BLACK, EffectType.LINE_UNDERSCORE, 0) + public static final TextAttributesKey PARAMETER = TextAttributesKey.createTextAttributesKey( + "KOTLIN_PARAMETER", + CodeInsightColors.PARAMETER_ATTRIBUTES.getDefaultAttributes() ); public static final TextAttributesKey WRAPPED_INTO_REF = TextAttributesKey.createTextAttributesKey( diff --git a/idea/src/org/jetbrains/jet/plugin/highlighter/VariablesHighlightingVisitor.java b/idea/src/org/jetbrains/jet/plugin/highlighter/VariablesHighlightingVisitor.java index 59ac567f2a1..34ca797f29c 100644 --- a/idea/src/org/jetbrains/jet/plugin/highlighter/VariablesHighlightingVisitor.java +++ b/idea/src/org/jetbrains/jet/plugin/highlighter/VariablesHighlightingVisitor.java @@ -89,17 +89,23 @@ class VariablesHighlightingVisitor extends AfterAnalysisHighlightingVisitor { private void highlightVariable(@NotNull PsiElement elementToHighlight, @NotNull DeclarationDescriptor descriptor) { if (descriptor instanceof VariableDescriptor) { - if (((VariableDescriptor)descriptor).isVar()) { + VariableDescriptor variableDescriptor = (VariableDescriptor) descriptor; + if (variableDescriptor.isVar()) { holder.createInfoAnnotation(elementToHighlight, null).setTextAttributes(JetHighlightingColors.MUTABLE_VARIABLE); } - } - if (descriptor instanceof LocalVariableDescriptor) { - LocalVariableDescriptor variableDescriptor = (LocalVariableDescriptor) descriptor; + if (Boolean.TRUE.equals(bindingContext.get(MUST_BE_WRAPPED_IN_A_REF, variableDescriptor))) { holder.createInfoAnnotation(elementToHighlight, "Wrapped into a ref-object to be modifier when captured in a closure").setTextAttributes( JetHighlightingColors.WRAPPED_INTO_REF); } - holder.createInfoAnnotation(elementToHighlight, null).setTextAttributes(JetHighlightingColors.LOCAL_VARIABLE); + + if (descriptor instanceof LocalVariableDescriptor) { + holder.createInfoAnnotation(elementToHighlight, null).setTextAttributes(JetHighlightingColors.LOCAL_VARIABLE); + } + + if (descriptor instanceof ValueParameterDescriptor) { + holder.createInfoAnnotation(elementToHighlight, null).setTextAttributes(JetHighlightingColors.PARAMETER); + } } } }