blob: b456a9e3aa60120e038240cc799a151c857a59d8 [file] [log] [blame]
Bram Moolenaar388a5d42020-05-26 21:20:45 +02001" Vim indent file
2" Language: ssh config file
3" Maintainer: JasonKim <git@jasonk.me>
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