4
4
import com .intellij .openapi .project .DumbService ;
5
5
import com .intellij .openapi .util .Iconable ;
6
6
import com .intellij .psi .PsiElement ;
7
- import com .intellij .psi .util .PsiTreeUtil ;
8
7
import com .intellij .ui .LayeredIcon ;
9
8
import com .jetbrains .twig .TwigFile ;
10
9
import com .jetbrains .twig .elements .TwigExtendsTag ;
11
10
import fr .adrienbrault .idea .symfony2plugin .Settings ;
12
11
import fr .adrienbrault .idea .symfony2plugin .Symfony2Icons ;
13
12
import fr .adrienbrault .idea .symfony2plugin .Symfony2ProjectComponent ;
13
+ import fr .adrienbrault .idea .symfony2plugin .extension .TwigFileUsage ;
14
14
import fr .adrienbrault .idea .symfony2plugin .templating .util .TwigUtil ;
15
15
import icons .TwigIcons ;
16
16
import org .jetbrains .annotations .NotNull ;
@@ -36,8 +36,7 @@ public Icon getIcon(@NotNull PsiElement element, @Iconable.IconFlags int flags)
36
36
}
37
37
38
38
// file provides extends tag, add another layer on top; but put the layer below the previous layer if provided
39
- TwigExtendsTag childOfType = PsiTreeUtil .findChildOfType (element , TwigExtendsTag .class );
40
- if (childOfType != null ) {
39
+ if (hasFileExtendsTag (element )) {
41
40
if (icon == null ) {
42
41
// we are alone so just place the icon
43
42
icon = new LayeredIcon (TwigIcons .TwigFileIcon , Symfony2Icons .TWIG_EXTENDS_FILE );
@@ -52,6 +51,22 @@ public Icon getIcon(@NotNull PsiElement element, @Iconable.IconFlags int flags)
52
51
return icon ;
53
52
}
54
53
54
+ private boolean hasFileExtendsTag (@ NotNull PsiElement element ) {
55
+ for (PsiElement child : element .getChildren ()) {
56
+ if (child instanceof TwigExtendsTag ) {
57
+ return true ;
58
+ }
59
+
60
+ for (TwigFileUsage extension : TwigUtil .TWIG_FILE_USAGE_EXTENSIONS .getExtensions ()) {
61
+ if (extension .isExtendsTemplate (child )) {
62
+ return true ;
63
+ }
64
+ }
65
+ }
66
+
67
+ return false ;
68
+ }
69
+
55
70
private boolean hasController (@ NotNull TwigFile twigFile ) {
56
71
return TwigUtil .findTwigFileController (twigFile ).size () > 0
57
72
|| TwigUtil .getTwigFileMethodUsageOnIndex (twigFile ).size () > 0 ;
0 commit comments