Skip to content

Commit d7c7f88

Browse files
committed
fix: optimize performance of line marker provider
1 parent 90816c3 commit d7c7f88

1 file changed

Lines changed: 10 additions & 17 deletions

File tree

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,25 @@
11
package com.github.xepozz.gitattributes.ide
22

33
import com.github.xepozz.gitattributes.language.psi.AttributesPattern
4-
import com.intellij.codeInsight.daemon.RelatedItemLineMarkerInfo
54
import com.intellij.codeInsight.daemon.RelatedItemLineMarkerProvider
65
import com.intellij.codeInsight.navigation.NavigationGutterIconBuilder
76
import com.intellij.icons.AllIcons
8-
import com.intellij.openapi.editor.markup.GutterIconRenderer
97
import com.intellij.psi.PsiElement
10-
import com.intellij.psi.PsiFile
118
import com.intellij.psi.PsiFileSystemItem
12-
import kotlin.collections.firstNotNullOfOrNull
139

1410
class 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

Comments
 (0)