diff runtime/indent/sshconfig.vim @ 20552:74e3316c1d5a

Update runtime files Commit: https://github.com/vim/vim/commit/388a5d4f20b4b64341d1604aa238cab85827b892 Author: Bram Moolenaar <Bram@vim.org> Date: Tue May 26 21:20:45 2020 +0200 Update runtime files
author Bram Moolenaar <Bram@vim.org>
date Tue, 26 May 2020 21:30:04 +0200
parents
children
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/runtime/indent/sshconfig.vim
@@ -0,0 +1,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