Files
dotfiles/nvim/files/lsp/pyright.lua

39 lines
1.3 KiB
Lua

return {
cmd = { "pyright-langserver", "--stdio" },
filetypes = { "python" },
root_markers = { "pyproject.toml", "setup.py", "setup.cfg", "requirements.txt", ".git" },
on_new_config = function(new_config, root_dir)
local resolved_root = vim.fs.normalize(vim.fn.expand(root_dir))
local venv_python = resolved_root .. "/.venv/bin/python"
if vim.uv.fs_stat(venv_python) then
new_config.settings = new_config.settings or {}
new_config.settings.python = new_config.settings.python or {}
new_config.settings.python.pythonPath = venv_python
end
end,
on_init = function(client)
local root_dir = client.config.root_dir
if not root_dir then
return
end
local resolved_root = vim.fs.normalize(vim.fn.expand(root_dir))
local venv_python = resolved_root .. "/.venv/bin/python"
if vim.uv.fs_stat(venv_python) then
client.config.settings = client.config.settings or {}
client.config.settings.python = client.config.settings.python or {}
client.config.settings.python.pythonPath = venv_python
client.notify("workspace/didChangeConfiguration", { settings = client.config.settings })
end
end,
settings = {
python = {
analysis = {
autoSearchPaths = true,
useLibraryCodeForTypes = true,
diagnosticMode = "openFilesOnly",
},
},
},
}