{ lib, ... }: let inherit (lib) types; inherit (lib.nixvim) defaultNullOpts; in lib.nixvim.plugins.mkNeovimPlugin { name = "dap-rr"; packPathName = "nvim-dap-rr"; package = "nvim-dap-rr"; maintainers = [ lib.maintainers.GaetanLepage ]; settingsOptions = { mappings = defaultNullOpts.mkAttrsOf types.str { continue = ""; step_over = ""; step_out = ""; step_into = ""; reverse_continue = ""; reverse_step_over = ""; reverse_step_out = ""; reverse_step_into = ""; step_over_i = ""; step_out_i = ""; step_into_i = ""; reverse_step_over_i = ""; reverse_step_out_i = ""; reverse_step_into_i = ""; } '' Keyboard mappings for nvim-dap-rr. ''; }; settingsExample = { mappings = { continue = ""; step_over = ""; step_out = ""; step_into = ""; reverse_continue = ""; reverse_step_over = ""; reverse_step_out = ""; reverse_step_into = ""; }; }; # Manually supplied to nvim-dap config module callSetup = false; extraConfig = cfg: { plugins.dap = { enable = true; extensionConfigLua = '' require("nvim-dap-rr").setup(${lib.nixvim.toLuaObject cfg.settings}) ''; configurations = { rust = lib.mkDefault [ { __raw = "require('nvim-dap-rr').get_rust_config()"; } ]; cpp = lib.mkDefault [ { __raw = "require('nvim-dap-rr').get_config()"; } ]; }; }; }; }