|
3 | 3 | " Maintainer: Aliaksei Budavei <0x000c70 AT gmail DOT com> |
4 | 4 | " Former Maintainer: Claudio Fleiner <[email protected]> |
5 | 5 | " Repository: https://github.com/zzzyxwvut/java-vim.git |
6 | | -" Last Change: 2024 Aug 26 |
| 6 | +" Last Change: 2024 Sep 10 |
7 | 7 |
|
8 | 8 | " Please check :help java.vim for comments on some of the options available. |
9 | 9 |
|
@@ -157,13 +157,20 @@ endif |
157 | 157 | " testing in a project without attendant confusion for IDEs, with the |
158 | 158 | " ".java\=" extension used for a production version and an arbitrary |
159 | 159 | " extension used for a testing version. |
160 | | -if fnamemodify(bufname("%"), ":t") =~ '^module-info\%(\.class\>\)\@!' |
| 160 | +if fnamemodify(bufname("%"), ":t") =~ '^module-info\>\%(\.class\>\)\@!' |
161 | 161 | syn keyword javaModuleStorageClass module transitive |
162 | 162 | syn keyword javaModuleStmt open requires exports opens uses provides |
163 | 163 | syn keyword javaModuleExternal to with |
164 | 164 | hi def link javaModuleStorageClass StorageClass |
165 | 165 | hi def link javaModuleStmt Statement |
166 | 166 | hi def link javaModuleExternal Include |
| 167 | + |
| 168 | + if !exists("g:java_ignore_javadoc") && g:main_syntax != 'jsp' |
| 169 | + syn match javaDocProvidesTag contained "@provides\_s\+\S\+" contains=javaDocParam |
| 170 | + syn match javaDocUsesTag contained "@uses\_s\+\S\+" contains=javaDocParam |
| 171 | + hi def link javaDocProvidesTag Special |
| 172 | + hi def link javaDocUsesTag Special |
| 173 | + endif |
167 | 174 | endif |
168 | 175 |
|
169 | 176 | " Fancy parameterised types (JLS-17, §4.5). |
@@ -335,29 +342,99 @@ if !exists("g:java_ignore_javadoc") && g:main_syntax != 'jsp' |
335 | 342 | call s:ReportOnce(v:exception) |
336 | 343 | endtry |
337 | 344 |
|
338 | | - syn region javaDocComment start="/\*\*" end="\*/" keepend contains=javaCommentTitle,@javaHtml,javaDocTags,javaDocSeeTag,javaDocCodeTag,javaDocSnippetTag,javaTodo,javaCommentError,javaSpaceError,@Spell fold |
339 | | - exec 'syn region javaCommentTitle contained matchgroup=javaDocComment start="/\*\*" matchgroup=javaCommentTitle end="\.$" end="\.[ \t\r]\@=" end="\%(^\s*\**\s*\)\@' . s:ff.Peek('80', '') . '<=@"me=s-2,he=s-1 end="\*/"me=s-1,he=s-1 contains=@javaHtml,javaCommentStar,javaTodo,javaCommentError,javaSpaceError,@Spell,javaDocTags,javaDocSeeTag,javaDocCodeTag,javaDocSnippetTag' |
340 | | - syn region javaCommentTitle contained matchgroup=javaDocComment start="/\*\*\s*\r\=\n\=\s*\**\s*\%({@return\>\)\@=" matchgroup=javaCommentTitle end="}\%(\s*\.*\)*" contains=@javaHtml,javaCommentStar,javaTodo,javaCommentError,javaSpaceError,@Spell,javaDocTags,javaDocSeeTag,javaDocCodeTag,javaDocSnippetTag |
341 | | - syn region javaDocTags contained start="{@\%(li\%(teral\|nk\%(plain\)\=\)\|inherit[Dd]oc\|doc[rR]oot\|value\)\>" end="}" |
342 | | - syn match javaDocTags contained "@\%(param\|exception\|throws\|since\)\s\+\S\+" contains=javaDocParam |
343 | | - syn match javaDocParam contained "\s\S\+" |
344 | | - syn match javaDocTags contained "@\%(version\|author\|return\|deprecated\|serial\%(Field\|Data\)\=\)\>" |
345 | | - syn region javaDocSeeTag contained matchgroup=javaDocTags start="@see\s\+" matchgroup=NONE end="\_."re=e-1 contains=javaDocSeeTagParam |
346 | | - syn match javaDocSeeTagParam contained @"\_[^"]\+"\|<a\s\+\_.\{-}</a>\|\%(\k\|\.\)*\%(#\k\+\%((\_[^)]*)\)\=\)\=@ contains=@javaHtml extend |
| 345 | + syn region javaDocComment start="/\*\*" end="\*/" keepend contains=javaCommentTitle,@javaHtml,@javaDocTags,javaTodo,javaCommentError,javaSpaceError,@Spell fold |
| 346 | + exec 'syn region javaCommentTitle contained matchgroup=javaDocComment start="/\*\*" matchgroup=javaCommentTitle end="\.$" end="\.[ \t\r]\@=" end="\%(^\s*\**\s*\)\@' . s:ff.Peek('80', '') . '<=@"me=s-2,he=s-1 end="\*/"me=s-1,he=s-1 contains=@javaHtml,javaCommentStar,javaTodo,javaCommentError,javaSpaceError,@Spell,@javaDocTags' |
| 347 | + syn region javaCommentTitle contained matchgroup=javaDocComment start="/\*\*\s*\r\=\n\=\s*\**\s*\%({@return\>\)\@=" matchgroup=javaCommentTitle end="}\%(\s*\.*\)*" contains=@javaHtml,javaCommentStar,javaTodo,javaCommentError,javaSpaceError,@Spell,@javaDocTags,javaTitleSkipBlock |
| 348 | + syn region javaCommentTitle contained matchgroup=javaDocComment start="/\*\*\s*\r\=\n\=\s*\**\s*\%({@summary\>\)\@=" matchgroup=javaCommentTitle end="}" contains=@javaHtml,javaCommentStar,javaTodo,javaCommentError,javaSpaceError,@Spell,@javaDocTags,javaTitleSkipBlock |
| 349 | + " The members of javaDocTags are sub-grouped according to the Java |
| 350 | + " version of their introduction, and sub-group members in turn are |
| 351 | + " arranged in alphabetical order, so that future newer members can |
| 352 | + " be pre-sorted and appended without disturbing the current member |
| 353 | + " placement. |
| 354 | + " Since they only have significance in javaCommentTitle, neither |
| 355 | + " javaDocSummaryTag nor javaDocReturnTitleTag are defined. |
| 356 | + syn cluster javaDocTags contains=javaDocAuthorTag,javaDocDeprecatedTag,javaDocExceptionTag,javaDocParamTag,javaDocReturnTag,javaDocSeeTag,javaDocVersionTag,javaDocSinceTag,javaDocLinkTag,javaDocSerialTag,javaDocSerialDataTag,javaDocSerialFieldTag,javaDocThrowsTag,javaDocDocRootTag,javaDocInheritDocTag,javaDocLinkplainTag,javaDocValueTag,javaDocCodeTag,javaDocLiteralTag,javaDocHiddenTag,javaDocIndexTag,javaDocProvidesTag,javaDocUsesTag,javaDocSystemPropertyTag,javaDocSnippetTag,javaDocSpecTag |
| 357 | + |
| 358 | + " Anticipate non-standard inline tags in {@return} and {@summary}. |
| 359 | + syn region javaTitleSkipBlock contained transparent start="{\%(@\%(return\|summary\)\>\)\@!" end="}" |
| 360 | + syn match javaDocDocRootTag contained "{@docRoot}" |
| 361 | + syn match javaDocInheritDocTag contained "{@inheritDoc}" |
| 362 | + syn region javaIndexSkipBlock contained transparent start="{\%(@index\>\)\@!" end="}" contains=javaIndexSkipBlock,javaDocIndexTag |
| 363 | + syn region javaDocIndexTag contained start="{@index\>" end="}" contains=javaDocIndexTag,javaIndexSkipBlock |
| 364 | + syn region javaLinkSkipBlock contained transparent start="{\%(@link\>\)\@!" end="}" contains=javaLinkSkipBlock,javaDocLinkTag |
| 365 | + syn region javaDocLinkTag contained start="{@link\>" end="}" contains=javaDocLinkTag,javaLinkSkipBlock |
| 366 | + syn region javaLinkplainSkipBlock contained transparent start="{\%(@linkplain\>\)\@!" end="}" contains=javaLinkplainSkipBlock,javaDocLinkplainTag |
| 367 | + syn region javaDocLinkplainTag contained start="{@linkplain\>" end="}" contains=javaDocLinkplainTag,javaLinkplainSkipBlock |
| 368 | + syn region javaLiteralSkipBlock contained transparent start="{\%(@literal\>\)\@!" end="}" contains=javaLiteralSkipBlock,javaDocLiteralTag |
| 369 | + syn region javaDocLiteralTag contained start="{@literal\>" end="}" contains=javaDocLiteralTag,javaLiteralSkipBlock |
| 370 | + syn region javaSystemPropertySkipBlock contained transparent start="{\%(@systemProperty\>\)\@!" end="}" contains=javaSystemPropertySkipBlock,javaDocSystemPropertyTag |
| 371 | + syn region javaDocSystemPropertyTag contained start="{@systemProperty\>" end="}" contains=javaDocSystemPropertyTag,javaSystemPropertySkipBlock |
| 372 | + syn region javaValueSkipBlock contained transparent start="{\%(@value\>\)\@!" end="}" contains=javaValueSkipBlock,javaDocValueTag |
| 373 | + syn region javaDocValueTag contained start="{@value\>" end="}" contains=javaDocValueTag,javaValueSkipBlock |
| 374 | + |
| 375 | + syn match javaDocParam contained "\s\zs\S\+" |
| 376 | + syn match javaDocExceptionTag contained "@exception\s\+\S\+" contains=javaDocParam |
| 377 | + syn match javaDocParamTag contained "@param\s\+\S\+" contains=javaDocParam |
| 378 | + syn match javaDocSinceTag contained "@since\s\+\S\+" contains=javaDocParam |
| 379 | + syn match javaDocThrowsTag contained "@throws\s\+\S\+" contains=javaDocParam |
| 380 | + syn match javaDocSpecTag contained "@spec\_s\+\S\+\ze\_s\+\S\+" contains=javaDocParam |
| 381 | + |
| 382 | + syn match javaDocAuthorTag contained "@author\>" |
| 383 | + syn match javaDocDeprecatedTag contained "@deprecated\>" |
| 384 | + syn match javaDocHiddenTag contained "@hidden\>" |
| 385 | + syn match javaDocReturnTag contained "@return\>" |
| 386 | + syn match javaDocSerialTag contained "@serial\>" |
| 387 | + syn match javaDocSerialDataTag contained "@serialData\>" |
| 388 | + syn match javaDocSerialFieldTag contained "@serialField\>" |
| 389 | + syn match javaDocVersionTag contained "@version\>" |
| 390 | + |
| 391 | + syn match javaDocSeeTag contained "@see\>" nextgroup=javaDocSeeTag1,javaDocSeeTag2,javaDocSeeTag3,javaDocSeeTagStar skipwhite skipempty |
| 392 | + syn match javaDocSeeTagStar contained "^\s*\*\+\%(\s*{\=@\|/\|$\)\@!" nextgroup=javaDocSeeTag1,javaDocSeeTag2,javaDocSeeTag3 skipwhite skipempty |
| 393 | + syn match javaDocSeeTag1 contained @"\_[^"]\+"@ |
| 394 | + syn match javaDocSeeTag2 contained @<a\s\+\_.\{-}</a>@ contains=@javaHtml extend |
| 395 | + syn match javaDocSeeTag3 contained @["< \t]\@!\%(\k\|[/.]\)*\%(##\=\k\+\%((\_[^)]*)\)\=\)\=@ nextgroup=javaDocSeeTag3Label skipwhite skipempty |
| 396 | + syn match javaDocSeeTag3Label contained @\k\%(\k\+\s*\)*$@ |
| 397 | + |
347 | 398 | syn region javaCodeSkipBlock contained transparent start="{\%(@code\>\)\@!" end="}" contains=javaCodeSkipBlock,javaDocCodeTag |
348 | 399 | syn region javaDocCodeTag contained start="{@code\>" end="}" contains=javaDocCodeTag,javaCodeSkipBlock |
| 400 | + |
349 | 401 | exec 'syn region javaDocSnippetTagAttr contained transparent matchgroup=javaHtmlArg start=/\<\%(class\|file\|id\|lang\|region\)\%(\s*=\)\@=/ matchgroup=javaHtmlString end=/:$/ end=/\%(=\s*\)\@' . s:ff.Peek('80', '') . '<=\%("[^"]\+"\|' . "\x27[^\x27]\\+\x27" . '\|\%([.\\/-]\|\k\)\+\)/ nextgroup=javaDocSnippetTagAttr skipwhite skipnl' |
350 | 402 | syn region javaSnippetSkipBlock contained transparent start="{\%(@snippet\>\)\@!" end="}" contains=javaSnippetSkipBlock,javaDocSnippetTag,javaCommentMarkupTag |
351 | 403 | syn region javaDocSnippetTag contained start="{@snippet\>" end="}" contains=javaDocSnippetTag,javaSnippetSkipBlock,javaDocSnippetTagAttr,javaCommentMarkupTag |
352 | 404 |
|
353 | 405 | syntax case match |
354 | 406 | hi def link javaDocComment Comment |
| 407 | + hi def link javaDocSeeTagStar javaDocComment |
355 | 408 | hi def link javaCommentTitle SpecialComment |
356 | | - hi def link javaDocTags Special |
| 409 | + hi def link javaDocParam Function |
| 410 | + |
| 411 | + hi def link javaDocAuthorTag Special |
357 | 412 | hi def link javaDocCodeTag Special |
| 413 | + hi def link javaDocDeprecatedTag Special |
| 414 | + hi def link javaDocDocRootTag Special |
| 415 | + hi def link javaDocExceptionTag Special |
| 416 | + hi def link javaDocHiddenTag Special |
| 417 | + hi def link javaDocIndexTag Special |
| 418 | + hi def link javaDocInheritDocTag Special |
| 419 | + hi def link javaDocLinkTag Special |
| 420 | + hi def link javaDocLinkplainTag Special |
| 421 | + hi def link javaDocLiteralTag Special |
| 422 | + hi def link javaDocParamTag Special |
| 423 | + hi def link javaDocReturnTag Special |
| 424 | + hi def link javaDocSeeTag Special |
| 425 | + hi def link javaDocSeeTag1 String |
| 426 | + hi def link javaDocSeeTag2 Special |
| 427 | + hi def link javaDocSeeTag3 Function |
| 428 | + hi def link javaDocSerialTag Special |
| 429 | + hi def link javaDocSerialDataTag Special |
| 430 | + hi def link javaDocSerialFieldTag Special |
| 431 | + hi def link javaDocSinceTag Special |
358 | 432 | hi def link javaDocSnippetTag Special |
359 | | - hi def link javaDocSeeTagParam Function |
360 | | - hi def link javaDocParam Function |
| 433 | + hi def link javaDocSpecTag Special |
| 434 | + hi def link javaDocSystemPropertyTag Special |
| 435 | + hi def link javaDocThrowsTag Special |
| 436 | + hi def link javaDocValueTag Special |
| 437 | + hi def link javaDocVersionTag Special |
361 | 438 | endif |
362 | 439 |
|
363 | 440 | " match the special comment /**/ |
|
0 commit comments