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