diff options
author | Chase Colman <[email protected]> | 2021-11-10 14:56:52 +0800 |
---|---|---|
committer | kylo252 <[email protected]> | 2021-11-10 11:09:44 +0100 |
commit | e42581c21904f64510051db65cb5e0bd204238d5 (patch) | |
tree | 211a7ecce5851ed89be2f568dab391f75fae9d15 | |
parent | 1ea5361475aca76290695fdd11dcda78a578e8f3 (diff) |
fix(lsp): correct map and prevent highlight leak of diagnostic signs in 0.6 (#1934)
-rw-r--r-- | lua/lvim/lsp/handlers.lua | 10 | ||||
-rw-r--r-- | lua/lvim/lsp/init.lua | 13 |
2 files changed, 13 insertions, 10 deletions
diff --git a/lua/lvim/lsp/handlers.lua b/lua/lvim/lsp/handlers.lua index 59f15c1c..27ce8589 100644 --- a/lua/lvim/lsp/handlers.lua +++ b/lua/lvim/lsp/handlers.lua @@ -36,16 +36,6 @@ function M.setup() if not vim.api.nvim_buf_is_loaded(bufnr) then return end - - local sign_names = { - "DiagnosticSignError", - "DiagnosticSignWarn", - "DiagnosticSignInfo", - "DiagnosticSignHint", - } - for i, sign in ipairs(lvim.lsp.diagnostics.signs.values) do - vim.fn.sign_define(sign_names[i], { texthl = sign_names[i], text = sign.text, numhl = "" }) - end vim_diag.show(namespace, bufnr, diagnostics, config) else vim.lsp.diagnostic.save(diagnostics, bufnr, ctx.client_id) diff --git a/lua/lvim/lsp/init.lua b/lua/lvim/lsp/init.lua index 45ba04e0..d00f75c6 100644 --- a/lua/lvim/lsp/init.lua +++ b/lua/lvim/lsp/init.lua @@ -136,6 +136,13 @@ function M.get_common_opts() } end +local LSP_DEPRECATED_SIGN_MAP = { + ["LspDiagnosticsSignError"] = "DiagnosticSignError", + ["LspDiagnosticsSignWarning"] = "DiagnosticSignWarn", + ["LspDiagnosticsSignHint"] = "DiagnosticSignHint", + ["LspDiagnosticsSignInformation"] = "DiagnosticSignInfo", +} + function M.setup() Log:debug "Setting up LSP support" @@ -144,7 +151,13 @@ function M.setup() return end + local is_neovim_nightly = vim.fn.has "nvim-0.5.1" > 0 + for _, sign in ipairs(lvim.lsp.diagnostics.signs.values) do + local lsp_sign_name = LSP_DEPRECATED_SIGN_MAP[sign.name] + if is_neovim_nightly 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 |