From d9e1d4266b8535c652cc4797b4ecaecfa17faf59 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Fri, 16 Oct 2015 12:04:34 +0200 Subject: [PATCH] special color for final instance fields (IDEA-120374) --- .../daemon/impl/analysis/HighlightNamesUtil.java | 6 +++--- .../openapi/options/colors/pages/JavaColorSettingsPage.java | 3 +++ .../intellij/codeInsight/daemon/impl/HighlightInfoType.java | 1 + .../intellij/openapi/editor/colors/CodeInsightColors.java | 1 + .../src/messages/OptionsBundle.properties | 1 + 5 files changed, 9 insertions(+), 3 deletions(-) diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightNamesUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightNamesUtil.java index 15e75c71e8af..eb085f3649eb 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightNamesUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightNamesUtil.java @@ -191,9 +191,9 @@ public class HighlightNamesUtil { return HighlightInfoType.LOCAL_VARIABLE; } if (var instanceof PsiField) { - return var.hasModifierProperty(PsiModifier.STATIC) ? var.hasModifierProperty(PsiModifier.FINAL) - ? HighlightInfoType.STATIC_FINAL_FIELD - : HighlightInfoType.STATIC_FIELD : HighlightInfoType.INSTANCE_FIELD; + return var.hasModifierProperty(PsiModifier.STATIC) + ? var.hasModifierProperty(PsiModifier.FINAL) ? HighlightInfoType.STATIC_FINAL_FIELD : HighlightInfoType.STATIC_FIELD + : var.hasModifierProperty(PsiModifier.FINAL) ? HighlightInfoType.INSTANCE_FINAL_FIELD : HighlightInfoType.INSTANCE_FIELD; } if (var instanceof PsiParameter) { return HighlightInfoType.PARAMETER; diff --git a/java/java-impl/src/com/intellij/openapi/options/colors/pages/JavaColorSettingsPage.java b/java/java-impl/src/com/intellij/openapi/options/colors/pages/JavaColorSettingsPage.java index b04d68f42a5e..2e9e6b23c9d5 100644 --- a/java/java-impl/src/com/intellij/openapi/options/colors/pages/JavaColorSettingsPage.java +++ b/java/java-impl/src/com/intellij/openapi/options/colors/pages/JavaColorSettingsPage.java @@ -71,6 +71,7 @@ public class JavaColorSettingsPage implements ColorSettingsPage, InspectionColor new AttributesDescriptor(OptionsBundle.message("options.java.attribute.descriptor.reassigned.parameter"), CodeInsightColors.REASSIGNED_PARAMETER_ATTRIBUTES), new AttributesDescriptor(OptionsBundle.message("options.java.attribute.descriptor.implicit.anonymous.parameter"), CodeInsightColors.IMPLICIT_ANONYMOUS_CLASS_PARAMETER_ATTRIBUTES), new AttributesDescriptor(OptionsBundle.message("options.java.attribute.descriptor.instance.field"), CodeInsightColors.INSTANCE_FIELD_ATTRIBUTES), + new AttributesDescriptor(OptionsBundle.message("options.java.attribute.descriptor.instance.final.field"), CodeInsightColors.INSTANCE_FINAL_FIELD_ATTRIBUTES), new AttributesDescriptor(OptionsBundle.message("options.java.attribute.descriptor.static.field"), CodeInsightColors.STATIC_FIELD_ATTRIBUTES), new AttributesDescriptor(OptionsBundle.message("options.java.attribute.descriptor.static.final.field"), CodeInsightColors.STATIC_FINAL_FIELD_ATTRIBUTES), new AttributesDescriptor(OptionsBundle.message("options.java.attribute.descriptor.parameter"), CodeInsightColors.PARAMETER_ATTRIBUTES), @@ -120,6 +121,7 @@ public class JavaColorSettingsPage implements ColorSettingsPage, InspectionColor ourTags.put("annotationName", CodeInsightColors.ANNOTATION_NAME_ATTRIBUTES); ourTags.put("annotationAttributeName", CodeInsightColors.ANNOTATION_ATTRIBUTE_NAME_ATTRIBUTES); ourTags.put("javadocTagValue", JavaHighlightingColors.DOC_COMMENT_TAG_VALUE); + ourTags.put("instanceFinalField", CodeInsightColors.INSTANCE_FINAL_FIELD_ATTRIBUTES); } @Override @@ -168,6 +170,7 @@ public class JavaColorSettingsPage implements ColorSettingsPage, InspectionColor " private double unusedField = 12345.67890;\n" + " private UnknownType anotherString = \"Another\\nStrin\\g\";\n" + " public static int staticField = 0;\n" + + " public final int instanceFinalField = 0;\n" + "\n" + " public SomeClass(AnInterface param, int[] reassignedParam) {\n" + " int localVar = \"IntelliJ\"; // Error, incompatible types\n" + diff --git a/platform/analysis-impl/src/com/intellij/codeInsight/daemon/impl/HighlightInfoType.java b/platform/analysis-impl/src/com/intellij/codeInsight/daemon/impl/HighlightInfoType.java index 8ea97bd0835c..ade2f5040ba4 100644 --- a/platform/analysis-impl/src/com/intellij/codeInsight/daemon/impl/HighlightInfoType.java +++ b/platform/analysis-impl/src/com/intellij/codeInsight/daemon/impl/HighlightInfoType.java @@ -69,6 +69,7 @@ public interface HighlightInfoType { HighlightInfoType LOCAL_VARIABLE = new HighlightInfoTypeImpl(SYMBOL_TYPE_SEVERITY, CodeInsightColors.LOCAL_VARIABLE_ATTRIBUTES); HighlightInfoType INSTANCE_FIELD = new HighlightInfoTypeImpl(SYMBOL_TYPE_SEVERITY, CodeInsightColors.INSTANCE_FIELD_ATTRIBUTES); + HighlightInfoType INSTANCE_FINAL_FIELD = new HighlightInfoTypeImpl(SYMBOL_TYPE_SEVERITY, CodeInsightColors.INSTANCE_FINAL_FIELD_ATTRIBUTES); HighlightInfoType STATIC_FIELD = new HighlightInfoTypeImpl(SYMBOL_TYPE_SEVERITY, CodeInsightColors.STATIC_FIELD_ATTRIBUTES); HighlightInfoType STATIC_FINAL_FIELD = new HighlightInfoTypeImpl(SYMBOL_TYPE_SEVERITY, CodeInsightColors.STATIC_FINAL_FIELD_ATTRIBUTES); HighlightInfoType PARAMETER = new HighlightInfoTypeImpl(SYMBOL_TYPE_SEVERITY, CodeInsightColors.PARAMETER_ATTRIBUTES); diff --git a/platform/core-api/src/com/intellij/openapi/editor/colors/CodeInsightColors.java b/platform/core-api/src/com/intellij/openapi/editor/colors/CodeInsightColors.java index 26c41d67d105..ef11feb0e627 100644 --- a/platform/core-api/src/com/intellij/openapi/editor/colors/CodeInsightColors.java +++ b/platform/core-api/src/com/intellij/openapi/editor/colors/CodeInsightColors.java @@ -37,6 +37,7 @@ public interface CodeInsightColors { TextAttributesKey REASSIGNED_PARAMETER_ATTRIBUTES = TextAttributesKey.createTextAttributesKey("REASSIGNED_PARAMETER_ATTRIBUTES", PARAMETER_ATTRIBUTES); TextAttributesKey IMPLICIT_ANONYMOUS_CLASS_PARAMETER_ATTRIBUTES = TextAttributesKey.createTextAttributesKey("IMPLICIT_ANONYMOUS_CLASS_PARAMETER_ATTRIBUTES"); TextAttributesKey INSTANCE_FIELD_ATTRIBUTES = TextAttributesKey.createTextAttributesKey("INSTANCE_FIELD_ATTRIBUTES"); + TextAttributesKey INSTANCE_FINAL_FIELD_ATTRIBUTES = TextAttributesKey.createTextAttributesKey("INSTANCE_FINAL_FIELD_ATTRIBUTES", INSTANCE_FIELD_ATTRIBUTES); TextAttributesKey STATIC_FIELD_ATTRIBUTES = TextAttributesKey.createTextAttributesKey("STATIC_FIELD_ATTRIBUTES"); TextAttributesKey STATIC_FINAL_FIELD_ATTRIBUTES = TextAttributesKey.createTextAttributesKey("STATIC_FINAL_FIELD_ATTRIBUTES", STATIC_FIELD_ATTRIBUTES); TextAttributesKey CLASS_NAME_ATTRIBUTES = TextAttributesKey.createTextAttributesKey("CLASS_NAME_ATTRIBUTES"); diff --git a/platform/platform-resources-en/src/messages/OptionsBundle.properties b/platform/platform-resources-en/src/messages/OptionsBundle.properties index 9de95bee9757..a11f9e1b2351 100644 --- a/platform/platform-resources-en/src/messages/OptionsBundle.properties +++ b/platform/platform-resources-en/src/messages/OptionsBundle.properties @@ -80,6 +80,7 @@ options.java.attribute.descriptor.reassigned.local.variable=Variables//Reassigne options.java.attribute.descriptor.reassigned.parameter=Parameters//Reassigned parameter options.java.attribute.descriptor.implicit.anonymous.parameter=Parameters//Implicit anonymous class parameter options.java.attribute.descriptor.instance.field=Class Fields//Instance field +options.java.attribute.descriptor.instance.final.field=Class Fields//Instance final field options.java.attribute.descriptor.static.field=Class Fields//Static field options.java.attribute.descriptor.static.final.field=Class Fields//Constant (static final field) options.java.attribute.descriptor.parameter=Parameters//Parameter