From: Christian Brabandt Date: Thu, 8 Jan 2026 20:52:01 +0000 (+0000) Subject: runtime(sh): Update indent script X-Git-Tag: v9.1.2068~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8e079085d23c9ca5eb352519a1142f91d247ab55;p=thirdparty%2Fvim.git runtime(sh): Update indent script closes: #19110 Signed-off-by: Christian Brabandt --- diff --git a/runtime/indent/sh.vim b/runtime/indent/sh.vim index a1abd1d0af..daf9170bf3 100644 --- a/runtime/indent/sh.vim +++ b/runtime/indent/sh.vim @@ -7,6 +7,7 @@ " License: Vim (see :h license) " Repository: https://github.com/chrisbra/vim-sh-indent " Changelog: +" 20250906 - indent function closing properly on multiline commands " 20250318 - Detect local arrays in functions " 20241411 - Detect dash character in function keyword for " bash mode (issue #16049) @@ -186,6 +187,15 @@ function! GetShIndent() endif endif + " Special case: if the current line is a closing '}', align with matching '{' + if curline =~ '^\s*}\s*$' + let match_lnum = searchpair('{', '', '}', 'bnW', + \ 'synIDattr(synID(line("."),col("."), 1),"name") =~? "comment\\|quote"') + if match_lnum > 0 + return indent(match_lnum) + endif + endif + return ind > 0 ? ind : 0 endfunction