From 1b83b00fff40e13ecea06246ca33c2f41256a968 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Fri, 9 Jan 2026 09:37:28 +0800 Subject: [PATCH] vim-patch:8e07908: runtime(sh): Update indent script closes: vim/vim#19110 https://github.com/vim/vim/commit/8e079085d23c9ca5eb352519a1142f91d247ab55 Co-authored-by: Christian Brabandt --- runtime/indent/sh.vim | 10 ++++++++++ 1 file changed, 10 insertions(+) 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