diff --git a/ultimate/src/org/jetbrains/kotlin/idea/spring/lineMarking/KotlinSpringClassAnnotator.kt b/ultimate/src/org/jetbrains/kotlin/idea/spring/lineMarking/KotlinSpringClassAnnotator.kt index ff9e2558e6c..0db285999f4 100644 --- a/ultimate/src/org/jetbrains/kotlin/idea/spring/lineMarking/KotlinSpringClassAnnotator.kt +++ b/ultimate/src/org/jetbrains/kotlin/idea/spring/lineMarking/KotlinSpringClassAnnotator.kt @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.idea.spring.lineMarking +import com.intellij.codeInsight.daemon.GutterIconNavigationHandler import com.intellij.codeInsight.daemon.LineMarkerInfo import com.intellij.codeInsight.daemon.RelatedItemLineMarkerInfo import com.intellij.navigation.GotoRelatedItem @@ -105,6 +106,7 @@ class KotlinSpringClassAnnotator : SpringClassAnnotator() { else -> return@mapNotNullTo item } if (elementToAnnotate == null) return@mapNotNullTo null + if (alreadyMarked(result, elementToAnnotate, item.navigationHandler)) return@mapNotNullTo null @Suppress("UNCHECKED_CAST") RelatedItemLineMarkerInfo( @@ -119,4 +121,16 @@ class KotlinSpringClassAnnotator : SpringClassAnnotator() { ) } } + + private fun alreadyMarked(result: MutableCollection>, + elementToAnnotate: PsiElement, + navigationHandler: GutterIconNavigationHandler<*>?) = + result.any { + when (it) { + is RelatedItemLineMarkerInfo<*> -> { + it.element == elementToAnnotate && it.navigationHandler == navigationHandler + } + else -> false + } + } } \ No newline at end of file