Mercurial > vim
changeset 29605:0340a59e04ca v9.0.0143
patch 9.0.0143: cursor positioned after virtual text in empty line
Commit: https://github.com/vim/vim/commit/afd2aa79eda3fe69f2e7c87d0b9b4bca874f386a
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Aug 5 13:07:23 2022 +0100
patch 9.0.0143: cursor positioned after virtual text in empty line
Problem: Cursor positioned after virtual text in empty line.
Solution: Keep cursor in the first column. (closes https://github.com/vim/vim/issues/10786)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 05 Aug 2022 14:15:04 +0200 |
parents | be929fdde270 |
children | 3e5d197e698e |
files | src/charset.c src/testdir/dumps/Test_prop_inserts_text_1.dump src/testdir/dumps/Test_prop_inserts_text_2.dump src/testdir/dumps/Test_prop_inserts_text_3.dump src/testdir/dumps/Test_prop_inserts_text_4.dump src/testdir/test_textprop.vim src/version.c |
diffstat | 7 files changed, 26 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/charset.c +++ b/src/charset.c @@ -1127,7 +1127,7 @@ win_lbr_chartabsize( size = win_chartabsize(wp, s, vcol); # ifdef FEAT_PROP_POPUP - if (cts->cts_has_prop_with_text) + if (cts->cts_has_prop_with_text && *line != NUL) { int i; int col = (int)(s - line);
--- a/src/testdir/dumps/Test_prop_inserts_text_1.dump +++ b/src/testdir/dumps/Test_prop_inserts_text_1.dump @@ -1,6 +1,6 @@ |i+0&#ffffff0|n|s|e|r|t| |s|o|m|e| |t|e|x|t| |S+0#ffffff16#e000002|O|M|E| |h+0#0000000#ffffff0|e|r|e| |a|n|d| |o|t|h|e|r| |t|e|x|t| |O+0&#ffff4012|T|H|E|R| |t+0&#ffffff0|h|e|r|e| |a|n|d| |s|o |m|e| |m|o|r|e| |t|e|x|t| |a|f|t|e|r| |M+0fd7ff255|O|R|E| |w+0&#ffffff0|r|a|p@1|i|n>g| @27 |p|r|e|s+0&#e0e0e08|ö|m|e|和*&|平|t+&|é|x|t|p+0&#ffffff0|o|s|t| @40 +|e+0#ffffff16#e000002|m|p|t|y| |l|i|n|e| +0#0000000#ffffff0@49 |~+0#4040ff13&| @58 -|~| @58 | +0#0000000&@41|1|,|7|6|-|9|2| @6|A|l@1|
--- a/src/testdir/dumps/Test_prop_inserts_text_2.dump +++ b/src/testdir/dumps/Test_prop_inserts_text_2.dump @@ -1,6 +1,6 @@ | +0#0000e05#a8a8a8255@1|i+0#0000000#ffffff0|n|s|e|r|t| |s|o|m|e| |t|e|x|t| |S+0#ffffff16#e000002|O|M|E| |h+0#0000000#ffffff0|e|r|e| |a|n|d| |o|t|h|e|r| |t|e|x|t| |O+0&#ffff4012|T|H|E|R| |t+0&#ffffff0|h|e|r|e| |a|n|d| | +0#0000e05#a8a8a8255@1|s+0#0000000#ffffff0|o|m|e| |m|o|r|e| |t|e|x|t| |a|f|t|e|r| |M+0fd7ff255|O|R|E| |w+0&#ffffff0|r|a|p@1|i|n>g| @23 | +0#0000e05#a8a8a8255@1|p+0#0000000#ffffff0|r|e|s+0&#e0e0e08|ö|m|e|和*&|平|t+&|é|x|t|p+0&#ffffff0|o|s|t| @38 +| +0#0000e05#a8a8a8255@1|e+0#ffffff16#e000002|m|p|t|y| |l|i|n|e| +0#0000000#ffffff0@47 |~+0#4040ff13&| @58 -|~| @58 | +0#0000000&@41|1|,|7|6|-|9|2| @6|A|l@1|
new file mode 100644 --- /dev/null +++ b/src/testdir/dumps/Test_prop_inserts_text_3.dump @@ -0,0 +1,6 @@ +| +0#0000e05#a8a8a8255@1|i+0#0000000#ffffff0|n|s|e|r|t| |s|o|m|e| |t|e|x|t| |S+0#ffffff16#e000002|O|M|E| |h+0#0000000#ffffff0|e|r|e| |a|n|d| |o|t|h|e|r| |t|e|x|t| |O+0&#ffff4012|T|H|E|R| |t+0&#ffffff0|h|e|r|e| |a|n|d| +| +0#0000e05#a8a8a8255@1|s+0#0000000#ffffff0|o|m|e| |m|o|r|e| |t|e|x|t| |a|f|t|e|r| |M+0fd7ff255|O|R|E| |w+0&#ffffff0|r|a|p@1|i|n|g| @23 +| +0#0000e05#a8a8a8255@1|p+0#0000000#ffffff0|r|e|s+0&#e0e0e08|ö|m|e|和*&|平|t+&|é|x|t|p+0&#ffffff0|o|s>t| @38 +| +0#0000e05#a8a8a8255@1|e+0#ffffff16#e000002|m|p|t|y| |l|i|n|e| +0#0000000#ffffff0@47 +|~+0#4040ff13&| @58 +| +0#0000000&@41|2|,|7|-|1|9| @7|A|l@1|
new file mode 100644 --- /dev/null +++ b/src/testdir/dumps/Test_prop_inserts_text_4.dump @@ -0,0 +1,6 @@ +| +0#0000e05#a8a8a8255@1|i+0#0000000#ffffff0|n|s|e|r|t| |s|o|m|e| |t|e|x|t| |S+0#ffffff16#e000002|O|M|E| |h+0#0000000#ffffff0|e|r|e| |a|n|d| |o|t|h|e|r| |t|e|x|t| |O+0&#ffff4012|T|H|E|R| |t+0&#ffffff0|h|e|r|e| |a|n|d| +| +0#0000e05#a8a8a8255@1|s+0#0000000#ffffff0|o|m|e| |m|o|r|e| |t|e|x|t| |a|f|t|e|r| |M+0fd7ff255|O|R|E| |w+0&#ffffff0|r|a|p@1|i|n|g| @23 +| +0#0000e05#a8a8a8255@1|p+0#0000000#ffffff0|r|e|s+0&#e0e0e08|ö|m|e|和*&|平|t+&|é|x|t|p+0&#ffffff0|o|s|t| @38 +| +0#0000e05#a8a8a8255@1>e+0#ffffff16#e000002|m|p|t|y| |l|i|n|e| +0#0000000#ffffff0@47 +|~+0#4040ff13&| @58 +| +0#0000000&@41|3|,|0|-|1| @8|A|l@1|
--- a/src/testdir/test_textprop.vim +++ b/src/testdir/test_textprop.vim @@ -2221,6 +2221,9 @@ func Test_prop_inserts_text() call setline(2, 'prepost') call prop_type_add('multibyte', #{highlight: 'Visual'}) call prop_add(2, 4, #{type: 'multibyte', text: 'söme和平téxt'}) + + call setline(3, '') + call prop_add(3, 1, #{type: 'someprop', text: 'empty line'}) END call writefile(lines, 'XscriptPropsWithText') let buf = RunVimInTerminal('-S XscriptPropsWithText', #{rows: 6, cols: 60}) @@ -2229,6 +2232,12 @@ func Test_prop_inserts_text() call term_sendkeys(buf, ":set signcolumn=yes\<CR>") call VerifyScreenDump(buf, 'Test_prop_inserts_text_2', {}) + call term_sendkeys(buf, "2G$") + call VerifyScreenDump(buf, 'Test_prop_inserts_text_3', {}) + + call term_sendkeys(buf, "3G") + call VerifyScreenDump(buf, 'Test_prop_inserts_text_4', {}) + call StopVimInTerminal(buf) call delete('XscriptPropsWithText') endfunc