]> granicus.if.org Git - vim/commitdiff
patch 9.0.0201: CursorLine highlight overrules virtual text highlight v9.0.0201
authorBram Moolenaar <Bram@vim.org>
Sat, 13 Aug 2022 19:17:34 +0000 (20:17 +0100)
committerBram Moolenaar <Bram@vim.org>
Sat, 13 Aug 2022 19:17:34 +0000 (20:17 +0100)
Problem:    CursorLine highlight overrules virtual text highlight.
Solution:   Let extra attribute overrule line attribute. (closes #10909)

src/drawline.c
src/testdir/dumps/Test_prop_with_text_after_nowrap_2.dump
src/testdir/dumps/Test_prop_with_text_after_nowrap_3.dump
src/testdir/test_textprop.vim
src/version.c

index 247ed29d847909815d86d50696ff901f6b91a4f8..a129bae42057c9d446269afb31ec9c6dca7c1b62 100644 (file)
@@ -1638,7 +1638,8 @@ win_line(
                                                       & TP_FLAG_ALIGN_BELOW)))
                              : bcol >= text_props[text_prop_next].tp_col - 1))
                {
-                   if (bcol <= text_props[text_prop_next].tp_col - 1
+                   if (text_props[text_prop_next].tp_col == MAXCOL
+                           || bcol <= text_props[text_prop_next].tp_col - 1
                                           + text_props[text_prop_next].tp_len)
                        text_prop_idxs[text_props_active++] = text_prop_next;
                    ++text_prop_next;
@@ -2989,7 +2990,7 @@ win_line(
        {
 #ifdef LINE_ATTR
            if (line_attr)
-               wlv.char_attr = hl_combine_attr(extra_attr, line_attr);
+               wlv.char_attr = hl_combine_attr(line_attr, extra_attr);
            else
 #endif
                wlv.char_attr = extra_attr;
index 48da426910abec5a54fadf74b8115235999ca7bf..1d5c534834d9c799308803773754f5a479efd4f6 100644 (file)
@@ -3,8 +3,8 @@
 | +0#0000e05#a8a8a8255@4|t+0#0000000#ffffff0|w|o| @51
 | +0#0000e05#a8a8a8255@4|a+0#0000000#ffff4012|n|o|t|h|e|r| +0&#ffffff0@47
 | +0#0000e05#a8a8a8255@4|O+0#ffffff16#e000002|n|e| |M|o|r|e| |H|e|r|e| +0#0000000#ffffff0@41
-| +0#0000e05#a8a8a8255@4|t+0#0000000#ffffff0|h|r|e>e| @36|r+0&#ffff4012|i|g|h|t| |a|l|i|g|n|e|d
-| +0#0000e05#a8a8a8255@4| +0#0000000#ffffff0@36|a+0&#ffff4012|l|s|o| |r|i|g|h|t| |a|l|i|g|n|e|d
+| +0#0000e05#a8a8a8255@4|t+8#0000000#e0e0e08|h|r|e>e| @36|r+8&#ffff4012|i|g|h|t| |a|l|i|g|n|e|d
+| +0#0000e05#a8a8a8255@4| +8#0000000#e0e0e08@36|a+8&#ffff4012|l|s|o| |r|i|g|h|t| |a|l|i|g|n|e|d
 | +0#0000e05#a8a8a8255@4|f+0#0000000#ffffff0|o|u|r| @50
 |~+0#4040ff13&| @58
 |~| @58
index d96f1ece65df729ec4fc7540599cf11264041207..ca849123a5b96b6f2beedc5f8f0c276fa842bd92 100644 (file)
@@ -5,8 +5,8 @@
 | +0#0000e05#a8a8a8255@4|O+0#ffffff16#e000002|n|e| |M|o|r|e| |H|e|r|e| +0#0000000#ffffff0@41
 | +0#0000e05#a8a8a8255@4|t+0#0000000#ffffff0|h|r|e@1| @36|r+0&#ffff4012|i|g|h|t| |a|l|i|g|n|e|d
 | +0#0000e05#a8a8a8255@4| +0#0000000#ffffff0@36|a+0&#ffff4012|l|s|o| |r|i|g|h|t| |a|l|i|g|n|e|d
-| +0#0000e05#a8a8a8255@4|f+0#0000000#ffffff0|o|u>r| @50
-|~+0#4040ff13&| @58
+| +0#0000e05#a8a8a8255@4|f+8#0000000#e0e0e08|o|u>r| @50
+|~+0#4040ff13#ffffff0| @58
 |~| @58
 |~| @58
 | +0#0000000&@41|4|,|4| @10|A|l@1| 
index 5e9dd20388de931c86e27a7a821ef01a2411d71c..b702340a3edf27e9198a6fba24d54e41d3576443 100644 (file)
@@ -2756,12 +2756,13 @@ func Test_props_with_text_after_nowrap()
 
       call prop_add(3, 0, #{type: 'anotherprop', text: 'right aligned', text_align: 'right'})
       call prop_add(3, 0, #{type: 'anotherprop', text: 'also right aligned', text_align: 'right'})
+      hi CursorLine ctermbg=lightgrey
   END
   call writefile(lines, 'XscriptPropsAfterNowrap')
   let buf = RunVimInTerminal('-S XscriptPropsAfterNowrap', #{rows: 12, cols: 60})
   call VerifyScreenDump(buf, 'Test_prop_with_text_after_nowrap_1', {})
 
-  call term_sendkeys(buf, ":set signcolumn=yes foldcolumn=3\<CR>")
+  call term_sendkeys(buf, ":set signcolumn=yes foldcolumn=3 cursorline\<CR>")
   call VerifyScreenDump(buf, 'Test_prop_with_text_after_nowrap_2', {})
 
   call term_sendkeys(buf, "j")
index 0c7a1023f700616e8d67a8e19da97de4b96167e7..1a41dd28a46cc109ad45fa6671b5a760ae03c294 100644 (file)
@@ -735,6 +735,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    201,
 /**/
     200,
 /**/