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 8db9d02cdf8..a958c5fa11d 100644 --- a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/DslHighlightingMarker.kt +++ b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/DslHighlightingMarker.kt @@ -38,6 +38,8 @@ fun collectHighlightingColorsMarkers( ktClass: KtClass, result: MutableCollection> ) { + if (!KotlinLineMarkerOptions.dslOption.isEnabled) return + val styleId = ktClass.styleIdForMarkerAnnotation() ?: return val anchor = ktClass.nameIdentifier ?: return diff --git a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/KotlinLineMarkerOptions.kt b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/KotlinLineMarkerOptions.kt new file mode 100644 index 00000000000..f6f7884ee47 --- /dev/null +++ b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/KotlinLineMarkerOptions.kt @@ -0,0 +1,34 @@ +/* + * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.idea.highlighter.markers + +import com.intellij.codeInsight.daemon.GutterIconDescriptor +import com.intellij.icons.AllIcons +import org.jetbrains.kotlin.idea.KotlinIcons + +internal object KotlinLineMarkerOptions { + val overriddenOption = GutterIconDescriptor.Option("kotlin.overridden", "Overridden declaration", AllIcons.Gutter.OverridenMethod) + + val implementedOption = GutterIconDescriptor.Option("kotlin.implemented", "Implemented declaration", AllIcons.Gutter.ImplementedMethod) + + val overridingOption = GutterIconDescriptor.Option("kotlin.overriding", "Overriding declaration", AllIcons.Gutter.OverridingMethod) + + val implementingOption = + GutterIconDescriptor.Option("kotlin.implementing", "Implementing declaration", AllIcons.Gutter.ImplementingMethod) + + val actualOption = GutterIconDescriptor.Option("kotlin.actual", "Multiplatform actual declaration", KotlinIcons.ACTUAL) + + val expectOption = GutterIconDescriptor.Option("kotlin.expect", "Multiplatform expect declaration", KotlinIcons.EXPECT) + + val dslOption = GutterIconDescriptor.Option("kotlin.dsl", "DSL markers", KotlinIcons.DSL_MARKER_ANNOTATION) + + val options = arrayOf( + overriddenOption, implementedOption, + overridingOption, implementingOption, + actualOption, expectOption, + dslOption + ) +} \ No newline at end of file diff --git a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/KotlinLineMarkerProvider.kt b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/KotlinLineMarkerProvider.kt index 42d807a1068..37d93fc6fd8 100644 --- a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/KotlinLineMarkerProvider.kt +++ b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/KotlinLineMarkerProvider.kt @@ -11,7 +11,6 @@ import com.intellij.codeInsight.daemon.impl.LineMarkerNavigator import com.intellij.codeInsight.daemon.impl.MarkerType import com.intellij.codeInsight.daemon.impl.PsiElementListNavigator import com.intellij.codeInsight.navigation.ListBackgroundUpdaterTask -import com.intellij.icons.AllIcons import com.intellij.openapi.actionSystem.IdeActions import com.intellij.openapi.editor.Document import com.intellij.openapi.editor.colors.CodeInsightColors @@ -29,7 +28,6 @@ import org.jetbrains.kotlin.asJava.toLightClass import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor import org.jetbrains.kotlin.descriptors.MemberDescriptor import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.idea.KotlinIcons import org.jetbrains.kotlin.idea.caches.lightClasses.KtFakeLightClass import org.jetbrains.kotlin.idea.caches.lightClasses.KtFakeLightMethod import org.jetbrains.kotlin.idea.caches.project.implementedDescriptors @@ -48,10 +46,13 @@ import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject import org.jetbrains.kotlin.psi.psiUtil.getPrevSiblingIgnoringWhitespaceAndComments import java.awt.event.MouseEvent import java.util.* -import javax.swing.Icon import javax.swing.ListCellRenderer -class KotlinLineMarkerProvider : LineMarkerProvider { +class KotlinLineMarkerProvider : LineMarkerProviderDescriptor() { + override fun getName() = "Kotlin line markers" + + override fun getOptions(): Array