diff --git a/plugins/devkit/src/util/ExtensionPointLocator.java b/plugins/devkit/src/util/ExtensionPointLocator.java index 34ba0c37cf2f..d6eaf9a3f789 100644 --- a/plugins/devkit/src/util/ExtensionPointLocator.java +++ b/plugins/devkit/src/util/ExtensionPointLocator.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2015 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ package org.jetbrains.idea.devkit.util; import com.intellij.openapi.project.Project; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.*; import com.intellij.psi.search.GlobalSearchScope; @@ -23,6 +24,7 @@ import com.intellij.psi.search.PsiNonJavaFileReferenceProcessor; import com.intellij.psi.search.PsiSearchHelper; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.psi.xml.XmlTag; +import com.intellij.psi.xml.XmlToken; import com.intellij.util.SmartList; import com.intellij.util.xml.DomElement; import com.intellij.util.xml.DomService; @@ -101,7 +103,10 @@ public class ExtensionPointLocator { return !PsiSearchHelper.SERVICE.getInstance(project).processUsagesInNonJavaFiles(name, new PsiNonJavaFileReferenceProcessor() { @Override public boolean process(PsiFile file, int startOffset, int endOffset) { - XmlTag tag = PsiTreeUtil.getParentOfType(file.findElementAt(startOffset), XmlTag.class); + PsiElement at = file.findElementAt(startOffset); + String tokenText = at instanceof XmlToken ? at.getText() : null; + if (!StringUtil.equals(name, tokenText)) return true; + XmlTag tag = PsiTreeUtil.getParentOfType(at, XmlTag.class); if (tag == null) return true; DomElement dom = DomUtil.getDomElement(tag); return !(dom instanceof Extension && ((Extension)dom).getExtensionPoint() != null); diff --git a/plugins/devkit/testData/inspections/statefulEp/NonFix.java b/plugins/devkit/testData/inspections/statefulEp/NonFix.java index 64cef8543d06..8c2bd3b464be 100644 --- a/plugins/devkit/testData/inspections/statefulEp/NonFix.java +++ b/plugins/devkit/testData/inspections/statefulEp/NonFix.java @@ -9,4 +9,8 @@ public class NonFix { r =null; p = pf = null; } + + public static class Ext2 { + + } } \ No newline at end of file diff --git a/plugins/devkit/testData/inspections/statefulEp/plugin.xml b/plugins/devkit/testData/inspections/statefulEp/plugin.xml index 239327c04384..a5480e99c638 100644 --- a/plugins/devkit/testData/inspections/statefulEp/plugin.xml +++ b/plugins/devkit/testData/inspections/statefulEp/plugin.xml @@ -4,6 +4,7 @@ + \ No newline at end of file diff --git a/plugins/devkit/testSources/inspections/StatefulEpInspectionTest.java b/plugins/devkit/testSources/inspections/StatefulEpInspectionTest.java index 1da065f5ada1..189faa9360ca 100644 --- a/plugins/devkit/testSources/inspections/StatefulEpInspectionTest.java +++ b/plugins/devkit/testSources/inspections/StatefulEpInspectionTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2015 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -41,6 +41,7 @@ public class StatefulEpInspectionTest extends PluginModuleTestCase { } public void testNonFix() { + setPluginXml("plugin.xml"); myFixture.testHighlighting("NonFix.java"); }