Skip to content

Instantly share code, notes, and snippets.

@dploeger
Created December 20, 2017 11:14
Show Gist options
  • Save dploeger/23f82cdd31d66373922a85f52116cb19 to your computer and use it in GitHub Desktop.
Save dploeger/23f82cdd31d66373922a85f52116cb19 to your computer and use it in GitHub Desktop.
package de.dieploegers.develop.idea.custommark
import com.intellij.codeInsight.daemon.RelatedItemLineMarkerInfo
import com.intellij.codeInsight.daemon.RelatedItemLineMarkerProvider
import com.intellij.codeInsight.navigation.NavigationGutterIconBuilder
import com.intellij.icons.AllIcons
import com.intellij.ide.util.DefaultPsiElementCellRenderer
import com.intellij.psi.PsiElement
import java.awt.Color
class CustomMarkLineMarkerProvider : RelatedItemLineMarkerProvider() {
override fun collectNavigationMarkers(elements: MutableList<PsiElement>,
result: MutableCollection<in RelatedItemLineMarkerInfo<PsiElement>>,
forNavigation: Boolean) {
for (element in elements) {
if (element.text != null && element.text.matches(Regex(".*abab.*"))) {
val renderer = DefaultPsiElementCellRenderer()
renderer.background = Color(255, 0, 0)
renderer.foreground = Color(255, 255, 255)
result.add(
NavigationGutterIconBuilder.create(AllIcons.General.Gear)
.setTarget(element)
.setCellRenderer(renderer)
.createLineMarkerInfo(element)
)
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment