diff runtime/indent/sh.vim @ 8246:f16bfe02cef1

commit https://github.com/vim/vim/commit/f391327adbbffb11180cf6038a92af1ed144e907 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Feb 25 00:00:01 2016 +0100 Updated runtime files.
author Christian Brabandt <cb@256bit.org>
date Thu, 25 Feb 2016 00:15:06 +0100
parents 00d64eb49ce1
children 619a98a67f67
line wrap: on
line diff
--- a/runtime/indent/sh.vim
+++ b/runtime/indent/sh.vim
@@ -3,7 +3,7 @@
 " Maintainer:          Christian Brabandt <cb@256bit.org>
 " Previous Maintainer: Peter Aronoff <telemachus@arpinum.org>
 " Original Author:     Nikolai Weibull <now@bitwi.se>
-" Latest Revision:     2016-01-15
+" Latest Revision:     2016-02-15
 " License:             Vim (see :h license)
 " Repository:          https://github.com/chrisbra/vim-sh-indent
 
@@ -12,14 +12,14 @@ if exists("b:did_indent")
 endif
 let b:did_indent = 1
 
-let b:undo_indent = 'setlocal indentexpr< indentkeys< smartindent<'
-
 setlocal indentexpr=GetShIndent()
 setlocal indentkeys+=0=then,0=do,0=else,0=elif,0=fi,0=esac,0=done,0=end,),0=;;,0=;&
 setlocal indentkeys+=0=fin,0=fil,0=fip,0=fir,0=fix
 setlocal indentkeys-=:,0#
 setlocal nosmartindent
 
+let b:undo_indent = 'setlocal indentexpr< indentkeys< smartindent<'
+
 if exists("*GetShIndent")
   finish
 endif
@@ -67,7 +67,7 @@ function! GetShIndent()
     if !s:is_case_ended(line)
       let ind += s:indent_value('case-statements')
     endif
-  elseif line =~ '^\s*\<\k\+\>\s*()\s*{' || line =~ '^\s*{'
+  elseif line =~ '^\s*\<\k\+\>\s*()\s*{' || line =~ '^\s*{' || line =~ '^\s*function\s*\w\S\+\s*\%(()\)\?\s*{'
     if line !~ '}\s*\%(#.*\)\=$'
       let ind += s:indent_value('default')
     endif