diff options
| author | Oleh Volynets <saggot91@gmail.com> | 2025-11-20 18:19:31 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-20 17:19:31 +0000 |
| commit | ea70d2ad8581fab6ea8cc264df5d01c799550e52 (patch) | |
| tree | 7eb1b227301f722d0406cccef6fe2c39dfd725bc /runtime/lua/vim/_extui | |
| parent | e9b6474ae7ea847ab1854fe5bc28b289f7eb2775 (diff) | |
fix(ui2): unset Search highlighting (#36633)
Problem:
Trying to match the search highlight groups to the Normal highlight for
the window can fail when the message highlighting contains a fg/bg that
the Normal highlight doesn't (like an error message in cmd will have
ErrorMsg highlight instead of MsgArea - which is Normal in cmd.)
Solution:
Link the search highlight groups to an empty group in 'winhighlight'
thus disabling them instead of overriding them with Normal/MsgArea/etc.
Diffstat (limited to 'runtime/lua/vim/_extui')
| -rw-r--r-- | runtime/lua/vim/_extui/shared.lua | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/runtime/lua/vim/_extui/shared.lua b/runtime/lua/vim/_extui/shared.lua index ec1e767a9b..0c9908f12b 100644 --- a/runtime/lua/vim/_extui/shared.lua +++ b/runtime/lua/vim/_extui/shared.lua @@ -81,10 +81,13 @@ function M.check_targets() api.nvim_set_option_value('bufhidden', 'hide', { scope = 'local' }) api.nvim_set_option_value('buftype', 'nofile', { scope = 'local' }) -- Use MsgArea except in the msg window. Hide Search highlighting except in the pager. - local hide = type == 'msg' and 'NormalFloat' or 'MsgArea' - hide = ('Search:%s,CurSearch:%s,IncSearch:%s'):format(hide, hide, hide) - local hl = type == 'msg' and '' or 'Normal:MsgArea' .. (type ~= 'pager' and ',' or '') - hl = hl .. (type ~= 'pager' and hide or '') + local search_hide = 'Search:,CurSearch:,IncSearch:' + local hl = 'Normal:MsgArea,' .. search_hide + if type == 'pager' then + hl = 'Normal:MsgArea' + elseif type == 'msg' then + hl = search_hide + end api.nvim_set_option_value('winhighlight', hl, { scope = 'local' }) end) api.nvim_buf_set_name(M.bufs[type], ('[%s]'):format(type:sub(1, 1):upper() .. type:sub(2))) |
