Duc*_*ppy 9 vim groovy indentation auto-indent
我正在尝试使用Vim来处理一些Groovy代码.当不使用分号时,它似乎不能很好地处理自动注册.我发现了一些与Ruby和JavaScript有关的问题,但是我找不到任何修复工作.我有filetype plugin indent on我的.vimrc,并且不设置cindent,autoindent或smartindent.我已经尝试setlocal nocindent nosmartindent在Groovy缓冲区中运行并重新提交文件,ggVG=以防万一在幕后设置插件,它仍然总是错误.
例如,我在一个小样本上得到这个(来自我在Groovy中编写的个人libGDX沙箱应用程序)
@Override
void render () {
Gdx.gl.glClearColor(0.75f, 0.75f, 0.75f, 1)
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT)
batch.begin()
batch.draw(img, 0, 0)
font.draw(batch, "Testing", 300, 400)
batch.end()
}
Run Code Online (Sandbox Code Playgroud)
注意注释,左括号和函数第一行之后的额外缩进.我的.vimrc相当复杂,但如果有人认为这会有所帮助,我可以发布一个指向我的dotfiles的链接.
FDi*_*off 10
Vim没有为groovy提供缩进脚本.因此它尝试使用基于C的标准缩进规则.这些规则使用分号来确定行是否结束,这就是为什么在函数的第二行上得到行继续缩进的原因.
由于vim不包含缩进脚本,因此您可以使用groovyindent插件.放在~/.vim/indent.你还需要dos2unix在groovy.vim 上运行,因为它包含错误的行结尾.