aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/nvim
diff options
context:
space:
mode:
authorToby Vincent <tobyv13@gmail.com>2023-05-21 17:01:24 -0500
committerToby Vincent <tobyv13@gmail.com>2023-05-21 17:01:24 -0500
commita4aab077ba3959873cd645eea9ff3f8a6b23c28f (patch)
treebcec17439acdd0455437d8d310f65d63e9110959 /nvim
parente29ce70cc8b25d37f463c0d9ce99df0a22cf0b76 (diff)
feat(nvim): enable auto-setup in mason configs
Diffstat (limited to 'nvim')
-rw-r--r--nvim/.config/nvim/lua/plugins/mason-lspconfig.lua51
-rw-r--r--nvim/.config/nvim/lua/plugins/mason-null-ls.lua15
-rw-r--r--nvim/.config/nvim/lua/plugins/mason-nvim-dap.lua15
-rw-r--r--nvim/.config/nvim/lua/plugins/mason-update-all.lua11
-rw-r--r--nvim/.config/nvim/lua/plugins/mason.lua42
5 files changed, 112 insertions, 22 deletions
diff --git a/nvim/.config/nvim/lua/plugins/mason-lspconfig.lua b/nvim/.config/nvim/lua/plugins/mason-lspconfig.lua
new file mode 100644
index 0000000..0620763
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/mason-lspconfig.lua
@@ -0,0 +1,51 @@
+---@type LazySpec
+local M = {
+ "williamboman/mason-lspconfig.nvim",
+ version = "*",
+ event = "BufReadPre",
+ cmd = {
+ "LspInstall",
+ "LspUninstall",
+ },
+ dependencies = { "williamboman/mason.nvim", "neovim/nvim-lspconfig" },
+ opts = {
+ handlers = {
+ function(name)
+ local config = require("tobyvin.lsp.configs")[name] or {}
+ local available = require("lspconfig").util.available_servers()
+
+ if not vim.tbl_contains(available, name) then
+ require("lspconfig")[name].setup(config)
+ end
+ end,
+ },
+ },
+}
+
+function M:init()
+ vim.api.nvim_create_autocmd("FileType", {
+ group = vim.api.nvim_create_augroup("mason-lspconfig", { clear = true }),
+ callback = function(args)
+ if vim.bo[args.buf].buftype ~= "" then
+ return
+ end
+
+ local available = require("mason-lspconfig").get_available_servers({ filetype = args.match })
+ if #available == 0 then
+ return
+ end
+
+ local installed = require("mason-lspconfig").get_installed_servers()
+ for _, server in ipairs(available) do
+ if vim.tbl_contains(installed, server) then
+ return
+ end
+ end
+
+ vim.schedule(vim.cmd.LspInstall)
+ end,
+ desc = "prompt to install missing lspconfig servers",
+ })
+end
+
+return M
diff --git a/nvim/.config/nvim/lua/plugins/mason-null-ls.lua b/nvim/.config/nvim/lua/plugins/mason-null-ls.lua
new file mode 100644
index 0000000..17e3544
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/mason-null-ls.lua
@@ -0,0 +1,15 @@
+---@type LazySpec
+local M = {
+ "jayp0521/mason-null-ls.nvim",
+ version = "*",
+ cmd = {
+ "NullLsInstall",
+ "NullLsUninstall",
+ },
+ dependencies = { "williamboman/mason.nvim", "jose-elias-alvarez/null-ls.nvim" },
+ opts = {
+ handlers = {},
+ },
+}
+
+return M
diff --git a/nvim/.config/nvim/lua/plugins/mason-nvim-dap.lua b/nvim/.config/nvim/lua/plugins/mason-nvim-dap.lua
new file mode 100644
index 0000000..97d6d3f
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/mason-nvim-dap.lua
@@ -0,0 +1,15 @@
+---@type LazySpec
+local M = {
+ "jayp0521/mason-nvim-dap.nvim",
+ version = "*",
+ cmd = {
+ "DapInstall",
+ "DapUninstall",
+ },
+ dependencies = { "williamboman/mason.nvim", "mfussenegger/nvim-dap" },
+ opts = {
+ handlers = {},
+ },
+}
+
+return M
diff --git a/nvim/.config/nvim/lua/plugins/mason-update-all.lua b/nvim/.config/nvim/lua/plugins/mason-update-all.lua
new file mode 100644
index 0000000..fa1f17c
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/mason-update-all.lua
@@ -0,0 +1,11 @@
+---@type LazySpec
+local M = {
+ "RubixDev/mason-update-all",
+ cmd = {
+ "MasonUpdateAll",
+ },
+ dependencies = { "williamboman/mason.nvim" },
+ config = true,
+}
+
+return M
diff --git a/nvim/.config/nvim/lua/plugins/mason.lua b/nvim/.config/nvim/lua/plugins/mason.lua
index a5b0971..eba1cfe 100644
--- a/nvim/.config/nvim/lua/plugins/mason.lua
+++ b/nvim/.config/nvim/lua/plugins/mason.lua
@@ -1,26 +1,24 @@
+---@type LazySpec
local M = {
- "williamboman/mason.nvim",
- build = ":MasonUpdate",
- cmd = {
- "Mason",
- "MasonInstall",
- "MasonUninstall",
- "MasonUninstall",
- "MasonLog",
- },
- dependencies = {
- { "RubixDev/mason-update-all", config = true },
- { "williamboman/mason-lspconfig.nvim", config = true },
- { "jayp0521/mason-null-ls.nvim", version = "*", config = true },
- { "jayp0521/mason-nvim-dap.nvim", version = "*", config = true },
- },
- opts = {
- ui = {
- border = "single",
- icons = {
- package_installed = "✓",
- package_pending = "➜",
- package_uninstalled = "✗",
+ {
+ "williamboman/mason.nvim",
+ version = "*",
+ build = ":MasonUpdate",
+ cmd = {
+ "Mason",
+ "MasonLog",
+ "MasonInstall",
+ "MasonUninstall",
+ },
+ dependencies = {},
+ opts = {
+ ui = {
+ border = "single",
+ icons = {
+ package_installed = "✓",
+ package_pending = "➜",
+ package_uninstalled = "✗",
+ },
},
},
},