2 { "nvim-treesitter/nvim-treesitter",
3 opts = { ensure_installed = { "ninja", "rst" } },
5 { "neovim/nvim-lspconfig",
9 cmd_env = { RUFF_TRACE = "messages" },
18 rmz.lsp.action["source.organizeImports"],
19 desc = "Organize Imports",
26 rmz.lsp.on_attach(function(client, _)
27 -- Disable hover in favor of Pyright
28 client.server_capabilities.hoverProvider = false
35 "neovim/nvim-lspconfig",
36 opts = function(_, opts)
37 local servers = { "pyright", "ruff"}
38 for _, server in ipairs(servers) do
39 opts.servers[server] = opts.servers[server] or {}
40 opts.servers[server].enabled = server == lsp or server == ruff
45 "nvim-neotest/neotest",
47 "nvim-neotest/neotest-python",
51 ["neotest-python"] = {
52 dap = { justMyCode = false }},
57 "mfussenegger/nvim-dap",
59 "mfussenegger/nvim-dap-python",
61 { "<leader>dPt", function() require('dap-python').test_method() end, desc = "Debug Method", ft = "python" },
62 { "<leader>dPc", function() require('dap-python').test_class() end, desc = "Debug Class", ft = "python" },
65 local path = require("mason-registry").get_package("debugpy"):get_install_path()
66 require("dap-python").setup(path .. "/venv/bin/python")
70 { "jay-babu/mason-nvim-dap.nvim",
73 python = function() end,
75 ensure_installed = { "python" },
78 { "linux-cultist/venv-selector.nvim", enabled = false,
79 -- TODO needs fd to be installed (I don't know what that is)
80 branch = "regexp", -- Use this branch for the new version
85 notify_user_on_venv_activation = true,
89 -- Call config for python files and load the cached venv automatically
91 keys = { { "<leader>cv", "<cmd>:VenvSelect<cr>", desc = "Select VirtualEnv", ft = "python" } },
95 opts = function(_, opts)
96 opts.auto_brackets = opts.auto_brackets or {}
97 table.insert(opts.auto_brackets, "python")