Updated runtime files.

This commit is contained in:
Bram Moolenaar
2016-07-02 21:42:23 +02:00
parent 0fcc7c6dd1
commit e18dbe865d
17 changed files with 224 additions and 140 deletions

View File

@ -3,9 +3,15 @@
" Maintainer: Christian Brabandt <cb@256bit.org>
" Previous Maintainer: Peter Aronoff <telemachus@arpinum.org>
" Original Author: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2016-02-15
" Latest Revision: 2016-06-27
" License: Vim (see :h license)
" Repository: https://github.com/chrisbra/vim-sh-indent
" Changelog:
" 20160627: - detect heredocs correctly
" 20160213: - detect function definition correctly
" 20160202: - use shiftwidth() function
" 20151215: - set b:undo_indent variable
" 20150728: - add foreach detection for zsh
if exists("b:did_indent")
finish
@ -102,6 +108,8 @@ function! GetShIndent()
endif
elseif s:is_case_break(line)
let ind -= s:indent_value('case-breaks')
elseif s:is_here_doc(line)
let ind = 0
endif
return ind
@ -160,6 +168,14 @@ function! s:is_case_break(line)
return a:line =~ '^\s*;[;&]'
endfunction
function! s:is_here_doc(line)
if a:line =~ '^\w\+$'
let here_pat = '<<-\?'. s:escape(a:line). '\$'
return search(here_pat, 'bnW') > 0
endif
return 0
endfunction
function! s:is_case_ended(line)
return s:is_case_break(a:line) || a:line =~ ';[;&]\s*\%(#.*\)\=$'
endfunction
@ -172,5 +188,9 @@ function! s:is_case_empty(line)
endif
endfunction
function! s:escape(pattern)
return '\V'. escape(a:pattern, '\\')
endfunction
let &cpo = s:cpo_save
unlet s:cpo_save