5
5
6
6
package com .magento .idea .magento2plugin .linemarker .php ;
7
7
8
+ import com .intellij .codeInsight .daemon .GutterIconNavigationHandler ;
8
9
import com .intellij .codeInsight .daemon .LineMarkerInfo ;
9
10
import com .intellij .codeInsight .daemon .LineMarkerProvider ;
10
11
import com .intellij .codeInsight .navigation .NavigationGutterIconBuilder ;
11
12
import com .intellij .icons .AllIcons ;
13
+ import com .intellij .psi .NavigatablePsiElement ;
12
14
import com .intellij .psi .PsiElement ;
13
15
import com .intellij .psi .search .GlobalSearchScope ;
14
16
import com .intellij .psi .util .PsiTreeUtil ;
15
17
import com .intellij .util .indexing .FileBasedIndex ;
16
18
import com .jetbrains .php .PhpIndex ;
17
19
import com .jetbrains .php .lang .psi .elements .Method ;
18
20
import com .jetbrains .php .lang .psi .elements .PhpClass ;
21
+ import com .magento .idea .magento2plugin .linemarker .SearchGutterIconNavigationHandler ;
19
22
import com .magento .idea .magento2plugin .project .Settings ;
20
23
import com .magento .idea .magento2plugin .stubs .indexes .PluginIndex ;
21
24
import java .util .ArrayList ;
@@ -39,6 +42,7 @@ public class PluginLineMarkerProvider implements LineMarkerProvider {
39
42
}
40
43
41
44
@ Override
45
+ @ SuppressWarnings ("PMD.AvoidInstantiatingObjectsInLoops" )
42
46
public void collectSlowLineMarkers (
43
47
final @ NotNull List <? extends PsiElement > psiElements ,
44
48
final @ NotNull Collection <? super LineMarkerInfo <?>> collection
@@ -69,12 +73,21 @@ public void collectSlowLineMarkers(
69
73
}
70
74
71
75
if (!results .isEmpty ()) {
76
+ final GutterIconNavigationHandler <PsiElement > navigationHandler =
77
+ new SearchGutterIconNavigationHandler <>(
78
+ (Collection <? extends NavigatablePsiElement >) results ,
79
+ TOOLTIP_TEXT
80
+ );
81
+
72
82
collection .add (
73
83
NavigationGutterIconBuilder
74
84
.create (AllIcons .Nodes .Plugin )
75
85
.setTargets (results )
76
86
.setTooltipText (TOOLTIP_TEXT )
77
- .createLineMarkerInfo (PsiTreeUtil .getDeepestFirst (psiElement ))
87
+ .createLineMarkerInfo (
88
+ PsiTreeUtil .getDeepestFirst (psiElement ),
89
+ navigationHandler
90
+ )
78
91
);
79
92
}
80
93
}
0 commit comments