]> git.ipfire.org Git - thirdparty/vim.git/commit
runtime(java): Fold multi-line comments with the syntax kind of &fdm (#15016)
authorAliaksei Budavei <32549825+zzzyxwvut@users.noreply.github.com>
Sun, 16 Jun 2024 06:42:55 +0000 (09:42 +0300)
committerGitHub <noreply@github.com>
Sun, 16 Jun 2024 06:42:55 +0000 (08:42 +0200)
commit371bab05947b32f26d1b32922e5dc38343a875bc
tree88b6d95b94f7a004c4075dfeeebd146882ec249a
parentf127dce1889a80280c16ef1163307f4086434182
runtime(java): Fold multi-line comments with the syntax kind of &fdm (#15016)

Also:

- Restore the capability to mark as an error braces nested
  in parens with g:javaInParen.
- Try not to fold top-level-type bodies.  (Defining multiple
  package-private top level types in a single source file is
  not recommended as it can impose order among compilation
  units; so it is assumed that only one such top level type
  is usually defined.)
- Compose ‘method header’ highlighting and block braces
  folding.
- Do not highlight block braces whenever ‘method header’
  highlighting is requested.

This bundling of ‘method headers’ and block braces for
highlighting can be traced back to Vim v5.0; however, no
comment or documentation entry conveys any justification.
For example, it is hard to discover the connection between
block braces for "while", "if", etc., statements and method
body block braces.  The former behaviour can be attained in,
e.g. ~/.vim/after/syntax/java.vim:

------------------------------------------------------------
if exists("g:java_highlight_functions")
    syn clear javaBlock javaInParen
    syn match javaBlockOther "[{}]"
    syn region javaBlock transparent matchgroup=javaBlockStart
\ start="\%(^\|^\S[^:]\+\)\@120<!{" end="}" fold
    hi def link javaBlockStart javaFuncDef
    hi def link javaBlockOther javaBlockStart

    if exists("g:java_mark_braces_in_parens_as_errors")
syn match javaInParen contained "[{}]"
    endif
endif
------------------------------------------------------------

Note: Read ‘a method header omitting a _throws_ clause’ for
every ‘method header’ appellation used above.

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
53 files changed:
runtime/syntax/java.vim
runtime/syntax/testdir/dumps/java_annotations_00.dump
runtime/syntax/testdir/dumps/java_annotations_01.dump
runtime/syntax/testdir/dumps/java_annotations_02.dump
runtime/syntax/testdir/dumps/java_annotations_03.dump
runtime/syntax/testdir/dumps/java_annotations_04.dump
runtime/syntax/testdir/dumps/java_annotations_99.dump
runtime/syntax/testdir/dumps/java_enfoldment_00.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/java_enfoldment_01.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/java_enfoldment_02.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/java_enfoldment_03.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/java_enfoldment_04.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/java_enfoldment_99.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/java_lambda_expressions_00.dump
runtime/syntax/testdir/dumps/java_lambda_expressions_03.dump
runtime/syntax/testdir/dumps/java_lambda_expressions_04.dump
runtime/syntax/testdir/dumps/java_lambda_expressions_05.dump
runtime/syntax/testdir/dumps/java_lambda_expressions_06.dump
runtime/syntax/testdir/dumps/java_lambda_expressions_07.dump
runtime/syntax/testdir/dumps/java_lambda_expressions_08.dump
runtime/syntax/testdir/dumps/java_lambda_expressions_99.dump
runtime/syntax/testdir/dumps/java_methods_indent2_00.dump
runtime/syntax/testdir/dumps/java_methods_indent2_01.dump
runtime/syntax/testdir/dumps/java_methods_indent2_02.dump
runtime/syntax/testdir/dumps/java_methods_indent2_03.dump
runtime/syntax/testdir/dumps/java_methods_indent2_04.dump
runtime/syntax/testdir/dumps/java_methods_indent2_99.dump
runtime/syntax/testdir/dumps/java_methods_indent4_00.dump
runtime/syntax/testdir/dumps/java_methods_indent4_01.dump
runtime/syntax/testdir/dumps/java_methods_indent4_02.dump
runtime/syntax/testdir/dumps/java_methods_indent4_03.dump
runtime/syntax/testdir/dumps/java_methods_indent4_04.dump
runtime/syntax/testdir/dumps/java_methods_indent4_99.dump
runtime/syntax/testdir/dumps/java_methods_indent8_00.dump
runtime/syntax/testdir/dumps/java_methods_indent8_01.dump
runtime/syntax/testdir/dumps/java_methods_indent8_02.dump
runtime/syntax/testdir/dumps/java_methods_indent8_03.dump
runtime/syntax/testdir/dumps/java_methods_indent8_04.dump
runtime/syntax/testdir/dumps/java_methods_indent8_99.dump
runtime/syntax/testdir/dumps/java_methods_style_00.dump
runtime/syntax/testdir/dumps/java_methods_style_01.dump
runtime/syntax/testdir/dumps/java_methods_style_02.dump
runtime/syntax/testdir/dumps/java_methods_style_03.dump
runtime/syntax/testdir/dumps/java_methods_style_04.dump
runtime/syntax/testdir/dumps/java_methods_style_99.dump
runtime/syntax/testdir/dumps/java_unfoldment_00.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/java_unfoldment_01.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/java_unfoldment_02.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/java_unfoldment_03.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/java_unfoldment_04.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/java_unfoldment_99.dump [new file with mode: 0644]
runtime/syntax/testdir/input/java_enfoldment.java [new file with mode: 0644]
runtime/syntax/testdir/input/java_unfoldment.java [new file with mode: 0644]