我想以某种方式将我的java代码置于括号内,就像它在括号内一样。这里是一个虚拟示例,说明它的外观:
public String hello(
String really,
String looong,
String listOf,
Optional<String> params
) {
return params.map((p) -> "Do something with the value " + p).orElse("world");
}
我试图使用cinoptions
解决它,但似乎没有这样的选择。我不想最终为Java编写自定义identexpr
。
好吧,因为我找不到一个简单的解决方案,所以我通过将以下代码放入 ~/.vim/after/indent/java.vim
:
setlocal indentexpr=GetMyJavaIndent()
function GetMyJavaIndent()
" When the line starts with a ), try aligning it with the matching (
if getline(v:lnum) =~ '^s*)'
call cursor(v:lnum, 1)
silent normal! %
let lnum = line('.')
if lnum < v:lnum
return indent(lnum)
endif
endif
return GetJavaIndent()
endfunction