");
+ }
+
+ return (epModule == null ? "" : "[" + epModule.getName() + "]") +
+ (epPrefix == null ? "" : " " + epPrefix) +
+ "
" +
+ "" + extensionPoint.getEffectiveName() + "" +
+ " [" + epDeclarationFile.getName() + "]
" +
+ epClassText.toString();
}
@Override
@@ -63,7 +74,16 @@ public class ExtensionPointDocumentationProvider extends DocumentationProviderEx
final PsiClass epClass = getExtensionPointClass(extensionPoint);
if (epClass != null) {
- return JavaDocumentationProvider.generateExternalJavadoc(epClass);
+ StringBuilder sb = new StringBuilder();
+ sb.append("EP Definition
");
+ final String quickInfo = StringUtil.notNullize(getQuickNavigateInfo(element, originalElement));
+ sb.append(quickInfo);
+ sb.append("
");
+ sb.append("
");
+ sb.append("EP Implementation");
+ sb.append(JavaDocumentationProvider.generateExternalJavadoc(epClass));
+
+ return sb.toString();
}
return null;
}
diff --git a/plugins/devkit/testSources/references/extensions/ExtensionPointDocumentationProviderTest.groovy b/plugins/devkit/testSources/references/extensions/ExtensionPointDocumentationProviderTest.groovy
deleted file mode 100644
index 6a3a89997b8d..000000000000
--- a/plugins/devkit/testSources/references/extensions/ExtensionPointDocumentationProviderTest.groovy
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright 2000-2014 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.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jetbrains.idea.devkit.references.extensions
-import com.intellij.codeInsight.documentation.DocumentationManager
-import com.intellij.lang.documentation.DocumentationProvider
-import com.intellij.openapi.application.PluginPathManager
-import com.intellij.pom.PomTargetPsiElement
-import com.intellij.psi.PsiElement
-import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase
-import com.intellij.util.ui.UIUtil
-import com.intellij.util.xml.DomTarget
-
-class ExtensionPointDocumentationProviderTest extends LightCodeInsightFixtureTestCase {
-
- @Override
- String getBasePath() {
- return PluginPathManager.getPluginHomePathRelative("devkit") + "/testData/references/extensions"
- }
-
- void testExtensionPointDocumentation() {
- myFixture.configureByFiles("extensionPointDocumentation.xml",
- "bar/MyExtensionPoint.java")
-
- PsiElement originalElement = myFixture.getFile().findElementAt(myFixture.getCaretOffset())
- PomTargetPsiElement pomTargetPsiElement = assertInstanceOf(myFixture.getElementAtCaret(), PomTargetPsiElement.class)
- DomTarget domTarget = assertInstanceOf(pomTargetPsiElement.getTarget(), DomTarget.class)
- PsiElement epPsiElement = domTarget.getNavigationElement()
-
- DocumentationProvider provider = DocumentationManager.getProviderFromElement(epPsiElement)
- String docBody = UIUtil.getHtmlBody(provider.generateDoc(epPsiElement, originalElement))
- assertEquals("""barpublic interface MyExtensionPoint
- MyExtensionPoint JavaDoc.""", docBody)
-
- assertEquals("""[$myModule.name] foo
-bar [extensionPointDocumentation.xml]
-bar.MyExtensionPoint""", provider.getQuickNavigateInfo(epPsiElement, originalElement))
- }
-}
\ No newline at end of file
diff --git a/plugins/devkit/testSources/references/extensions/ExtensionPointDocumentationProviderTest.java b/plugins/devkit/testSources/references/extensions/ExtensionPointDocumentationProviderTest.java
new file mode 100644
index 000000000000..7cb0a30a0548
--- /dev/null
+++ b/plugins/devkit/testSources/references/extensions/ExtensionPointDocumentationProviderTest.java
@@ -0,0 +1,44 @@
+package org.jetbrains.idea.devkit.references.extensions;
+
+import com.intellij.codeInsight.documentation.DocumentationManager;
+import com.intellij.lang.documentation.DocumentationProvider;
+import com.intellij.openapi.application.PluginPathManager;
+import com.intellij.pom.PomTargetPsiElement;
+import com.intellij.psi.PsiElement;
+import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase;
+import com.intellij.util.xml.DomTarget;
+
+public class ExtensionPointDocumentationProviderTest extends LightCodeInsightFixtureTestCase {
+ @Override
+ public String getBasePath() {
+ return PluginPathManager.getPluginHomePathRelative("devkit") + "/testData/references/extensions";
+ }
+
+ public void testExtensionPointDocumentation() {
+ myFixture.configureByFiles("extensionPointDocumentation.xml", "bar/MyExtensionPoint.java");
+
+ PsiElement originalElement = myFixture.getFile().findElementAt(myFixture.getCaretOffset());
+ PomTargetPsiElement pomTargetPsiElement = assertInstanceOf(myFixture.getElementAtCaret(), PomTargetPsiElement.class);
+ DomTarget domTarget = assertInstanceOf(pomTargetPsiElement.getTarget(), DomTarget.class);
+ PsiElement epPsiElement = domTarget.getNavigationElement();
+
+ DocumentationProvider provider = DocumentationManager.getProviderFromElement(epPsiElement);
+
+ String epDefinition = "[" + myModule.getName() + "] foo
" +
+ "bar " +
+ "[extensionPointDocumentation.xml]
" +
+ "MyExtensionPoint";
+
+ assertEquals(epDefinition,
+ provider.getQuickNavigateInfo(epPsiElement, originalElement));
+
+ assertEquals("EP Definition
" +
+ epDefinition +
+ "
" +
+ "EP Implementation" +
+ " " +
+ "barpublic interface MyExtensionPoint
\n" +
+ " MyExtensionPoint JavaDoc.",
+ provider.generateDoc(epPsiElement, originalElement));
+ }
+}