Skip to content

Commit d2b8e61

Browse files
authored
Merge pull request #2485 from vitaliyboykocontributor/1639-java.lang.Throwable-Assertion-failed-Do-not-use-PsiElement-for-popup-model.-See-PsiTargetNavigator
1639: Remove SearchGutterIconNavigationHandler and simplify markers
2 parents 22a639b + b98e68a commit d2b8e61

File tree

3 files changed

+13
-67
lines changed

3 files changed

+13
-67
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0).
1212
Replaced hardcoded Magento versions with dynamic fetching via Packagist API.
1313
Fixed UI icon references.
1414
Updated Run command.
15+
- java.lang.Throwable: Assertion failed: Do not use PsiElement for popup model. See PsiTargetNavigator [#2485](https://github.com/magento/magento2-phpstorm-plugin/pull/2485)
1516

1617
### Changed
1718

src/main/java/com/magento/idea/magento2plugin/linemarker/SearchGutterIconNavigationHandler.java

-47
This file was deleted.

src/main/java/com/magento/idea/magento2plugin/linemarker/php/PluginLineMarkerProvider.java

+12-20
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,17 @@
55

66
package com.magento.idea.magento2plugin.linemarker.php;
77

8-
import com.intellij.codeInsight.daemon.GutterIconNavigationHandler;
98
import com.intellij.codeInsight.daemon.LineMarkerInfo;
109
import com.intellij.codeInsight.daemon.LineMarkerProvider;
1110
import com.intellij.codeInsight.navigation.NavigationGutterIconBuilder;
1211
import com.intellij.icons.AllIcons;
13-
import com.intellij.psi.NavigatablePsiElement;
12+
import com.intellij.lang.ASTNode;
1413
import com.intellij.psi.PsiElement;
1514
import com.intellij.psi.search.GlobalSearchScope;
16-
import com.intellij.psi.util.PsiTreeUtil;
1715
import com.intellij.util.indexing.FileBasedIndex;
16+
import com.jetbrains.php.lang.lexer.PhpTokenTypes;
1817
import com.jetbrains.php.lang.psi.elements.Method;
1918
import com.jetbrains.php.lang.psi.elements.PhpClass;
20-
import com.magento.idea.magento2plugin.linemarker.SearchGutterIconNavigationHandler;
2119
import com.magento.idea.magento2plugin.linemarker.php.data.PluginMethodData;
2220
import com.magento.idea.magento2plugin.project.Settings;
2321
import com.magento.idea.magento2plugin.stubs.indexes.PluginIndex;
@@ -74,22 +72,16 @@ public void collectSlowLineMarkers(
7472
}
7573

7674
if (!results.isEmpty()) {
77-
final GutterIconNavigationHandler<PsiElement> navigationHandler =
78-
new SearchGutterIconNavigationHandler<>(
79-
(Collection<? extends NavigatablePsiElement>) results,
80-
TOOLTIP_TEXT
81-
);
82-
83-
collection.add(
84-
NavigationGutterIconBuilder
85-
.create(AllIcons.Nodes.Plugin)
86-
.setTargets(results)
87-
.setTooltipText(TOOLTIP_TEXT)
88-
.createLineMarkerInfo(
89-
PsiTreeUtil.getDeepestFirst(psiElement),
90-
navigationHandler
91-
)
92-
);
75+
final ASTNode node = psiElement.getNode()
76+
.findChildByType(PhpTokenTypes.IDENTIFIER);
77+
if (node != null) {
78+
// Add the property to a collection of line marker info
79+
final NavigationGutterIconBuilder<PsiElement> builder =
80+
NavigationGutterIconBuilder.create(AllIcons.Nodes.Plugin)
81+
.setTargets(results)
82+
.setTooltipText(TOOLTIP_TEXT);
83+
collection.add(builder.createLineMarkerInfo(node.getPsi()));
84+
}
9385
}
9486
}
9587
}

0 commit comments

Comments
 (0)