added illuminate and some fixes
This commit is contained in:
parent
2e0d6e1637
commit
f6a19a3a75
|
|
@ -0,0 +1,35 @@
|
|||
---@diagnostic disable: undefined-global
|
||||
return {
|
||||
'RRethy/vim-illuminate',
|
||||
event = { "BufReadPost", "BufNewFile" },
|
||||
opts = {
|
||||
delay = 200,
|
||||
large_file_cutoff = 2000,
|
||||
large_file_overrides = {
|
||||
providers = { "lsp" }
|
||||
},
|
||||
providers = {
|
||||
'lsp',
|
||||
'treesitter',
|
||||
'regex',
|
||||
},
|
||||
min_count_to_highlight = 2, -- minimum number of matches required to perform highlighting
|
||||
},
|
||||
config = function(_, opts)
|
||||
require('illuminate').configure(opts)
|
||||
|
||||
-- Set highlight style (using colors that match with gruvbox theme)
|
||||
vim.api.nvim_set_hl(0, 'IlluminatedWordText', { bg = '#3c3836', bold = true })
|
||||
vim.api.nvim_set_hl(0, 'IlluminatedWordRead', { bg = '#3c3836', bold = true })
|
||||
vim.api.nvim_set_hl(0, 'IlluminatedWordWrite', { bg = '#3c3836', bold = true })
|
||||
|
||||
-- Map keys to navigate between highlighted words
|
||||
vim.keymap.set('n', '<leader>hn', function()
|
||||
require('illuminate').goto_next_reference()
|
||||
end, { desc = 'Go to next reference' })
|
||||
|
||||
vim.keymap.set('n', '<leader>hp', function()
|
||||
require('illuminate').goto_prev_reference()
|
||||
end, { desc = 'Go to previous reference' })
|
||||
end,
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
---@diagnostic disable: undefined-global
|
||||
-- Override internal LSP functions to ensure position_encoding is always set
|
||||
|
||||
local M = {}
|
||||
|
||||
function M.setup()
|
||||
-- Create a wrapper that ensures position_encoding is added to all calls
|
||||
local function with_encoding(fn)
|
||||
return function(params, ...)
|
||||
params = params or {}
|
||||
if not params.position_encoding then
|
||||
params.position_encoding = 'utf-16'
|
||||
end
|
||||
return fn(params, ...)
|
||||
end
|
||||
end
|
||||
|
||||
-- Override standard LSP buffer functions that may be missing position_encoding
|
||||
vim.lsp.buf.code_action = with_encoding(vim.lsp.buf.code_action)
|
||||
vim.lsp.buf.rename = with_encoding(vim.lsp.buf.rename)
|
||||
vim.lsp.buf.hover = with_encoding(vim.lsp.buf.hover)
|
||||
vim.lsp.buf.formatting = with_encoding(vim.lsp.buf.formatting)
|
||||
vim.lsp.buf.range_formatting = with_encoding(vim.lsp.buf.range_formatting)
|
||||
vim.lsp.buf.format = with_encoding(vim.lsp.buf.format)
|
||||
|
||||
-- Patch util functions as well
|
||||
local orig_make_position_params = vim.lsp.util.make_position_params
|
||||
vim.lsp.util.make_position_params = function(window, client, position_encoding)
|
||||
if not position_encoding then
|
||||
position_encoding = 'utf-16'
|
||||
end
|
||||
return orig_make_position_params(window, client, position_encoding)
|
||||
end
|
||||
|
||||
-- Override symbols_to_items to ensure position_encoding is set
|
||||
local orig_symbols_to_items = vim.lsp.util.symbols_to_items
|
||||
vim.lsp.util.symbols_to_items = function(symbols, bufnr, position_encoding)
|
||||
if not position_encoding then
|
||||
position_encoding = 'utf-16'
|
||||
end
|
||||
return orig_symbols_to_items(symbols, bufnr, position_encoding)
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
Loading…
Reference in New Issue