summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-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
+}