[javadoc] Mark links as data elements

#IDEA-365686 Fixed

GitOrigin-RevId: 791da00a46f9d0982ed939feb132737ad48746c8
This commit is contained in:
Louis Vignier
2025-06-13 15:12:12 +00:00
committed by intellij-monorepo-bot
parent d2c974c282
commit bcec85aa4f
4 changed files with 15 additions and 3 deletions
@@ -1,4 +1,4 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.psi.impl.source.javadoc;
import com.intellij.lang.ASTNode;
@@ -22,8 +22,8 @@ public class PsiDocTagImpl extends CompositePsiElement implements PsiDocTag, Con
private static final TokenSet TAG_VALUE_BIT_SET = TokenSet.create(
DOC_TAG_VALUE_ELEMENT, DOC_METHOD_OR_FIELD_REF, DOC_PARAMETER_REF);
private static final TokenSet VALUE_BIT_SET = TokenSet.orSet(TAG_VALUE_BIT_SET, TokenSet.create(
DOC_TAG_VALUE_TOKEN, JAVA_CODE_REFERENCE, DOC_COMMENT_DATA, DOC_INLINE_TAG, DOC_REFERENCE_HOLDER, DOC_SHARP, DOC_LBRACKET, DOC_RBRACKET,
DOC_LPAREN, DOC_RPAREN, DOC_CODE_FENCE, DOC_INLINE_CODE_FENCE, DOC_MARKDOWN_CODE_BLOCK, DOC_COMMA));
DOC_TAG_VALUE_TOKEN, JAVA_CODE_REFERENCE, DOC_COMMENT_DATA, DOC_INLINE_TAG, DOC_REFERENCE_HOLDER, DOC_MARKDOWN_REFERENCE_LINK,
DOC_SHARP, DOC_LBRACKET, DOC_RBRACKET, DOC_LPAREN, DOC_RPAREN, DOC_CODE_FENCE, DOC_INLINE_CODE_FENCE, DOC_MARKDOWN_CODE_BLOCK, DOC_COMMA));
public PsiDocTagImpl() {
super(DOC_TAG);
@@ -0,0 +1,2 @@
<html><head><base href="placeholder"></head><body><div class="bottom"><icon src="AllIcons.Nodes.Class"></icon>&nbsp;<a href="psi_element://Test"><code><span style="color:#000000;">Test</span></code></a></div><div class="definition"><pre><span style="color:#000080;font-weight:bold;">int</span>&nbsp;<span style="color:#000000;">foo</span><span style="">(</span><br> <span style="color:#000080;font-weight:bold;">int</span>&nbsp;<span style="color:#000000;">a</span><span style="">,</span>
<span style="color:#000080;font-weight:bold;">int</span>&nbsp;<span style="color:#000000;">b</span><br><span style="">)</span></pre></div><table class="sections"><tbody><tr><td valign="top" class="section"><p>Params:</p></td><td valign="top"><p><code><span style="color:#000000;">a</span></code> – link to <a href="psi_element://java.lang.String"><code><span style="color:#0000ff;">java.<wbr>lang.<wbr>String</span></code></a><br><code><span style="color:#000000;">b</span></code> – link with a <a href="psi_element://java.lang.String">label</a></p></td></tr><tr><td valign="top" class="section"><p>Returns:</p></td><td valign="top"><p>return label with a link <a href="psi_element://java.lang.String"><code><span style="color:#0000ff;">java.<wbr>lang.<wbr>String</span></code></a></p></td></tr></tbody></table></body></html>
@@ -0,0 +1,9 @@
class Test {
/// @param a link to [java.lang.String]
/// @param b link with a [label][java.lang.String]
/// @return return label with a link [java.lang.String]
int fo<caret>o(int a, int b) { return 0; }
void foo2() {}
}
@@ -211,6 +211,7 @@ public class JavaDocInfoGeneratorTest extends JavaCodeInsightTestCase {
public void testPreTagStrictBeforeCode(){ doTestClass(); }
public void testSeeTagWithLabel() { doTestClass(); }
public void testSeeTagWithLabelMarkdown() { doTestClass(); }
public void testLinkInParamDescriptionMarkdown() { doTestAtCaret(); }
public void testRepeatableAnnotations() {
useJava8();