diff --git a/java/java-frontback-psi-impl/src/com/intellij/java/frontback/psi/impl/syntax/BasicJavaElementTypeConverter.kt b/java/java-frontback-psi-impl/src/com/intellij/java/frontback/psi/impl/syntax/BasicJavaElementTypeConverter.kt index 97812fa914e8..3f2f1854ef2b 100644 --- a/java/java-frontback-psi-impl/src/com/intellij/java/frontback/psi/impl/syntax/BasicJavaElementTypeConverter.kt +++ b/java/java-frontback-psi-impl/src/com/intellij/java/frontback/psi/impl/syntax/BasicJavaElementTypeConverter.kt @@ -297,4 +297,5 @@ val BasicJavaElementTypeConverter: ElementTypeConverter = elementTypeConverterOf JavaDocSyntaxElementType.DOC_MARKDOWN_CODE_BLOCK to BasicJavaDocElementType.BASIC_DOC_MARKDOWN_CODE_BLOCK, JavaDocSyntaxElementType.DOC_MARKDOWN_REFERENCE_LINK to BasicJavaDocElementType.BASIC_DOC_MARKDOWN_REFERENCE_LINK, + JavaDocSyntaxElementType.DOC_MARKDOWN_REFERENCE_LABEL to BasicJavaDocElementType.BASIC_DOC_MARKDOWN_REFERENCE_LABEL, ) diff --git a/java/java-frontback-psi-impl/src/com/intellij/psi/impl/source/AbstractBasicJavaDocElementTypeFactory.java b/java/java-frontback-psi-impl/src/com/intellij/psi/impl/source/AbstractBasicJavaDocElementTypeFactory.java index af2760702e78..afae118763c0 100644 --- a/java/java-frontback-psi-impl/src/com/intellij/psi/impl/source/AbstractBasicJavaDocElementTypeFactory.java +++ b/java/java-frontback-psi-impl/src/com/intellij/psi/impl/source/AbstractBasicJavaDocElementTypeFactory.java @@ -1,4 +1,4 @@ -// Copyright 2000-2023 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; import com.intellij.psi.tree.IElementType; @@ -39,6 +39,8 @@ public abstract class AbstractBasicJavaDocElementTypeFactory { public final IElementType DOC_MARKDOWN_REFERENCE_LINK; + public final IElementType DOC_MARKDOWN_REFERENCE_LABEL; + public JavaDocElementTypeContainer(IElementType DOC_TAG, IElementType DOC_COMMENT, IElementType DOC_SNIPPET_TAG, @@ -54,7 +56,8 @@ public abstract class AbstractBasicJavaDocElementTypeFactory { IElementType DOC_TYPE_HOLDER, IElementType DOC_PARAMETER_REF, IElementType DOC_MARKDOWN_CODE_BLOCK, - IElementType DOC_MARKDOWN_REFERENCE_LINK) { + IElementType DOC_MARKDOWN_REFERENCE_LINK, + IElementType DOC_MARKDOWN_REFERENCE_LABEL) { this.DOC_TAG = DOC_TAG; this.DOC_COMMENT = DOC_COMMENT; this.DOC_SNIPPET_TAG = DOC_SNIPPET_TAG; @@ -71,6 +74,7 @@ public abstract class AbstractBasicJavaDocElementTypeFactory { this.DOC_PARAMETER_REF = DOC_PARAMETER_REF; this.DOC_MARKDOWN_CODE_BLOCK = DOC_MARKDOWN_CODE_BLOCK; this.DOC_MARKDOWN_REFERENCE_LINK = DOC_MARKDOWN_REFERENCE_LINK; + this.DOC_MARKDOWN_REFERENCE_LABEL = DOC_MARKDOWN_REFERENCE_LABEL; } } diff --git a/java/java-frontback-psi-impl/src/com/intellij/psi/impl/source/BasicJavaDocElementType.java b/java/java-frontback-psi-impl/src/com/intellij/psi/impl/source/BasicJavaDocElementType.java index 259d5440483f..413d0507662a 100644 --- a/java/java-frontback-psi-impl/src/com/intellij/psi/impl/source/BasicJavaDocElementType.java +++ b/java/java-frontback-psi-impl/src/com/intellij/psi/impl/source/BasicJavaDocElementType.java @@ -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; import com.intellij.java.syntax.element.JavaDocSyntaxElementType; @@ -50,6 +50,7 @@ public interface BasicJavaDocElementType { IElementType BASIC_DOC_COMMENT = new IJavaDocElementType("DOC_COMMENT"); IElementType BASIC_DOC_MARKDOWN_CODE_BLOCK = new IJavaDocElementType("DOC_CODE_BLOCK"); IElementType BASIC_DOC_MARKDOWN_REFERENCE_LINK = new IJavaDocElementType("DOC_REFERENCE_LINK"); + IElementType BASIC_DOC_MARKDOWN_REFERENCE_LABEL = new IJavaDocElementType("DOC_REFERENCE_LABEL"); ParentAwareTokenSet BASIC_ALL_JAVADOC_ELEMENTS = ParentAwareTokenSet.create( BASIC_DOC_TAG, BASIC_DOC_INLINE_TAG, BASIC_DOC_METHOD_OR_FIELD_REF, BASIC_DOC_PARAMETER_REF, BASIC_DOC_TAG_VALUE_ELEMENT, diff --git a/java/java-frontback-tests/testSrc/com/intellij/java/parser/AbstractBasicJavadocParsingTest.java b/java/java-frontback-tests/testSrc/com/intellij/java/parser/AbstractBasicJavadocParsingTest.java index 31e3b07ba3b9..7aef9395fcc8 100644 --- a/java/java-frontback-tests/testSrc/com/intellij/java/parser/AbstractBasicJavadocParsingTest.java +++ b/java/java-frontback-tests/testSrc/com/intellij/java/parser/AbstractBasicJavadocParsingTest.java @@ -1,4 +1,4 @@ -// Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// 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.java.parser; import com.intellij.pom.java.LanguageLevel; @@ -220,6 +220,7 @@ public abstract class AbstractBasicJavadocParsingTest extends AbstractBasicJavaP public void testReferenceLinkMarkdown09() { doTest(true); } public void testReferenceLinkMarkdown10() { doTest(true); } public void testReferenceLinkMarkdown11() { doTest(true); } + public void testReferenceLinkMarkdown12() { doTest(true); } public void testMarkdownWithDocCommentBeforeMarkdown() { setLanguageLevel(LanguageLevel.JDK_21); diff --git a/java/java-psi-api/src/com/intellij/psi/JavaElementVisitor.java b/java/java-psi-api/src/com/intellij/psi/JavaElementVisitor.java index a7099db769c8..ea32521a3ec9 100644 --- a/java/java-psi-api/src/com/intellij/psi/JavaElementVisitor.java +++ b/java/java-psi-api/src/com/intellij/psi/JavaElementVisitor.java @@ -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; import com.intellij.psi.javadoc.*; @@ -253,6 +253,10 @@ public abstract class JavaElementVisitor extends PsiElementVisitor { visitElement(block); } + public void visitMarkdownReferenceLabel(@NotNull PsiMarkdownReferenceLabel label) { + visitElement(label); + } + public void visitMarkdownReferenceLink(@NotNull PsiMarkdownReferenceLink referenceLink) { visitElement(referenceLink); } diff --git a/java/java-psi-api/src/com/intellij/psi/javadoc/PsiMarkdownReferenceLabel.java b/java/java-psi-api/src/com/intellij/psi/javadoc/PsiMarkdownReferenceLabel.java new file mode 100644 index 000000000000..71fb34e6651a --- /dev/null +++ b/java/java-psi-api/src/com/intellij/psi/javadoc/PsiMarkdownReferenceLabel.java @@ -0,0 +1,7 @@ +// 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.javadoc; + +import com.intellij.psi.PsiElement; + +/** Describes a markdown reference label */ +public interface PsiMarkdownReferenceLabel extends PsiElement {} diff --git a/java/java-psi-api/src/com/intellij/psi/javadoc/PsiMarkdownReferenceLink.java b/java/java-psi-api/src/com/intellij/psi/javadoc/PsiMarkdownReferenceLink.java index f3d8e9b33e77..6b62149a8fa5 100644 --- a/java/java-psi-api/src/com/intellij/psi/javadoc/PsiMarkdownReferenceLink.java +++ b/java/java-psi-api/src/com/intellij/psi/javadoc/PsiMarkdownReferenceLink.java @@ -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.javadoc; import com.intellij.psi.PsiElement; diff --git a/java/java-psi-impl/src/com/intellij/lang/java/syntax/JavaElementTypeConverterExtension.kt b/java/java-psi-impl/src/com/intellij/lang/java/syntax/JavaElementTypeConverterExtension.kt index 84c8e60c95cb..f7d2c0dd2dbb 100644 --- a/java/java-psi-impl/src/com/intellij/lang/java/syntax/JavaElementTypeConverterExtension.kt +++ b/java/java-psi-impl/src/com/intellij/lang/java/syntax/JavaElementTypeConverterExtension.kt @@ -289,6 +289,7 @@ class JavaElementTypeConverterExtension : ElementTypeConverterFactory { JavaDocSyntaxElementType.DOC_COMMENT to JavaDocElementType.DOC_COMMENT, JavaDocSyntaxElementType.DOC_MARKDOWN_CODE_BLOCK to JavaDocElementType.DOC_MARKDOWN_CODE_BLOCK, JavaDocSyntaxElementType.DOC_MARKDOWN_REFERENCE_LINK to JavaDocElementType.DOC_MARKDOWN_REFERENCE_LINK, + JavaDocSyntaxElementType.DOC_MARKDOWN_REFERENCE_LABEL to JavaDocElementType.DOC_MARKDOWN_REFERENCE_LABEL, JavaDocSyntaxTokenType.DOC_COMMENT_START to JavaDocTokenType.DOC_COMMENT_START, JavaDocSyntaxTokenType.DOC_COMMENT_END to JavaDocTokenType.DOC_COMMENT_END, diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/PsiMarkdownReferenceLabelImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/PsiMarkdownReferenceLabelImpl.java new file mode 100644 index 000000000000..459978dd62f8 --- /dev/null +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/PsiMarkdownReferenceLabelImpl.java @@ -0,0 +1,30 @@ +// 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.psi.JavaElementVisitor; +import com.intellij.psi.PsiElementVisitor; +import com.intellij.psi.impl.source.tree.CompositePsiElement; +import com.intellij.psi.javadoc.PsiMarkdownReferenceLabel; +import org.jetbrains.annotations.NotNull; + +import static com.intellij.psi.impl.source.tree.JavaDocElementType.DOC_MARKDOWN_REFERENCE_LABEL; + +public class PsiMarkdownReferenceLabelImpl extends CompositePsiElement implements PsiMarkdownReferenceLabel { + public PsiMarkdownReferenceLabelImpl() { + super(DOC_MARKDOWN_REFERENCE_LABEL); + } + + @Override + public void accept(@NotNull PsiElementVisitor visitor) { + if (visitor instanceof JavaElementVisitor) { + ((JavaElementVisitor)visitor).visitMarkdownReferenceLabel(this); + return; + } + super.accept(visitor); + } + + @Override + public String toString() { + return "PsiReferenceLabel:"; + } +} diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/PsiMarkdownReferenceLinkImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/PsiMarkdownReferenceLinkImpl.java index 2ccd89e429f7..7a7958df6af3 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/PsiMarkdownReferenceLinkImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/PsiMarkdownReferenceLinkImpl.java @@ -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.psi.JavaElementVisitor; @@ -32,7 +32,9 @@ public class PsiMarkdownReferenceLinkImpl extends CompositePsiElement implements @Override public @Nullable PsiElement getLabel() { - if (getChildren().length >= 1) return getChildren()[1]; + if (getChildren().length >= 1) { + return getChildren()[1]; + } // malformed/incomplete link return null; } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaDocElementType.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaDocElementType.java index f79fcc6775ad..31fa8cb9a7b0 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaDocElementType.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaDocElementType.java @@ -55,6 +55,7 @@ public interface JavaDocElementType { IElementType DOC_SNIPPET_ATTRIBUTE_VALUE = new JavaDocParentProviderElementType("DOC_SNIPPET_ATTRIBUTE_VALUE", BasicJavaDocElementType.BASIC_DOC_SNIPPET_ATTRIBUTE_VALUE); IElementType DOC_MARKDOWN_CODE_BLOCK = new JavaDocCompositeElementType("DOC_CODE_BLOCK", () -> new PsiMarkdownCodeBlockImpl(), BasicJavaDocElementType.BASIC_DOC_MARKDOWN_CODE_BLOCK); IElementType DOC_MARKDOWN_REFERENCE_LINK = new JavaDocCompositeElementType("DOC_REFERENCE_LINK", () -> new PsiMarkdownReferenceLinkImpl(), BasicJavaDocElementType.BASIC_DOC_MARKDOWN_REFERENCE_LINK); + IElementType DOC_MARKDOWN_REFERENCE_LABEL = new JavaDocCompositeElementType("DOC_REFERENCE_LABEL", () -> new PsiMarkdownReferenceLabelImpl(), BasicJavaDocElementType.BASIC_DOC_MARKDOWN_REFERENCE_LABEL); ILazyParseableElementType DOC_REFERENCE_HOLDER = new BasicJavaDocElementType.DocReferenceHolderElementType(); ILazyParseableElementType DOC_TYPE_HOLDER = new BasicJavaDocElementType.DocTypeHolderElementType(); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaDocElementTypeFactory.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaDocElementTypeFactory.java index 54ce60bc2e63..b7ccbd8938ce 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaDocElementTypeFactory.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaDocElementTypeFactory.java @@ -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.tree; import com.intellij.psi.impl.source.AbstractBasicJavaDocElementTypeFactory; @@ -29,7 +29,8 @@ public class JavaDocElementTypeFactory extends AbstractBasicJavaDocElementTypeFa JavaDocElementType.DOC_TYPE_HOLDER, JavaDocElementType.DOC_PARAMETER_REF, JavaDocElementType.DOC_MARKDOWN_CODE_BLOCK, - JavaDocElementType.DOC_MARKDOWN_REFERENCE_LINK + JavaDocElementType.DOC_MARKDOWN_REFERENCE_LINK, + JavaDocElementType.DOC_MARKDOWN_REFERENCE_LABEL ); } diff --git a/java/java-syntax/src/com/intellij/java/syntax/element/JavaDocSyntaxElementType.kt b/java/java-syntax/src/com/intellij/java/syntax/element/JavaDocSyntaxElementType.kt index b71d526b7e48..6acafb53e446 100644 --- a/java/java-syntax/src/com/intellij/java/syntax/element/JavaDocSyntaxElementType.kt +++ b/java/java-syntax/src/com/intellij/java/syntax/element/JavaDocSyntaxElementType.kt @@ -2,7 +2,6 @@ package com.intellij.java.syntax.element import com.intellij.platform.syntax.SyntaxElementType -import kotlin.jvm.JvmField /** * @see com.intellij.psi.impl.source.tree.JavaDocElementType @@ -27,4 +26,5 @@ object JavaDocSyntaxElementType { @JvmField val DOC_COMMENT: SyntaxElementType = SyntaxElementType("DOC_COMMENT") @JvmField val DOC_MARKDOWN_CODE_BLOCK: SyntaxElementType = SyntaxElementType("DOC_CODE_BLOCK") @JvmField val DOC_MARKDOWN_REFERENCE_LINK: SyntaxElementType = SyntaxElementType("DOC_REFERENCE_LINK") + @JvmField val DOC_MARKDOWN_REFERENCE_LABEL: SyntaxElementType = SyntaxElementType("DOC_REFERENCE_LABEL") } \ No newline at end of file diff --git a/java/java-syntax/src/com/intellij/java/syntax/parser/JavaDocParser.kt b/java/java-syntax/src/com/intellij/java/syntax/parser/JavaDocParser.kt index c068165ba624..a783f7eb1fd1 100644 --- a/java/java-syntax/src/com/intellij/java/syntax/parser/JavaDocParser.kt +++ b/java/java-syntax/src/com/intellij/java/syntax/parser/JavaDocParser.kt @@ -267,15 +267,22 @@ class JavaDocParser( tag.rollbackTo() tag = builder.mark() if (hasLabel) { + builder.advanceLexer() + val label = builder.mark() // Label range already known, mark it as comment data while (!builder.eof()) { - builder.advanceLexer() + if (builder.tokenType === JavaDocSyntaxTokenType.DOC_INLINE_CODE_FENCE) { + parseInlineCodeBlock() + continue + } if (builder.currentOffset < endLabelOffset) { builder.remapCurrentToken(JavaDocSyntaxTokenType.DOC_COMMENT_DATA) + builder.advanceLexer() continue } break } + label.done(JavaDocSyntaxElementType.DOC_MARKDOWN_REFERENCE_LABEL) builder.advanceLexer() } diff --git a/java/java-tests/testData/codeInsight/javadocIG/markdownInlineCodeBlock.html b/java/java-tests/testData/codeInsight/javadocIG/markdownInlineCodeBlock.html index 3c7f84e59ef3..393e9abe1d1b 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/markdownInlineCodeBlock.html +++ b/java/java-tests/testData/codeInsight/javadocIG/markdownInlineCodeBlock.html @@ -1,5 +1,6 @@
class MarkdownCodeBlock

