summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCPea <[email protected]>2023-04-10 02:05:20 +0700
committerCPea <[email protected]>2023-04-24 19:11:08 +0700
commit49e82310f72f6b0c62fa506761a005876f615b2e (patch)
tree3df337560c56ea23ea610e013f3f39a4a81976c4
parent01a4abc0b31b2ee554cbf775c4a6e907e5dbd34d (diff)
refactor(lsp)!: deprecate `lvim.lsp.diagnostics`
-rw-r--r--lua/lvim/config/_deprecated.lua8
-rw-r--r--lua/lvim/config/init.lua2
-rw-r--r--lua/lvim/lsp/config.lua12
-rw-r--r--lua/lvim/lsp/handlers.lua50
-rw-r--r--lua/lvim/lsp/init.lua4
5 files changed, 51 insertions, 25 deletions
diff --git a/lua/lvim/config/_deprecated.lua b/lua/lvim/config/_deprecated.lua
index 8b06defb..d4723774 100644
--- a/lua/lvim/config/_deprecated.lua
+++ b/lua/lvim/config/_deprecated.lua
@@ -62,6 +62,14 @@ function M.handle()
})
---@deprecated
+ lvim.lsp.diagnostics = {}
+ setmetatable(lvim.lsp.diagnostics, {
+ __newindex = function(_, k, _)
+ deprecate("lvim.lsp.diagnostics." .. k, "Use `vim.diagnostic.config() instead.")
+ end,
+ })
+
+ ---@deprecated
lvim.lang = {}
setmetatable(lvim.lang, mt)
end
diff --git a/lua/lvim/config/init.lua b/lua/lvim/config/init.lua
index 90c17888..4ed9693f 100644
--- a/lua/lvim/config/init.lua
+++ b/lua/lvim/config/init.lua
@@ -29,6 +29,8 @@ function M:init()
local lvim_lsp_config = require "lvim.lsp.config"
lvim.lsp = vim.deepcopy(lvim_lsp_config)
+ require("lvim.lsp.handlers").load_defaults()
+
lvim.builtin.luasnip = {
sources = {
friendly_snippets = true,
diff --git a/lua/lvim/lsp/config.lua b/lua/lvim/lsp/config.lua
index de36c47f..c9834f26 100644
--- a/lua/lvim/lsp/config.lua
+++ b/lua/lvim/lsp/config.lua
@@ -79,13 +79,11 @@ return {
},
document_highlight = false,
code_lens_refresh = true,
+ ---@usage list of the keys to override behavior of the handlers
handlers = {
- ---@usage list of the keys to override behavior of the handlers
- override_config = {
- focusable = true,
- style = "minimal",
- border = "rounded",
- },
+ focusable = true,
+ style = "minimal",
+ border = "rounded",
},
on_attach_callback = nil,
on_init_callback = nil,
@@ -105,7 +103,7 @@ return {
["gs"] = { "<cmd>lua vim.lsp.buf.signature_help()<cr>", "show signature help" },
["gl"] = {
function()
- local config = lvim.lsp.diagnostics.float
+ local config = vim.diagnostic.config().float
config.scope = "line"
vim.diagnostic.open_float(0, config)
end,
diff --git a/lua/lvim/lsp/handlers.lua b/lua/lvim/lsp/handlers.lua
index bdd09e4a..f26bca1f 100644
--- a/lua/lvim/lsp/handlers.lua
+++ b/lua/lvim/lsp/handlers.lua
@@ -2,22 +2,42 @@
-- Note: You can set a prefix per lsp server in the lv-globals.lua file
local M = {}
-function M.setup()
- local config = { -- your config
- virtual_text = lvim.lsp.diagnostics.virtual_text,
- signs = lvim.lsp.diagnostics.signs,
- underline = lvim.lsp.diagnostics.underline,
- update_in_insert = lvim.lsp.diagnostics.update_in_insert,
- severity_sort = lvim.lsp.diagnostics.severity_sort,
- float = lvim.lsp.diagnostics.float,
- }
- vim.diagnostic.config(config)
+local default_diagnostic_config = {
+ signs = {
+ active = true,
+ values = {
+ { name = "DiagnosticSignError", text = lvim.icons.diagnostics.Error },
+ { name = "DiagnosticSignWarn", text = lvim.icons.diagnostics.Warning },
+ { name = "DiagnosticSignHint", text = lvim.icons.diagnostics.Hint },
+ { name = "DiagnosticSignInfo", text = lvim.icons.diagnostics.Information },
+ },
+ },
+ virtual_text = true,
+ update_in_insert = false,
+ underline = true,
+ severity_sort = true,
+ float = {
+ focusable = true,
+ style = "minimal",
+ border = "rounded",
+ source = "always",
+ header = "",
+ prefix = "",
+ format = function(d)
+ local code = d.code or (d.user_data and d.user_data.lsp.code)
+ if code then
+ return string.format("%s [%s]", d.message, code):gsub("1. ", "")
+ end
+ return d.message
+ end,
+ },
+}
- if lvim.lsp.handlers.override_config then
- vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, lvim.lsp.handlers.override_config)
- vim.lsp.handlers["textDocument/signatureHelp"] =
- vim.lsp.with(vim.lsp.handlers.signature_help, lvim.lsp.handlers.override_config)
- end
+function M.load_defaults()
+ vim.diagnostic.config(default_diagnostic_config)
+
+ vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, lvim.lsp.handlers)
+ vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, lvim.lsp.handlers)
end
return M
diff --git a/lua/lvim/lsp/init.lua b/lua/lvim/lsp/init.lua
index 0fea876a..b4c40a45 100644
--- a/lua/lvim/lsp/init.lua
+++ b/lua/lvim/lsp/init.lua
@@ -95,13 +95,11 @@ function M.setup()
end
if lvim.use_icons then
- for _, sign in ipairs(lvim.lsp.diagnostics.signs.values) do
+ for _, sign in ipairs(vim.diagnostic.config().signs.values) do
vim.fn.sign_define(sign.name, { texthl = sign.name, text = sign.text, numhl = sign.name })
end
end
- require("lvim.lsp.handlers").setup()
-
if not utils.is_directory(lvim.lsp.templates_dir) then
require("lvim.lsp.templates").generate_templates()
end