-- ❯ \cat ~/.config/lvim/config.lua -- Read the docs: https://www.lunarvim.org/docs/configuration -- Video Tutorials: https://www.youtube.com/watch?v=sFA9kX-Ud_c&list=PLhoH5vyxr6QqGu0i7tt_XoVK9v-KvZ3m6 -- Forum: https://www.reddit.com/r/lunarvim/ -- Discord: https://discord.com/invite/Xb9B4Ny -- TODO: Try these configs eventually -- Defaults from lvim -- SOURCE: https://github.com/LunarVim/starter.lvim/blob/python-ide/config.lua -- install plugins lvim.plugins = { "ChristianChiarulli/swenv.nvim", "stevearc/dressing.nvim", "mfussenegger/nvim-dap-python", "nvim-neotest/neotest", "nvim-neotest/neotest-python", } -- lvim.debug = false -- vim.lsp.set_log_level "error" -- lvim.log.level = "warn" lvim.log.level = "warn" lvim.format_on_save.enabled = false lvim.colorscheme = "lunar" lvim.leader = "space" lvim.keys.normal_mode[""] = ":w" lvim.builtin.alpha.active = true lvim.builtin.alpha.mode = "dashboard" lvim.builtin.terminal.active = true lvim.builtin.nvimtree.setup.view.side = "left" lvim.builtin.nvimtree.setup.renderer.icons.show.git = false -- automatically install python syntax highlighting lvim.builtin.treesitter.ensure_installed = { "awk", "bash", "c", "cmake", "cpp", "css", "diff", "dockerfile", "git_config", "gitattributes", "gitcommit", "gitignore", "ini", "javascript", "json", "lua", "make", "passwd", "python", "rst", "ruby", "rust", "toml", "tsx", "typescript", "yaml", } lvim.builtin.treesitter.ignore_install = { "haskell" } lvim.builtin.treesitter.highlight.enable = true -- Custom vim options -- vim.opt.relativenumber=true -- 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) -- 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 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" }, } -- local formatters = require "lvim.lsp.null-ls.formatters" -- formatters.setup { { name = "black" }} -- local linters = require "lvim.lsp.null-ls.linters" -- linters.setup { { command = "flake8", args = { "--ignore=E203" }, filetypes = { "python" } }}