Skip to content

Commit eb4d524

Browse files
authored
Merge pull request #1266 from magento/1220_not_index_no_psi_plugins
1220: avoid indexing not existing plugin classes
2 parents 0e99f4b + 2577b00 commit eb4d524

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0).
66

77
## 5.0.1
88

9+
### Fixed
10+
11+
- Throwable: Stub index points to a file without PSI [#1232](https://github.com/magento/magento2-phpstorm-plugin/pull/1232)
12+
913
## 5.0.0
1014

1115
### Added

src/com/magento/idea/magento2plugin/stubs/indexes/PluginIndex.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.intellij.util.io.DataExternalizer;
2020
import com.intellij.util.io.EnumeratorStringDescriptor;
2121
import com.intellij.util.io.KeyDescriptor;
22+
import com.jetbrains.php.PhpIndex;
2223
import com.jetbrains.php.lang.PhpLangUtil;
2324
import com.magento.idea.magento2plugin.magento.files.ModuleDiXml;
2425
import com.magento.idea.magento2plugin.project.Settings;
@@ -90,15 +91,21 @@ public Map<String, Set<PluginData>> map(final @NotNull FileContent fileContent)
9091

9192
@SuppressWarnings("checkstyle:LineLength")
9293
private Set<PluginData> getPluginsForType(final XmlTag typeNode) {
94+
final PhpIndex phpIndex = PhpIndex.getInstance(typeNode.getProject());
9395
final Set<PluginData> results = new HashSet<>();
9496

9597
for (final XmlTag pluginTag: typeNode.findSubTags(ModuleDiXml.PLUGIN_TAG_NAME)) {
9698
final String pluginType = pluginTag.getAttributeValue(ModuleDiXml.TYPE_ATTR);
9799
String pluginSortOrder = pluginTag.getAttributeValue(ModuleDiXml.SORT_ORDER_ATTR);
98100

99-
if (pluginType != null) {
101+
if (pluginType != null && !pluginType.isEmpty()) {
100102
pluginSortOrder = pluginSortOrder == null ? "0" : pluginSortOrder;
101103
final PluginData pluginData = getPluginDataObject(pluginType, Integer.parseInt(pluginSortOrder));
104+
try {
105+
phpIndex.getAnyByFQN(pluginData.getType());
106+
} catch (Throwable exception) { //NOPMD
107+
//do nothing
108+
}
102109
results.add(pluginData);
103110
}
104111
}

0 commit comments

Comments
 (0)