aboutsummaryrefslogtreecommitdiff
path: root/lua/user/lsp/mason.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/user/lsp/mason.lua')
-rw-r--r--lua/user/lsp/mason.lua84
1 files changed, 61 insertions, 23 deletions
diff --git a/lua/user/lsp/mason.lua b/lua/user/lsp/mason.lua
index 2c14313..8425934 100644
--- a/lua/user/lsp/mason.lua
+++ b/lua/user/lsp/mason.lua
@@ -1,43 +1,81 @@
-local status, mason = pcall(require, "mason")
-if not status then
+local mason_status, mason = pcall(require, "mason")
+if not mason_status then
+ print("lsp/mason.lua: loading mason failed")
return
end
--- mason
-mason.setup({
+local mason_lspconfig_status, mason_lspconfig = pcall(require, "mason-lspconfig")
+if not mason_lspconfig_status then
+ print("lsp/mason.lua: loading mason-lspconfig failed")
+ return
+end
+
+local lspconfig_status, lspconfig = pcall(require, "lspconfig")
+if not lspconfig_status then
+ print("lsp/mason.lua: loading lspconfig failed")
+ return
+end
+
+local mason_null_ls_status, mason_null_ls = pcall(require, "mason-null-ls")
+if not mason_null_ls_status then
+ print("lsp/mason.lua: loading mason-null-ls failed")
+ return
+end
+
+local null_ls_status, null_ls = pcall(require, "null-ls")
+if not null_ls_status then
+ print("lsp/mason.lua: loading null-ls failed")
+ return
+end
+
+
+local settings = {
ui = {
+ border = "none",
icons = {
- package_installed = "✓",
- package_pending = "➜",
- package_uninstalled = "✗"
- }
- }
-})
+ package_installed = "◍",
+ package_pending = "◍",
+ package_uninstalled = "◍",
+ },
+ },
+ log_level = vim.log.levels.INFO,
+ max_concurrent_installers = 4,
+}
--- mason-lspconfig
-require("mason-lspconfig").setup {
- ensure_installed = { "pylsp", "bashls", "lua_ls", "cmake" },
+local servers = {
+ "pylsp", "bashls", "lua_ls", "cmake"
}
-require("mason-lspconfig").setup_handlers {
+
+
+-- mason
+mason.setup(settings)
+
+-- mason-lspconfig
+mason_lspconfig.setup({
+ ensure_installed = servers,
+ automatic_installation = true,
+})
+
+table.insert(servers, "ccls")
+mason_lspconfig.setup_handlers {
function(server_name)
- require("lspconfig")[server_name].setup {}
- end
+ lspconfig[server_name].setup {
+ on_attach = require("user.lsp.handlers").on_attach,
+ capabilities = require("user.lsp.handlers").capabilities,
+ }
+ end,
}
-- mason-null-ls
-require('mason-null-ls').setup({
+mason_null_ls.setup({
automatic_setup = true,
- ensure_installed = {}
+ ensure_installed = {},
})
-require('mason-null-ls').setup_handlers {
+mason_null_ls.setup_handlers {
function(source_name, methods)
require("mason-null-ls.automatic_setup")(source_name, methods)
end,
}
-- null_ls
-local status, null_ls = pcall(require, "null-ls")
-if not status then
- return
-end
null_ls.setup()