diff options
| author | Kyren223 <Kyren223@proton.me> | 2025-04-27 14:12:18 +0300 |
|---|---|---|
| committer | Kyren223 <Kyren223@proton.me> | 2025-04-27 14:12:18 +0300 |
| commit | 21107f040b1579c1139ef0ca2ce993603d24826f (patch) | |
| tree | ec72798215c80179689b9a92d1f147308771244d /.config/nvim/lsp/basedpyright.lua | |
| parent | 49be66e67afbbe27b4d93ec1ff39bc6c1d97e3ef (diff) | |
Massive nvim refactor, migrated from nvim-lspconfig to NVIM 0.11 lsp/*
also migrated most LSP clients to nix rather than mason
Diffstat (limited to '.config/nvim/lsp/basedpyright.lua')
| -rw-r--r-- | .config/nvim/lsp/basedpyright.lua | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/.config/nvim/lsp/basedpyright.lua b/.config/nvim/lsp/basedpyright.lua new file mode 100644 index 0000000..d076946 --- /dev/null +++ b/.config/nvim/lsp/basedpyright.lua @@ -0,0 +1,56 @@ +-- https://detachhead.github.io/basedpyright + +local function set_python_path(path) + local clients = vim.lsp.get_clients({ + bufnr = vim.api.nvim_get_current_buf(), + name = 'basedpyright', + }) + for _, client in ipairs(clients) do + if client.settings then + client.settings.python = vim.tbl_deep_extend('force', client.settings.python or {}, { pythonPath = path }) + else + client.config.settings = + vim.tbl_deep_extend('force', client.config.settings, { python = { pythonPath = path } }) + end + client.notify('workspace/didChangeConfiguration', { settings = nil }) + end +end + +return { + cmd = { 'basedpyright-langserver', '--stdio' }, + filetypes = { 'python' }, + root_markers = { + 'pyproject.toml', + 'setup.py', + 'setup.cfg', + 'requirements.txt', + 'Pipfile', + 'pyrightconfig.json', + '.git', + }, + settings = { + basedpyright = { + analysis = { + autoSearchPaths = true, + useLibraryCodeForTypes = true, + diagnosticMode = 'openFilesOnly', + }, + }, + }, + on_attach = function(client, bufnr) + vim.api.nvim_buf_create_user_command(bufnr, 'LspPyrightOrganizeImports', function() + client:exec_cmd({ + command = 'basedpyright.organizeimports', + arguments = { vim.uri_from_bufnr(bufnr) }, + }) + end, { + desc = 'Organize Imports', + }) + + vim.api.nvim_buf_create_user_command(0, 'LspPyrightSetPythonPath', set_python_path, { + desc = 'Reconfigure basedpyright with the provided python path', + nargs = 1, + complete = 'file', + }) + end, +} |
