[devkit] IJPL-216103: Render plugin icon and file name as plain text

GitOrigin-RevId: 429b2b6588a2991189d9037d4b3b1dfff0ed5c0d
This commit is contained in:
Karol Lewandowski
2025-11-19 13:29:31 +00:00
committed by intellij-monorepo-bot
parent 95732ef743
commit 5dc3ee5eda
2 changed files with 7 additions and 5 deletions
@@ -4,6 +4,7 @@ package org.jetbrains.idea.devkit.references.extensions;
import com.intellij.codeInsight.documentation.DocumentationManager;
import com.intellij.codeInsight.documentation.DocumentationManagerProtocol;
import com.intellij.codeInsight.javadoc.JavaDocUtil;
import com.intellij.icons.AllIcons;
import com.intellij.lang.documentation.DocumentationMarkup;
import com.intellij.lang.documentation.DocumentationProvider;
import com.intellij.openapi.module.Module;
@@ -88,10 +89,11 @@ final class ExtensionPointDocumentationProvider implements DocumentationProvider
private static HtmlChunk epQualifiedNameAndFileName(ExtensionPoint extensionPoint) {
return HtmlChunk.fragment(
HtmlChunk.text(extensionPoint.getEffectiveQualifiedName()).bold(),
HtmlChunk.br(),
HtmlChunk.text(extensionPoint.getEffectiveQualifiedName()).bold().wrapWith(PRE_ELEMENT),
HtmlChunk.icon("AllIcons.Nodes.Plugin", AllIcons.Nodes.Plugin),
HtmlChunk.nbsp(),
HtmlChunk.text(DomUtil.getFile(extensionPoint).getName())
).wrapWith(PRE_ELEMENT).wrapWith(DEFINITION_ELEMENT);
).wrapWith(DEFINITION_ELEMENT);
}
private static @NotNull HtmlChunk epBeanDocAndFields(ExtensionPoint extensionPoint) {
@@ -48,7 +48,7 @@ public class ExtensionPointDocumentationProviderTest extends LightJavaCodeInsigh
provider.getQuickNavigateInfo(docElement, getOriginalElement()));
assertEquals(
"<div class=\"definition\"><pre><b>foo.bar</b><br/>" + pluginXml + "</pre></div><div class=\"definition\"><pre>" +
"<div class=\"definition\"><pre><b>foo.bar</b></pre><icon src=\"AllIcons.Nodes.Plugin\"/>&nbsp;" + pluginXml + "</div><div class=\"definition\"><pre>" +
"<div class=\"bottom\"><icon src=\"AllIcons.Nodes.Package\">&nbsp;<a href=\"psi_element://bar\"><code><span style=\"color:#000000;\">bar</span></code></a></div><div class='definition'><pre><span style=\"color:#000080;font-weight:bold;\">public</span> <span style=\"color:#000080;font-weight:bold;\">class</span> <span style=\"color:#000000;\">MyExtensionPoint</span></pre></div><div class='content'>\n" +
" MyExtensionPoint JavaDoc.\n" +
" </div><table class='sections'><p></table><table class=\"sections\"><tr><td class=\"section\" valign=\"top\"><p><a href=\"psi_element://bar.MyExtensionPoint#implementationClass\"><code>implementationClass</code></a></p></td><td valign=\"top\">String (required)</td></tr><tr><td class=\"section\" valign=\"top\"><p><a href=\"psi_element://bar.MyExtensionPoint#stringCanBeEmpty\"><code>stringCanBeEmpty</code></a></p></td><td valign=\"top\">String (required, empty allowed)</td></tr><tr><td class=\"section\" valign=\"top\"><p><a href=\"psi_element://bar.MyExtensionPoint#intValue\"><code>&lt;intValue&gt;</code></a></p></td><td valign=\"top\">Integer</td></tr><br/></table></pre></div><div class=\"content\"><a href=\"https://jb.gg/ipe?extensions=foo.bar\">Show Usages in IntelliJ Platform Explorer</a></div><div class=\"content\"><h2>Extension Point Implementation</h2><div class=\"bottom\"><icon src=\"AllIcons.Nodes.Package\">&nbsp;<a href=\"psi_element://bar\"><code><span style=\"color:#000000;\">bar</span></code></a></div><div class='definition'><pre><span style=\"color:#000080;font-weight:bold;\">public</span> <span style=\"color:#000080;font-weight:bold;\">interface</span> <span style=\"color:#000000;\">MyExtension</span></pre></div><div class='content'>\n" +
@@ -74,7 +74,7 @@ public class ExtensionPointDocumentationProviderTest extends LightJavaCodeInsigh
assertEquals(
"""
<div class="definition"><pre><b>foo.bar</b><br/>interfaceExtensionPointDocumentation.xml</pre></div><div class="content"><a href="https://jb.gg/ipe?extensions=foo.bar">Show Usages in IntelliJ Platform Explorer</a></div><div class="content"><h2>Extension Point Implementation</h2><div class="bottom"><icon src="AllIcons.Nodes.Package">&nbsp;<a href="psi_element://bar"><code><span style="color:#000000;">bar</span></code></a></div><div class='definition'><pre><span style="color:#000080;font-weight:bold;">public</span> <span style="color:#000080;font-weight:bold;">interface</span> <span style="color:#000000;">MyExtension</span></pre></div><div class='content'>
<div class="definition"><pre><b>foo.bar</b></pre><icon src="AllIcons.Nodes.Plugin"/>&nbsp;interfaceExtensionPointDocumentation.xml</div><div class="content"><a href="https://jb.gg/ipe?extensions=foo.bar">Show Usages in IntelliJ Platform Explorer</a></div><div class="content"><h2>Extension Point Implementation</h2><div class="bottom"><icon src="AllIcons.Nodes.Package">&nbsp;<a href="psi_element://bar"><code><span style="color:#000000;">bar</span></code></a></div><div class='definition'><pre><span style="color:#000080;font-weight:bold;">public</span> <span style="color:#000080;font-weight:bold;">interface</span> <span style="color:#000000;">MyExtension</span></pre></div><div class='content'>
My Extension Javadoc.
</div><table class='sections'><p></table></div>""",
provider.generateDoc(docElement, getOriginalElement()));