IDEA-64852 Find usages for extension point renders strange search subject name

This commit is contained in:
peter
2011-02-22 15:14:48 +01:00
parent 3444363319
commit e45424a2d3
4 changed files with 36 additions and 7 deletions

View File

@@ -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,

View File

@@ -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>

View File

@@ -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));
}
}

View File

@@ -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;
}