mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-03-15 19:45:46 +08:00
fix(scrollbar): disable Search highlight in scrollbar
This commit is contained in:
parent
1eeff6661f
commit
e7d90f4d82
@ -37,23 +37,24 @@ local default_conf = {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
local function get(opt)
|
local function get(opt)
|
||||||
|
|
||||||
return default_conf[opt]
|
return default_conf[opt]
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local scrollbar_bufnr = -1
|
local scrollbar_bufnr = -1
|
||||||
local scrollbar_winid = -1
|
local scrollbar_winid = -1
|
||||||
local scrollbar_size = -1
|
local scrollbar_size = -1
|
||||||
local ns_id = vim.api.nvim_create_namespace('scrollbar')
|
local ns_id = -1
|
||||||
|
|
||||||
local function add_highlight(bufnr, size)
|
local function add_highlight(winid, size)
|
||||||
local highlight = get('highlight')
|
if vim.api.nvim_win_is_valid(winid) then
|
||||||
vim.api.nvim_buf_add_highlight(bufnr, ns_id, highlight.head, 0, 0, -1)
|
local highlight = get('highlight')
|
||||||
for i = 1, size - 2 do
|
vim.fn.clearmatches(winid)
|
||||||
vim.api.nvim_buf_add_highlight(bufnr, ns_id, highlight.body, i, 0, -1)
|
vim.fn.matchaddpos(highlight.head, { 1 }, 10, ns_id, { window = winid })
|
||||||
|
for i = 1, size - 2 do
|
||||||
|
vim.fn.matchaddpos(highlight.body, { i + 1 }, 10, ns_id, { window = winid })
|
||||||
|
end
|
||||||
|
vim.fn.matchaddpos(highlight.tail, { size }, 10, ns_id, { window = winid })
|
||||||
end
|
end
|
||||||
vim.api.nvim_buf_add_highlight(bufnr, ns_id, highlight.tail, size - 1, 0, -1)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local function fix_size(size)
|
local function fix_size(size)
|
||||||
@ -76,7 +77,6 @@ local function create_scrollbar_buffer(size, lines)
|
|||||||
end
|
end
|
||||||
vim.api.nvim_buf_set_option(scrollbar_bufnr, 'buftype', 'nofile')
|
vim.api.nvim_buf_set_option(scrollbar_bufnr, 'buftype', 'nofile')
|
||||||
vim.api.nvim_buf_set_lines(scrollbar_bufnr, 0, -1, false, lines)
|
vim.api.nvim_buf_set_lines(scrollbar_bufnr, 0, -1, false, lines)
|
||||||
add_highlight(scrollbar_bufnr, size)
|
|
||||||
return scrollbar_bufnr
|
return scrollbar_bufnr
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -132,7 +132,6 @@ function M.show()
|
|||||||
scrollbar_size = bar_size
|
scrollbar_size = bar_size
|
||||||
local bar_lines = gen_bar_lines(bar_size)
|
local bar_lines = gen_bar_lines(bar_size)
|
||||||
vim.api.nvim_buf_set_lines(scrollbar_bufnr, 0, -1, false, bar_lines)
|
vim.api.nvim_buf_set_lines(scrollbar_bufnr, 0, -1, false, bar_lines)
|
||||||
add_highlight(scrollbar_bufnr, bar_size)
|
|
||||||
end
|
end
|
||||||
vim.api.nvim_win_set_config(scrollbar_winid, opts)
|
vim.api.nvim_win_set_config(scrollbar_winid, opts)
|
||||||
else
|
else
|
||||||
@ -140,12 +139,13 @@ function M.show()
|
|||||||
local bar_lines = gen_bar_lines(bar_size)
|
local bar_lines = gen_bar_lines(bar_size)
|
||||||
scrollbar_bufnr = create_scrollbar_buffer(bar_size, bar_lines)
|
scrollbar_bufnr = create_scrollbar_buffer(bar_size, bar_lines)
|
||||||
scrollbar_winid = vim.api.nvim_open_win(scrollbar_bufnr, false, opts)
|
scrollbar_winid = vim.api.nvim_open_win(scrollbar_bufnr, false, opts)
|
||||||
vim.fn.setwinvar(
|
-- vim.fn.setwinvar(
|
||||||
vim.fn.win_id2win(scrollbar_winid),
|
-- vim.fn.win_id2win(scrollbar_winid),
|
||||||
'&winhighlight',
|
-- '&winhighlight',
|
||||||
'Normal:ScrollbarWinHighlight'
|
-- 'Normal:ScrollbarWinHighlight'
|
||||||
)
|
-- )
|
||||||
end
|
end
|
||||||
|
add_highlight(scrollbar_winid, scrollbar_size)
|
||||||
vim.o.eventignore = saved_ei
|
vim.o.eventignore = saved_ei
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user