Skip to content

Commit 44d90f1

Browse files
committed
Highlighting: Allow custom colors for package #SCL-25408 fixed
1 parent b70f137 commit 44d90f1

6 files changed

Lines changed: 30 additions & 4 deletions

File tree

scala/scala-impl/resources/messages/ScalaOptionsBundle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ options.scala.attribute.descriptor.class=Class
2626
options.scala.attribute.descriptor.enum=Enum
2727
options.scala.attribute.descriptor.enum.case.singleton=Enum singleton case
2828
options.scala.attribute.descriptor.enum.case.class=Enum class case
29+
options.scala.attribute.descriptor.package=Package
2930
options.scala.attribute.descriptor.bad.character=Bad character
3031
options.scala.attribute.descriptor.scaladoc.comment=ScalaDoc comment
3132
options.scala.attribute.descriptor.scaladoc.comment.tag=ScalaDoc comment tag

scala/scala-impl/src/org/jetbrains/plugins/scala/highlighter/DefaultHighlighter.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ public class DefaultHighlighter {
5555
static final String OBJECT_ID = "Scala Object";
5656
static final String CLASS_ID = "Scala Class";
5757
static final String BAD_CHARACTER_ID = "Scala Bad character";
58+
static final String PACKAGE_ID = "Scala Package";
5859

5960
// ScalaDoc
6061
static final String DOC_COMMENT_ID = "ScalaDoc comment";
@@ -128,6 +129,7 @@ public class DefaultHighlighter {
128129
public static final TextAttributesKey TYPEPARAM = createKey(TYPEPARAM_ID, JavaHighlightInfoTypes.TYPE_PARAMETER_NAME.getAttributesKey());
129130
public static final TextAttributesKey OBJECT = createKey(OBJECT_ID, JavaHighlightInfoTypes.CLASS_NAME.getAttributesKey());
130131
public static final TextAttributesKey CLASS = createKey(CLASS_ID, JavaHighlightInfoTypes.CLASS_NAME.getAttributesKey());
132+
public static final TextAttributesKey PACKAGE = createKey(PACKAGE_ID, DefaultLanguageHighlighterColors.IDENTIFIER);
131133

132134
// ScalaDoc
133135
private static final TextAttributesKey SCALA_DOC_COMMENT_MARKUP = DefaultLanguageHighlighterColors.DOC_COMMENT_MARKUP;

scala/scala-impl/src/org/jetbrains/plugins/scala/highlighter/ScalaColorsAndFontsPage.scala

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ object ScalaColorsAndFontsPage {
4747
new AttributesDescriptor(DisplayNames.ENUM, ENUM),
4848
new AttributesDescriptor(DisplayNames.ENUM_SINGLETON_CASE, ENUM_SINGLETON_CASE),
4949
new AttributesDescriptor(DisplayNames.ENUM_CLASS_CASE, ENUM_CLASS_CASE),
50+
new AttributesDescriptor(DisplayNames.PACKAGE, PACKAGE),
5051
new AttributesDescriptor(DisplayNames.TYPEPARAM, TYPEPARAM),
5152
new AttributesDescriptor(DisplayNames.TYPE_ALIAS, TYPE_ALIAS),
5253
new AttributesDescriptor(DisplayNames.PREDEF, PREDEF),
@@ -114,6 +115,7 @@ object ScalaColorsAndFontsPage {
114115
val ENUM = ScalaOptionsBundle.message("options.scala.attribute.descriptor.enum")
115116
val ENUM_SINGLETON_CASE = ScalaOptionsBundle.message("options.scala.attribute.descriptor.enum.case.singleton")
116117
val ENUM_CLASS_CASE = ScalaOptionsBundle.message("options.scala.attribute.descriptor.enum.case.class")
118+
val PACKAGE = ScalaOptionsBundle.message("options.scala.attribute.descriptor.package")
117119
val BAD_CHARACTER = ScalaOptionsBundle.message("options.scala.attribute.descriptor.bad.character")
118120
val DOC_COMMENT = ScalaOptionsBundle.message("options.scala.attribute.descriptor.scaladoc.comment")
119121
val SCALA_DOC_TAG = ScalaOptionsBundle.message("options.scala.attribute.descriptor.scaladoc.comment.tag")
@@ -194,8 +196,8 @@ class ScalaColorsAndFontsPage extends RainbowColorSettingsPage {
194196
override def getDemoText: String =
195197
s"""$scalaDirectiveDemoText
196198
|
197-
|<keyword>import</keyword> scala<dot>.</dot>collection<dot>.</dot>mutable<dot>.</dot>_
198-
|<keyword>import</keyword> java<dot>.</dot>util<dot>.</dot>TreeMap
199+
|<keyword>import</keyword> <package>scala</package><dot>.</dot><package>collection</package><dot>.</dot><package>mutable</package><dot>.</dot>_
200+
|<keyword>import</keyword> <package>java</package><dot>.</dot><package>util</package><dot>.</dot>TreeMap
199201
|
200202
|<scaladoc>/**
201203
| * ScalaDoc comment: <scaladocHtml><code></scaladocHtml>Some code<scaladocHtml></code></scaladocHtml>
@@ -277,6 +279,7 @@ class ScalaColorsAndFontsPage extends RainbowColorSettingsPage {
277279
map.put("enum", ENUM)
278280
map.put("enum_singleton_case", ENUM_SINGLETON_CASE)
279281
map.put("enum_class_case", ENUM_CLASS_CASE)
282+
map.put("package", PACKAGE)
280283
map.put("annotation", ANNOTATION)
281284
map.put("attribute", ANNOTATION_ATTRIBUTE)
282285
map.put("abstract", ABSTRACT_CLASS)

scala/scala-impl/src/org/jetbrains/plugins/scala/highlighter/ScalaColorsSchemeUtils.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package org.jetbrains.plugins.scala.highlighter
33
import com.intellij.codeInsight.daemon.impl.HighlightInfoType
44
import com.intellij.openapi.editor.DefaultLanguageHighlighterColors
55
import com.intellij.openapi.editor.colors.TextAttributesKey
6-
import com.intellij.psi.{PsiClass, PsiElement, PsiField, PsiMethod, PsiModifierListOwner}
6+
import com.intellij.psi.{PsiClass, PsiElement, PsiField, PsiMethod, PsiModifierListOwner, PsiPackage}
77
import org.jetbrains.plugins.scala.extensions.{&, ObjectExt, Parent, PsiClassExt, PsiMemberExt}
88
import org.jetbrains.plugins.scala.lang.psi.api.base.patterns.{ScBindingPattern, ScCaseClause, ScReferencePattern}
99
import org.jetbrains.plugins.scala.lang.psi.api.base.{ScFieldId, ScReference, ScStableCodeReference}
@@ -102,6 +102,7 @@ object ScalaColorsSchemeUtils {
102102
}
103103
case f@(_: ScFunctionDefinition | _: ScFunctionDeclaration | _: ScMacroDefinition) => highlightInfoType(f.asInstanceOf[ScFunction])
104104
case m: PsiMethod => highlightInfoType(m)
105+
case _: PsiPackage => ScalaHighlightInfoTypes.PACKAGE
105106
case _ => ScalaHighlightInfoTypes.IDENTIFIER
106107
}
107108

scala/scala-impl/src/org/jetbrains/plugins/scala/highlighter/ScalaHighlightInfoTypes.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public class ScalaHighlightInfoTypes {
3030
public static final HighlightInfoType TYPEPARAM = createType(DefaultHighlighter.TYPEPARAM);
3131
public static final HighlightInfoType OBJECT = createType(DefaultHighlighter.OBJECT);
3232
public static final HighlightInfoType CLASS = createType(DefaultHighlighter.CLASS);
33+
public static final HighlightInfoType PACKAGE = createType(DefaultHighlighter.PACKAGE);
3334

3435
// ScalaDoc
3536
public static final HighlightInfoType DOC_COMMENT = createType(DefaultHighlighter.DOC_COMMENT);

scala/scala-impl/test/org/jetbrains/plugins/scala/annotator/ScalaColorSchemeAnnotatorTest.scala

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import com.intellij.openapi.editor.colors.TextAttributesKey
44
import com.intellij.psi.PsiElement
55
import org.jetbrains.plugins.scala.highlighter.DefaultHighlighter
66
import org.junit.Test
7-
87
class ScalaColorSchemeAnnotatorTest extends ScalaColorSchemeAnnotatorTestBase[TextAttributesKey] {
98
import org.jetbrains.plugins.scala.highlighter.DefaultHighlighter._
109

@@ -624,4 +623,23 @@ class ScalaColorSchemeAnnotatorTest extends ScalaColorSchemeAnnotatorTestBase[Te
624623
|Info((84,85),.,Scala Dot)""".stripMargin)
625624
}
626625

626+
@Test
627+
def testPackageHighlighting(): Unit = {
628+
val text =
629+
"""package org.jetbrains.plugins.scala
630+
|
631+
|import java.util.concurrent.Callable
632+
|""".stripMargin
633+
634+
testAnnotations(text, Set(DefaultHighlighter.PACKAGE),
635+
"""Info((8,11),org,Scala Package)
636+
|Info((12,21),jetbrains,Scala Package)
637+
|Info((22,29),plugins,Scala Package)
638+
|Info((30,35),scala,Scala Package)
639+
|Info((44,48),java,Scala Package)
640+
|Info((49,53),util,Scala Package)
641+
|Info((54,64),concurrent,Scala Package)""".stripMargin
642+
)
643+
}
644+
627645
}

0 commit comments

Comments
 (0)