mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-08 15:09:39 +07:00
IDEA-64852 Find usages for extension point renders strange search subject name
This commit is contained in:
@@ -23,6 +23,7 @@ import org.jetbrains.idea.devkit.dom.impl.PluginPsiClassConverter;
|
||||
/**
|
||||
* @author mike
|
||||
*/
|
||||
@Presentation(typeName = "Extension Point")
|
||||
public interface ExtensionPoint extends DomElement {
|
||||
enum Area {
|
||||
IDEA_PROJECT,
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
<idea-plugin version="2" xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
|
||||
<id>foo</id>
|
||||
|
||||
<extensionPoints>
|
||||
<extensionPoint name="bar"/>
|
||||
</extensionPoints>
|
||||
|
||||
<extensions defaultExtensionNs="foo">
|
||||
|
||||
<b<caret>ar/>
|
||||
</extensions>
|
||||
|
||||
</idea-plugin>
|
||||
@@ -15,13 +15,19 @@
|
||||
*/
|
||||
package org.jetbrains.idea.devkit.codeInsight;
|
||||
|
||||
import com.intellij.codeInsight.TargetElementUtil;
|
||||
import com.intellij.codeInsight.TargetElementUtilBase;
|
||||
import com.intellij.openapi.application.PluginPathManager;
|
||||
import com.intellij.openapi.application.Result;
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.psi.ElementDescriptionUtil;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.testFramework.PsiTestUtil;
|
||||
import com.intellij.testFramework.fixtures.IdeaTestFixtureFactory;
|
||||
import com.intellij.testFramework.fixtures.JavaCodeInsightFixtureTestCase;
|
||||
import com.intellij.testFramework.fixtures.TempDirTestFixture;
|
||||
import com.intellij.usageView.UsageViewNodeTextLocation;
|
||||
import com.intellij.usageView.UsageViewTypeLocation;
|
||||
import org.jetbrains.idea.devkit.DevKitInspectionToolProvider;
|
||||
|
||||
import java.io.IOException;
|
||||
@@ -136,4 +142,12 @@ public class PluginXmlFunctionalTest extends JavaCodeInsightFixtureTestCase {
|
||||
myFixture.testHighlighting("pluginWithXInclude.xml", "extensionPoints.xml");
|
||||
}
|
||||
|
||||
public void testExtensionPointPresentation() {
|
||||
myFixture.configureByFile(getTestName(true) + ".xml");
|
||||
final PsiElement element =
|
||||
TargetElementUtil.findTargetElement(myFixture.getEditor(), TargetElementUtilBase.REFERENCED_ELEMENT_ACCEPTED);
|
||||
assertEquals("Extension Point", ElementDescriptionUtil.getElementDescription(element, UsageViewTypeLocation.INSTANCE));
|
||||
assertEquals("Extension Point bar", ElementDescriptionUtil.getElementDescription(element, UsageViewNodeTextLocation.INSTANCE));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -22,10 +22,7 @@ import com.intellij.psi.ElementDescriptionLocation;
|
||||
import com.intellij.usageView.UsageViewNodeTextLocation;
|
||||
import com.intellij.usageView.UsageViewTypeLocation;
|
||||
import com.intellij.usageView.UsageViewLongNameLocation;
|
||||
import com.intellij.util.xml.DomElement;
|
||||
import com.intellij.util.xml.DomTarget;
|
||||
import com.intellij.util.xml.ElementPresentationManager;
|
||||
import com.intellij.util.xml.TypeNameManager;
|
||||
import com.intellij.util.xml.*;
|
||||
import com.intellij.codeInsight.highlighting.HighlightUsagesDescriptionLocation;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -39,14 +36,17 @@ public class DefaultDomTargetDescriptionProvider extends PomDescriptionProvider
|
||||
final DomTarget target = (DomTarget)element;
|
||||
|
||||
DomElement domElement = target.getDomElement();
|
||||
final ElementPresentationTemplate template = domElement.getChildDescription().getPresentationTemplate();
|
||||
final ElementPresentation presentation = template != null ? template.createPresentation(domElement) : domElement.getPresentation();
|
||||
|
||||
if (location == UsageViewTypeLocation.INSTANCE) {
|
||||
return ElementPresentationManager.getTypeNameForObject(domElement);
|
||||
return presentation.getTypeName();
|
||||
}
|
||||
if (location == UsageViewNodeTextLocation.INSTANCE || location == UsageViewLongNameLocation.INSTANCE) {
|
||||
return TypeNameManager.getTypeName(domElement.getClass()) + " " + StringUtil.notNullize(target.getName(), "''");
|
||||
return presentation.getTypeName() + " " + StringUtil.notNullize(presentation.getElementName(), "''");
|
||||
}
|
||||
if (location instanceof HighlightUsagesDescriptionLocation) {
|
||||
return TypeNameManager.getTypeName(domElement.getClass());
|
||||
return presentation.getTypeName();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user