I'm not gonna bother
This commit is contained in:
@ -35,6 +35,45 @@ local M = {
|
||||
}
|
||||
|
||||
M.mason = {
|
||||
packages = {
|
||||
formatters = { "black" },
|
||||
daps = { "debugpy" },
|
||||
lsps = {
|
||||
"clangd",
|
||||
"mesonlsp",
|
||||
"bashls",
|
||||
"lua_ls",
|
||||
"jdtls",
|
||||
"basedpyright"
|
||||
}
|
||||
},
|
||||
|
||||
--- Attempt to install all desired packages. This only really works on first
|
||||
--- install as mason seems to not remove the paths of the things we uninstall
|
||||
--- and instead just removes the code, leaving behind it's metadata.
|
||||
ensure_installed = function()
|
||||
local to_install = {}
|
||||
|
||||
for _, type in pairs(M.mason.packages) do
|
||||
for _, pkg in ipairs(type) do
|
||||
-- HACK: some servers don't have the same name in mason as they do in
|
||||
-- the vim lsp, we use the vim lsp names, and therefore need to
|
||||
-- convert them in here when they're incorrect for mason
|
||||
if pkg == "bashls" then pkg = "bash-language-server"
|
||||
elseif pkg == "lua_ls" then pkg = "lua-language-server"
|
||||
end
|
||||
|
||||
if vim.fn.isdirectory(M.mason.get_pkg_path(pkg)) == 0 then
|
||||
table.insert(to_install, pkg)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if #to_install > 0 then
|
||||
vim.cmd.MasonInstall(to_install)
|
||||
end
|
||||
end,
|
||||
|
||||
--- Gets a path to a package in the Mason registry.
|
||||
--- Prefer this to `get_package`, since the package might not always be
|
||||
--- available yet and trigger errors.
|
||||
|
Reference in New Issue
Block a user