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 <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/change.c b/src/change.c
index a3329bd..9d1b237 100644
--- a/src/change.c
+++ b/src/change.c
@@ -1672,7 +1672,8 @@
)
&& 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 0000000..de505d2
--- /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 82d2ef0..aa4e3e4 100644
--- a/src/testdir/test_popup.vim
+++ b/src/testdir/test_popup.vim
@@ -1905,6 +1905,7 @@
return [#{word: "func ()\n\t\nend", abbr: "function ()",}, #{word: "foobar"}, #{word: "你好\n\t\n我好"}]
endfunc
set omnifunc=Omni_test
+ inoremap <F5> <Cmd>call complete(col('.'), [ "my\n\tmulti\nline", "my\n\t\tmulti\nline" ])<CR>
END
call writefile(lines, 'Xpreviewscript', 'D')
@@ -1963,6 +1964,14 @@
call TermWait(buf, 50)
call VerifyScreenDump(buf, 'Test_pum_with_special_characters_12', {})
+ call term_sendkeys(buf, "\<ESC>ggVGd")
+ call term_sendkeys(buf, ":filetype indent on\<CR>")
+ call term_sendkeys(buf, ":set nocompatible autoindent& shiftwidth& tabstop&\<CR>")
+ call term_sendkeys(buf, ":setlocal ft=lua\<CR>")
+ call term_sendkeys(buf, "S\<F5>")
+ 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 6553fa4..65c7169 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1176,
+/**/
1175,
/**/
1174,