xref: /vim-8.2.3635/runtime/indent/sshconfig.vim (revision ceb56ddb)
1" Vim indent file
2" Language: ssh config file
3" Maintainer: JasonKim <[email protected]>
4" Last Change: 2020 May 16
5
6if exists("b:did_indent")
7  finish
8endif
9let b:did_indent = 1
10
11setlocal autoindent
12setlocal indentexpr=GetSshconfigIndent(v:lnum)
13setlocal indentkeys=o,O,*<Return>,0=~host\ ,0=~match\ ,0#,!^F
14
15let b:undo_indent = "setlocal autoindent< indentexpr< indentkeys<"
16
17if exists("*GetSshconfigIndent")
18  finish
19endif
20
21function GetSshconfigIndent(lnum)
22  let sw = shiftwidth()
23  let prev_lnum = prevnonblank(a:lnum - 1)
24  let curr_lnum = a:lnum
25  let prev_line = getline(prev_lnum)
26  let curr_line = getline(curr_lnum)
27  if curr_line =~? '^\s*\(host\|match\)\s'
28    return 0
29  elseif prev_line =~? '^\s*\(host\|match\)\s'
30    return sw
31  else
32    return indent(prev_lnum)
33  endif
34endfunction
35