" Vim formatting plugin file " Language: Java " Maintainer: Aliaksei Budavei <0x000c70 AT gmail DOT com> " Repository: https://github.com/zzzyxwvut/java-vim.git " Last Change: 2024 Sep 26 " Documented in ":help ft-java-plugin". if &cp || exists("g:loaded_javaformat") || exists("g:java_ignore_javadoc") || exists("g:java_ignore_markdown") finish endif let g:loaded_javaformat = 1 """" STRIVE TO REMAIN COMPATIBLE FOR AT LEAST VIM 7.0. function! javaformat#RemoveCommonMarkdownWhitespace() abort if mode() != 'n' return 0 endif let pattern = '\(^\s*///\)\(\s*\)\(.*\)' " E121 for v:numbermax before v8.2.2388. " E15 for expr-<< before v8.2.5003. let common = 0x7fffffff let comments = [] for n in range(v:lnum, (v:lnum + v:count - 1)) let parts = matchlist(getline(n), pattern) let whitespace = get(parts, 2, '') let nonwhitespace = get(parts, 3, '') if !empty(whitespace) let common = min([common, strlen(whitespace)]) elseif !empty(nonwhitespace) || empty(parts) " No whitespace prefix or not a Markdown comment. return 0 endif call add(comments, [whitespace, parts[1], nonwhitespace]) endfor let cursor = v:lnum for line in comments call setline(cursor, join(line[1 :], strpart(line[0], common))) let cursor += 1 endfor return 0 endfunction " See ":help vim9-mix". if !has("vim9script") finish endif def! g:javaformat#RemoveCommonMarkdownWhitespace(): number if mode() != 'n' return 0 endif const pattern: string = '\(^\s*///\)\(\s*\)\(.*\)' var common: number = v:numbermax var comments: list> = [] for n in range(v:lnum, (v:lnum + v:count - 1)) const parts: list = matchlist(getline(n), pattern) const whitespace: string = get(parts, 2, '') const nonwhitespace: string = get(parts, 3, '') if !empty(whitespace) common = min([common, strlen(whitespace)]) elseif !empty(nonwhitespace) || empty(parts) # No whitespace prefix or not a Markdown comment. return 0 endif add(comments, [whitespace, parts[1], nonwhitespace]) endfor var cursor: number = v:lnum for line in comments setline(cursor, join(line[1 :], strpart(line[0], common))) cursor += 1 endfor return 0 enddef " vim: fdm=syntax sw=4 ts=8 noet sta