idea-plugin / arrow.meta.ide.dsl.editor.lineMarker / LineMarkerSyntax / addLineMarkerProviderM

addLineMarkerProviderM

open fun <A : PsiElement> MetaIde.addLineMarkerProviderM(icon: Icon, transform: (PsiElement) -> A?, message: (element: A) -> String = Noop.string1(), commonIcon: MergeableLineMarkerInfo<PsiElement>.(others: List<MergeableLineMarkerInfo<*>>) -> Icon = { icon }, mergeWith: MergeableLineMarkerInfo<PsiElement>.(other: MergeableLineMarkerInfo<*>) -> Boolean = { this.icon == it.icon }, placed: Alignment = GutterIconRenderer.Alignment.RIGHT, navigate: (event: MouseEvent, element: PsiElement) -> Unit = Noop.effect2, clickAction: AnAction? = null): ExtensionPhase open fun <A : PsiNameIdentifierOwner> MetaIde.addLineMarkerProviderM(icon: Icon, transform: (PsiElement) -> A?, composite: Class<A>, message: DescriptorRenderer.Companion.(A) -> String = Noop.string2(), commonIcon: MergeableLineMarkerInfo<PsiElement>.(others: List<MergeableLineMarkerInfo<*>>) -> Icon = { icon }, mergeWith: MergeableLineMarkerInfo<PsiElement>.(other: MergeableLineMarkerInfo<*>) -> Boolean = { this.icon == it.icon }, navigate: (event: MouseEvent, element: PsiElement) -> Unit = Noop.effect2, placed: Alignment = GutterIconRenderer.Alignment.RIGHT, clickAction: AnAction? = null): ExtensionPhase

Similar to addLineMarkerProvider, but with mergeable LineMarkers, based on the predicate mergeWith.

Parameters

commonIcon - defines the common Icon after the merge

navigate - this function allows you to execute anything based on your use-case: actions, manipulations to PsiElements, opening Files or anything else.

Do you like Arrow?

Arrow Org
<