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