|
@@ -88,19 +88,27 @@ function M.setup_document_highlight(client, bufnr)
|
|
|
if not status_ok or not highlight_supported then
|
|
|
return
|
|
|
end
|
|
|
- local augroup_exist, _ = pcall(vim.api.nvim_get_autocmds, {
|
|
|
- group = "lsp_document_highlight",
|
|
|
+ local group = "lsp_document_highlight"
|
|
|
+ local hl_events = { "CursorHold", "CursorHoldI" }
|
|
|
+
|
|
|
+ local ok, hl_autocmds = pcall(vim.api.nvim_get_autocmds, {
|
|
|
+ group = group,
|
|
|
+ buffer = bufnr,
|
|
|
+ event = hl_events,
|
|
|
})
|
|
|
- if not augroup_exist then
|
|
|
- vim.api.nvim_create_augroup("lsp_document_highlight", {})
|
|
|
+
|
|
|
+ if ok and #hl_autocmds > 0 then
|
|
|
+ return
|
|
|
end
|
|
|
- vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, {
|
|
|
- group = "lsp_document_highlight",
|
|
|
+
|
|
|
+ vim.api.nvim_create_augroup(group, { clear = false })
|
|
|
+ vim.api.nvim_create_autocmd(hl_events, {
|
|
|
+ group = group,
|
|
|
buffer = bufnr,
|
|
|
callback = vim.lsp.buf.document_highlight,
|
|
|
})
|
|
|
vim.api.nvim_create_autocmd("CursorMoved", {
|
|
|
- group = "lsp_document_highlight",
|
|
|
+ group = group,
|
|
|
buffer = bufnr,
|
|
|
callback = vim.lsp.buf.clear_references,
|
|
|
})
|
|
@@ -113,14 +121,20 @@ function M.setup_codelens_refresh(client, bufnr)
|
|
|
if not status_ok or not codelens_supported then
|
|
|
return
|
|
|
end
|
|
|
- local augroup_exist, _ = pcall(vim.api.nvim_get_autocmds, {
|
|
|
- group = "lsp_code_lens_refresh",
|
|
|
+ local group = "lsp_code_lens_refresh"
|
|
|
+ local cl_events = { "BufEnter", "InsertLeave" }
|
|
|
+ local ok, cl_autocmds = pcall(vim.api.nvim_get_autocmds, {
|
|
|
+ group = group,
|
|
|
+ buffer = bufnr,
|
|
|
+ event = cl_events,
|
|
|
})
|
|
|
- if not augroup_exist then
|
|
|
- vim.api.nvim_create_augroup("lsp_code_lens_refresh", {})
|
|
|
+
|
|
|
+ if ok and #cl_autocmds > 0 then
|
|
|
+ return
|
|
|
end
|
|
|
- vim.api.nvim_create_autocmd({ "BufEnter", "InsertLeave" }, {
|
|
|
- group = "lsp_code_lens_refresh",
|
|
|
+ vim.api.nvim_create_augroup(group, { clear = false })
|
|
|
+ vim.api.nvim_create_autocmd(cl_events, {
|
|
|
+ group = group,
|
|
|
buffer = bufnr,
|
|
|
callback = vim.lsp.codelens.refresh,
|
|
|
})
|