summaryrefslogtreecommitdiffstats
path: root/after/plugin/lsp.lua
diff options
context:
space:
mode:
authorSquibid <me@zacharyscheiman.com>2024-03-09 00:19:34 -0500
committerSquibid <me@zacharyscheiman.com>2024-03-09 00:19:34 -0500
commit7bb0dadf81df800465d2b74aa22aa27e400e76aa (patch)
tree81f7b0a7c93db46c4e8f0ca878fc850ca292369a /after/plugin/lsp.lua
parent2f386b1f2b19416821d3ba9c1be56a6f00ffac45 (diff)
downloadnvim-7bb0dadf81df800465d2b74aa22aa27e400e76aa.tar.gz
nvim-7bb0dadf81df800465d2b74aa22aa27e400e76aa.tar.bz2
nvim-7bb0dadf81df800465d2b74aa22aa27e400e76aa.zip
call mason in a safer way, and initalize servers better
Diffstat (limited to 'after/plugin/lsp.lua')
-rw-r--r--after/plugin/lsp.lua25
1 files changed, 20 insertions, 5 deletions
diff --git a/after/plugin/lsp.lua b/after/plugin/lsp.lua
index da1a9c8..f037eb9 100644
--- a/after/plugin/lsp.lua
+++ b/after/plugin/lsp.lua
@@ -62,10 +62,25 @@ vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(
vim.lsp.handlers.signature_help, { border = 'shadow' })
-- get servers and attach to them
-require('mason').setup {}
-require('mason-lspconfig').setup {}
+local status_ok1, mason = pcall(require, "mason")
+if not status_ok1 then
+ return
+end
+mason.setup {}
-local get_servers = require('mason-lspconfig').get_installed_servers
-for _, server_name in ipairs(get_servers()) do
- lspconfig[server_name].setup({ on_attach = lsp_attach, })
+local status_ok2, masonlspconfig = pcall(require, "mason-lspconfig")
+if not status_ok2 then
+ return
end
+masonlspconfig.setup {}
+masonlspconfig.setup_handlers {
+ function (server_name)
+ lspconfig[server_name].setup { on_attach = lsp_attach }
+ end,
+
+ -- specific servers can be setup as follows:
+ -- ["rust_analyzer"] = function ()
+ -- require("rust-tools").setup {}
+ -- end
+ -- check out :help mason-lspconfig for more info
+}