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? {