File tree Expand file tree Collapse file tree
kotlin/com/github/xepozz/gitattributes/ide Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ package com.github.xepozz.gitattributes.ide
2+
3+ import com.github.xepozz.gitattributes.language.psi.AttributesPattern
4+ import com.intellij.codeInsight.daemon.RelatedItemLineMarkerInfo
5+ import com.intellij.codeInsight.daemon.RelatedItemLineMarkerProvider
6+ import com.intellij.codeInsight.navigation.NavigationGutterIconBuilder
7+ import com.intellij.icons.AllIcons
8+ import com.intellij.openapi.editor.markup.GutterIconRenderer
9+ import com.intellij.psi.PsiElement
10+ import com.intellij.psi.PsiFile
11+ import com.intellij.psi.PsiFileSystemItem
12+ import kotlin.collections.firstNotNullOfOrNull
13+
14+ 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")
23+
24+ val builder = NavigationGutterIconBuilder .create(target.getIcon(0 ) ? : AllIcons .Nodes .Target )
25+ .setTargets(target)
26+ .setTooltipText(" Navigate to ${target.name} " )
27+
28+ result.add(builder.createLineMarkerInfo(element))
29+ }
30+ }
31+ }
32+ }
Original file line number Diff line number Diff line change 3434 <!-- <lang.documentationProvider-->
3535 <!-- language="Gitattributes"-->
3636 <!-- implementationClass="com.github.xepozz.gitattributes.ide.documentation.AttributesDocumentationProvider"/>-->
37- <!-- <runLineMarkerContributor-->
38- <!-- language="Gitattributes"-->
39- <!-- implementationClass="com.github.xepozz.gitattributes.ide.AttributesRunCommandMarkerContributor"/>-->
40- <!-- <lang.foldingBuilder-->
41- <!-- language="Gitattributes"-->
42- <!-- implementationClass="com.github.xepozz.gitattributes.ide.CronScheduleFoldingBuilder"/>-->
37+ <codeInsight .lineMarkerProvider
38+ language =" Gitattributes"
39+ implementationClass =" com.github.xepozz.gitattributes.ide.AttributesLineMarkerProvider" />
4340 <lang .commenter
4441 language =" Gitattributes"
4542 implementationClass =" com.github.xepozz.gitattributes.ide.AttributesCommenter" />
You can’t perform that action at this time.
0 commit comments