@@ -20,9 +20,7 @@ import com.intellij.usages.Usage
20
20
import com.intellij.usages.UsageInfo2UsageAdapter
21
21
import com.intellij.util.Processor
22
22
import com.redhat.devtools.intellij.kubernetes.editor.util.PsiElements
23
- import com.redhat.devtools.intellij.kubernetes.editor.util.getLabels
24
23
import com.redhat.devtools.intellij.kubernetes.editor.util.getResource
25
- import com.redhat.devtools.intellij.kubernetes.editor.util.getSelector
26
24
import com.redhat.devtools.intellij.kubernetes.editor.util.isLabels
27
25
import com.redhat.devtools.intellij.kubernetes.editor.util.isSelector
28
26
@@ -53,9 +51,10 @@ class SelectorUsageSearcher : CustomUsageSearcher() {
53
51
**/
54
52
// val searchScope = options.searchScope
55
53
// if (searchScope.contains(file.virtualFile)) {
56
- getAllMatching(searchParameter)
54
+ val filter = getFilter(searchParameter) ? : return @run
55
+ getAllMatching(searchParameter, filter)
57
56
.forEach { matchingElement ->
58
- val searchResult = getMatchingAttribute(searchParameter, matchingElement)
57
+ val searchResult = filter.getMatchingElement( matchingElement)?.parent
59
58
if (searchResult != null ) {
60
59
processor.process(
61
60
UsageInfo2UsageAdapter (UsageInfo (searchResult))
@@ -65,15 +64,14 @@ class SelectorUsageSearcher : CustomUsageSearcher() {
65
64
}
66
65
}
67
66
68
- private fun getAllMatching (searchParameter : PsiElement ): Collection <PsiElement > {
67
+ private fun getAllMatching (searchParameter : PsiElement , filter : PsiElementFilter ): Collection <PsiElement > {
69
68
val fileType = searchParameter.containingFile.fileType
70
69
val project = searchParameter.project
71
- val filter = getFilter(searchParameter) ? : return emptyList()
72
70
return PsiElements .getAllNoExclusions(fileType, project)
73
71
.filter(filter::isAccepted)
74
72
}
75
73
76
- private fun getFilter (searchParameter : PsiElement ): PsiElementFilter ? {
74
+ private fun getFilter (searchParameter : PsiElement ): PsiElementMappingsFilter ? {
77
75
val resource = searchParameter.getResource() ? : return null
78
76
return when {
79
77
searchParameter.isSelector() ->
@@ -87,14 +85,4 @@ class SelectorUsageSearcher : CustomUsageSearcher() {
87
85
}
88
86
}
89
87
90
- private fun getMatchingAttribute (searchParameter : PsiElement , matchingElement : PsiElement ): PsiElement ? {
91
- return when {
92
- searchParameter.isSelector() ->
93
- matchingElement.getLabels()?.parent // beginning of labels block/property
94
- searchParameter.isLabels() ->
95
- matchingElement.getSelector()?.parent // beginning of selector block/property
96
- else ->
97
- null
98
- }
99
- }
100
88
}
0 commit comments