diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/inspection/TemplateExistsAnnotationPhpAttributeLocalInspection.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/inspection/TemplateExistsAnnotationPhpAttributeLocalInspection.java index 5cd1f2dfd..d1b55030d 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/inspection/TemplateExistsAnnotationPhpAttributeLocalInspection.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/inspection/TemplateExistsAnnotationPhpAttributeLocalInspection.java @@ -38,7 +38,7 @@ public void visitElement(@NotNull PsiElement element) { if (element instanceof PhpAttribute) { String fqn = ((PhpAttribute) element).getFQN(); - if (fqn != null && PhpElementsUtil.isInstanceOf(element.getProject(), fqn, TwigUtil.TEMPLATE_ANNOTATION_CLASS)) { + if (fqn != null && Arrays.stream(TwigUtil.TEMPLATE_ANNOTATION_CLASS).anyMatch(s -> PhpElementsUtil.isInstanceOf(element.getProject(), fqn, s))) { annotate((PhpAttribute) element, holder); } } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/util/PhpMethodVariableResolveUtil.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/util/PhpMethodVariableResolveUtil.java index 806484eb6..cd5b4086a 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/util/PhpMethodVariableResolveUtil.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/util/PhpMethodVariableResolveUtil.java @@ -269,17 +269,19 @@ public boolean processPhpCallInstruction(PhpCallInstruction instruction) { public static class TemplateRenderVisitor { public static void processMethodAttributes(@NotNull Method method, Consumer> consumer) { - Collection<@NotNull PhpAttribute> attributes = method.getAttributes(TwigUtil.TEMPLATE_ANNOTATION_CLASS); - for (PhpAttribute attribute : attributes) { - if (attribute.getArguments().isEmpty()) { - // #[@Template()] - visitMethodForGuessing(method, consumer); - } else { - // [@Template("foobar.html.twig")] - // #[@Template(template: "foobar.html.twig")] - String template = PhpPsiAttributesUtil.getAttributeValueByNameAsStringWithDefaultParameterFallback(attribute, "template"); - if (StringUtils.isNotBlank(template)) { - addTemplateWithScope(template, method, null, consumer); + for (String templateAnnotationClass : TwigUtil.TEMPLATE_ANNOTATION_CLASS) { + Collection<@NotNull PhpAttribute> attributes = method.getAttributes(templateAnnotationClass); + for (PhpAttribute attribute : attributes) { + if (attribute.getArguments().isEmpty()) { + // #[@Template()] + visitMethodForGuessing(method, consumer); + } else { + // [@Template("foobar.html.twig")] + // #[@Template(template: "foobar.html.twig")] + String template = PhpPsiAttributesUtil.getAttributeValueByNameAsStringWithDefaultParameterFallback(attribute, "template"); + if (StringUtils.isNotBlank(template)) { + addTemplateWithScope(template, method, null, consumer); + } } } } @@ -414,7 +416,7 @@ public static void processDocTag(@NotNull PhpDocTag phpDocTag, Consumer s.equals(annotationFqnName))) { return; } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/util/TwigUtil.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/util/TwigUtil.java index 079e72784..b1c237202 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/util/TwigUtil.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/util/TwigUtil.java @@ -125,7 +125,10 @@ public enum NamespaceType { public static final String[] IMG_FILES_EXTENSIONS = new String[] { "png", "jpg", "jpeg", "gif", "svg"}; - public static final String TEMPLATE_ANNOTATION_CLASS = "\\Sensio\\Bundle\\FrameworkExtraBundle\\Configuration\\Template"; + public static final String[] TEMPLATE_ANNOTATION_CLASS = new String[] { + "\\Sensio\\Bundle\\FrameworkExtraBundle\\Configuration\\Template", + "\\Symfony\\Bridge\\Twig\\Attribute\\Template", + }; public static class TwigPathNamespaceComparator implements Comparator { @Override