mirror of
https://github.com/LunarVim/LunarVim.git
synced 2024-09-20 18:45:08 +02:00
fix(config): use a minimal bootstrap for mason (#3427)
This commit is contained in:
parent
58e0555b4c
commit
222a872dcc
2 changed files with 49 additions and 0 deletions
|
@ -106,6 +106,8 @@ function M:init(base_dir)
|
||||||
install_path = self.packer_install_dir,
|
install_path = self.packer_install_dir,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
require("lvim.core.mason").bootstrap()
|
||||||
|
|
||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
|
local join_paths = require("lvim.utils").join_paths
|
||||||
|
|
||||||
function M.config()
|
function M.config()
|
||||||
lvim.builtin.mason = {
|
lvim.builtin.mason = {
|
||||||
ui = {
|
ui = {
|
||||||
|
@ -16,7 +18,27 @@ function M.config()
|
||||||
apply_language_filter = "<C-f>",
|
apply_language_filter = "<C-f>",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
-- NOTE: should be available in $PATH
|
||||||
|
install_root_dir = join_paths(vim.fn.stdpath "data", "mason"),
|
||||||
|
|
||||||
|
-- NOTE: already handled in the bootstrap stage
|
||||||
|
PATH = "skip",
|
||||||
|
|
||||||
|
pip = {
|
||||||
|
-- These args will be added to `pip install` calls. Note that setting extra args might impact intended behavior
|
||||||
|
-- and is not recommended.
|
||||||
|
--
|
||||||
|
-- Example: { "--proxy", "https://proxyserver" }
|
||||||
|
install_args = {},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Controls to which degree logs are written to the log file. It's useful to set this to vim.log.levels.DEBUG when
|
||||||
|
-- debugging issues with package installations.
|
||||||
log_level = vim.log.levels.INFO,
|
log_level = vim.log.levels.INFO,
|
||||||
|
|
||||||
|
-- Limit for the maximum amount of packages to be installed at the same time. Once this limit is reached, any further
|
||||||
|
-- packages that are requested to be installed will be put in a queue.
|
||||||
max_concurrent_installers = 4,
|
max_concurrent_installers = 4,
|
||||||
|
|
||||||
github = {
|
github = {
|
||||||
|
@ -30,12 +52,37 @@ function M.config()
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function M.get_prefix()
|
||||||
|
local default_prefix = join_paths(vim.fn.stdpath "data", "mason")
|
||||||
|
return vim.tbl_get(lvim.builtin, "mason", "install_root_dir") or default_prefix
|
||||||
|
end
|
||||||
|
|
||||||
|
---@param append boolean|nil whether to append to prepend to PATH
|
||||||
|
local function add_to_path(append)
|
||||||
|
local p = join_paths(M.get_prefix(), "bin")
|
||||||
|
if vim.env.PATH:match(p) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local string_separator = vim.loop.os_uname().version:match "Windows" and ";" or ":"
|
||||||
|
if append then
|
||||||
|
vim.env.PATH = vim.env.PATH .. string_separator .. p
|
||||||
|
else
|
||||||
|
vim.env.PATH = p .. string_separator .. vim.env.PATH
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.bootstrap()
|
||||||
|
add_to_path()
|
||||||
|
end
|
||||||
|
|
||||||
function M.setup()
|
function M.setup()
|
||||||
local status_ok, mason = pcall(reload, "mason")
|
local status_ok, mason = pcall(reload, "mason")
|
||||||
if not status_ok then
|
if not status_ok then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
add_to_path(lvim.builtin.mason.PATH == "append")
|
||||||
|
|
||||||
mason.setup(lvim.builtin.mason)
|
mason.setup(lvim.builtin.mason)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue