summaryrefslogtreecommitdiff
path: root/lua/lvim/lsp/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/lvim/lsp/init.lua')
-rw-r--r--lua/lvim/lsp/init.lua51
1 files changed, 14 insertions, 37 deletions
diff --git a/lua/lvim/lsp/init.lua b/lua/lvim/lsp/init.lua
index 68a64d6c..0be13484 100644
--- a/lua/lvim/lsp/init.lua
+++ b/lua/lvim/lsp/init.lua
@@ -1,24 +1,13 @@
local M = {}
local Log = require "lvim.core.log"
local utils = require "lvim.utils"
+local autocmds = require "lvim.core.autocmds"
local function lsp_highlight_document(client)
if lvim.lsp.document_highlight == false then
return -- we don't need further
end
- -- Set autocommands conditional on server_capabilities
- if client.resolved_capabilities.document_highlight then
- vim.api.nvim_exec(
- [[
- augroup lsp_document_highlight
- autocmd! * <buffer>
- autocmd CursorHold <buffer> lua vim.lsp.buf.document_highlight()
- autocmd CursorMoved <buffer> lua vim.lsp.buf.clear_references()
- augroup END
- ]],
- false
- )
- end
+ autocmds.enable_lsp_document_highlight(client.id)
end
local function lsp_code_lens_refresh(client)
@@ -27,16 +16,7 @@ local function lsp_code_lens_refresh(client)
end
if client.resolved_capabilities.code_lens then
- vim.api.nvim_exec(
- [[
- augroup lsp_code_lens_refresh
- autocmd! * <buffer>
- autocmd InsertLeave <buffer> lua vim.lsp.codelens.refresh()
- autocmd InsertLeave <buffer> lua vim.lsp.codelens.display()
- augroup END
- ]],
- false
- )
+ autocmds.enable_code_lens_refresh()
end
end
@@ -101,6 +81,15 @@ local function select_default_formater(client)
end
end
+function M.common_on_exit(_, _)
+ if lvim.lsp.document_highlight then
+ autocmds.disable_lsp_document_highlight()
+ end
+ if lvim.lsp.code_lens_refresh then
+ autocmds.disable_code_lens_refresh()
+ end
+end
+
function M.common_on_init(client, bufnr)
if lvim.lsp.on_init_callback then
lvim.lsp.on_init_callback(client, bufnr)
@@ -132,17 +121,11 @@ function M.get_common_opts()
return {
on_attach = M.common_on_attach,
on_init = M.common_on_init,
+ on_exit = M.common_on_exit,
capabilities = M.common_capabilities(),
}
end
-local LSP_DEPRECATED_SIGN_MAP = {
- ["DiagnosticSignError"] = "LspDiagnosticsSignError",
- ["DiagnosticSignWarn"] = "LspDiagnosticsSignWarning",
- ["DiagnosticSignHint"] = "LspDiagnosticsSignHint",
- ["DiagnosticSignInfo"] = "LspDiagnosticsSignInformation",
-}
-
function M.setup()
Log:debug "Setting up LSP support"
@@ -151,13 +134,7 @@ function M.setup()
return
end
- local is_neovim_5 = vim.fn.has "nvim-0.6" ~= 1
-
for _, sign in ipairs(lvim.lsp.diagnostics.signs.values) do
- local lsp_sign_name = LSP_DEPRECATED_SIGN_MAP[sign.name]
- if is_neovim_5 and lsp_sign_name then
- vim.fn.sign_define(lsp_sign_name, { texthl = lsp_sign_name, text = sign.text, numhl = lsp_sign_name })
- end
vim.fn.sign_define(sign.name, { texthl = sign.name, text = sign.text, numhl = sign.name })
end
@@ -171,7 +148,7 @@ function M.setup()
require("lvim.lsp.null-ls").setup()
- require("lvim.core.autocmds").configure_format_on_save()
+ autocmds.configure_format_on_save()
end
return M