nvim: Remove lsp-setup.nvim plugin
Removed the plugin since all its functionality can be replicated with an equal amount of lines without it nowadays. Should be even simpler in the future when we can just have individual lsp server config files in the config dir.
This commit is contained in:
parent
ad3c8a6139
commit
9421ef807d
2 changed files with 136 additions and 183 deletions
|
|
@ -27,7 +27,6 @@
|
|||
"jupytext.nvim": { "branch": "main", "commit": "c8baf3ad344c59b3abd461ecc17fc16ec44d0f7b" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "7e6c863bc7563efbdd757a310d17ebc95166cef3" },
|
||||
"lazydev.nvim": { "branch": "main", "commit": "f59bd14a852ca43db38e3662395354cb2a9b13e0" },
|
||||
"lsp-setup.nvim": { "branch": "main", "commit": "6e4e977512ce426d8b52c27f3b6e6aefc73e1452" },
|
||||
"ltex_extra.nvim": { "branch": "dev", "commit": "09dc879b1873001f855bca5ad1f024ca15b9bbaf" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "2a5bae925481f999263d6f5ed8361baef8df4f83" },
|
||||
"luarocks.nvim": { "branch": "main", "commit": "1db9093915eb16ba2473cfb8d343ace5ee04130a" },
|
||||
|
|
@ -49,7 +48,7 @@
|
|||
"nvim-colorizer.lua": { "branch": "master", "commit": "39142aa1390d6ccdca57cb6dc5b2c7bfed460ffe" },
|
||||
"nvim-coverage": { "branch": "main", "commit": "a939e425e363319d952a6c35fb3f38b34041ded2" },
|
||||
"nvim-lint": { "branch": "master", "commit": "789b7ada1b4f00e08d026dffde410dcfa6a0ba87" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "e5bf88e5ea1c4cea5ea96b1e970cb264f7a401a1" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "bf81bef7d75a0f4a0cf61462b318ea00b3c97cc8" },
|
||||
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
|
||||
"nvim-surround": { "branch": "main", "commit": "ae298105122c87bbe0a36b1ad20b06d417c0433e" },
|
||||
"nvim-toggleterm.lua": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" },
|
||||
|
|
|
|||
|
|
@ -44,17 +44,19 @@ local servers = {
|
|||
yamlls = {},
|
||||
}
|
||||
|
||||
return {
|
||||
-- lsp setup
|
||||
{
|
||||
"junnplus/lsp-setup.nvim",
|
||||
dependencies = {
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
-- will sometimes not keep up with lsp changes if set to stable
|
||||
version = false,
|
||||
local lsp = {
|
||||
{ -- pretty lsp 'peek' menus
|
||||
"DNLHC/glance.nvim",
|
||||
opts = { border = { enable = true }, theme = { enable = true, mode = "auto" } },
|
||||
cmd = { "Glance" },
|
||||
},
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
dependencies = {
|
||||
{
|
||||
"williamboman/mason-lspconfig.nvim",
|
||||
opts = { automatic_installation = true },
|
||||
dependencies = {
|
||||
"williamboman/mason.nvim",
|
||||
cmd = {
|
||||
"Mason",
|
||||
|
|
@ -64,158 +66,24 @@ return {
|
|||
"MasonLog",
|
||||
"MasonUpdate",
|
||||
},
|
||||
opts = {},
|
||||
build = ":MasonUpdate",
|
||||
keys = {
|
||||
{ "<leader>vm", ":Mason<cr>", desc = "Mason" },
|
||||
},
|
||||
},
|
||||
{
|
||||
"williamboman/mason-lspconfig.nvim",
|
||||
cmd = { "LspInstall", "LspUninstall" },
|
||||
},
|
||||
{ "saghen/blink.cmp", optional = true },
|
||||
},
|
||||
event = { "BufReadPost", "BufNewFile", "BufWritePre" },
|
||||
config = function()
|
||||
vim.diagnostic.config({ virtual_text = true })
|
||||
vim.fn.sign_define("DiagnosticSignError", { text = "✘", texthl = "DiagnosticSignError" })
|
||||
vim.fn.sign_define("DiagnosticSignWarn", { text = "", texthl = "DiagnosticSignWarn" })
|
||||
vim.fn.sign_define("DiagnosticSignInfo", { text = "", texthl = "DiagnosticSignInfo" })
|
||||
vim.fn.sign_define("DiagnosticSignHint", { text = "", texthl = "DiagnosticSignHint" })
|
||||
|
||||
local lsp = require("lsp-setup")
|
||||
|
||||
local function on_attach(_, bufnr)
|
||||
local map = vim.keymap.set
|
||||
map(
|
||||
"n",
|
||||
"[d",
|
||||
"<cmd>lua vim.diagnostic.goto_prev()<cr>",
|
||||
{ buffer = bufnr, desc = "Previous diagnostic" }
|
||||
)
|
||||
map("n", "]d", "<cmd>lua vim.diagnostic.goto_next()<cr>", { buffer = bufnr, desc = "Next diagnostic" })
|
||||
map(
|
||||
"n",
|
||||
"[D",
|
||||
"<cmd>lua vim.diagnostic.goto_prev({severity = vim.diagnostic.severity.ERROR})<cr>",
|
||||
{ buffer = bufnr, desc = "Previous error" }
|
||||
)
|
||||
map(
|
||||
"n",
|
||||
"]D",
|
||||
"<cmd>lua vim.diagnostic.goto_next({severity = vim.diagnostic.severity.ERROR})<cr>",
|
||||
{ buffer = bufnr, desc = "Next error" }
|
||||
)
|
||||
|
||||
if require("core.util").is_available("which-key") then
|
||||
require("which-key").add({ "<localleader>l", group = "language" })
|
||||
end
|
||||
map(
|
||||
"n",
|
||||
"<localleader>ld",
|
||||
"<cmd>lua vim.diagnostic.open_float()<cr>",
|
||||
{ buffer = bufnr, desc = "Line diagnostics" }
|
||||
)
|
||||
map("n", "<localleader>li", function()
|
||||
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())
|
||||
end, { buffer = bufnr, desc = "Inlay hints" })
|
||||
map(
|
||||
"n",
|
||||
"<localleader>la",
|
||||
"<cmd>lua vim.lsp.buf.code_action()<cr>",
|
||||
{ buffer = bufnr, desc = "Codeactions" }
|
||||
)
|
||||
map(
|
||||
"n",
|
||||
"<localleader>ln",
|
||||
"<cmd>lua vim.lsp.buf.rename()<cr>",
|
||||
{ buffer = bufnr, desc = "Rename element" }
|
||||
)
|
||||
if vim.fn.exists(":Glance") then
|
||||
map("n", "<localleader>lr", "<cmd>Glance references<cr>", { buffer = bufnr, desc = "References" })
|
||||
map("n", "<localleader>lf", "<cmd>Glance definitions<cr>", { buffer = bufnr, desc = "Definition" })
|
||||
map(
|
||||
"n",
|
||||
"<localleader>lt",
|
||||
"<cmd>Glance type_definitions<cr>",
|
||||
{ buffer = bufnr, desc = "Type definition" }
|
||||
)
|
||||
map(
|
||||
"n",
|
||||
"<localleader>lm",
|
||||
"<cmd>Glance implementations<cr>",
|
||||
{ buffer = bufnr, desc = "Implementation" }
|
||||
)
|
||||
elseif vim.fn.exists(":Telescope") then
|
||||
map(
|
||||
"n",
|
||||
"<localleader>lr",
|
||||
"<cmd>Telescope lsp_references<cr>",
|
||||
{ buffer = bufnr, desc = "References" }
|
||||
)
|
||||
map(
|
||||
"n",
|
||||
"<localleader>lf",
|
||||
"<cmd>Telescope lsp_definitions<cr>",
|
||||
{ buffer = bufnr, desc = "Definition" }
|
||||
)
|
||||
map(
|
||||
"n",
|
||||
"<localleader>lt",
|
||||
"<cmd>Telescope lsp_type_definitions<cr>",
|
||||
{ buffer = bufnr, desc = "Type definition" }
|
||||
)
|
||||
map(
|
||||
"n",
|
||||
"<localleader>lm",
|
||||
"<cmd>Telescope lsp_implementations<cr>",
|
||||
{ buffer = bufnr, desc = "Implementation" }
|
||||
)
|
||||
else
|
||||
map(
|
||||
"n",
|
||||
"<localleader>lr",
|
||||
"<cmd>lua vim.lsp.buf.references()<cr>",
|
||||
{ buffer = bufnr, desc = "References" }
|
||||
)
|
||||
map(
|
||||
"n",
|
||||
"<localleader>lf",
|
||||
"<cmd>lua vim.lsp.buf.definition()<cr>",
|
||||
{ buffer = bufnr, desc = "Definition" }
|
||||
)
|
||||
map(
|
||||
"n",
|
||||
"<localleader>lt",
|
||||
"<cmd>lua vim.lsp.buf.type_definition()<cr>",
|
||||
{ buffer = bufnr, desc = "Type definition" }
|
||||
)
|
||||
map(
|
||||
"n",
|
||||
"<localleader>lm",
|
||||
"<cmd>lua vim.lsp.buf.implementation()<cr>",
|
||||
{ buffer = bufnr, desc = "Implementation" }
|
||||
)
|
||||
end
|
||||
map("n", "K", "<cmd>lua vim.lsp.buf.hover()<cr>", { buffer = bufnr, desc = "Hover definition" })
|
||||
map(
|
||||
"n",
|
||||
"<localleader>lc",
|
||||
"<cmd>lua vim.lsp.buf.declaration()<cr>",
|
||||
{ buffer = bufnr, desc = "Declaration" }
|
||||
)
|
||||
map(
|
||||
"n",
|
||||
"<localleader>ls",
|
||||
"<cmd>lua vim.lsp.buf.signature_help()<cr>",
|
||||
{ buffer = bufnr, desc = "Signature help" }
|
||||
)
|
||||
map("n", "<localleader>lo", function()
|
||||
vim.diagnostic.enable(not vim.diagnostic.is_enabled())
|
||||
end, { buffer = bufnr, desc = "Toggle Diagnostics" })
|
||||
end
|
||||
opts = { servers = servers },
|
||||
config = function(_, lspconfig_opts)
|
||||
local lspconfig = require("lspconfig")
|
||||
|
||||
-- Display diagnostics as virtual text only if not in insert mode
|
||||
-- /r/neovim/comments/12inp4c/disable_diagnostics_virtual_text_when_in_insert/jqqifwk/
|
||||
vim.diagnostic.config({ virtual_text = true })
|
||||
vim.api.nvim_create_autocmd("InsertEnter", {
|
||||
callback = function()
|
||||
vim.diagnostic.config({ virtual_text = false })
|
||||
|
|
@ -227,16 +95,19 @@ return {
|
|||
end,
|
||||
})
|
||||
|
||||
lsp.setup({
|
||||
default_mappings = false,
|
||||
servers = servers,
|
||||
on_attach = on_attach,
|
||||
inlay_hints = {
|
||||
enabled = vim.fn.has("nvim-0.10") == true and true or false,
|
||||
},
|
||||
})
|
||||
vim.fn.sign_define("DiagnosticSignError", { text = "✘", texthl = "DiagnosticSignError" })
|
||||
vim.fn.sign_define("DiagnosticSignWarn", { text = "", texthl = "DiagnosticSignWarn" })
|
||||
vim.fn.sign_define("DiagnosticSignInfo", { text = "", texthl = "DiagnosticSignInfo" })
|
||||
vim.fn.sign_define("DiagnosticSignHint", { text = "", texthl = "DiagnosticSignHint" })
|
||||
|
||||
for server, config in pairs(lspconfig_opts.servers) do
|
||||
-- TODO: Check if it actually can be ignored in Nvim 0.11+, see https://cmp.saghen.dev/installation.html#lazy-nvim
|
||||
if vim.fn.has("nvim-0.11") == false then
|
||||
config.capabilities = require("blink.cmp").get_lsp_capabilities(config.capabilities)
|
||||
end
|
||||
lspconfig[server].setup(config)
|
||||
end
|
||||
|
||||
local lspconfig = require("lspconfig")
|
||||
lspconfig.nushell.setup({})
|
||||
|
||||
lspconfig.marksman.setup({
|
||||
|
|
@ -279,7 +150,6 @@ return {
|
|||
end,
|
||||
}
|
||||
end
|
||||
on_attach(client, bufnr)
|
||||
end,
|
||||
on_new_config = function(conf, new_root)
|
||||
if require("lspconfig.util").root_pattern(".zk")(new_root) then
|
||||
|
|
@ -295,12 +165,10 @@ return {
|
|||
-- we primarily use pyright for cmp lsp completion & hover info
|
||||
lspconfig.basedpyright.setup({
|
||||
on_attach = function(client, bufnr)
|
||||
on_attach(client, bufnr)
|
||||
require("core.util").set_python_env()
|
||||
if python_path == nil then
|
||||
python_path, _ = vim.fn.expand(require("core.util").get_python_venv_bin(client.config.root_dir))
|
||||
end
|
||||
-- print(string.format("[PYTHON VENV]: %s", vim.inspect(python_path)))
|
||||
client.config.settings.python = {} or client.config.settings.python
|
||||
client.config.settings.python.pythonPath = python_path
|
||||
end,
|
||||
|
|
@ -319,7 +187,6 @@ return {
|
|||
})
|
||||
lspconfig.ruff.setup({
|
||||
on_attach = function(client, bufnr)
|
||||
on_attach(client, bufnr)
|
||||
require("core.util").set_python_env()
|
||||
client.server_capabilities.hoverProvider = false -- we use pyright for hover info
|
||||
if python_path == nil then
|
||||
|
|
@ -343,7 +210,6 @@ return {
|
|||
callback = function()
|
||||
lspconfig.ltex.setup({
|
||||
on_attach = function(client, bufnr)
|
||||
on_attach(client, bufnr)
|
||||
if require("core.util").is_available("ltex_extra") then
|
||||
require("ltex_extra").setup()
|
||||
end
|
||||
|
|
@ -360,10 +226,98 @@ return {
|
|||
end,
|
||||
keys = { { "<leader>vs", ":LspInfo<cr>", desc = "LspInfo" } },
|
||||
},
|
||||
-- pretty lsp 'peek' menus
|
||||
{
|
||||
"DNLHC/glance.nvim",
|
||||
opts = { border = { enable = true }, theme = { enable = true, mode = "auto" } },
|
||||
cmd = { "Glance" },
|
||||
},
|
||||
}
|
||||
|
||||
vim.api.nvim_create_autocmd("LspAttach", {
|
||||
desc = "LSP actions",
|
||||
callback = function(event)
|
||||
local o = function(add_opts)
|
||||
return vim.tbl_extend("force", { buffer = event.buf }, add_opts)
|
||||
end
|
||||
|
||||
local map = vim.keymap.set
|
||||
map("n", "K", "<cmd>lua vim.lsp.buf.hover()<cr>", o({ desc = "Hover definition" }))
|
||||
map("n", "[d", "<cmd>lua vim.diagnostic.goto_prev()<cr>", o({ desc = "Previous diagnostic" }))
|
||||
map("n", "]d", "<cmd>lua vim.diagnostic.goto_next()<cr>", o({ desc = "Next diagnostic" }))
|
||||
map(
|
||||
"n",
|
||||
"[D",
|
||||
"<cmd>lua vim.diagnostic.goto_prev({severity = vim.diagnostic.severity.ERROR})<cr>",
|
||||
o({ desc = "Previous error" })
|
||||
)
|
||||
map(
|
||||
"n",
|
||||
"]D",
|
||||
"<cmd>lua vim.diagnostic.goto_next({severity = vim.diagnostic.severity.ERROR})<cr>",
|
||||
o({ desc = "Next error" })
|
||||
)
|
||||
|
||||
if require("core.util").is_available("which-key") then
|
||||
require("which-key").add({ "<localleader>l", group = "language" })
|
||||
end
|
||||
map("n", "<localleader>ld", "<cmd>lua vim.diagnostic.open_float()<cr>", o({ desc = "Show line diagnostics" }))
|
||||
map("n", "<localleader>lI", function()
|
||||
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())
|
||||
end, o({ desc = "Toggle inlay hints" }))
|
||||
map("n", "<localleader>la", "<cmd>lua vim.lsp.buf.code_action()<cr>", o({ desc = "Codeactions" }))
|
||||
map("n", "<localleader>ln", "<cmd>lua vim.lsp.buf.rename()<cr>", o({ desc = "Rename element" }))
|
||||
map("n", "<localleader>lc", "<cmd>lua vim.lsp.buf.declaration()<cr>", o({ desc = "Declaration" }))
|
||||
map("n", "<localleader>ls", "<cmd>lua vim.lsp.buf.signature_help()<cr>", o({ desc = "Signature help" }))
|
||||
map("n", "<localleader>lo", function()
|
||||
vim.diagnostic.enable(not vim.diagnostic.is_enabled())
|
||||
end, o({ desc = "Toggle Diagnostics" }))
|
||||
|
||||
local pref = function(glances, telescope, fallback)
|
||||
if glances and vim.fn.exists(":Glance") > 0 then
|
||||
return glances
|
||||
elseif telescope and vim.fn.exists(":Telescope") > 0 then
|
||||
return telescope
|
||||
else
|
||||
return fallback
|
||||
end
|
||||
end
|
||||
|
||||
map(
|
||||
"n",
|
||||
"<localleader>lr",
|
||||
pref(
|
||||
"<cmd>Glance references<cr>",
|
||||
"<cmd>Telescope lsp_references<cr>",
|
||||
"<cmd>lua vim.lsp.buf.references()<cr>"
|
||||
),
|
||||
o({ desc = "References" })
|
||||
)
|
||||
map(
|
||||
"n",
|
||||
"<localleader>lf",
|
||||
pref(
|
||||
"<cmd>Glance definitions<cr>",
|
||||
"<cmd>Telescope lsp_definitions<cr>",
|
||||
"<cmd>lua vim.lsp.buf.definition()<cr>"
|
||||
),
|
||||
o({ desc = "Definition" })
|
||||
)
|
||||
map(
|
||||
"n",
|
||||
"<localleader>lt",
|
||||
pref(
|
||||
"<cmd>Glance type_definitions<cr>",
|
||||
"<cmd>Telescope lsp_type_definitions<cr>",
|
||||
"<cmd>lua vim.lsp.buf.type_definition()<cr>"
|
||||
),
|
||||
o({ desc = "Type definition" })
|
||||
)
|
||||
map(
|
||||
"n",
|
||||
"<localleader>lm",
|
||||
pref(
|
||||
"<cmd>Glance implementations<cr>",
|
||||
"<cmd>Telescope lsp_implementations<cr>",
|
||||
"<cmd>lua vim.lsp.buf.implementation()<cr>"
|
||||
),
|
||||
o({ desc = "Implementation" })
|
||||
)
|
||||
end,
|
||||
})
|
||||
|
||||
return lsp
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue