-- Exit if the language server isn't available if vim.fn.executable('pylsp') ~= 1 then return end local root_files = { 'pyproject.toml', 'setup.py', 'setup.cfg', 'requirements.txt', 'Pipfile', 'pyrightconfig.json', '.git', } vim.lsp.start({ name = 'python-lsp-server', cmd = { "pylsp" }, root_dir = vim.fs.dirname(vim.fs.find(root_files, { upward = true })[1]), capabilities = require('user.lsp').make_client_capabilities(), filetypes = { 'python' }, on_attach = function(client, bufnr) require("nvim-navic").attach(client, bufnr) require("workspace-diagnostics").populate_workspace_diagnostics(client, bufnr) end, settings = { pylsp = { plugins = { mypy = { enabled = true, }, rope = { enabled = true, }, ruff = { enabled = true, }, }, }, }, single_file_support = true })