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.
This commit is contained in:
Oleh Volynets
2025-11-20 18:19:31 +01:00
committed by GitHub
parent e9b6474ae7
commit ea70d2ad85
2 changed files with 27 additions and 14 deletions

View File

@@ -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)))