Single liner code block: Hello world

No tags are interpreted inside them {@link java.lang.String niceLink}

No markdown markup is interpreted inside them - _Hello_ <code>

This is a broken inline link - `Start of broken link

end of broken link`

\ No newline at end of file + _Hello_ <code>

Code span inside a link + my text with a code span!

This is a broken inline code span + `Start of broken code span

end of broken code span`

\ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/markdownInlineCodeBlock.java b/java/java-tests/testData/codeInsight/javadocIG/markdownInlineCodeBlock.java index d281503955cd..25f15af42bcc 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/markdownInlineCodeBlock.java +++ b/java/java-tests/testData/codeInsight/javadocIG/markdownInlineCodeBlock.java @@ -8,8 +8,11 @@ /// No markdown markup is interpreted inside them /// `_Hello_ ` /// -/// This is a broken inline link -/// `Start of broken link +/// Code span inside a link +/// [my text with `a code span`!][java.lang.String] /// -/// end of broken link` +/// This is a broken inline code span +/// `Start of broken code span +/// +/// end of broken code span` class MarkdownCodeBlock {} \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-full/javadocParsing/ReferenceLinkMarkdown12.java b/java/java-tests/testData/psi/parser-full/javadocParsing/ReferenceLinkMarkdown12.java new file mode 100644 index 000000000000..7f8074db7660 --- /dev/null +++ b/java/java-tests/testData/psi/parser-full/javadocParsing/ReferenceLinkMarkdown12.java @@ -0,0 +1,2 @@ +/// [link with `inline code`!][java.lang.String] +class C {} \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-full/javadocParsing/ReferenceLinkMarkdown12.txt b/java/java-tests/testData/psi/parser-full/javadocParsing/ReferenceLinkMarkdown12.txt new file mode 100644 index 000000000000..5f903e8bb5c4 --- /dev/null +++ b/java/java-tests/testData/psi/parser-full/javadocParsing/ReferenceLinkMarkdown12.txt @@ -0,0 +1,49 @@ +PsiJavaFile:ReferenceLinkMarkdown12.java + PsiImportList + + PsiClass:C + PsiDocComment + PsiDocToken:DOC_COMMENT_LEADING_ASTERISKS('///') + PsiWhiteSpace(' ') + PsiReferenceLink: + PsiDocToken:DOC_LBRACKET('[') + PsiReferenceLabel: + PsiDocToken:DOC_COMMENT_DATA('link with ') + PsiMarkdownCodeBlock: + PsiDocToken:DOC_INLINE_CODE_FENCE('`') + PsiDocToken:DOC_COMMENT_DATA('inline code') + PsiDocToken:DOC_INLINE_CODE_FENCE('`') + PsiDocToken:DOC_COMMENT_DATA('!') + PsiDocToken:DOC_RBRACKET(']') + PsiDocToken:DOC_LBRACKET('[') + PsiElement(DOC_REFERENCE_HOLDER) + PsiJavaCodeReferenceElement:java.lang.String + PsiJavaCodeReferenceElement:java.lang + PsiJavaCodeReferenceElement:java + PsiIdentifier:java('java') + PsiReferenceParameterList + + PsiJavaToken:DOT('.') + PsiIdentifier:lang('lang') + PsiReferenceParameterList + + PsiJavaToken:DOT('.') + PsiIdentifier:String('String') + PsiReferenceParameterList + + PsiDocToken:DOC_RBRACKET(']') + PsiWhiteSpace('\n') + PsiModifierList: + + PsiKeyword:class('class') + PsiWhiteSpace(' ') + PsiIdentifier:C('C') + PsiTypeParameterList + + PsiReferenceList + + PsiReferenceList + + PsiWhiteSpace(' ') + PsiJavaToken:LBRACE('{') + PsiJavaToken:RBRACE('}') \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-full/javadocParsing/ReferenceLinkMarkdown12_node.txt b/java/java-tests/testData/psi/parser-full/javadocParsing/ReferenceLinkMarkdown12_node.txt new file mode 100644 index 000000000000..d2e777a6ac53 --- /dev/null +++ b/java/java-tests/testData/psi/parser-full/javadocParsing/ReferenceLinkMarkdown12_node.txt @@ -0,0 +1,49 @@ +java.FILE + IMPORT_LIST + + CLASS + DOC_COMMENT + DOC_COMMENT_LEADING_ASTERISKS + WHITE_SPACE + DOC_REFERENCE_LINK + DOC_LBRACKET + DOC_REFERENCE_LABEL + DOC_COMMENT_DATA + DOC_CODE_BLOCK + DOC_INLINE_CODE_FENCE + DOC_COMMENT_DATA + DOC_INLINE_CODE_FENCE + DOC_COMMENT_DATA + DOC_RBRACKET + DOC_LBRACKET + DOC_REFERENCE_HOLDER + JAVA_CODE_REFERENCE + JAVA_CODE_REFERENCE + JAVA_CODE_REFERENCE + IDENTIFIER + REFERENCE_PARAMETER_LIST + + DOT + IDENTIFIER + REFERENCE_PARAMETER_LIST + + DOT + IDENTIFIER + REFERENCE_PARAMETER_LIST + + DOC_RBRACKET + WHITE_SPACE + MODIFIER_LIST + + CLASS_KEYWORD + WHITE_SPACE + IDENTIFIER + TYPE_PARAMETER_LIST + + EXTENDS_LIST + + IMPLEMENTS_LIST + + WHITE_SPACE + LBRACE + RBRACE \ No newline at end of file