@@ -8,19 +8,19 @@ import com.intellij.util.io.KeyDescriptor
8
8
import com.vk.modulite.Namespace
9
9
import com.vk.modulite.SymbolName
10
10
import com.vk.modulite.composer.ComposerPackage
11
- import gnu.trove.THashMap
11
+ import com.vk.modulite.utils.fromKphpPolyfills
12
+ import com.vk.modulite.utils.fromPackages
13
+ import com.vk.modulite.utils.fromVendor
12
14
import java.io.DataInput
13
15
import java.io.DataOutput
14
16
15
17
class ComposerFilesIndex : FileBasedIndexExtension <String , ComposerPackage >() {
16
18
override fun getIndexer (): DataIndexer <String , ComposerPackage , FileContent > {
17
19
return DataIndexer { inputData ->
18
- val map = THashMap <String , ComposerPackage >()
20
+ val map = hashMapOf <String , ComposerPackage >()
19
21
20
22
val model = ComposerPackage .fromPsiFile(inputData.psiFile as JsonFile )
21
- if (model != null ) {
22
- map[model.name] = model
23
- }
23
+ map[model.name] = model
24
24
25
25
map
26
26
}
@@ -65,7 +65,23 @@ class ComposerFilesIndex : FileBasedIndexExtension<String, ComposerPackage>() {
65
65
}
66
66
}
67
67
68
- override fun getInputFilter () = FileBasedIndex .InputFilter { file -> file.name == " composer.json" }
68
+ override fun getInputFilter (): FileBasedIndex .InputFilter {
69
+ return FileBasedIndex .InputFilter { file ->
70
+ if (file.name != " composer.json" ) {
71
+ return @InputFilter false
72
+ }
73
+
74
+ // Перенести проверку в логику
75
+ if (file.fromKphpPolyfills()) {
76
+ return @InputFilter false
77
+ }
78
+
79
+ // Не оптимальный вариант.
80
+ // На самом деле это защита, он индексирования composer текущего проекта.
81
+ return @InputFilter file.fromVendor() || file.fromPackages()
82
+ }
83
+ }
84
+
69
85
override fun getName () = KEY
70
86
override fun getKeyDescriptor (): KeyDescriptor <String > = EnumeratorStringDescriptor .INSTANCE
71
87
override fun dependsOnFileContent () = true
0 commit comments