File tree 2 files changed +22
-2
lines changed
src/com/magento/idea/magento2plugin
2 files changed +22
-2
lines changed Original file line number Diff line number Diff line change 15
15
import com .intellij .psi .PsiFile ;
16
16
import com .intellij .psi .PsiReference ;
17
17
import com .intellij .psi .tree .IElementType ;
18
+ import com .intellij .util .SlowOperations ;
18
19
import com .jetbrains .php .lang .lexer .PhpTokenTypes ;
19
20
import com .jetbrains .php .lang .psi .PhpFile ;
20
21
import com .jetbrains .php .lang .psi .elements .Method ;
@@ -124,7 +125,7 @@ private boolean checkIsEventDispatchMethod(final MethodReference element) {
124
125
if (elementReference == null ) {
125
126
return false ;
126
127
}
127
- final PsiElement method = elementReference . resolve ( );
128
+ final PsiElement method = SlowOperations . allowSlowOperations ( elementReference :: resolve );
128
129
if (!(method instanceof Method )) {
129
130
return false ;
130
131
}
Original file line number Diff line number Diff line change 10
10
import com .intellij .psi .PsiElement ;
11
11
import com .intellij .psi .PsiFile ;
12
12
import com .intellij .util .containers .ContainerUtil ;
13
+ import com .jetbrains .php .lang .PhpLangUtil ;
13
14
import com .jetbrains .php .lang .psi .PhpMultipleDeclarationFilter ;
15
+ import com .jetbrains .php .lang .psi .elements .Method ;
16
+ import com .jetbrains .php .lang .psi .elements .PhpClass ;
14
17
import com .jetbrains .php .lang .psi .elements .PhpNamedElement ;
15
18
import com .magento .idea .magento2plugin .project .Settings ;
16
19
import java .util .Collection ;
@@ -47,7 +50,23 @@ public <E extends PhpNamedElement> Collection<E> filter(
47
50
return false ;
48
51
}
49
52
50
- return !virtualFile .getPath ().contains ("/generated/" );
53
+ return !virtualFile .getPath ().contains ("/generated/" ) && isValidFqn ( candidate ) ;
51
54
});
52
55
}
56
+
57
+ private <E extends PhpNamedElement > boolean isValidFqn (final E candidate ) {
58
+ PhpClass targetClass = null ;
59
+
60
+ if (candidate instanceof Method ) {
61
+ targetClass = (PhpClass ) candidate .getParent ();
62
+ } else if (candidate instanceof PhpClass ) {
63
+ targetClass = (PhpClass ) candidate ;
64
+ }
65
+
66
+ if (targetClass == null ) {
67
+ return true ;
68
+ }
69
+
70
+ return PhpLangUtil .isFqn (targetClass .getFQN ()) && !targetClass .getFQN ().endsWith ("\\ " );
71
+ }
53
72
}
You can’t perform that action at this time.
0 commit comments