-- install plugins -- table.insert(lvim.plugins, { -- "ChristianChiarulli/swenv.nvim", -- "stevearc/dressing.nvim", -- "mfussenegger/nvim-dap-python", -- "nvim-neotest/neotest", -- "nvim-neotest/neotest-python", -- }) -- automatically install python syntax highlighting -- lvim.builtin.treesitter.ensure_installed = { -- "python", -- } -- setup formatting local formatters = require "lvim.lsp.null-ls.formatters" formatters.setup { { name = "black" }, } lvim.format_on_save.enabled = true lvim.format_on_save.pattern = { "*.py" } -- setup linting local linters = require "lvim.lsp.null-ls.linters" linters.setup { { command = "flake8", filetypes = { "python" } } } -- setup debug adapter lvim.builtin.dap.active = true local mason_path = vim.fn.glob(vim.fn.stdpath "data" .. "/mason/") pcall(function() require("dap-python").setup(mason_path .. "packages/debugpy/venv/bin/python") end) require('dap-python').resolve_python = function() if vim.fn.empty(vim.fn.getenv('VIRTUAL_ENV')) == 1 then return '/usr/bin/python' else return vim.fn.getenv('VIRTUAL_ENV') end end -- setup testing require("neotest").setup({ adapters = { require("neotest-python")({ -- Extra arguments for nvim-dap configuration -- See https://github.com/microsoft/debugpy/wiki/Debug-configuration-settings for values python = "/usr/bin/python", dap = { justMyCode = false, console = "integratedTerminal", }, args = { "--log-level", "DEBUG", "--quiet" }, runner = "pytest", }) } }) lvim.builtin.which_key.mappings["dm"] = { "lua require('neotest').run.run()", "Test Method" } lvim.builtin.which_key.mappings["dM"] = { "lua require('neotest').run.run({strategy = 'dap'})", "Test Method DAP" } lvim.builtin.which_key.mappings["df"] = { "lua require('neotest').run.run({vim.fn.expand('%')})", "Test Class" } lvim.builtin.which_key.mappings["dF"] = { "lua require('neotest').run.run({vim.fn.expand('%'), strategy = 'dap'})", "Test Class DAP" } lvim.builtin.which_key.mappings["dS"] = { "lua require('neotest').summary.toggle()", "Test Summary" } -- binding for switching lvim.builtin.which_key.mappings["C"] = { name = "Python", c = { "lua require('swenv.api').pick_venv()", "Choose Env" }, }