diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/config/xml/XmlHelper.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/config/xml/XmlHelper.java index e4d471ff0..aa0f3e47f 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/config/xml/XmlHelper.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/config/xml/XmlHelper.java @@ -1,5 +1,7 @@ package fr.adrienbrault.idea.symfony2plugin.config.xml; +import com.intellij.ide.highlighter.XmlFileType; +import com.intellij.openapi.vfs.VirtualFile; import com.intellij.patterns.*; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; @@ -797,4 +799,25 @@ public static PsiElementPattern.Capture getXmlTagNameLeafStartPatter .afterLeaf(PlatformPatterns.psiElement(XmlTokenType.XML_START_TAG_START)) .withParent(XmlTag.class); } + + public static boolean isXmlFileExtension(@NotNull PsiFile psiFile) { + if (psiFile.getFileType() != XmlFileType.INSTANCE) { + return false; + } + + String filename = psiFile.getName(); + + int i = filename.lastIndexOf('.'); + String extension = null; + if (i > 0) { + extension = filename.substring(i + 1).toLowerCase(); + } + + if ("xml".equalsIgnoreCase(extension)) { + return true; + } + + VirtualFile virtualFile = psiFile.getVirtualFile(); + return virtualFile == null || !"xml".equalsIgnoreCase(virtualFile.getExtension()); + } } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/dic/linemarker/XmlLineMarkerProvider.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/dic/linemarker/XmlLineMarkerProvider.java index 81ba370ee..fc283447d 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/dic/linemarker/XmlLineMarkerProvider.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/dic/linemarker/XmlLineMarkerProvider.java @@ -6,6 +6,7 @@ import com.intellij.patterns.XmlPatterns; import com.intellij.patterns.XmlTagPattern; import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiFile; import com.intellij.psi.xml.XmlTag; import fr.adrienbrault.idea.symfony2plugin.Symfony2ProjectComponent; import fr.adrienbrault.idea.symfony2plugin.config.xml.XmlHelper; @@ -33,6 +34,11 @@ public void collectSlowLineMarkers(@NotNull List psiElemen return; } + PsiFile containingFile = psiElements.get(0).getContainingFile(); + if (containingFile == null || !XmlHelper.isXmlFileExtension(containingFile)) { + return; + } + LazyDecoratedParentServiceValues lazyDecoratedParentServiceValues = null; for (PsiElement psiElement : psiElements) { diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/doctrine/metadata/DoctrineMetadataLineMarkerProvider.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/doctrine/metadata/DoctrineMetadataLineMarkerProvider.java index 1b8ee8a48..9329965dd 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/doctrine/metadata/DoctrineMetadataLineMarkerProvider.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/doctrine/metadata/DoctrineMetadataLineMarkerProvider.java @@ -5,11 +5,13 @@ import com.intellij.codeInsight.navigation.NavigationGutterIconBuilder; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiFile; import com.intellij.psi.xml.XmlAttributeValue; import com.intellij.psi.xml.XmlTokenType; import com.jetbrains.php.lang.psi.elements.PhpClass; import fr.adrienbrault.idea.symfony2plugin.Symfony2Icons; import fr.adrienbrault.idea.symfony2plugin.Symfony2ProjectComponent; +import fr.adrienbrault.idea.symfony2plugin.config.xml.XmlHelper; import fr.adrienbrault.idea.symfony2plugin.doctrine.metadata.util.DoctrineMetadataUtil; import org.apache.commons.lang.StringUtils; import org.jetbrains.annotations.NotNull; @@ -41,6 +43,11 @@ public void collectSlowLineMarkers(@NotNull List psiElemen return; } + PsiFile containingFile = psiElements.get(0).getContainingFile(); + if (containingFile == null || !XmlHelper.isXmlFileExtension(containingFile)) { + return; + } + for(PsiElement psiElement: psiElements) { if(psiElement.getNode().getElementType() != XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN) { continue; diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/routing/XmlLineMarkerProvider.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/routing/XmlLineMarkerProvider.java index ef2458aca..53d1f5a3d 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/routing/XmlLineMarkerProvider.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/routing/XmlLineMarkerProvider.java @@ -31,6 +31,11 @@ public void collectSlowLineMarkers(@NotNull List psiElemen return; } + PsiFile containingFile = psiElements.get(0).getContainingFile(); + if (containingFile == null || !XmlHelper.isXmlFileExtension(containingFile)) { + return; + } + for(PsiElement psiElement: psiElements) { if(XmlHelper.getXmlTagNameLeafStartPattern().accepts(psiElement)) { attachRouteActions(psiElement, lineMarkerInfos);