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

5090a1fecb
This commit is contained in:
glepnir
2025-02-25 14:30:21 +08:00
committed by GitHub
parent 095c0876c2
commit c9a2b16c48
5 changed files with 78 additions and 10 deletions

View File

@@ -6042,6 +6042,52 @@ describe('builtin popupmenu', function()
{2:-- }{5:match 1 of 3} |
]])
feed('<C-E><ESC>')
command('setlocal autoindent shiftwidth=2 tabstop=2')
feed('Slocal a = <C-X><C-O>')
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('<C-Y>')
screen:expect([[
local a = {8:func ()} |
{8: } |
end^ |
{1:~ }|*16
{2:-- INSERT --} |
]])
feed('<ESC>kAlocal b = <C-X><C-O>')
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('<C-Y>')
screen:expect([[
local a = {8:func ()} |
local b = {8:func ()} |
{8: } |
end^ |
end |
{1:~ }|*14
{2:-- INSERT --} |
]])
end)
end
end