nvim/lua/cosmic/lsp/providers/pyright.lua
2022-02-17 16:10:16 -08:00

34 lines
894 B
Lua

local path = require('lspconfig/util').path
local function get_python_path(workspace)
-- Use activated virtualenv.
if vim.env.VIRTUAL_ENV then
return path.join(vim.env.VIRTUAL_ENV, 'bin', 'python')
end
-- Find and use virtualenv in workspace directory.
for _, pattern in ipairs({ '*', '.*' }) do
local match = vim.fn.glob(path.join(workspace, pattern, 'pyvenv.cfg'))
if match ~= '' then
return path.join(path.dirname(match), 'bin', 'python')
end
end
-- Fallback to system Python.
return exepath('python3') or exepath('python') or 'python'
end
return {
settings = {
python = {
analysis = {
typeCheckingMode = 'off',
useLibraryCodeForTypes = true,
completeFunctionParens = true,
},
},
},
before_init = function(_, config)
config.settings.python.pythonPath = get_python_path(config.root_dir)
end,
}