From 70a1f45a0d962f6ee94c309231d0801d7b5bac63 Mon Sep 17 00:00:00 2001 From: Louis Vignier Date: Wed, 1 Oct 2025 18:05:04 +0200 Subject: [PATCH] IDEA-379801 javadoc: Update usages of JavaDocSyntaxElementType.DOC_COMMENT GitOrigin-RevId: 4636107a9248cb5c38cf70a93b03f511936b514b --- .../psi/formatter/java/AbstractJavaBlock.java | 5 +++-- .../java/BlockContainingJavaBlock.java | 6 +++--- .../psi/formatter/java/CodeBlockBlock.java | 4 ++-- .../java/JavaLineWrapPositionStrategy.java | 4 ++-- .../java/JavaSpacePropertyProcessor.java | 4 ++-- .../psi/formatter/java/SimpleJavaBlock.java | 4 ++-- .../javadoc/JavaDocInfoGenerator.java | 2 +- .../impl/search/JavaIndexPatternBuilder.java | 11 ++++++++--- .../codeStyle/JavaReferenceAdjuster.java | 4 ++-- .../folding/impl/JavaFoldingBuilderBase.java | 4 ++-- .../JavaElementTypeConverterExtension.kt | 1 + .../com/intellij/psi/impl/PsiImplUtil.java | 2 +- .../stubs/factories/JavaClassStubFactory.java | 4 ++-- .../stubs/factories/JavaFieldStubFactory.java | 4 ++-- .../factories/JavaMethodStubFactory.java | 4 ++-- .../psi/impl/source/JavaLightStubBuilder.java | 4 ++-- .../impl/source/javadoc/PsiDocTagImpl.java | 3 +-- .../source/javadoc/PsiInlineDocTagImpl.java | 5 ++--- .../psi/impl/source/tree/ElementType.java | 4 ++-- .../impl/source/tree/java/ClassElement.java | 4 ++-- .../source/tree/java/EnumConstantElement.java | 19 ++----------------- .../impl/source/tree/java/FieldElement.java | 4 ++-- .../impl/source/tree/java/MethodElement.java | 18 ++---------------- .../java/syntax/JavaSyntaxDefinition.kt | 5 +++-- .../element/JavaDocSyntaxElementType.kt | 1 + .../element/WhiteSpaceAndCommentSetHolder.kt | 2 +- .../intellij/java/syntax/lexer/JavaLexer.kt | 2 +- .../make/FormSourceCodeGenerator.java | 2 +- 28 files changed, 57 insertions(+), 79 deletions(-) diff --git a/java/java-frontback-impl/src/com/intellij/psi/formatter/java/AbstractJavaBlock.java b/java/java-frontback-impl/src/com/intellij/psi/formatter/java/AbstractJavaBlock.java index 6026b17bd3bc..7b07059764db 100644 --- a/java/java-frontback-impl/src/com/intellij/psi/formatter/java/AbstractJavaBlock.java +++ b/java/java-frontback-impl/src/com/intellij/psi/formatter/java/AbstractJavaBlock.java @@ -222,7 +222,7 @@ public abstract class AbstractJavaBlock extends AbstractBlock implements JavaBlo if (elementType == JavaElementType.LABELED_STATEMENT) { return new LabeledJavaBlock(child, wrap, alignment, actualIndent, settings, javaSettings, formattingMode); } - if (elementType == JavaDocElementType.DOC_COMMENT) { + if (JavaDocElementType.DOC_COMMENT_TOKENS.contains(elementType)) { return new DocCommentBlock(child, wrap, alignment, actualIndent, settings, javaSettings, formattingMode); } if (isTextBlock(childPsi)) { @@ -381,6 +381,7 @@ public abstract class AbstractJavaBlock extends AbstractBlock implements JavaBlo if (parentType == JavaElementType.SWITCH_STATEMENT) return Indent.getNoneIndent(); if (parentType == JavaElementType.METHOD) return Indent.getNoneIndent(); if (parentType == JavaDocElementType.DOC_COMMENT) return Indent.getNoneIndent(); + if (parentType == JavaDocElementType.DOC_MARKDOWN_COMMENT) return Indent.getNoneIndent(); if (parentType == JavaDocElementType.DOC_TAG) return Indent.getNoneIndent(); if (parentType == JavaDocElementType.DOC_INLINE_TAG) return Indent.getNoneIndent(); if (parentType == JavaElementType.IMPORT_LIST) return Indent.getNoneIndent(); @@ -1272,7 +1273,7 @@ public abstract class AbstractJavaBlock extends AbstractBlock implements JavaBlo if (myUseChildAttributes) { return new ChildAttributes(myChildIndent, myChildAlignment); } - if (isAfter(newChildIndex, new IElementType[]{JavaDocElementType.DOC_COMMENT})) { + if (isAfter(newChildIndex, new IElementType[]{JavaDocElementType.DOC_COMMENT, JavaDocElementType.DOC_MARKDOWN_COMMENT})) { return new ChildAttributes(Indent.getNoneIndent(), myChildAlignment); } return super.getChildAttributes(newChildIndex); diff --git a/java/java-frontback-impl/src/com/intellij/psi/formatter/java/BlockContainingJavaBlock.java b/java/java-frontback-impl/src/com/intellij/psi/formatter/java/BlockContainingJavaBlock.java index 51ee752843d5..38ebf452efd6 100644 --- a/java/java-frontback-impl/src/com/intellij/psi/formatter/java/BlockContainingJavaBlock.java +++ b/java/java-frontback-impl/src/com/intellij/psi/formatter/java/BlockContainingJavaBlock.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.formatter.java; import com.intellij.formatting.*; @@ -218,14 +218,14 @@ public class BlockContainingJavaBlock extends AbstractJavaBlock{ if (FormatterUtil.containsWhiteSpacesOnly(child)) return isPartOfCodeBlock(child.getTreeNext()); if (child.getElementType() == JavaTokenType.END_OF_LINE_COMMENT) return isPartOfCodeBlock(child.getTreeNext()); - return child.getElementType() == JavaDocElementType.DOC_COMMENT; + return JavaDocElementType.DOC_COMMENT_TOKENS.contains(child.getElementType()); } @Override public @NotNull ChildAttributes getChildAttributes(final int newChildIndex) { - if (isAfter(newChildIndex, new IElementType[]{JavaDocElementType.DOC_COMMENT})) { + if (isAfter(newChildIndex, new IElementType[]{JavaDocElementType.DOC_COMMENT, JavaDocElementType.DOC_MARKDOWN_COMMENT})) { return new ChildAttributes(Indent.getNoneIndent(), null); } diff --git a/java/java-frontback-impl/src/com/intellij/psi/formatter/java/CodeBlockBlock.java b/java/java-frontback-impl/src/com/intellij/psi/formatter/java/CodeBlockBlock.java index e6b304e230b4..7d7c68e3fee1 100644 --- a/java/java-frontback-impl/src/com/intellij/psi/formatter/java/CodeBlockBlock.java +++ b/java/java-frontback-impl/src/com/intellij/psi/formatter/java/CodeBlockBlock.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.formatter.java; import com.intellij.formatting.*; @@ -275,7 +275,7 @@ public class CodeBlockBlock extends AbstractJavaBlock { @Override public @NotNull ChildAttributes getChildAttributes(final int newChildIndex) { - if (isAfter(newChildIndex, new IElementType[]{JavaDocElementType.DOC_COMMENT, JavaElementType.MODIFIER_LIST})) { + if (isAfter(newChildIndex, new IElementType[]{JavaDocElementType.DOC_COMMENT, JavaDocElementType.DOC_MARKDOWN_COMMENT, JavaElementType.MODIFIER_LIST})) { return new ChildAttributes(Indent.getNoneIndent(), null); } else { diff --git a/java/java-frontback-impl/src/com/intellij/psi/formatter/java/JavaLineWrapPositionStrategy.java b/java/java-frontback-impl/src/com/intellij/psi/formatter/java/JavaLineWrapPositionStrategy.java index bc870d473562..29bf063b5515 100644 --- a/java/java-frontback-impl/src/com/intellij/psi/formatter/java/JavaLineWrapPositionStrategy.java +++ b/java/java-frontback-impl/src/com/intellij/psi/formatter/java/JavaLineWrapPositionStrategy.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.formatter.java; import com.intellij.openapi.editor.Document; @@ -101,7 +101,7 @@ public final class JavaLineWrapPositionStrategy extends PsiAwareDefaultLineWrapP private static boolean isInsidePreTag(@NotNull PsiElement element, @NotNull CharSequence chars, int offset) { PsiElement parent = PsiTreeUtil.findFirstParent( - element, e -> e.getNode().getElementType() == JavaDocElementType.DOC_COMMENT); + element, e -> JavaDocElementType.DOC_COMMENT_TOKENS.contains(e.getNode().getElementType())); if (parent != null) { int preStart = CharArrayUtil.lastIndexOf(chars, PRE_TAG_START, offset); if (preStart >= 0) { diff --git a/java/java-frontback-impl/src/com/intellij/psi/formatter/java/JavaSpacePropertyProcessor.java b/java/java-frontback-impl/src/com/intellij/psi/formatter/java/JavaSpacePropertyProcessor.java index 1c3e73abe3ef..a36cea6264a7 100644 --- a/java/java-frontback-impl/src/com/intellij/psi/formatter/java/JavaSpacePropertyProcessor.java +++ b/java/java-frontback-impl/src/com/intellij/psi/formatter/java/JavaSpacePropertyProcessor.java @@ -151,7 +151,7 @@ public final class JavaSpacePropertyProcessor extends JavaElementVisitor { return PsiTreeUtil.getParentOfType(parent, PsiDocMethodOrFieldRef.class) != null; } - return type == JavaDocElementType.DOC_COMMENT || type == JavaDocElementType.DOC_TAG || type == JavaDocElementType.DOC_INLINE_TAG; + return JavaDocElementType.DOC_COMMENT_TOKENS.contains(type) || type == JavaDocElementType.DOC_TAG || type == JavaDocElementType.DOC_INLINE_TAG; } private void init(ASTNode child) { @@ -214,7 +214,7 @@ public final class JavaSpacePropertyProcessor extends JavaElementVisitor { @Override public void visitClass(@NotNull PsiClass aClass) { - if (myType1 == JavaDocElementType.DOC_COMMENT) { + if (JavaDocElementType.DOC_COMMENT_TOKENS.contains(myType1)) { myResult = Spacing.createSpacing(0, 0, 1, mySettings.KEEP_LINE_BREAKS, mySettings.KEEP_BLANK_LINES_IN_DECLARATIONS); return; } diff --git a/java/java-frontback-impl/src/com/intellij/psi/formatter/java/SimpleJavaBlock.java b/java/java-frontback-impl/src/com/intellij/psi/formatter/java/SimpleJavaBlock.java index cc2c7d581e97..02ec2a30077a 100644 --- a/java/java-frontback-impl/src/com/intellij/psi/formatter/java/SimpleJavaBlock.java +++ b/java/java-frontback-impl/src/com/intellij/psi/formatter/java/SimpleJavaBlock.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.formatter.java; import com.intellij.formatting.*; @@ -100,7 +100,7 @@ public class SimpleJavaBlock extends AbstractJavaBlock { private void processHeadCommentsAndWhiteSpaces(@NotNull List result) { while (myCurrentChild != null) { - if (StdTokenSets.COMMENT_BIT_SET.contains(myCurrentChild.getElementType()) || myCurrentChild.getElementType() == JavaDocElementType.DOC_COMMENT) { + if (StdTokenSets.COMMENT_BIT_SET.contains(myCurrentChild.getElementType()) || JavaDocElementType.DOC_COMMENT_TOKENS.contains(myCurrentChild.getElementType())) { Block commentBlock = createJavaBlock( myCurrentChild, mySettings, myJavaSettings, diff --git a/java/java-impl/src/com/intellij/codeInsight/javadoc/JavaDocInfoGenerator.java b/java/java-impl/src/com/intellij/codeInsight/javadoc/JavaDocInfoGenerator.java index 901a77db9c47..5ce45fa1f5d2 100644 --- a/java/java-impl/src/com/intellij/codeInsight/javadoc/JavaDocInfoGenerator.java +++ b/java/java-impl/src/com/intellij/codeInsight/javadoc/JavaDocInfoGenerator.java @@ -1181,7 +1181,7 @@ public class JavaDocInfoGenerator { private static @Nullable ASTNode findRelevantCommentNode(@NotNull ASTNode fileNode) { ASTNode node = fileNode.findChildByType(JavaElementType.PACKAGE_STATEMENT); if (node == null) node = fileNode.getLastChildNode(); - while (node != null && node.getElementType() != JavaDocElementType.DOC_COMMENT) { + while (node != null && !JavaDocElementType.DOC_COMMENT_TOKENS.contains(node.getElementType())) { node = node.getTreePrev(); } return node; diff --git a/java/java-impl/src/com/intellij/psi/impl/search/JavaIndexPatternBuilder.java b/java/java-impl/src/com/intellij/psi/impl/search/JavaIndexPatternBuilder.java index 7b7837c7e7a8..0b1d0ec56d71 100644 --- a/java/java-impl/src/com/intellij/psi/impl/search/JavaIndexPatternBuilder.java +++ b/java/java-impl/src/com/intellij/psi/impl/search/JavaIndexPatternBuilder.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.search; import com.intellij.lang.java.JavaParserDefinition; @@ -36,8 +36,13 @@ public final class JavaIndexPatternBuilder implements IndexPatternBuilder { @Override public int getCommentStartDelta(final IElementType tokenType) { - return tokenType == JavaTokenType.END_OF_LINE_COMMENT || tokenType == JavaTokenType.C_STYLE_COMMENT - ? 2 : tokenType == JavaDocElementType.DOC_COMMENT ? 3 : 0; + if (tokenType.equals(JavaTokenType.END_OF_LINE_COMMENT) || tokenType.equals(JavaTokenType.C_STYLE_COMMENT)) { + return 2; + } + else if (tokenType.equals(JavaDocElementType.DOC_COMMENT) || tokenType.equals(JavaDocElementType.DOC_MARKDOWN_COMMENT)) { + return 3; + } + return 0; } @Override diff --git a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaReferenceAdjuster.java b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaReferenceAdjuster.java index 23a4ec2ae4af..a475fcf05ccb 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaReferenceAdjuster.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaReferenceAdjuster.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.codeStyle; import com.intellij.application.options.CodeStyle; @@ -73,7 +73,7 @@ public final class JavaReferenceAdjuster implements ReferenceAdjuster { process(annotation.getNode(), addImports, incompleteCode, useFqInJavadoc, useFqInCode); } - boolean isInsideDocComment = TreeUtil.findParent(element, JavaDocElementType.DOC_COMMENT) != null; + boolean isInsideDocComment = TreeUtil.findParent(element, JavaDocElementType.DOC_COMMENT_TOKENS) != null; boolean isShort = !ref.isQualified(); if (isInsideDocComment ? !useFqInJavadoc : !useFqInCode) { if (isShort) return element; // short name already, no need to change diff --git a/java/java-psi-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilderBase.java b/java/java-psi-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilderBase.java index e3c8cdd8c204..917a29d41446 100644 --- a/java/java-psi-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilderBase.java +++ b/java/java-psi-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilderBase.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.codeInsight.folding.impl; import com.intellij.codeInsight.daemon.impl.CollectHighlightsUtil; @@ -425,7 +425,7 @@ public abstract class JavaFoldingBuilderBase extends CustomFoldingBuilder implem // So, our point is to preserve fold descriptor referencing javadoc PSI element. if (candidate != null && candidate.getTextRange().equals(range)) { ASTNode node = candidate.getNode(); - if (node != null && node.getElementType() == JavaDocElementType.DOC_COMMENT) { + if (node != null && JavaDocElementType.DOC_COMMENT_TOKENS.contains(node.getElementType())) { anchorElementToUse = candidate; } } 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 62e16ade7fe5..9d4ef85d5dbe 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 @@ -287,6 +287,7 @@ class JavaElementTypeConverterExtension : ElementTypeConverterFactory { JavaDocSyntaxElementType.DOC_REFERENCE_HOLDER to JavaDocElementType.DOC_REFERENCE_HOLDER, JavaDocSyntaxElementType.DOC_TYPE_HOLDER to JavaDocElementType.DOC_TYPE_HOLDER, JavaDocSyntaxElementType.DOC_COMMENT to JavaDocElementType.DOC_COMMENT, + JavaDocSyntaxElementType.DOC_MARKDOWN_COMMENT to JavaDocElementType.DOC_MARKDOWN_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, diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/PsiImplUtil.java b/java/java-psi-impl/src/com/intellij/psi/impl/PsiImplUtil.java index ff14b82c5b6b..62f70e138653 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/PsiImplUtil.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/PsiImplUtil.java @@ -313,7 +313,7 @@ public final class PsiImplUtil { node = node.getTreeNext(); } - return node == null || node.getElementType() != JavaDocElementType.DOC_COMMENT ? null : node; + return node == null || !JavaDocElementType.DOC_COMMENT_TOKENS.contains(node.getElementType()) ? null : node; } /** diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/factories/JavaClassStubFactory.java b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/factories/JavaClassStubFactory.java index abf0fc128a10..c4b9ada3eeea 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/factories/JavaClassStubFactory.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/factories/JavaClassStubFactory.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.java.stubs.factories; import com.intellij.lang.LighterAST; @@ -49,7 +49,7 @@ public class JavaClassStubFactory implements LightStubElementFactory