11package com.github.xepozz.gitattributes.ide
22
33import com.github.xepozz.gitattributes.language.psi.AttributesPattern
4- import com.intellij.codeInsight.daemon.RelatedItemLineMarkerInfo
54import com.intellij.codeInsight.daemon.RelatedItemLineMarkerProvider
65import com.intellij.codeInsight.navigation.NavigationGutterIconBuilder
76import com.intellij.icons.AllIcons
8- import com.intellij.openapi.editor.markup.GutterIconRenderer
97import com.intellij.psi.PsiElement
10- import com.intellij.psi.PsiFile
118import com.intellij.psi.PsiFileSystemItem
12- import kotlin.collections.firstNotNullOfOrNull
139
1410class AttributesLineMarkerProvider : RelatedItemLineMarkerProvider () {
15- override fun collectNavigationMarkers (
16- element : PsiElement ,
17- result : MutableCollection <in RelatedItemLineMarkerInfo <* >>
18- ) {
19- when (element) {
20- is AttributesPattern -> {
21- val target = element.references.firstNotNullOfOrNull { it.resolve() } as ? PsiFileSystemItem ? : return
22- // println("target: $target")
11+ override fun getLineMarkerInfo (element : PsiElement ) = when {
12+ element is AttributesPattern -> {
13+ val target = element.references.firstNotNullOfOrNull { it.resolve() } as ? PsiFileSystemItem ? : return null
14+ // println("target: $target")
2315
24- val builder = NavigationGutterIconBuilder .create(target.getIcon(0 ) ? : AllIcons .Nodes .Target )
25- .setTargets(target)
26- .setTooltipText(" Navigate to ${target.name} " )
16+ val builder = NavigationGutterIconBuilder .create(target.getIcon(0 ) ? : AllIcons .Nodes .Target )
17+ .setTargets(target)
18+ .setTooltipText(" Navigate to ${target.name} " )
2719
28- result.add(builder.createLineMarkerInfo(element))
29- }
20+ builder.createLineMarkerInfo(element.firstChild)
3021 }
22+
23+ else -> null
3124 }
3225}
0 commit comments