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