From c9a2b16c4842b5c61af1f57a66637fbd94efba24 Mon Sep 17 00:00:00 2001 From: glepnir Date: Tue, 25 Feb 2025 14:30:21 +0800 Subject: vim-patch:9.1.1145: multi-line completion has wrong indentation for last line (#32625) Problem: When expanding omni completion items with newlines (e.g. `then\n\t\nend`), the end statement gets wrong indentation. Solution: Add OPENLINE_FORCE_INDENT flag to make open_line() use second_line_indent directly (glepnir) closes: vim/vim#16614 https://github.com/vim/vim/commit/5090a1fecb86c44be83d55e139ed79b7785fa090 --- test/functional/ui/popupmenu_spec.lua | 46 +++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) (limited to 'test/functional/ui/popupmenu_spec.lua') diff --git a/test/functional/ui/popupmenu_spec.lua b/test/functional/ui/popupmenu_spec.lua index 0a28ea2d0a..fe093b67d5 100644 --- a/test/functional/ui/popupmenu_spec.lua +++ b/test/functional/ui/popupmenu_spec.lua @@ -6042,6 +6042,52 @@ describe('builtin popupmenu', function() {2:-- }{5:match 1 of 3} | ]]) feed('') + + command('setlocal autoindent shiftwidth=2 tabstop=2') + feed('Slocal a = ') + screen:expect([[ + local a = {8:func ()} | + {8: } | + {8:end}^ | + {1:~ }{s: function () }{1: }| + {1:~ }{n: foobar }{1: }| + {1:~ }{n: 你好^@ ^@我好 }{1: }| + {1:~ }|*13 + {2:-- }{5:match 1 of 3} | + ]]) + + feed('') + screen:expect([[ + local a = {8:func ()} | + {8: } | + end^ | + {1:~ }|*16 + {2:-- INSERT --} | + ]]) + + feed('kAlocal b = ') + screen:expect([[ + local a = {8:func ()} | + local b = {8:func ()} | + {8: } | + {8: end}^ | + end {s: function () } | + {1:~ }{n: foobar }{1: }| + {1:~ }{n: 你好^@ ^@我好 }{1: }| + {1:~ }|*12 + {2:-- }{5:match 1 of 3} | + ]]) + + feed('') + screen:expect([[ + local a = {8:func ()} | + local b = {8:func ()} | + {8: } | + end^ | + end | + {1:~ }|*14 + {2:-- INSERT --} | + ]]) end) end end -- cgit