diff options
author | Bram Moolenaar <Bram@vim.org> | 2023-01-21 15:54:59 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2023-01-21 15:54:59 +0000 |
commit | 51b2fc2ef5183487dc1acd9f526e904e5bda7814 (patch) | |
tree | 31c0715d2db91c566e6758c542a3fda272deca49 | |
parent | 11977f917506d950b7e0cae558bd9189260b253b (diff) | |
download | vim-git-9.0.1226.tar.gz |
patch 9.0.1226: spurious empty line when using text propertiesv9.0.1226
Problem: Spurious empty line when using text propertie and virtual text.
Solution: Do not set "text_prop_follows" when the other text property is not
virtual text. (closes #11846)
-rw-r--r-- | src/drawline.c | 3 | ||||
-rw-r--r-- | src/testdir/dumps/Test_textprop_nesting.dump | 8 | ||||
-rw-r--r-- | src/testdir/test_textprop.vim | 29 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 39 insertions, 3 deletions
diff --git a/src/drawline.c b/src/drawline.c index a82a5e49f..b4208a833 100644 --- a/src/drawline.c +++ b/src/drawline.c @@ -2016,7 +2016,8 @@ win_line( text_prop_type = pt; text_prop_attr = hl_combine_attr(text_prop_attr, used_attr); - other_tpi = used_tpi; + if (used_tpi >= 0 && text_props[used_tpi].tp_id < 0) + other_tpi = used_tpi; text_prop_flags = pt->pt_flags; text_prop_id = tp->tp_id; used_tpi = tpi; diff --git a/src/testdir/dumps/Test_textprop_nesting.dump b/src/testdir/dumps/Test_textprop_nesting.dump new file mode 100644 index 000000000..e02cc541a --- /dev/null +++ b/src/testdir/dumps/Test_textprop_nesting.dump @@ -0,0 +1,8 @@ +> +0&#ffffff0@74 +|c|o|n|s|t| |f|u|n|c|:| |f|u|n|c|.|I|F|u|n|c|t|i|o|n| |=| |(|{+0#ffffff16#e000002|t|e|x|t| |l|o|n|g| |e|n|o|u|g|h| |t|o| |w|r|a|p| |l|i|n|e|,| |t|e|x|t| |l|o|n|g| |e|n|… +| @3|s|e|t|L|o|a|d|i|n|g| +0#0000000#ffffff0@60 +| +0#ffffff16#e000002| +0#0000000#ffffff0|}|)| |=|>| |{| @65 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +| +0#0000000&@56|1|,|0|-|1| @8|A|l@1| diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim index f1c79845a..93c434f7c 100644 --- a/src/testdir/test_textprop.vim +++ b/src/testdir/test_textprop.vim @@ -1342,14 +1342,39 @@ func Test_textprop_after_tab() call prop_add(1, 2, {'length': 3, 'type': 'search'}) call prop_add(2, 3, {'length': 3, 'type': 'search'}) END - call writefile(lines, 'XtestPropTab', 'D') - let buf = RunVimInTerminal('-S XtestPropTab', {'rows': 6}) + call writefile(lines, 'XtextPropTab', 'D') + let buf = RunVimInTerminal('-S XtextPropTab', {'rows': 6}) call VerifyScreenDump(buf, 'Test_textprop_tab', {}) " clean up call StopVimInTerminal(buf) endfunc +func Test_textprop_nesting() + CheckScreendump + + let lines =<< trim END + vim9script + var lines =<< trim LINESEND + + const func: func.IFunction = ({ + setLoading + }) => { + LINESEND + setline(1, lines) + prop_type_add('prop_add_test', {highlight: "ErrorMsg"}) + prop_add(2, 31, {type: 'prop_add_test', end_lnum: 4, end_col: 2}) + var text = 'text long enough to wrap line, text long enough to wrap line, text long enough to wrap line...' + prop_add(2, 0, {type: 'prop_add_test', text_wrap: 'truncate', text_align: 'after', text: text}) + END + call writefile(lines, 'XtextpropNesting', 'D') + let buf = RunVimInTerminal('-S XtextpropNesting', {'rows': 8}) + call VerifyScreenDump(buf, 'Test_textprop_nesting', {}) + + " clean up + call StopVimInTerminal(buf) +endfunc + func Test_textprop_nowrap_scrolled() CheckScreendump diff --git a/src/version.c b/src/version.c index 6a11b7fcb..73211b6a5 100644 --- a/src/version.c +++ b/src/version.c @@ -696,6 +696,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1226, +/**/ 1225, /**/ 1224, |