From 1fbbd710857d2adf2a2520c691c759943ef0f4a1 Mon Sep 17 00:00:00 2001 From: Alexander Podkhalyuzin Date: Wed, 3 Apr 2019 16:58:56 +0300 Subject: [PATCH] Fixed DSL Marker icon #KT-30470 Fixed --- .../org/jetbrains/kotlin/idea/KotlinIcons.java | 2 ++ .../kotlin/idea/icons/dslMarkerAnnotation.svg | 3 +++ .../idea/icons/dslMarkerAnnotation_dark.svg | 6 ++++++ .../kotlin/idea/icons/kotlin_gradle_script.svg | 2 +- .../highlighter/markers/DslHighlightingMarker.kt | 16 +++++++++++++--- 5 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 idea/resources/org/jetbrains/kotlin/idea/icons/dslMarkerAnnotation.svg create mode 100644 idea/resources/org/jetbrains/kotlin/idea/icons/dslMarkerAnnotation_dark.svg diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIcons.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIcons.java index 8b279b971b2..6522f7c1ff5 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIcons.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIcons.java @@ -49,6 +49,8 @@ public interface KotlinIcons { Icon CLASS_INITIALIZER = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/classInitializerKotlin." + IconExtensionChooser.iconExtension()); Icon TYPE_ALIAS = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/typeAlias." + IconExtensionChooser.iconExtension()); + Icon DSL_MARKER_ANNOTATION = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/dslMarkerAnnotation.svg"); + Icon SUSPEND_CALL = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/suspendCall." + IconExtensionChooser.iconExtension()); Icon ACTUAL = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/actual." + IconExtensionChooser.iconExtension()); diff --git a/idea/resources/org/jetbrains/kotlin/idea/icons/dslMarkerAnnotation.svg b/idea/resources/org/jetbrains/kotlin/idea/icons/dslMarkerAnnotation.svg new file mode 100644 index 00000000000..0ea963dc669 --- /dev/null +++ b/idea/resources/org/jetbrains/kotlin/idea/icons/dslMarkerAnnotation.svg @@ -0,0 +1,3 @@ + + + diff --git a/idea/resources/org/jetbrains/kotlin/idea/icons/dslMarkerAnnotation_dark.svg b/idea/resources/org/jetbrains/kotlin/idea/icons/dslMarkerAnnotation_dark.svg new file mode 100644 index 00000000000..ce4368db198 --- /dev/null +++ b/idea/resources/org/jetbrains/kotlin/idea/icons/dslMarkerAnnotation_dark.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin_gradle_script.svg b/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin_gradle_script.svg index 855f2a1d0d1..313434ab21e 100644 --- a/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin_gradle_script.svg +++ b/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin_gradle_script.svg @@ -10,11 +10,11 @@ - + diff --git a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/DslHighlightingMarker.kt b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/DslHighlightingMarker.kt index c4317231fe9..19929ff900b 100644 --- a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/DslHighlightingMarker.kt +++ b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/DslHighlightingMarker.kt @@ -13,11 +13,13 @@ import com.intellij.ide.DataManager import com.intellij.openapi.editor.colors.EditorColorsManager import com.intellij.openapi.editor.markup.GutterIconRenderer import com.intellij.psi.PsiElement +import com.intellij.ui.LayeredIcon import com.intellij.util.Function import com.intellij.util.ui.ColorsIcon import com.intellij.util.ui.JBUI import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.ClassKind +import org.jetbrains.kotlin.idea.KotlinIcons import org.jetbrains.kotlin.idea.KotlinLanguage import org.jetbrains.kotlin.idea.core.toDescriptor import org.jetbrains.kotlin.idea.highlighter.dsl.DslHighlighterExtension @@ -28,7 +30,7 @@ import javax.swing.JComponent private val navHandler = GutterIconNavigationHandler { event, element -> val dataContext = (event.component as? JComponent)?.let { DataManager.getInstance().getDataContext(it) } - ?: return@GutterIconNavigationHandler + ?: return@GutterIconNavigationHandler val ktClass = element?.parent as? KtClass ?: return@GutterIconNavigationHandler val styleId = ktClass.styleIdForMarkerAnnotation() ?: return@GutterIconNavigationHandler ColorAndFontOptions.selectOrEditColor(dataContext, DslHighlighterExtension.styleOptionDisplayName(styleId), KotlinLanguage.NAME) @@ -61,8 +63,16 @@ fun collectHighlightingColorsMarkers( private fun createIcon(styleId: Int): Icon { val globalScheme = EditorColorsManager.getInstance().globalScheme val markersColor = globalScheme.getAttributes(DslHighlighterExtension.styleById(styleId)).foregroundColor - val defaultColor = globalScheme.defaultForeground - return JBUI.scale(ColorsIcon(12, markersColor, defaultColor, defaultColor, markersColor)) + val icon = LayeredIcon(2) + val defaultIcon = KotlinIcons.DSL_MARKER_ANNOTATION + icon.setIcon(defaultIcon, 0) + icon.setIcon( + ColorsIcon(defaultIcon.iconHeight / 2, markersColor).scale(JBUI.pixScale()), + 1, + defaultIcon.iconHeight / 2, + defaultIcon.iconWidth / 2 + ) + return icon } private fun KtClass.styleIdForMarkerAnnotation(): Int? {