Skip to content

Commit d5f9faf

Browse files
committed
merge from idea markdown doc support
1 parent 4283fe7 commit d5f9faf

68 files changed

Lines changed: 3724 additions & 1138 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎java-analysis-impl/src/main/java/com/intellij/java/analysis/impl/codeInsight/daemon/impl/analysis/HighlightUtil.java‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3052,7 +3052,8 @@ public static HighlightInfo checkUnclosedComment(PsiComment comment) {
30523052
if (!(comment instanceof PsiDocComment) && comment.getTokenType() != JavaTokenType.C_STYLE_COMMENT) {
30533053
return null;
30543054
}
3055-
if (!comment.getText().endsWith("*/")) {
3055+
String text = comment.getText();
3056+
if (text.startsWith("/*") && !text.endsWith("*/")) {
30563057
int start = comment.getTextRange().getEndOffset() - 1;
30573058
int end = start + 1;
30583059
return HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR)

‎java-language-api/src/main/java/com/intellij/java/language/JavaFeature.java‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,12 @@ public LanguageLevel getStandardLevel() {
115115
//JEP 507
116116
PRIMITIVE_TYPES_IN_PATTERNS(LanguageLevel.JDK_23_PREVIEW, "feature.primitive.types.in.patterns"),
117117

118+
/**
119+
* Usually, this type of comments is shown as Javadoc despite language level.
120+
* This option can be used only to adjust behavior for cases with conflicts between different types of comments (markdown and old-style)
121+
*/
122+
MARKDOWN_COMMENT(LanguageLevel.JDK_23, "feature.markdown.comment"),
123+
118124
//JEP 494
119125
PACKAGE_IMPORTS_SHADOW_MODULE_IMPORTS(LanguageLevel.JDK_24_PREVIEW, "feature.package.import.shadow.module.import") {
120126
@Override

‎java-language-api/src/main/java/com/intellij/java/language/lexer/DocCommentTokenTypes.java‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,16 @@ public interface DocCommentTokenTypes {
5858
IElementType badCharacter();
5959

6060
IElementType commentLeadingAsterisks();
61+
62+
default IElementType tagValueQuote() {
63+
return commentData();
64+
}
65+
66+
default IElementType tagValueColon() {
67+
return commentData();
68+
}
69+
70+
default IElementType tagValueSlash() {
71+
return commentData();
72+
}
6173
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
2+
package com.intellij.java.language.lexer;
3+
4+
import consulo.language.ast.IElementType;
5+
6+
/**
7+
* Describes JDoc comment specific to the Java Plugin (not part of the core-api)
8+
*/
9+
public interface JavaDocCommentTokenTypes extends DocCommentTokenTypes {
10+
11+
default IElementType codeFence() {
12+
return commentData();
13+
}
14+
15+
default IElementType rightBracket() {
16+
return commentData();
17+
}
18+
19+
default IElementType leftBracket() {
20+
return commentData();
21+
}
22+
23+
default IElementType leftParenthesis() {
24+
return commentData();
25+
}
26+
27+
default IElementType rightParenthesis() {
28+
return commentData();
29+
}
30+
31+
default IElementType sharp() {
32+
return commentData();
33+
}
34+
35+
default IElementType inlineCodeFence() {
36+
return commentData();
37+
}
38+
39+
default IElementType comma() {
40+
return commentData();
41+
}
42+
}

‎java-language-api/src/main/java/com/intellij/java/language/lexer/JavaDocTokenTypes.java‎

Lines changed: 57 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
/**
2323
* @author yole
2424
*/
25-
public class JavaDocTokenTypes implements DocCommentTokenTypes {
26-
public static final DocCommentTokenTypes INSTANCE = new JavaDocTokenTypes();
25+
public final class JavaDocTokenTypes implements JavaDocCommentTokenTypes {
26+
public static final JavaDocCommentTokenTypes INSTANCE = new JavaDocTokenTypes();
2727
private final TokenSet mySpaceCommentsSet = TokenSet.create(JavaDocTokenType.DOC_SPACE, JavaDocTokenType.DOC_COMMENT_DATA);
2828

2929
private JavaDocTokenTypes() { }
@@ -68,11 +68,26 @@ public IElementType tagValueRParen() {
6868
return JavaDocTokenType.DOC_TAG_VALUE_RPAREN;
6969
}
7070

71+
@Override
72+
public IElementType tagValueQuote() {
73+
return JavaDocTokenType.DOC_TAG_VALUE_QUOTE;
74+
}
75+
76+
@Override
77+
public IElementType tagValueColon() {
78+
return JavaDocTokenType.DOC_TAG_VALUE_COLON;
79+
}
80+
7181
@Override
7282
public IElementType tagValueSharp() {
7383
return JavaDocTokenType.DOC_TAG_VALUE_SHARP_TOKEN;
7484
}
7585

86+
@Override
87+
public IElementType tagValueSlash() {
88+
return JavaDocTokenType.DOC_TAG_VALUE_SLASH;
89+
}
90+
7691
@Override
7792
public IElementType tagValueComma() {
7893
return JavaDocTokenType.DOC_TAG_VALUE_COMMA;
@@ -112,4 +127,44 @@ public IElementType badCharacter() {
112127
public IElementType commentLeadingAsterisks() {
113128
return JavaDocTokenType.DOC_COMMENT_LEADING_ASTERISKS;
114129
}
130+
131+
@Override
132+
public IElementType codeFence() {
133+
return JavaDocTokenType.DOC_CODE_FENCE;
134+
}
135+
136+
@Override
137+
public IElementType rightBracket() {
138+
return JavaDocTokenType.DOC_RBRACKET;
139+
}
140+
141+
@Override
142+
public IElementType leftBracket() {
143+
return JavaDocTokenType.DOC_LBRACKET;
144+
}
145+
146+
@Override
147+
public IElementType leftParenthesis() {
148+
return JavaDocTokenType.DOC_LPAREN;
149+
}
150+
151+
@Override
152+
public IElementType rightParenthesis() {
153+
return JavaDocTokenType.DOC_RPAREN;
154+
}
155+
156+
@Override
157+
public IElementType sharp() {
158+
return JavaDocTokenType.DOC_SHARP;
159+
}
160+
161+
@Override
162+
public IElementType inlineCodeFence() {
163+
return JavaDocTokenType.DOC_INLINE_CODE_FENCE;
164+
}
165+
166+
@Override
167+
public IElementType comma() {
168+
return JavaDocTokenType.DOC_COMMA;
169+
}
115170
}

0 commit comments

Comments
 (0)