mirror of
https://github.com/boxpositron/absolute-vim.git
synced 2026-02-28 11:40:36 +00:00
feat(none-ls.lua): add functions CheckPoetryVirtualEnv and ResolvePythonEnvironment to handle virtual environments more efficiently
This commit is contained in:
@@ -1,5 +1,35 @@
|
|||||||
local null_ls = require("null-ls")
|
local null_ls = require("null-ls")
|
||||||
|
|
||||||
|
|
||||||
|
function CheckPoetryVirtualEnv()
|
||||||
|
local poetry = vim.fn.system("poetry env info -p 2>/dev/null")
|
||||||
|
if poetry == "" then
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
return poetry
|
||||||
|
end
|
||||||
|
|
||||||
|
function ResolvePythonEnvironment()
|
||||||
|
-- Get system global python env
|
||||||
|
local python = vim.fn.system("which python3")
|
||||||
|
-- Check of virtual environments exists
|
||||||
|
local virtual = os.getenv("VIRTUAL_ENV") or os.getenv("CONDA_PREFIX") or CheckPoetryVirtualEnv()
|
||||||
|
|
||||||
|
if virtual == nil then
|
||||||
|
-- Check if poetry environment exists
|
||||||
|
|
||||||
|
print("No virtual environment detected, using system python")
|
||||||
|
return {
|
||||||
|
"--python-executable", python
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
print("Using virtual environment: " .. virtual)
|
||||||
|
return {
|
||||||
|
"--python-executable", virtual .. "/bin/python3"
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
null_ls.setup({
|
null_ls.setup({
|
||||||
sources = {
|
sources = {
|
||||||
null_ls.builtins.formatting.stylua,
|
null_ls.builtins.formatting.stylua,
|
||||||
@@ -7,11 +37,7 @@ null_ls.setup({
|
|||||||
null_ls.builtins.formatting.shfmt,
|
null_ls.builtins.formatting.shfmt,
|
||||||
null_ls.builtins.formatting.black,
|
null_ls.builtins.formatting.black,
|
||||||
null_ls.builtins.diagnostics.mypy.with({
|
null_ls.builtins.diagnostics.mypy.with({
|
||||||
extra_args = function()
|
extra_args = ResolvePythonEnvironment()
|
||||||
-- Let's resolve the virtual environment or conda environment
|
|
||||||
local virtual = os.getenv("VIRTUAL_ENV") or os.getenv("CONDA_PREFIX") or "/usr"
|
|
||||||
return { "--python-executable", virtual .. "/bin/python3" }
|
|
||||||
end,
|
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user