diff options
author | Christian Clason <c.clason@uni-graz.at> | 2024-08-22 21:25:51 +0200 |
---|---|---|
committer | Christian Clason <c.clason@uni-graz.at> | 2024-08-22 23:45:48 +0200 |
commit | 3b32869ced32821fb58f0a7c08094105be7bdaf0 (patch) | |
tree | 85ef5a9dd6fca64f480abc0afd3b3cc8698a44f8 /runtime/syntax/java.vim | |
parent | 8db8793503511c13c8da9e6fd9c9d0468e42f67b (diff) | |
download | rneovim-3b32869ced32821fb58f0a7c08094105be7bdaf0.tar.gz rneovim-3b32869ced32821fb58f0a7c08094105be7bdaf0.tar.bz2 rneovim-3b32869ced32821fb58f0a7c08094105be7bdaf0.zip |
vim-patch:2750b83: runtime(java): Make the bundled &foldtext function optional
- Obtain and pass through translated messages with this
function.
- If "g:java_foldtext_show_first_or_second_line" is defined,
assign this function to &foldtext.
closes: vim/vim#15549
https://github.com/vim/vim/commit/2750b83fa1a917c13d0cae3e791493720dcaadaa
Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
Diffstat (limited to 'runtime/syntax/java.vim')
-rw-r--r-- | runtime/syntax/java.vim | 64 |
1 files changed, 42 insertions, 22 deletions
diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim index 0ed8194594..51ef8395b9 100644 --- a/runtime/syntax/java.vim +++ b/runtime/syntax/java.vim @@ -3,7 +3,7 @@ " Maintainer: Aliaksei Budavei <0x000c70 AT gmail DOT com> " Former Maintainer: Claudio Fleiner <claudio@fleiner.com> " Repository: https://github.com/zzzyxwvut/java-vim.git -" Last Change: 2024 Jul 30 +" Last Change: 2024 Aug 22 " Please check :help java.vim for comments on some of the options available. @@ -39,17 +39,27 @@ else endfunction endif -function! JavaSyntaxFoldTextExpr() abort - return getline(v:foldstart) !~ '/\*\+\s*$' - \ ? foldtext() - \ : printf('+-%s%3d lines: ', - \ v:folddashes, - \ (v:foldend - v:foldstart + 1)) . - \ getline(v:foldstart + 1) -endfunction +if exists("g:java_foldtext_show_first_or_second_line") + function! s:LazyPrefix(prefix, dashes, count) abort + return empty(a:prefix) + \ ? printf('+-%s%3d lines: ', a:dashes, a:count) + \ : a:prefix + endfunction + + function! JavaSyntaxFoldTextExpr() abort + " Piggyback on NGETTEXT. + let summary = foldtext() + return getline(v:foldstart) !~ '/\*\+\s*$' + \ ? summary + \ : s:LazyPrefix(matchstr(summary, '^+-\+\s*\d\+\s.\{-1,}:\s'), + \ v:folddashes, + \ (v:foldend - v:foldstart + 1)) . + \ getline(v:foldstart + 1) + endfunction -" E120 for "fdt=s:JavaSyntaxFoldTextExpr()" before v8.2.3900. -setlocal foldtext=JavaSyntaxFoldTextExpr() + " E120 for "fdt=s:JavaSyntaxFoldTextExpr()" before v8.2.3900. + setlocal foldtext=JavaSyntaxFoldTextExpr() +endif " Admit the ASCII dollar sign to keyword characters (JLS-17, ยง3.8): try @@ -624,15 +634,25 @@ if !has("vim9script") finish endif -def! s:JavaSyntaxFoldTextExpr(): string - return getline(v:foldstart) !~ '/\*\+\s*$' - ? foldtext() - : printf('+-%s%3d lines: ', - v:folddashes, - (v:foldend - v:foldstart + 1)) .. - getline(v:foldstart + 1) -enddef - -setlocal foldtext=s:JavaSyntaxFoldTextExpr() -delfunction! g:JavaSyntaxFoldTextExpr +if exists("g:java_foldtext_show_first_or_second_line") + def! s:LazyPrefix(prefix: string, dashes: string, count: number): string + return empty(prefix) + ? printf('+-%s%3d lines: ', dashes, count) + : prefix + enddef + + def! s:JavaSyntaxFoldTextExpr(): string + # Piggyback on NGETTEXT. + const summary: string = foldtext() + return getline(v:foldstart) !~ '/\*\+\s*$' + ? summary + : LazyPrefix(matchstr(summary, '^+-\+\s*\d\+\s.\{-1,}:\s'), + v:folddashes, + (v:foldend - v:foldstart + 1)) .. + getline(v:foldstart + 1) + enddef + + setlocal foldtext=s:JavaSyntaxFoldTextExpr() + delfunction! g:JavaSyntaxFoldTextExpr +endif " vim: sw=2 ts=8 noet sta |