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")
|
||||
|
||||
|
||||
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({
|
||||
sources = {
|
||||
null_ls.builtins.formatting.stylua,
|
||||
@@ -7,11 +37,7 @@ null_ls.setup({
|
||||
null_ls.builtins.formatting.shfmt,
|
||||
null_ls.builtins.formatting.black,
|
||||
null_ls.builtins.diagnostics.mypy.with({
|
||||
extra_args = function()
|
||||
-- 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,
|
||||
extra_args = ResolvePythonEnvironment()
|
||||
}),
|
||||
},
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user