runtime(vim): Fix indent after line with literal dict
closes: #13966
Signed-off-by: Andrew Radev <andrey.radev@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 a5e04a5..07b2153 100644
--- a/runtime/autoload/dist/vimindent.vim
+++ b/runtime/autoload/dist/vimindent.vim
@@ -3,6 +3,9 @@
# Language: Vim script
# Maintainer: github user lacygoill
# Last Change: 2023 Jun 29
+#
+# Includes Changes from Vim:
+# - 2024 Feb 09: Fix indent after literal Dict (A. Radev via #13966)
# NOTE: Whenever you change the code, make sure the tests are still passing:
#
@@ -381,7 +384,7 @@
# It can be the start of a dictionary or a block.
# We only want to match the former.
.. '\|' .. $'^\%({STARTS_CURLY_BLOCK}\)\@!.*\zs{{'
- .. '\)\s*\%(\s#.*\)\=$'
+ .. '\)\s*\%(\s#[^{].*\)\=$'
# }}}2
# SOL {{{2
# BACKSLASH_AT_SOL {{{3
diff --git a/runtime/indent/testdir/vim.in b/runtime/indent/testdir/vim.in
index c2e149a..1ff2d0d 100644
--- a/runtime/indent/testdir/vim.in
+++ b/runtime/indent/testdir/vim.in
@@ -946,3 +946,8 @@
Black
endenum
" END_INDENT
+
+" START_INDENT
+call prop_type_add('indent_after_literal_dict', #{ foo: 'bar' })
+call prop_type_delete('indent_after_literal_dict')
+" END_INDENT
diff --git a/runtime/indent/testdir/vim.ok b/runtime/indent/testdir/vim.ok
index b10e081..fa8869b 100644
--- a/runtime/indent/testdir/vim.ok
+++ b/runtime/indent/testdir/vim.ok
@@ -946,3 +946,8 @@
Black
endenum
" END_INDENT
+
+" START_INDENT
+call prop_type_add('indent_after_literal_dict', #{ foo: 'bar' })
+call prop_type_delete('indent_after_literal_dict')
+" END_INDENT