From: glepnir Date: Wed, 5 Mar 2025 20:18:20 +0000 (+0100) Subject: patch 9.1.1176: wrong indent when expanding multiple lines X-Git-Tag: v9.1.1176^0 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=34a7d82aaed9836174f4ea84af047db3fdf6c8b3;p=thirdparty%2Fvim.git patch 9.1.1176: wrong indent when expanding multiple lines Problem: wrong indentation of lastline when expanding multiple lines Solution: Check OPENLINE_FORCE_INDENT flag in open_line() (glepnir) closes: #16786 Signed-off-by: glepnir Signed-off-by: Christian Brabandt --- diff --git a/src/change.c b/src/change.c index a3329bdcb9..9d1b23745b 100644 --- a/src/change.c +++ b/src/change.c @@ -1672,7 +1672,8 @@ open_line( ) && in_cinkeys(dir == FORWARD ? KEY_OPEN_FORW - : KEY_OPEN_BACK, ' ', linewhite(curwin->w_cursor.lnum)); + : KEY_OPEN_BACK, ' ', linewhite(curwin->w_cursor.lnum)) + && !(flags & OPENLINE_FORCE_INDENT); // Find out if the current line starts with a comment leader. // This may then be inserted in front of the new line. diff --git a/src/testdir/dumps/Test_pum_with_special_characters_13.dump b/src/testdir/dumps/Test_pum_with_special_characters_13.dump new file mode 100644 index 0000000000..de505d27dd --- /dev/null +++ b/src/testdir/dumps/Test_pum_with_special_characters_13.dump @@ -0,0 +1,12 @@ +|m+0#ff404010#ffffff0|y| +0#0000000&@72 +| +0#ff404010&@7|m|u|l|t|i| +0#0000000&@61 +|l+0#ff404010&|i|n|e> +0#0000000&@70 +|m+0#0000001#e0e0e08|y|^|@| @1|m|u|l|t|i|^|@|l|i|n|e| @2| +0#4040ff13#ffffff0@54 +|m+0#0000001#ffd7ff255|y|^|@| @3|m|u|l|t|i|^|@|l|i|n|e| | +0#4040ff13#ffffff0@54 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|-+2#0000000&@1| |I|N|S|E|R|T| |-@1| +0&&@62 diff --git a/src/testdir/test_popup.vim b/src/testdir/test_popup.vim index 82d2ef0be4..aa4e3e4110 100644 --- a/src/testdir/test_popup.vim +++ b/src/testdir/test_popup.vim @@ -1905,6 +1905,7 @@ func Test_pum_complete_with_special_characters() return [#{word: "func ()\n\t\nend", abbr: "function ()",}, #{word: "foobar"}, #{word: "你好\n\t\n我好"}] endfunc set omnifunc=Omni_test + inoremap call complete(col('.'), [ "my\n\tmulti\nline", "my\n\t\tmulti\nline" ]) END call writefile(lines, 'Xpreviewscript', 'D') @@ -1963,6 +1964,14 @@ func Test_pum_complete_with_special_characters() call TermWait(buf, 50) call VerifyScreenDump(buf, 'Test_pum_with_special_characters_12', {}) + call term_sendkeys(buf, "\ggVGd") + call term_sendkeys(buf, ":filetype indent on\") + call term_sendkeys(buf, ":set nocompatible autoindent& shiftwidth& tabstop&\") + call term_sendkeys(buf, ":setlocal ft=lua\") + call term_sendkeys(buf, "S\") + call TermWait(buf, 50) + call VerifyScreenDump(buf, 'Test_pum_with_special_characters_13', {}) + call StopVimInTerminal(buf) endfunc diff --git a/src/version.c b/src/version.c index 6553fa4fdb..65c716929b 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1176, /**/ 1175, /**/