]> git.rmz.io Git - dotfiles.git/blob - nvim/lua/plugins/lang/python.lua
ssh: RemoteForward gpg-agent socket to fpp and deepthought
[dotfiles.git] / nvim / lua / plugins / lang / python.lua
1 return {
2 { "nvim-treesitter/nvim-treesitter",
3 opts = { ensure_installed = { "ninja", "rst" } },
4 },
5 { "neovim/nvim-lspconfig",
6 opts = {
7 servers = {
8 ruff = {
9 cmd_env = { RUFF_TRACE = "messages" },
10 init_options = {
11 settings = {
12 logLevel = "error",
13 },
14 },
15 keys = {
16 {
17 "<leader>co",
18 rmz.lsp.action["source.organizeImports"],
19 desc = "Organize Imports",
20 },
21 },
22 },
23 },
24 setup = {
25 ["ruff"] = function()
26 rmz.lsp.on_attach(function(client, _)
27 -- Disable hover in favor of Pyright
28 client.server_capabilities.hoverProvider = false
29 end, "ruff")
30 end,
31 },
32 },
33 },
34 {
35 "nvim-neotest/neotest",
36 dependencies = {
37 "nvim-neotest/neotest-python",
38 },
39 opts = {
40 adapters = {
41 ["neotest-python"] = {
42 dap = { justMyCode = false }},
43 },
44 },
45 },
46 {
47 "mfussenegger/nvim-dap",
48 dependencies = {
49 "mfussenegger/nvim-dap-python",
50 keys = {
51 { "<leader>dPt", function() require('dap-python').test_method() end, desc = "Debug Method", ft = "python" },
52 { "<leader>dPc", function() require('dap-python').test_class() end, desc = "Debug Class", ft = "python" },
53 },
54 },
55 },
56 { "linux-cultist/venv-selector.nvim", enabled = false,
57 -- TODO needs fd to be installed (I don't know what that is)
58 branch = "regexp", -- Use this branch for the new version
59 cmd = "VenvSelect",
60 opts = {
61 settings = {
62 options = {
63 notify_user_on_venv_activation = true,
64 },
65 },
66 },
67 -- Call config for python files and load the cached venv automatically
68 ft = "python",
69 keys = { { "<leader>cv", "<cmd>:VenvSelect<cr>", desc = "Select VirtualEnv", ft = "python" } },
70 },
71 { "hrsh7th/nvim-cmp",
72 optional = true,
73 opts = function(_, opts)
74 opts.auto_brackets = opts.auto_brackets or {}
75 table.insert(opts.auto_brackets, "python")
76 end,
77 },
78 }