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 7aef9395fcc8..62dcd3b33a65 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 @@ -221,6 +221,7 @@ public abstract class AbstractBasicJavadocParsingTest extends AbstractBasicJavaP public void testReferenceLinkMarkdown10() { doTest(true); } public void testReferenceLinkMarkdown11() { doTest(true); } public void testReferenceLinkMarkdown12() { doTest(true); } + public void testReferenceLinkMarkdown13() { doTest(true); } public void testMarkdownWithDocCommentBeforeMarkdown() { setLanguageLevel(LanguageLevel.JDK_21); diff --git a/java/java-syntax/gen/com/intellij/java/syntax/lexer/_JavaDocLexer.kt b/java/java-syntax/gen/com/intellij/java/syntax/lexer/_JavaDocLexer.kt index b6e72c0b9f12..64b2e34a56df 100644 --- a/java/java-syntax/gen/com/intellij/java/syntax/lexer/_JavaDocLexer.kt +++ b/java/java-syntax/gen/com/intellij/java/syntax/lexer/_JavaDocLexer.kt @@ -306,20 +306,20 @@ companion object { */ private const val ZZ_ACTION_PACKED_0: String = "\u000f\u0000\u0003\u0001\u0001\u0002\u0001\u0003\u0001\u0004\u0001\u0005\u0001\u0006\u0001\u0002"+ - "\u0001\u0007\u0001\u0002\u0001\u0008\u0001\u0002\u0001\u0009\u0001\u000a\u0001\u000b\u0001\u000c"+ - "\u0001\u0002\u0001\u000d\u0001\u000e\u0001\u000f\u0001\u0010\u0001\u0011\u0001\u0012\u0001\u0013"+ - "\u0001\u0014\u0001\u0015\u0001\u0016\u0001\u0017\u0001\u0012\u0001\u0018\u0001\u0001\u0002\u0019"+ - "\u0001\u001a\u0001\u0019\u0001\u001b\u0001\u001c\u0001\u0012\u0001\u001d\u0001\u001e\u0001\u001b"+ - "\u0001\u001f\u0001\u0012\u0001\u000d\u0001\u0003\u0001\u0020\u0001\u0021\u0001\u0012\u0001\u0003"+ - "\u0001\u0022\u0001\u000c\u0001\u0012\u0001\u0003\u0001\u000c\u0001\u0000\u0001\u0023\u0002\u0000"+ - "\u0002\u0024\u0002\u0000\u0005\u0024\u0001\u0000\u0001\u0025\u0001\u0026\u0001\u0024\u0002\u0027"+ - "\u0004\u0024\u0001\u0028\u0001\u0024\u0002\u0027\u0005\u0024\u0002\u0027\u0001\u0029\u0003\u0024"+ - "\u0001\u002a\u0002\u0027\u0001\u0024\u0001\u002a\u0001\u0024\u0002\u0027\u0002\u0024\u0002\u0027"+ - "\u0001\u002b\u0017\u0027" + "\u0001\u0007\u0001\u0008\u0001\u0002\u0001\u0009\u0001\u0002\u0001\u000a\u0001\u000b\u0001\u000c"+ + "\u0001\u000d\u0001\u0002\u0001\u000e\u0001\u000f\u0001\u0010\u0001\u0011\u0001\u0012\u0001\u0013"+ + "\u0001\u0014\u0001\u0015\u0001\u0016\u0001\u0017\u0001\u0018\u0001\u0013\u0001\u0019\u0001\u0001"+ + "\u0002\u001a\u0001\u001b\u0001\u001a\u0001\u001c\u0001\u001d\u0001\u0013\u0001\u001e\u0001\u001f"+ + "\u0001\u001c\u0001\u0020\u0001\u0013\u0001\u000e\u0001\u0003\u0001\u0021\u0001\u0022\u0001\u0013"+ + "\u0001\u0003\u0001\u0023\u0001\u000d\u0001\u0013\u0001\u0003\u0001\u000d\u0001\u0000\u0001\u0024"+ + "\u0002\u0000\u0002\u0025\u0002\u0000\u0005\u0025\u0001\u0000\u0001\u0026\u0001\u0027\u0001\u0025"+ + "\u0002\u0028\u0004\u0025\u0001\u0029\u0001\u0025\u0002\u0028\u0005\u0025\u0002\u0028\u0001\u002a"+ + "\u0003\u0025\u0001\u002b\u0002\u0028\u0001\u0025\u0001\u002b\u0001\u0025\u0002\u0028\u0002\u0025"+ + "\u0002\u0028\u0001\u002c\u0017\u0028" @JvmStatic private fun zzUnpackAction(): IntArray { - val result: IntArray = IntArray(144) + val result: IntArray = IntArray(145) var offset: Int = 0 offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result) return result @@ -351,25 +351,26 @@ companion object { "\u0000\u0000\u0000\u002b\u0000\u0056\u0000\u0081\u0000\u00ac\u0000\u00d7\u0000\u0102\u0000\u012d"+ "\u0000\u0158\u0000\u0183\u0000\u01ae\u0000\u01d9\u0000\u0204\u0000\u022f\u0000\u025a\u0000\u0285"+ "\u0000\u02b0\u0000\u02db\u0000\u0285\u0000\u0306\u0000\u0285\u0000\u0285\u0000\u0285\u0000\u02b0"+ - "\u0000\u0285\u0000\u0331\u0000\u0285\u0000\u035c\u0000\u0285\u0000\u0387\u0000\u0285\u0000\u0285"+ - "\u0000\u03b2\u0000\u03dd\u0000\u0408\u0000\u0433\u0000\u045e\u0000\u0285\u0000\u0489\u0000\u0285"+ - "\u0000\u0285\u0000\u0285\u0000\u0285\u0000\u0285\u0000\u04b4\u0000\u0285\u0000\u04df\u0000\u0285"+ - "\u0000\u050a\u0000\u050a\u0000\u02b0\u0000\u0285\u0000\u0285\u0000\u0535\u0000\u0285\u0000\u02b0"+ - "\u0000\u0560\u0000\u0285\u0000\u0285\u0000\u058b\u0000\u05b6\u0000\u0285\u0000\u0285\u0000\u05e1"+ - "\u0000\u060c\u0000\u0285\u0000\u05e1\u0000\u0637\u0000\u0662\u0000\u0637\u0000\u02b0\u0000\u0285"+ - "\u0000\u068d\u0000\u06b8\u0000\u06e3\u0000\u070e\u0000\u0739\u0000\u0764\u0000\u078f\u0000\u07ba"+ - "\u0000\u07e5\u0000\u0810\u0000\u083b\u0000\u0866\u0000\u0285\u0000\u0285\u0000\u0891\u0000\u08bc"+ - "\u0000\u08e7\u0000\u0912\u0000\u093d\u0000\u0968\u0000\u0993\u0000\u0285\u0000\u09be\u0000\u09e9"+ - "\u0000\u0a14\u0000\u0a3f\u0000\u0a6a\u0000\u0a95\u0000\u0ac0\u0000\u0aeb\u0000\u0b16\u0000\u0b41"+ - "\u0000\u078f\u0000\u0b6c\u0000\u0b97\u0000\u0bc2\u0000\u06e3\u0000\u0bed\u0000\u0c18\u0000\u0c43"+ - "\u0000\u078f\u0000\u0c6e\u0000\u0c99\u0000\u0cc4\u0000\u0cef\u0000\u0d1a\u0000\u0d45\u0000\u0d70"+ - "\u0000\u078f\u0000\u0d9b\u0000\u0dc6\u0000\u0df1\u0000\u0e1c\u0000\u0e47\u0000\u0e72\u0000\u0e9d"+ - "\u0000\u0ec8\u0000\u0ef3\u0000\u0f1e\u0000\u0f49\u0000\u0f74\u0000\u0f9f\u0000\u0fca\u0000\u0ff5"+ - "\u0000\u1020\u0000\u104b\u0000\u1076\u0000\u10a1\u0000\u10cc\u0000\u10f7\u0000\u1122\u0000\u0285" + "\u0000\u0285\u0000\u0285\u0000\u0331\u0000\u0285\u0000\u035c\u0000\u0285\u0000\u0387\u0000\u0285"+ + "\u0000\u0285\u0000\u03b2\u0000\u03dd\u0000\u0408\u0000\u0433\u0000\u045e\u0000\u0285\u0000\u0489"+ + "\u0000\u0285\u0000\u0285\u0000\u0285\u0000\u0285\u0000\u0285\u0000\u04b4\u0000\u0285\u0000\u04df"+ + "\u0000\u0285\u0000\u050a\u0000\u050a\u0000\u02b0\u0000\u0285\u0000\u0285\u0000\u0535\u0000\u0285"+ + "\u0000\u02b0\u0000\u0560\u0000\u0285\u0000\u0285\u0000\u058b\u0000\u05b6\u0000\u0285\u0000\u0285"+ + "\u0000\u05e1\u0000\u060c\u0000\u0285\u0000\u05e1\u0000\u0637\u0000\u0662\u0000\u0637\u0000\u02b0"+ + "\u0000\u0285\u0000\u068d\u0000\u06b8\u0000\u06e3\u0000\u070e\u0000\u0739\u0000\u0764\u0000\u078f"+ + "\u0000\u07ba\u0000\u07e5\u0000\u0810\u0000\u083b\u0000\u0866\u0000\u0285\u0000\u0285\u0000\u0891"+ + "\u0000\u08bc\u0000\u08e7\u0000\u0912\u0000\u093d\u0000\u0968\u0000\u0993\u0000\u0285\u0000\u09be"+ + "\u0000\u09e9\u0000\u0a14\u0000\u0a3f\u0000\u0a6a\u0000\u0a95\u0000\u0ac0\u0000\u0aeb\u0000\u0b16"+ + "\u0000\u0b41\u0000\u078f\u0000\u0b6c\u0000\u0b97\u0000\u0bc2\u0000\u06e3\u0000\u0bed\u0000\u0c18"+ + "\u0000\u0c43\u0000\u078f\u0000\u0c6e\u0000\u0c99\u0000\u0cc4\u0000\u0cef\u0000\u0d1a\u0000\u0d45"+ + "\u0000\u0d70\u0000\u078f\u0000\u0d9b\u0000\u0dc6\u0000\u0df1\u0000\u0e1c\u0000\u0e47\u0000\u0e72"+ + "\u0000\u0e9d\u0000\u0ec8\u0000\u0ef3\u0000\u0f1e\u0000\u0f49\u0000\u0f74\u0000\u0f9f\u0000\u0fca"+ + "\u0000\u0ff5\u0000\u1020\u0000\u104b\u0000\u1076\u0000\u10a1\u0000\u10cc\u0000\u10f7\u0000\u1122"+ + "\u0000\u0285" @JvmStatic private fun zzUnpackRowMap(): IntArray { - val result: IntArray = IntArray(144) + val result: IntArray = IntArray(145) var offset: Int = 0 offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result) return result @@ -396,79 +397,80 @@ companion object { private const val ZZ_TRANS_PACKED_0: String = "\u000c\u0010\u0001\u0011\u0003\u0010\u0001\u0012\u001a\u0010\u0001\u0013\u0002\u0014\u0001\u0010"+ "\u0002\u0014\u0001\u0013\u0001\u0015\u0002\u0013\u0001\u0016\u0001\u0017\u0001\u0018\u0001\u0019"+ - "\u0008\u0013\u0001\u001a\u0001\u001b\u0001\u001c\u0001\u001d\u0001\u001e\u000d\u0013\u0001\u001f"+ - "\u0001\u0020\u0001\u0021\u0001\u0013\u0001\u0022\u0001\u0014\u0001\u0010\u0001\u0022\u0001\u0014"+ - "\u0001\u0013\u0001\u0015\u0002\u0013\u0001\u0016\u0001\u0017\u0001\u0018\u0001\u0019\u0009\u0013"+ - "\u0001\u001b\u0001\u001c\u0001\u001d\u0001\u001e\u000d\u0013\u0001\u001f\u0001\u0020\u0001\u0021"+ - "\u0001\u0010\u0002\u0023\u0001\u0010\u0002\u0023\u0006\u0010\u0001\u0011\u001c\u0010\u0001\u0020"+ - "\u0002\u0010\u0002\u0024\u0001\u0010\u0002\u0024\u0006\u0010\u0001\u0011\u001e\u0010\u0001\u0013"+ - "\u0002\u0025\u0001\u0010\u0002\u0025\u0001\u0013\u0001\u0026\u0001\u0027\u0001\u0013\u0001\u0028"+ - "\u0001\u0013\u0001\u0018\u0001\u0029\u0001\u0013\u0001\u0027\u0001\u002a\u0001\u0027\u0001\u0013"+ - "\u0001\u002b\u0003\u0013\u0001\u0027\u0001\u0013\u0001\u0027\u0001\u0013\u000d\u0027\u0001\u0013"+ - "\u0001\u0020\u0001\u0013\u0001\u0010\u0002\u0014\u0001\u0010\u0002\u0014\u0002\u0010\u0001\u0027"+ - "\u0002\u0010\u0001\u002c\u0001\u0011\u0001\u0029\u0001\u0010\u0001\u0027\u0001\u0010\u0001\u0027"+ - "\u0005\u0010\u0001\u0027\u0001\u0010\u0001\u0027\u0001\u0010\u000d\u0027\u000b\u0010\u0001\u002d"+ - "\u0003\u0010\u0001\u0011\u0008\u0010\u0001\u002e\u0005\u0010\u000d\u002d\u000f\u0010\u0001\u0011"+ - "\u0009\u0010\u0001\u002f\u0014\u0010\u0001\u0030\u0001\u0031\u0001\u0032\u0001\u0010\u0002\u0032"+ - "\u0006\u0030\u0001\u0033\u001b\u0030\u0001\u001f\u0001\u0020\u0002\u0030\u0001\u0031\u0001\u0032"+ - "\u0001\u0010\u0002\u0032\u0006\u0030\u0001\u0033\u001c\u0030\u0001\u0020\u0001\u0030\u0001\u0034"+ - "\u0002\u0014\u0001\u0034\u0002\u0014\u0001\u0035\u0001\u0034\u0001\u0036\u0001\u0037\u0002\u0034"+ - "\u0001\u0038\u0003\u0034\u0001\u0039\u0001\u0034\u0001\u003a\u0001\u0034\u0001\u003b\u0006\u0034"+ - "\u000d\u0036\u0001\u0034\u0001\u0020\u0001\u0034\u0001\u003c\u0001\u003d\u0001\u0014\u0001\u003c"+ - "\u0002\u003d\u0022\u003c\u0001\u003e\u0001\u003f\u0001\u003c\u0001\u0040\u0001\u0041\u0001\u0014"+ - "\u0001\u0040\u0002\u0041\u0001\u0042\u0022\u0040\u0001\u0043\u0001\u0040\u0001\u0044\u0001\u0045"+ - "\u0001\u0014\u0001\u0044\u0002\u0045\u0003\u0044\u0001\u0042\u001f\u0044\u0001\u0046\u0001\u0044"+ - "\u0037\u0000\u0001\u0047\u0003\u0000\u0001\u0048\u0026\u0000\u0001\u0049\u0003\u0000\u0001\u004a"+ - "\u001b\u0000\u0002\u0014\u0001\u0000\u0002\u0014\u0025\u0000\u0001\u004b\u0002\u0000\u0001\u004b"+ - "\u0002\u0000\u001e\u004b\u0001\u004c\u0006\u004b\u000a\u0000\u0002\u0013\u000b\u0000\u0001\u0013"+ - "\u0001\u0000\u0001\u0013\u002b\u0000\u0001\u004d\u003a\u0000\u0001\u004e\u0001\u0000\u0001\u0022"+ - "\u0002\u0000\u0001\u0022\u0027\u0000\u0002\u0023\u0001\u0000\u0002\u0023\u0026\u0000\u0002\u0024"+ - "\u0001\u0000\u0002\u0024\u0026\u0000\u0002\u0025\u0001\u0000\u0002\u0025\u002d\u0000\u0001\u0027"+ - "\u0006\u0000\u0001\u0027\u0001\u0000\u0001\u0027\u0005\u0000\u0001\u0027\u0001\u0000\u0001\u0027"+ - "\u0001\u0000\u000d\u0027\u000b\u0000\u0001\u002d\u0005\u0000\u0002\u002d\u0001\u0000\u0002\u002d"+ - "\u0008\u0000\u000d\u002d\u0003\u0000\u0001\u004f\u0002\u0000\u0001\u004f\u0002\u0000\u0016\u004f"+ - "\u0001\u0050\u0003\u004f\u0001\u0051\u0003\u004f\u0001\u0052\u0001\u004f\u0001\u0053\u0002\u004f"+ - "\u0001\u0000\u0001\u004f\u0001\u0000\u0002\u0032\u0001\u0000\u0002\u0032\u002d\u0000\u0001\u0036"+ - "\u0008\u0000\u0001\u0036\u0009\u0000\u000d\u0036\u0013\u0000\u0001\u0054\u001a\u0000\u0002\u003c"+ - "\u0001\u0000\u0025\u003c\u0002\u0000\u0002\u003c\u0001\u003d\u0001\u0014\u0001\u003c\u0002\u003d"+ - "\u0022\u003c\u0002\u0000\u0001\u003c\u0002\u0040\u0001\u0000\u0003\u0040\u0001\u0000\u0025\u0040"+ - "\u0001\u0041\u0001\u0014\u0001\u0040\u0002\u0041\u0001\u0000\u0024\u0040\u0002\u0044\u0001\u0000"+ - "\u0006\u0044\u0001\u0000\u0022\u0044\u0001\u0045\u0001\u0014\u0001\u0044\u0002\u0045\u0003\u0044"+ - "\u0001\u0000\u0021\u0044\u000c\u0000\u0001\u0055\u002e\u0000\u0001\u0056\u001a\u0000\u0001\u004b"+ - "\u0002\u0000\u0001\u004b\u0002\u0000\u0026\u004b\u0002\u0000\u0001\u004b\u0002\u0000\u0015\u004b"+ - "\u0001\u0057\u000f\u004b\u001a\u0000\u0001\u0058\u003a\u0000\u0001\u0059\u0001\u004f\u0002\u0000"+ - "\u0001\u004f\u0002\u0000\u0023\u004f\u0001\u0000\u0002\u004f\u0002\u0000\u0001\u004f\u0002\u0000"+ - "\u001d\u004f\u0001\u005a\u0005\u004f\u0001\u0000\u0002\u004f\u0002\u0000\u0001\u004f\u0002\u0000"+ - "\u0019\u004f\u0001\u005b\u0009\u004f\u0001\u0000\u0002\u004f\u0002\u0000\u0001\u004f\u0002\u0000"+ - "\u0015\u004f\u0001\u005c\u000d\u004f\u0001\u0000\u0002\u004f\u0002\u0000\u0001\u004f\u0002\u0000"+ - "\u001c\u004f\u0001\u005d\u0006\u004f\u0001\u0000\u0001\u004f\u0010\u0000\u0001\u005e\u001a\u0000"+ - "\u0001\u004b\u0002\u0000\u0001\u004b\u0002\u0000\u001f\u004b\u0001\u005f\u0005\u004b\u001a\u0000"+ - "\u0001\u0060\u003a\u0000\u0001\u0061\u0001\u004f\u0002\u0000\u0001\u004f\u0002\u0000\u0017\u004f"+ - "\u0001\u0062\u000b\u004f\u0001\u0000\u0002\u004f\u0002\u0000\u0001\u004f\u0002\u0000\u0021\u004f"+ - "\u0001\u0063\u0001\u004f\u0001\u0000\u0002\u004f\u0002\u0000\u0001\u004f\u0002\u0000\u001f\u004f"+ - "\u0001\u0064\u0003\u004f\u0001\u0000\u0002\u004f\u0002\u0000\u0001\u004f\u0002\u0000\u0019\u004f"+ - "\u0001\u0065\u0009\u004f\u0001\u0000\u0001\u004f\u0001\u004b\u0002\u0000\u0001\u004b\u0002\u0000"+ - "\u0015\u004b\u0001\u0066\u000f\u004b\u001a\u0000\u0001\u0067\u003a\u0000\u0001\u0068\u0001\u004f"+ - "\u0002\u0000\u0001\u004f\u0002\u0000\u0018\u004f\u0001\u0069\u000a\u004f\u0001\u0000\u0002\u004f"+ - "\u0002\u0000\u0001\u004f\u0002\u0000\u0018\u004f\u0001\u006a\u000a\u004f\u0001\u0000\u0002\u004f"+ - "\u0002\u0000\u0001\u004f\u0002\u0000\u0015\u004f\u0001\u006b\u000d\u004f\u0001\u0000\u0002\u004f"+ - "\u0002\u0000\u0001\u004f\u0002\u0000\u001e\u004f\u0001\u006c\u0004\u004f\u0001\u0000\u0001\u004f"+ - "\u0001\u004b\u0002\u0000\u0001\u004b\u0002\u0000\u001b\u004b\u0001\u006d\u0009\u004b\u001a\u0000"+ - "\u0001\u006e\u003a\u0000\u0001\u006f\u0001\u004f\u0002\u0000\u0001\u004f\u0002\u0000\u001f\u004f"+ - "\u0001\u0070\u0003\u004f\u0001\u0000\u0002\u004f\u0002\u0000\u0001\u004f\u0002\u0000\u001b\u004f"+ - "\u0001\u0071\u0007\u004f\u0001\u0000\u0002\u004f\u0002\u0000\u0001\u004f\u0002\u0000\u001e\u004f"+ - "\u0001\u0072\u0004\u004f\u0001\u0000\u0001\u004f\u001a\u0000\u0001\u0073\u003a\u0000\u0001\u0074"+ - "\u0001\u004f\u0002\u0000\u0001\u004f\u0002\u0000\u0015\u004f\u0001\u0075\u000d\u004f\u0001\u0000"+ - "\u0002\u004f\u0002\u0000\u0001\u004f\u0002\u0000\u0018\u004f\u0001\u0076\u000a\u004f\u0001\u0000"+ - "\u0001\u004f\u001a\u0000\u0001\u0077\u003a\u0000\u0001\u0078\u0001\u004f\u0002\u0000\u0001\u004f"+ - "\u0002\u0000\u001a\u004f\u0001\u0069\u0008\u004f\u0001\u0000\u0002\u004f\u0002\u0000\u0001\u004f"+ - "\u0002\u0000\u0021\u004f\u0001\u0079\u0001\u004f\u0001\u0000\u0001\u004f\u001a\u0000\u0001\u007a"+ - "\u003a\u0000\u0001\u007b\u001a\u0000\u0001\u007c\u003a\u0000\u0001\u007d\u001a\u0000\u0001\u007e"+ - "\u003a\u0000\u0001\u007f\u001a\u0000\u0001\u0080\u003a\u0000\u0001\u0081\u001a\u0000\u0001\u0082"+ - "\u003a\u0000\u0001\u0083\u001a\u0000\u0001\u0084\u003a\u0000\u0001\u0085\u001a\u0000\u0001\u0086"+ - "\u003a\u0000\u0001\u0087\u001a\u0000\u0001\u0088\u003a\u0000\u0001\u0089\u001a\u0000\u0001\u008a"+ - "\u003a\u0000\u0001\u008b\u001a\u0000\u0001\u008c\u003a\u0000\u0001\u008d\u001a\u0000\u0001\u008e"+ - "\u003a\u0000\u0001\u008f\u001a\u0000\u0001\u0090\u003a\u0000\u0001\u0090" + "\u0002\u0013\u0001\u001a\u0005\u0013\u0001\u001b\u0001\u001c\u0001\u001d\u0001\u001e\u0001\u001f"+ + "\u000d\u0013\u0001\u0020\u0001\u0021\u0001\u0022\u0001\u0013\u0001\u0023\u0001\u0014\u0001\u0010"+ + "\u0001\u0023\u0001\u0014\u0001\u0013\u0001\u0015\u0002\u0013\u0001\u0016\u0001\u0017\u0001\u0018"+ + "\u0001\u0019\u0002\u0013\u0001\u001a\u0006\u0013\u0001\u001c\u0001\u001d\u0001\u001e\u0001\u001f"+ + "\u000d\u0013\u0001\u0020\u0001\u0021\u0001\u0022\u0001\u0010\u0002\u0024\u0001\u0010\u0002\u0024"+ + "\u0006\u0010\u0001\u0011\u001c\u0010\u0001\u0021\u0002\u0010\u0002\u0025\u0001\u0010\u0002\u0025"+ + "\u0006\u0010\u0001\u0011\u001e\u0010\u0001\u0013\u0002\u0026\u0001\u0010\u0002\u0026\u0001\u0013"+ + "\u0001\u0027\u0001\u0028\u0001\u0013\u0001\u0029\u0001\u0013\u0001\u0018\u0001\u002a\u0001\u0013"+ + "\u0001\u0028\u0001\u002b\u0001\u0028\u0001\u0013\u0001\u002c\u0003\u0013\u0001\u0028\u0001\u0013"+ + "\u0001\u0028\u0001\u0013\u000d\u0028\u0001\u0013\u0001\u0021\u0001\u0013\u0001\u0010\u0002\u0014"+ + "\u0001\u0010\u0002\u0014\u0002\u0010\u0001\u0028\u0002\u0010\u0001\u002d\u0001\u0011\u0001\u002a"+ + "\u0001\u0010\u0001\u0028\u0001\u0010\u0001\u0028\u0005\u0010\u0001\u0028\u0001\u0010\u0001\u0028"+ + "\u0001\u0010\u000d\u0028\u000b\u0010\u0001\u002e\u0003\u0010\u0001\u0011\u0008\u0010\u0001\u002f"+ + "\u0005\u0010\u000d\u002e\u000f\u0010\u0001\u0011\u0009\u0010\u0001\u0030\u0014\u0010\u0001\u0031"+ + "\u0001\u0032\u0001\u0033\u0001\u0010\u0002\u0033\u0006\u0031\u0001\u0034\u001b\u0031\u0001\u0020"+ + "\u0001\u0021\u0002\u0031\u0001\u0032\u0001\u0033\u0001\u0010\u0002\u0033\u0006\u0031\u0001\u0034"+ + "\u001c\u0031\u0001\u0021\u0001\u0031\u0001\u0035\u0002\u0014\u0001\u0035\u0002\u0014\u0001\u0036"+ + "\u0001\u0035\u0001\u0037\u0001\u0038\u0002\u0035\u0001\u0039\u0003\u0035\u0001\u003a\u0001\u0035"+ + "\u0001\u003b\u0001\u0035\u0001\u003c\u0006\u0035\u000d\u0037\u0001\u0035\u0001\u0021\u0001\u0035"+ + "\u0001\u003d\u0001\u003e\u0001\u0014\u0001\u003d\u0002\u003e\u0022\u003d\u0001\u003f\u0001\u0040"+ + "\u0001\u003d\u0001\u0041\u0001\u0042\u0001\u0014\u0001\u0041\u0002\u0042\u0001\u0043\u0022\u0041"+ + "\u0001\u0044\u0001\u0041\u0001\u0045\u0001\u0046\u0001\u0014\u0001\u0045\u0002\u0046\u0003\u0045"+ + "\u0001\u0043\u001f\u0045\u0001\u0047\u0001\u0045\u0037\u0000\u0001\u0048\u0003\u0000\u0001\u0049"+ + "\u0026\u0000\u0001\u004a\u0003\u0000\u0001\u004b\u001b\u0000\u0002\u0014\u0001\u0000\u0002\u0014"+ + "\u0025\u0000\u0001\u004c\u0002\u0000\u0001\u004c\u0002\u0000\u001e\u004c\u0001\u004d\u0006\u004c"+ + "\u000a\u0000\u0002\u0013\u000b\u0000\u0001\u0013\u0001\u0000\u0001\u0013\u002b\u0000\u0001\u004e"+ + "\u003a\u0000\u0001\u004f\u0001\u0000\u0001\u0023\u0002\u0000\u0001\u0023\u0027\u0000\u0002\u0024"+ + "\u0001\u0000\u0002\u0024\u0026\u0000\u0002\u0025\u0001\u0000\u0002\u0025\u0026\u0000\u0002\u0026"+ + "\u0001\u0000\u0002\u0026\u002d\u0000\u0001\u0028\u0006\u0000\u0001\u0028\u0001\u0000\u0001\u0028"+ + "\u0005\u0000\u0001\u0028\u0001\u0000\u0001\u0028\u0001\u0000\u000d\u0028\u000b\u0000\u0001\u002e"+ + "\u0005\u0000\u0002\u002e\u0001\u0000\u0002\u002e\u0008\u0000\u000d\u002e\u0003\u0000\u0001\u0050"+ + "\u0002\u0000\u0001\u0050\u0002\u0000\u0016\u0050\u0001\u0051\u0003\u0050\u0001\u0052\u0003\u0050"+ + "\u0001\u0053\u0001\u0050\u0001\u0054\u0002\u0050\u0001\u0000\u0001\u0050\u0001\u0000\u0002\u0033"+ + "\u0001\u0000\u0002\u0033\u002d\u0000\u0001\u0037\u0008\u0000\u0001\u0037\u0009\u0000\u000d\u0037"+ + "\u0013\u0000\u0001\u0055\u001a\u0000\u0002\u003d\u0001\u0000\u0025\u003d\u0002\u0000\u0002\u003d"+ + "\u0001\u003e\u0001\u0014\u0001\u003d\u0002\u003e\u0022\u003d\u0002\u0000\u0001\u003d\u0002\u0041"+ + "\u0001\u0000\u0003\u0041\u0001\u0000\u0025\u0041\u0001\u0042\u0001\u0014\u0001\u0041\u0002\u0042"+ + "\u0001\u0000\u0024\u0041\u0002\u0045\u0001\u0000\u0006\u0045\u0001\u0000\u0022\u0045\u0001\u0046"+ + "\u0001\u0014\u0001\u0045\u0002\u0046\u0003\u0045\u0001\u0000\u0021\u0045\u000c\u0000\u0001\u0056"+ + "\u002e\u0000\u0001\u0057\u001a\u0000\u0001\u004c\u0002\u0000\u0001\u004c\u0002\u0000\u0026\u004c"+ + "\u0002\u0000\u0001\u004c\u0002\u0000\u0015\u004c\u0001\u0058\u000f\u004c\u001a\u0000\u0001\u0059"+ + "\u003a\u0000\u0001\u005a\u0001\u0050\u0002\u0000\u0001\u0050\u0002\u0000\u0023\u0050\u0001\u0000"+ + "\u0002\u0050\u0002\u0000\u0001\u0050\u0002\u0000\u001d\u0050\u0001\u005b\u0005\u0050\u0001\u0000"+ + "\u0002\u0050\u0002\u0000\u0001\u0050\u0002\u0000\u0019\u0050\u0001\u005c\u0009\u0050\u0001\u0000"+ + "\u0002\u0050\u0002\u0000\u0001\u0050\u0002\u0000\u0015\u0050\u0001\u005d\u000d\u0050\u0001\u0000"+ + "\u0002\u0050\u0002\u0000\u0001\u0050\u0002\u0000\u001c\u0050\u0001\u005e\u0006\u0050\u0001\u0000"+ + "\u0001\u0050\u0010\u0000\u0001\u005f\u001a\u0000\u0001\u004c\u0002\u0000\u0001\u004c\u0002\u0000"+ + "\u001f\u004c\u0001\u0060\u0005\u004c\u001a\u0000\u0001\u0061\u003a\u0000\u0001\u0062\u0001\u0050"+ + "\u0002\u0000\u0001\u0050\u0002\u0000\u0017\u0050\u0001\u0063\u000b\u0050\u0001\u0000\u0002\u0050"+ + "\u0002\u0000\u0001\u0050\u0002\u0000\u0021\u0050\u0001\u0064\u0001\u0050\u0001\u0000\u0002\u0050"+ + "\u0002\u0000\u0001\u0050\u0002\u0000\u001f\u0050\u0001\u0065\u0003\u0050\u0001\u0000\u0002\u0050"+ + "\u0002\u0000\u0001\u0050\u0002\u0000\u0019\u0050\u0001\u0066\u0009\u0050\u0001\u0000\u0001\u0050"+ + "\u0001\u004c\u0002\u0000\u0001\u004c\u0002\u0000\u0015\u004c\u0001\u0067\u000f\u004c\u001a\u0000"+ + "\u0001\u0068\u003a\u0000\u0001\u0069\u0001\u0050\u0002\u0000\u0001\u0050\u0002\u0000\u0018\u0050"+ + "\u0001\u006a\u000a\u0050\u0001\u0000\u0002\u0050\u0002\u0000\u0001\u0050\u0002\u0000\u0018\u0050"+ + "\u0001\u006b\u000a\u0050\u0001\u0000\u0002\u0050\u0002\u0000\u0001\u0050\u0002\u0000\u0015\u0050"+ + "\u0001\u006c\u000d\u0050\u0001\u0000\u0002\u0050\u0002\u0000\u0001\u0050\u0002\u0000\u001e\u0050"+ + "\u0001\u006d\u0004\u0050\u0001\u0000\u0001\u0050\u0001\u004c\u0002\u0000\u0001\u004c\u0002\u0000"+ + "\u001b\u004c\u0001\u006e\u0009\u004c\u001a\u0000\u0001\u006f\u003a\u0000\u0001\u0070\u0001\u0050"+ + "\u0002\u0000\u0001\u0050\u0002\u0000\u001f\u0050\u0001\u0071\u0003\u0050\u0001\u0000\u0002\u0050"+ + "\u0002\u0000\u0001\u0050\u0002\u0000\u001b\u0050\u0001\u0072\u0007\u0050\u0001\u0000\u0002\u0050"+ + "\u0002\u0000\u0001\u0050\u0002\u0000\u001e\u0050\u0001\u0073\u0004\u0050\u0001\u0000\u0001\u0050"+ + "\u001a\u0000\u0001\u0074\u003a\u0000\u0001\u0075\u0001\u0050\u0002\u0000\u0001\u0050\u0002\u0000"+ + "\u0015\u0050\u0001\u0076\u000d\u0050\u0001\u0000\u0002\u0050\u0002\u0000\u0001\u0050\u0002\u0000"+ + "\u0018\u0050\u0001\u0077\u000a\u0050\u0001\u0000\u0001\u0050\u001a\u0000\u0001\u0078\u003a\u0000"+ + "\u0001\u0079\u0001\u0050\u0002\u0000\u0001\u0050\u0002\u0000\u001a\u0050\u0001\u006a\u0008\u0050"+ + "\u0001\u0000\u0002\u0050\u0002\u0000\u0001\u0050\u0002\u0000\u0021\u0050\u0001\u007a\u0001\u0050"+ + "\u0001\u0000\u0001\u0050\u001a\u0000\u0001\u007b\u003a\u0000\u0001\u007c\u001a\u0000\u0001\u007d"+ + "\u003a\u0000\u0001\u007e\u001a\u0000\u0001\u007f\u003a\u0000\u0001\u0080\u001a\u0000\u0001\u0081"+ + "\u003a\u0000\u0001\u0082\u001a\u0000\u0001\u0083\u003a\u0000\u0001\u0084\u001a\u0000\u0001\u0085"+ + "\u003a\u0000\u0001\u0086\u001a\u0000\u0001\u0087\u003a\u0000\u0001\u0088\u001a\u0000\u0001\u0089"+ + "\u003a\u0000\u0001\u008a\u001a\u0000\u0001\u008b\u003a\u0000\u0001\u008c\u001a\u0000\u0001\u008d"+ + "\u003a\u0000\u0001\u008e\u001a\u0000\u0001\u008f\u003a\u0000\u0001\u0090\u001a\u0000\u0001\u0091"+ + "\u003a\u0000\u0001\u0091" @JvmStatic private fun zzUnpacktrans(): IntArray { @@ -515,7 +517,7 @@ companion object { * ZZ_ATTRIBUTE[aState] contains the attributes of state {@code aState} */ private const val ZZ_ATTRIBUTE_PACKED_0: String = - "\u000f\u0000\u0001\u0009\u0002\u0001\u0001\u0009\u0001\u0001\u0003\u0009\u0001\u0001\u0001\u0009"+ + "\u000f\u0000\u0001\u0009\u0002\u0001\u0001\u0009\u0001\u0001\u0003\u0009\u0001\u0001\u0002\u0009"+ "\u0001\u0001\u0001\u0009\u0001\u0001\u0001\u0009\u0001\u0001\u0002\u0009\u0005\u0001\u0001\u0009"+ "\u0001\u0001\u0005\u0009\u0001\u0001\u0001\u0009\u0001\u0001\u0001\u0009\u0003\u0001\u0002\u0009"+ "\u0001\u0001\u0001\u0009\u0002\u0001\u0002\u0009\u0002\u0001\u0002\u0009\u0002\u0001\u0001\u0009"+ @@ -524,7 +526,7 @@ companion object { @JvmStatic private fun zzUnpackAttribute(): IntArray { - val result: IntArray = IntArray(144) + val result: IntArray = IntArray(145) var offset: Int = 0 offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result) return result @@ -923,17 +925,17 @@ companion object { return JavaDocSyntaxTokenType.DOC_COMMENT_BAD_CHARACTER; } // fall through - 44 -> break + 45 -> break 2 -> { yybegin(COMMENT_DATA); return JavaDocSyntaxTokenType.DOC_COMMENT_DATA; } // fall through - 45 -> break + 46 -> break 3 -> { return JavaDocSyntaxTokenType.DOC_SPACE; } // fall through - 46 -> break + 47 -> break 4 -> { yybegin(COMMENT_DATA); if(myMarkdownMode) { @@ -942,7 +944,7 @@ companion object { return JavaDocSyntaxTokenType.DOC_COMMENT_DATA; } // fall through - 47 -> break + 48 -> break 5 -> { yybegin(COMMENT_DATA); if(myMarkdownMode) { @@ -951,7 +953,7 @@ companion object { return JavaDocSyntaxTokenType.DOC_COMMENT_DATA; } // fall through - 48 -> break + 49 -> break 6 -> { yybegin(COMMENT_DATA); if(myMarkdownMode) { @@ -960,7 +962,7 @@ companion object { return JavaDocSyntaxTokenType.DOC_COMMENT_DATA; } // fall through - 49 -> break + 50 -> break 7 -> { yybegin(COMMENT_DATA); if(myMarkdownMode) { @@ -969,17 +971,26 @@ companion object { return JavaDocSyntaxTokenType.DOC_COMMENT_DATA; } // fall through - 50 -> break + 51 -> break 8 -> { yybegin(COMMENT_DATA); + if(myMarkdownMode) { + return JavaDocSyntaxTokenType.DOC_TAG_VALUE_SLASH; + } + return JavaDocSyntaxTokenType.DOC_COMMENT_DATA; + } + // fall through + 52 -> break + 9 -> { + yybegin(COMMENT_DATA); if(myMarkdownMode) { return JavaDocSyntaxTokenType.DOC_LBRACKET; } return JavaDocSyntaxTokenType.DOC_COMMENT_DATA; } // fall through - 51 -> break - 9 -> { + 53 -> break + 10 -> { yybegin(COMMENT_DATA); if(myMarkdownMode) { return JavaDocSyntaxTokenType.DOC_RBRACKET; @@ -987,8 +998,8 @@ companion object { return JavaDocSyntaxTokenType.DOC_COMMENT_DATA; } // fall through - 52 -> break - 10 -> { + 54 -> break + 11 -> { yybegin(COMMENT_DATA); if(myMarkdownMode) { return JavaDocSyntaxTokenType.DOC_INLINE_CODE_FENCE; @@ -996,8 +1007,8 @@ companion object { return JavaDocSyntaxTokenType.DOC_COMMENT_DATA; } // fall through - 53 -> break - 11 -> { + 55 -> break + 12 -> { if (checkAhead('@')) { yybegin(INLINE_TAG_NAME); return JavaDocSyntaxTokenType.DOC_INLINE_TAG_START; @@ -1008,61 +1019,61 @@ companion object { } } // fall through - 54 -> break - 12 -> { + 56 -> break + 13 -> { yybegin(COMMENT_DATA); return JavaDocSyntaxTokenType.DOC_INLINE_TAG_END; } // fall through - 55 -> break - 13 -> { + 57 -> break + 14 -> { return JavaDocSyntaxTokenType.DOC_COMMENT_DATA; } // fall through - 56 -> break - 14 -> { + 58 -> break + 15 -> { if (checkAhead('<') || checkAhead('\"')) yybegin(COMMENT_DATA); else if (checkAhead('\u007b')) yybegin(COMMENT_DATA); // lbrace - there's a error in JLex when typing lbrace directly else yybegin(DOC_TAG_VALUE); return JavaDocSyntaxTokenType.DOC_SPACE; } // fall through - 57 -> break - 15 -> { + 59 -> break + 16 -> { yybegin(DOC_TAG_VALUE); return JavaDocSyntaxTokenType.DOC_SPACE; } // fall through - 58 -> break - 16 -> { + 60 -> break + 17 -> { yybegin(COMMENT_DATA); return JavaDocSyntaxTokenType.DOC_SPACE; } // fall through - 59 -> break - 17 -> { + 61 -> break + 18 -> { return JavaDocSyntaxTokenType.DOC_TAG_VALUE_SHARP_TOKEN; } // fall through - 60 -> break - 18 -> { + 62 -> break + 19 -> { return JavaDocSyntaxTokenType.DOC_TAG_VALUE_TOKEN; } // fall through - 61 -> break - 19 -> { + 63 -> break + 20 -> { yybegin(DOC_TAG_VALUE_IN_PAREN); return JavaDocSyntaxTokenType.DOC_TAG_VALUE_LPAREN; } // fall through - 62 -> break - 20 -> { + 64 -> break + 21 -> { return JavaDocSyntaxTokenType.DOC_TAG_VALUE_COMMA; } // fall through - 63 -> break - 21 -> { + 65 -> break + 22 -> { return JavaDocSyntaxTokenType.DOC_TAG_VALUE_SLASH; } // fall through - 64 -> break - 22 -> { + 66 -> break + 23 -> { if (myJdk15Enabled) { yybegin(DOC_TAG_VALUE_IN_LTGT); return JavaDocSyntaxTokenType.DOC_TAG_VALUE_LT; @@ -1073,61 +1084,61 @@ companion object { } } // fall through - 65 -> break - 23 -> { + 67 -> break + 24 -> { yybegin(DOC_TAG_VALUE); return JavaDocSyntaxTokenType.DOC_TAG_VALUE_RPAREN; } // fall through - 66 -> break - 24 -> { + 68 -> break + 25 -> { yybegin(COMMENT_DATA); return JavaDocSyntaxTokenType.DOC_TAG_VALUE_GT; } // fall through - 67 -> break - 25 -> { + 69 -> break + 26 -> { yybegin(CODE_TAG); return JavaDocSyntaxTokenType.DOC_COMMENT_DATA; } // fall through - 68 -> break - 26 -> { + 70 -> break + 27 -> { yybegin(CODE_TAG); return JavaDocSyntaxTokenType.DOC_SPACE; } // fall through - 69 -> break - 27 -> { + 71 -> break + 28 -> { yybegin(SNIPPET_TAG_COMMENT_DATA_UNTIL_COLON); return JavaDocSyntaxTokenType.DOC_COMMENT_DATA; } // fall through - 70 -> break - 28 -> { + 72 -> break + 29 -> { yybegin(SNIPPET_ATTRIBUTE_VALUE_DOUBLE_QUOTES); return JavaDocSyntaxTokenType.DOC_TAG_VALUE_QUOTE; } // fall through - 71 -> break - 29 -> { + 73 -> break + 30 -> { yybegin(SNIPPET_ATTRIBUTE_VALUE_SINGLE_QUOTES); return JavaDocSyntaxTokenType.DOC_TAG_VALUE_QUOTE; } // fall through - 72 -> break - 30 -> { + 74 -> break + 31 -> { if (myMarkdownMode) { return JavaDocSyntaxTokenType.DOC_COMMENT_DATA; } return JavaDocSyntaxTokenType.DOC_COMMENT_LEADING_ASTERISKS; } // fall through - 73 -> break - 31 -> { + 75 -> break + 32 -> { yybegin(SNIPPET_TAG_BODY_DATA); return JavaDocSyntaxTokenType.DOC_TAG_VALUE_COLON; } // fall through - 74 -> break - 32 -> { + 76 -> break + 33 -> { mySnippetBracesLevel++; return JavaDocSyntaxTokenType.DOC_COMMENT_DATA; } // fall through - 75 -> break - 33 -> { + 77 -> break + 34 -> { if (mySnippetBracesLevel > 0) { mySnippetBracesLevel--; return JavaDocSyntaxTokenType.DOC_COMMENT_DATA; @@ -1137,26 +1148,26 @@ companion object { } } // fall through - 76 -> break - 34 -> { + 78 -> break + 35 -> { yybegin(SNIPPET_TAG_COMMENT_DATA_UNTIL_COLON); return JavaDocSyntaxTokenType.DOC_TAG_VALUE_QUOTE; } // fall through - 77 -> break - 35 -> { + 79 -> break + 36 -> { if(myMarkdownMode) { return JavaDocSyntaxTokenType.DOC_COMMENT_DATA; } return JavaDocSyntaxTokenType.DOC_COMMENT_END; } // fall through - 78 -> break - 36 -> { + 80 -> break + 37 -> { yybegin(TAG_DOC_SPACE); return JavaDocSyntaxTokenType.DOC_TAG_NAME; } // fall through - 79 -> break - 37 -> { + 81 -> break + 38 -> { if (myMarkdownMode) { return JavaDocSyntaxTokenType.DOC_COMMENT_BAD_CHARACTER; } @@ -1164,8 +1175,8 @@ companion object { return JavaDocSyntaxTokenType.DOC_COMMENT_START; } // fall through - 80 -> break - 38 -> { + 82 -> break + 39 -> { if(myMarkdownMode) { yybegin(COMMENT_DATA_START); return JavaDocSyntaxTokenType.DOC_COMMENT_LEADING_ASTERISKS; @@ -1173,8 +1184,8 @@ companion object { return JavaDocSyntaxTokenType.DOC_COMMENT_BAD_CHARACTER; } // fall through - 81 -> break - 39 -> { + 83 -> break + 40 -> { yybegin(COMMENT_DATA); if(myMarkdownMode) { return JavaDocSyntaxTokenType.DOC_CODE_FENCE; @@ -1182,30 +1193,30 @@ companion object { return JavaDocSyntaxTokenType.DOC_COMMENT_DATA; } // fall through - 82 -> break - 40 -> { + 84 -> break + 41 -> { if (myMarkdownMode) { return JavaDocSyntaxTokenType.DOC_COMMENT_LEADING_ASTERISKS; } return JavaDocSyntaxTokenType.DOC_COMMENT_DATA; } // fall through - 83 -> break - 41 -> { + 85 -> break + 42 -> { yybegin(CODE_TAG_SPACE); return JavaDocSyntaxTokenType.DOC_TAG_NAME; } // fall through - 84 -> break - 42 -> { + 86 -> break + 43 -> { yybegin(PARAM_TAG_SPACE); return JavaDocSyntaxTokenType.DOC_TAG_NAME; } // fall through - 85 -> break - 43 -> { + 87 -> break + 44 -> { yybegin(SNIPPET_TAG_COMMENT_DATA_UNTIL_COLON); return JavaDocSyntaxTokenType.DOC_TAG_NAME; } // fall through - 86 -> break + 88 -> break else -> zzScanError(ZZ_NO_MATCH) } diff --git a/java/java-syntax/src/com/intellij/java/syntax/lexer/_JavaDocLexer.flex b/java/java-syntax/src/com/intellij/java/syntax/lexer/_JavaDocLexer.flex index 0920dce2cea4..0b8bfb3602c7 100644 --- a/java/java-syntax/src/com/intellij/java/syntax/lexer/_JavaDocLexer.flex +++ b/java/java-syntax/src/com/intellij/java/syntax/lexer/_JavaDocLexer.flex @@ -158,6 +158,14 @@ LEADING_TOKEN_MARKDOWN="///" return JavaDocSyntaxTokenType.DOC_COMMENT_DATA; } + [/] { + yybegin(COMMENT_DATA); + if(myMarkdownMode) { + return JavaDocSyntaxTokenType.DOC_TAG_VALUE_SLASH; + } + return JavaDocSyntaxTokenType.DOC_COMMENT_DATA; + } + \[ { yybegin(COMMENT_DATA); if(myMarkdownMode) { 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 a783f7eb1fd1..62ee1d98ece1 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 @@ -296,17 +296,25 @@ class JavaDocParser( private fun parseMarkdownReference() { val refStart = builder.mark() + val moduleMarker = parseModuleRef(builder.mark()) + var referenceParsed = false + var referenceEnded = false + if (getTokenType() === JavaDocSyntaxTokenType.DOC_RBRACKET) { - refStart.drop() - return + if (moduleMarker == null) { + refStart.drop() + return + } else { + referenceEnded = true + } } - if (getTokenType() !== JavaDocSyntaxTokenType.DOC_SHARP) { + if (!referenceEnded && getTokenType() !== JavaDocSyntaxTokenType.DOC_SHARP) { builder.remapCurrentToken(JavaDocSyntaxElementType.DOC_REFERENCE_HOLDER) builder.advanceLexer() } - if (getTokenType() === JavaDocSyntaxTokenType.DOC_SHARP) { + if (!referenceEnded && getTokenType() === JavaDocSyntaxTokenType.DOC_SHARP) { // Existing integration require this token for auto completion builder.remapCurrentToken(JavaDocSyntaxTokenType.DOC_TAG_VALUE_SHARP_TOKEN) @@ -340,10 +348,15 @@ class JavaDocParser( } } + referenceParsed = true + } + + if (referenceParsed || moduleMarker != null) { + moduleMarker?.done(JavaDocSyntaxElementType.DOC_TAG_VALUE_ELEMENT) refStart.done(JavaDocSyntaxElementType.DOC_METHOD_OR_FIELD_REF) - return + } else { + refStart.drop() } - refStart.drop() } diff --git a/java/java-tests/testData/psi/parser-full/javadocParsing/ReferenceLinkMarkdown13.java b/java/java-tests/testData/psi/parser-full/javadocParsing/ReferenceLinkMarkdown13.java new file mode 100644 index 000000000000..04ad718779de --- /dev/null +++ b/java/java-tests/testData/psi/parser-full/javadocParsing/ReferenceLinkMarkdown13.java @@ -0,0 +1,2 @@ +/// [link to module][java.base/] +class C {} \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-full/javadocParsing/ReferenceLinkMarkdown13.txt b/java/java-tests/testData/psi/parser-full/javadocParsing/ReferenceLinkMarkdown13.txt new file mode 100644 index 000000000000..90bc309d4c15 --- /dev/null +++ b/java/java-tests/testData/psi/parser-full/javadocParsing/ReferenceLinkMarkdown13.txt @@ -0,0 +1,34 @@ +PsiJavaFile:ReferenceLinkMarkdown13.java + PsiImportList + + PsiClass:C + PsiDocComment + PsiDocToken:DOC_COMMENT_LEADING_ASTERISKS('///') + PsiWhiteSpace(' ') + PsiReferenceLink: + PsiDocToken:DOC_LBRACKET('[') + PsiReferenceLabel: + PsiDocToken:DOC_COMMENT_DATA('link to module') + PsiDocToken:DOC_RBRACKET(']') + PsiDocToken:DOC_LBRACKET('[') + PsiElement(DOC_METHOD_OR_FIELD_REF) + PsiElement(DOC_TAG_VALUE_ELEMENT) + PsiJavaModuleReference + PsiDocToken:DOC_COMMENT_DATA('java.base') + PsiDocToken:DOC_TAG_VALUE_SLASH('/') + 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/ReferenceLinkMarkdown13_node.txt b/java/java-tests/testData/psi/parser-full/javadocParsing/ReferenceLinkMarkdown13_node.txt new file mode 100644 index 000000000000..2d8bb325a501 --- /dev/null +++ b/java/java-tests/testData/psi/parser-full/javadocParsing/ReferenceLinkMarkdown13_node.txt @@ -0,0 +1,34 @@ +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_RBRACKET + DOC_LBRACKET + DOC_METHOD_OR_FIELD_REF + DOC_TAG_VALUE_ELEMENT + MODULE_REFERENCE + DOC_COMMENT_DATA + DOC_TAG_VALUE_SLASH + 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