diff options
author | Squibid <me@zacharyscheiman.com> | 2024-03-09 00:19:34 -0500 |
---|---|---|
committer | Squibid <me@zacharyscheiman.com> | 2024-03-09 00:19:34 -0500 |
commit | 7bb0dadf81df800465d2b74aa22aa27e400e76aa (patch) | |
tree | 81f7b0a7c93db46c4e8f0ca878fc850ca292369a | |
parent | 2f386b1f2b19416821d3ba9c1be56a6f00ffac45 (diff) | |
download | nvim-7bb0dadf81df800465d2b74aa22aa27e400e76aa.tar.gz nvim-7bb0dadf81df800465d2b74aa22aa27e400e76aa.tar.bz2 nvim-7bb0dadf81df800465d2b74aa22aa27e400e76aa.zip |
call mason in a safer way, and initalize servers better
Diffstat (limited to '')
-rw-r--r-- | after/plugin/lsp.lua | 25 |
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 +} |