]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.1.0996: ComplMatchIns may highlight wrong text v9.1.0996
authorglepnir <glephunter@gmail.com>
Wed, 8 Jan 2025 17:30:45 +0000 (18:30 +0100)
committerChristian Brabandt <cb@256bit.org>
Wed, 8 Jan 2025 17:30:45 +0000 (18:30 +0100)
Problem:  ComplMatchIns may highlight wrong text
Solution: don't highlight in case of fuzzy match,
          skip-highlight when not inserting anything
          (glepnir)

closes: #16404

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
src/highlight.c
src/insexpand.c
src/testdir/dumps/Test_pum_matchins_combine_07.dump [new file with mode: 0644]
src/testdir/dumps/Test_pum_matchins_combine_08.dump [new file with mode: 0644]
src/testdir/test_popup.vim
src/version.c

index 628ceb2593729885c1e9dddaebb483edafcbd26f..f38abd86b6423724cd92cee82192ec0c50c00261 100644 (file)
@@ -262,7 +262,8 @@ static char *(highlight_init_both[]) = {
     "default link PmenuMatchSel PmenuSel",
     "default link PmenuExtra Pmenu",
     "default link PmenuExtraSel PmenuSel",
-    CENT("ComplMatchIns cterm=NONE", "ComplMatchIns gui=NONE"),
+    CENT("ComplMatchIns ctermfg=DarkGrey cterm=NONE",
+        "ComplMatchIns guifg=DarkGrey gui=NONE"),
     CENT("Normal cterm=NONE", "Normal gui=NONE"),
     NULL
 };
index 818b1b96a1f7602b0512aec261d0f44c96e521eb..22f021de7ef81bf22c66631729d492910cae8c01 100644 (file)
@@ -924,7 +924,10 @@ ins_compl_insert_bytes(char_u *p, int len)
     int
 ins_compl_col_range_attr(int col)
 {
-    if (col >= compl_col && col < compl_ins_end_col)
+    if ((get_cot_flags() & COT_FUZZY))
+       return -1;
+
+    if (col >= (compl_col + (int)compl_leader.length) && col < compl_ins_end_col)
        return syn_name2attr((char_u *)"ComplMatchIns");
 
     return -1;
diff --git a/src/testdir/dumps/Test_pum_matchins_combine_07.dump b/src/testdir/dumps/Test_pum_matchins_combine_07.dump
new file mode 100644 (file)
index 0000000..60d5a67
--- /dev/null
@@ -0,0 +1,20 @@
+|f+8&#40ff4011@1|o+8#ffff4012#ff404010@1> +8#0000000#40ff4011@70
+| +0#0000001#e0e0e08|f|o@1| @11| +0#4040ff13#4040ff13@58
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|-+2#0000000&@1| |O|m|n|i| |c|o|m|p|l|e|t|i|o|n| |(|^|O|^|N|^|P|)| |m+0#00e0003&|a|t|c|h| |1| |o|f| |3| +0#0000000&@34
diff --git a/src/testdir/dumps/Test_pum_matchins_combine_08.dump b/src/testdir/dumps/Test_pum_matchins_combine_08.dump
new file mode 100644 (file)
index 0000000..c0b4149
--- /dev/null
@@ -0,0 +1,20 @@
+|f+8&#40ff4011@1|o@1> @70
+| +0#0000001#e0e0e08|f|o@1| @11| +0#4040ff13#4040ff13@58
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|-+2#0000000&@1| |O|m|n|i| |c|o|m|p|l|e|t|i|o|n| |(|^|O|^|N|^|P|)| |m+0#00e0003&|a|t|c|h| |1| |o|f| |3| +0#0000000&@34
index 729fbecffa44ed56f99cbf61b4c1d6b7ead0e17d..3f4836fa80322a54460de814170926a9cd57001a 100644 (file)
@@ -1816,6 +1816,20 @@ func Test_pum_matchins_highlight_combine()
   call VerifyScreenDump(buf, 'Test_pum_matchins_combine_06', {})
   call term_sendkeys(buf, "\<Esc>")
 
+  " Does not highlight the compl leader
+  call TermWait(buf)
+  call term_sendkeys(buf, ":set cot+=menuone,noselect\<CR>")
+  call TermWait(buf)
+  call term_sendkeys(buf, "S\<C-X>\<C-O>f\<C-N>")
+  call VerifyScreenDump(buf, 'Test_pum_matchins_combine_07', {})
+  call term_sendkeys(buf, "\<C-E>\<Esc>")
+
+  call term_sendkeys(buf, ":set cot+=fuzzy\<CR>")
+  call TermWait(buf)
+  call term_sendkeys(buf, "S\<C-X>\<C-O>f\<C-N>")
+  call VerifyScreenDump(buf, 'Test_pum_matchins_combine_08', {})
+  call term_sendkeys(buf, "\<C-E>\<Esc>")
+
   call StopVimInTerminal(buf)
 endfunc
 
index 95567b7373cae5cef7e531ea01de15ffe511ab5c..38f46927d042a8f879d9aea8c2e4211e4ddc6afc 100644 (file)
@@ -704,6 +704,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    996,
 /**/
     995,
 /**/