mirror of
https://github.com/neovim/neovim.git
synced 2025-09-27 13:38:34 +00:00
feat(ui): cascading style inheritance for Pmenu* highlights #29980
- `PmenuSel` and `PmenuMatch` inherit from `Pmenu` - `PmenuMatchSel` inherits from both `PmenuSel` and `PmenuMatch`
This commit is contained in:
@@ -480,13 +480,19 @@ static int *pum_compute_text_attrs(char *text, hlf_T hlf, int user_hlattr)
|
||||
for (int i = 0; i < ga->ga_len; i++) {
|
||||
if (char_pos == ((uint32_t *)ga->ga_data)[i]) {
|
||||
new_attr = win_hl_attr(curwin, hlf == HLF_PSI ? HLF_PMSI : HLF_PMNI);
|
||||
new_attr = hl_combine_attr(win_hl_attr(curwin, HLF_PMNI), new_attr);
|
||||
new_attr = hl_combine_attr(win_hl_attr(curwin, (int)hlf), new_attr);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (matched_start && ptr < text + leader_len) {
|
||||
new_attr = win_hl_attr(curwin, hlf == HLF_PSI ? HLF_PMSI : HLF_PMNI);
|
||||
new_attr = hl_combine_attr(win_hl_attr(curwin, HLF_PMNI), new_attr);
|
||||
new_attr = hl_combine_attr(win_hl_attr(curwin, (int)hlf), new_attr);
|
||||
}
|
||||
|
||||
new_attr = hl_combine_attr(win_hl_attr(curwin, HLF_PNI), new_attr);
|
||||
|
||||
if (user_hlattr > 0) {
|
||||
new_attr = hl_combine_attr(new_attr, user_hlattr);
|
||||
}
|
||||
@@ -629,6 +635,7 @@ void pum_redraw(void)
|
||||
const hlf_T *const hlfs = (idx == pum_selected) ? hlfsSel : hlfsNorm;
|
||||
hlf_T hlf = hlfs[0]; // start with "word" highlight
|
||||
int attr = win_hl_attr(curwin, (int)hlf);
|
||||
attr = hl_combine_attr(win_hl_attr(curwin, HLF_PNI), attr);
|
||||
|
||||
grid_line_start(&pum_grid, row);
|
||||
|
||||
@@ -663,6 +670,7 @@ void pum_redraw(void)
|
||||
if (item_type == CPT_KIND && user_kind_hlattr > 0) {
|
||||
attr = hl_combine_attr(attr, user_kind_hlattr);
|
||||
}
|
||||
attr = hl_combine_attr(win_hl_attr(curwin, HLF_PNI), attr);
|
||||
int width = 0;
|
||||
char *s = NULL;
|
||||
p = pum_get_item(idx, item_type);
|
||||
|
Reference in New Issue
Block a user