patch 9.1.1006: PmenuMatch completion highlight can be combined
Commit:
https://github.com/vim/vim/commit/9eff3ee81839d67999491d293879ada134df2d3e
Author: glepnir <[email protected]>
Date: Sat Jan 11 16:47:34 2025 +0100
patch 9.1.1006: PmenuMatch completion highlight can be combined
Problem: PmenuMatch completion highlight can be combined
Solution: Combine highlight groups PmenuMatch with Pmenu and
PmenuMatchSel with PmenuSel (glepnir)
fixes: #15563
closes: #16408
Signed-off-by: glepnir <[email protected]>
Signed-off-by: Christian Brabandt <[email protected]>
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 7640ee183..2fb320efc 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt* For Vim version 9.1. Last change: 2024 Dec 16
+*syntax.txt* For Vim version 9.1. Last change: 2025 Jan 11
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -5854,9 +5854,11 @@ PmenuSbar Popup menu: Scrollbar.
*hl-PmenuThumb*
PmenuThumb Popup menu: Thumb of the scrollbar.
*hl-PmenuMatch*
-PmenuMatch Popup menu: Matched text in normal item.
+PmenuMatch Popup menu: Matched text in normal item. Applied in
+ combination with |hl-Pmenu|.
*hl-PmenuMatchSel*
-PmenuMatchSel Popup menu: Matched text in selected item.
+PmenuMatchSel Popup menu: Matched text in selected item. Applied in
+ combination with |hl-PmenuSel|.
*hl-ComplMatchIns*
ComplMatchIns Matched text of the currently inserted completion.
*hl-PopupNotification*
diff --git a/src/popupmenu.c b/src/popupmenu.c
index ea2edca9a..14cc69a86 100644
--- a/src/popupmenu.c
+++ b/src/popupmenu.c
@@ -450,13 +450,18 @@ pum_compute_text_attrs(char_u *text, hlf_T hlf, int
user_hlattr)
if (char_pos == ((int_u *)ga->ga_data)[i])
{
new_attr = highlight_attr[is_select ? HLF_PMSI : HLF_PMNI];
+ new_attr = hl_combine_attr(highlight_attr[hlf], new_attr);
break;
}
}
}
else if (matched_start && ptr < text + leader_len)
+ {
new_attr = highlight_attr[is_select ? HLF_PMSI : HLF_PMNI];
+ new_attr = hl_combine_attr(highlight_attr[hlf], new_attr);
+ }
+ new_attr = hl_combine_attr(highlight_attr[HLF_PNI], new_attr);
if (user_hlattr > 0)
new_attr = hl_combine_attr(new_attr, user_hlattr);
diff --git a/src/testdir/dumps/Test_pum_highlights_18.dump
b/src/testdir/dumps/Test_pum_highlights_18.dump
new file mode 100644
index 000000000..a57f7a2be
--- /dev/null
+++ b/src/testdir/dumps/Test_pum_highlights_18.dump
@@ -0,0 +1,20 @@
+|f+0&#ffffff0|b> @72
+|f+0#40ffff15#e0e0e08|o+0#0000001&@1|B+0#40ffff15&|a+0#0000001&|z|
@1|f|o@1|k|i|n|d| | +0#4040ff13#ffffff0@58
+|f+0&#ffd7ff255|o+0#0000001&@1|b+0#4040ff13&|a+0#0000001&|r| @1|f|o@1|k|i|n|d|
| +0#4040ff13#ffffff0@58
+|f+0&#ffd7ff255|o+0#0000001&@1|b+0#4040ff13&|a+0#0000001&|l|a| |f|o@1|k|i|n|d|
| +0#4040ff13#ffffff0@58
+|~| @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| |9| +0#0000000&@34
diff --git a/src/testdir/test_popup.vim b/src/testdir/test_popup.vim
index 0303c42bd..08b9cd9ca 100644
--- a/src/testdir/test_popup.vim
+++ b/src/testdir/test_popup.vim
@@ -1511,6 +1511,16 @@ func Test_pum_highlights_match()
call term_sendkeys(buf, "\<ESC>S/non_existing_folder\<C-X>\<C-F>")
call TermWait(buf, 50)
call VerifyScreenDump(buf, 'Test_pum_highlights_15', {})
+ call term_sendkeys(buf, "\<C-E>\<Esc>")
+
+ call term_sendkeys(buf, ":hi PmenuMatchSel ctermfg=14\<CR>")
+ call TermWait(buf, 50)
+ call term_sendkeys(buf, ":hi PmenuMatch ctermfg=12\<CR>")
+ call term_sendkeys(buf, ":set cot=menu,noinsert,fuzzy\<CR>")
+ call term_sendkeys(buf, "S\<C-X>\<C-O>")
+ call TermWait(buf, 50)
+ call term_sendkeys(buf, "fb")
+ call VerifyScreenDump(buf, 'Test_pum_highlights_18', {})
call term_sendkeys(buf, "\<C-E>\<Esc>")
call TermWait(buf)
diff --git a/src/version.c b/src/version.c
index 1927d9e82..9d9f90535 100644
--- a/src/version.c
+++ b/src/version.c
@@ -704,6 +704,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 1006,
/**/
1005,
/**/
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/vim_dev/E1tWdu7-0054mX-2X%40256bit.org.