在JUnit @Test注释后跳过第一行的缩进

时间:2011-07-24 11:06:56

标签: vim junit

一般来说,我喜欢在方法声明之前的行上有方法的注释标签,包括@Test的标签,如

@Test
public void testMyMethod() {
// Code
}

而不是

@Test public void testMyMethod() {
// Code
}

我在〜/ .vim / ftplugins / java.vim中有特定于java的设置。我可以添加到java.vim中,以便在@Test标记之后的第一行跳过缩进?目前vim将按照java.vim的说法缩进4个字符

@Test
____* <-- cursor placed here

虽然我更喜欢

@Test
* <-- Cursor placed here

1 个答案:

答案 0 :(得分:0)

我在C ++中做了类似的事情,我公司的编码风格不希望命名空间块中的缩进。在this post有一个答案,根据你的问题调整它只会将'^\s*namespace.*'位交换到你想要的模式。如果它适用于所有注释,可能只是......

function! IndentAnnotation()
  let l:cline_num = line('.')
  let l:pline_num = prevnonblank(l:cline_num - 1)
  let l:pline = getline(l:pline_num)
  let l:retv = cindent('.')
  while l:pline =~# '\(^\s*{\s*\|^\s*//\|^\s*/\*\|\*/\s*$\)'
    let l:pline_num = prevnonblank(l:pline_num - 1)
    let l:pline = getline(l:pline_num)
  endwhile
  if l:pline =~# '^\s*@.*'
    let l:retv = 0
  endif
  return l:retv
endfunction

setlocal indentexpr=IndentAnnotation()

将其保存在vimfiles中(在〜/ vimfiles中或在homedir中的窗口上或在ProgramFiles \ vim \ vimfiles中)作为indent / java.vim。如果您需要在正在缩进的行上方的行上进行注释(没有插入空行),则可以通过删除while / endwhile搜索非空白行来简化。

相关问题