{ pkgs, lib, ... }: with builtins; { config.home-manager.users.moritz.programs.neovim.lazy.plugins = with pkgs.vimPlugins; [ { plugin = nvim-dap; keys = [ { key = "<leader>cb"; cmd = "<cmd>lua require('dap').toggle_breakpoint()<cr>"; desc = "Toggle breakpoint"; } { key = "<leader>cd"; cmd = "<cmd>lua require('dap').continue()<cr>"; desc = "Continue"; } ]; dependencies = [ { plugin = nvim-dap-python; ft = [ "python" ]; conf = let pythonWithDebugpy = pkgs.python3.withPackages (ps: with ps; [ debugpy ]); in /* lua */ '' require("dap-python").setup("${lib.getExe pythonWithDebugpy}") ''; } { plugin = nvim-dap-virtual-text; opts = { }; } { plugin = nvim-dap-ui; opts = { }; conf = /* lua */ '' local dap = require("dap") local dapui = require("dapui") dapui.setup(opts) dap.listeners.after.event_initialized["dapui_config"] = function() dapui.open({}) end dap.listeners.before.event_terminated["dapui_config"] = function() dapui.close({}) end dap.listeners.before.event_exited["dapui_config"] = function() dapui.close({}) end ''; } ]; } ]; }