runtime(vim): Fix indent after :silent! function
See https://github.com/vim/vim/commit/35699f17497dcdcfdd747fedaef28f208ac6eb5f#commitcomment-148816912
closes: #16009
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/runtime/autoload/dist/vimindent.vim b/runtime/autoload/dist/vimindent.vim
index 07b2153..727e983 100644
--- a/runtime/autoload/dist/vimindent.vim
+++ b/runtime/autoload/dist/vimindent.vim
@@ -2,10 +2,11 @@
# Language: Vim script
# Maintainer: github user lacygoill
-# Last Change: 2023 Jun 29
+# Last Change: 2024 Nov 08
#
-# Includes Changes from Vim:
+# Includes changes from The Vim Project:
# - 2024 Feb 09: Fix indent after literal Dict (A. Radev via #13966)
+# - 2024 Nov 08: Fix indent after :silent! function (D. Kearns via #16009)
# NOTE: Whenever you change the code, make sure the tests are still passing:
#
@@ -295,7 +296,7 @@
endfor
}
-const STARTS_NAMED_BLOCK: string = $'^\s*\%(sil\%[ent]\s\+\)\=\%({patterns->join('\|')}\)\>\%(\s\|$\|!\)\@='
+const STARTS_NAMED_BLOCK: string = $'^\s*\%(sil\%[ent]!\=\s\+\)\=\%({patterns->join('\|')}\)\>\%(\s\|$\|!\)\@='
# STARTS_CURLY_BLOCK {{{3
diff --git a/runtime/indent/testdir/vim.in b/runtime/indent/testdir/vim.in
index 1ff2d0d..a3c8c92 100644
--- a/runtime/indent/testdir/vim.in
+++ b/runtime/indent/testdir/vim.in
@@ -951,3 +951,12 @@
call prop_type_add('indent_after_literal_dict', #{ foo: 'bar' })
call prop_type_delete('indent_after_literal_dict')
" END_INDENT
+
+" START_INDENT
+silent function Foo()
+return 42
+endfunction
+silent! function Bar()
+return 42
+endfunction
+" END_INDENT
diff --git a/runtime/indent/testdir/vim.ok b/runtime/indent/testdir/vim.ok
index fa8869b..56f3d98 100644
--- a/runtime/indent/testdir/vim.ok
+++ b/runtime/indent/testdir/vim.ok
@@ -951,3 +951,12 @@
call prop_type_add('indent_after_literal_dict', #{ foo: 'bar' })
call prop_type_delete('indent_after_literal_dict')
" END_INDENT
+
+" START_INDENT
+silent function Foo()
+ return 42
+endfunction
+silent! function Bar()
+ return 42
+endfunction
+" END_INDENT