aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-11-16 19:59:10 +0100
committerGitHub <noreply@github.com>2022-11-16 19:59:10 +0100
commit6600d2af20fc8df1765fbc68283de2a4da17e190 (patch)
tree25c20c57ba65f62d8c603fd977e6cb990b3f315c /lua
parentchore: update generated code (#669) (diff)
downloadmason-6600d2af20fc8df1765fbc68283de2a4da17e190.tar
mason-6600d2af20fc8df1765fbc68283de2a4da17e190.tar.gz
mason-6600d2af20fc8df1765fbc68283de2a4da17e190.tar.bz2
mason-6600d2af20fc8df1765fbc68283de2a4da17e190.tar.lz
mason-6600d2af20fc8df1765fbc68283de2a4da17e190.tar.xz
mason-6600d2af20fc8df1765fbc68283de2a4da17e190.tar.zst
mason-6600d2af20fc8df1765fbc68283de2a4da17e190.zip
feat(pip): add setting to upgrade pip before installing packages (#671)
Closes #616.
Diffstat (limited to 'lua')
-rw-r--r--lua/mason-core/managers/pip3/init.lua12
-rw-r--r--lua/mason/settings.lua5
2 files changed, 16 insertions, 1 deletions
diff --git a/lua/mason-core/managers/pip3/init.lua b/lua/mason-core/managers/pip3/init.lua
index 67f70a89..aeca0ce0 100644
--- a/lua/mason-core/managers/pip3/init.lua
+++ b/lua/mason-core/managers/pip3/init.lua
@@ -64,6 +64,18 @@ function M.install(packages)
Optional.of_nilable(executable)
:if_present(function()
+ if settings.current.pip.upgrade_pip then
+ ctx.spawn.python {
+ "-m",
+ "pip",
+ "--disable-pip-version-check",
+ "install",
+ "-U",
+ settings.current.pip.install_args,
+ "pip",
+ with_paths = { M.venv_path(ctx.cwd:get()) },
+ }
+ end
ctx.spawn.python {
"-m",
"pip",
diff --git a/lua/mason/settings.lua b/lua/mason/settings.lua
index 4322988f..9bdc0f9c 100644
--- a/lua/mason/settings.lua
+++ b/lua/mason/settings.lua
@@ -15,6 +15,9 @@ local DEFAULT_SETTINGS = {
PATH = "prepend",
pip = {
+ -- Whether to upgrade pip to the latest version in the virtual environment before installing packages.
+ upgrade_pip = false,
+
-- These args will be added to `pip install` calls. Note that setting extra args might impact intended behavior
-- and is not recommended.
--
@@ -92,7 +95,7 @@ M.current = M._DEFAULT_SETTINGS
---@param opts MasonSettings
function M.set(opts)
- M.current = vim.tbl_deep_extend("force", M.current, opts)
+ M.current = vim.tbl_deep_extend("force", vim.deepcopy(M.current), opts)
end
return M