From a6f234cc570c5d71704057f549417b1a84f5bd6e Mon Sep 17 00:00:00 2001 From: jasmine Date: Fri, 16 May 2025 21:01:35 +0800 Subject: [PATCH] install debugger --- config/default.nix | 6 + config/plugins/dap/dap-python.nix | 53 +++++++++ config/plugins/dap/dap-ui.nix | 18 +++ config/plugins/dap/dap-virtual-text.nix | 5 + config/plugins/dap/dap.nix | 143 ++++++++++++++++++++++++ 5 files changed, 225 insertions(+) create mode 100644 config/plugins/dap/dap-python.nix create mode 100644 config/plugins/dap/dap-ui.nix create mode 100644 config/plugins/dap/dap-virtual-text.nix create mode 100644 config/plugins/dap/dap.nix diff --git a/config/default.nix b/config/default.nix index 0d49d84..3dd9bf6 100644 --- a/config/default.nix +++ b/config/default.nix @@ -10,6 +10,12 @@ # Completion ./plugins/cmp/cmp.nix + # Debug Adapter Protocol + ./plugins/dap/dap.nix + ./plugins/dap/dap-ui.nix + ./plugins/dap/dap-virtual-text.nix + ./plugins/dap/dap-python.nix + # Editor plugins and configurations ./plugins/editor/buffers.nix ./plugins/editor/comment.nix diff --git a/config/plugins/dap/dap-python.nix b/config/plugins/dap/dap-python.nix new file mode 100644 index 0000000..d71888f --- /dev/null +++ b/config/plugins/dap/dap-python.nix @@ -0,0 +1,53 @@ +{ ... }: { + plugins.dap-python = { + enable = true; + }; + + keymaps = [ + { + mode = ["n" "v"]; + key = "dP"; + action = ""; + options = { + silent = true; + desc = "+python"; + }; + } + + { + mode = ["n"]; + key = "dPm"; + action = { + __raw = "require('dap-python').test_method"; + }; + options = { + silent = true; + desc = "Test method"; + }; + } + + { + mode = ["n"]; + key = "dPc"; + action = { + __raw = "require('dap-python').test_class"; + }; + options = { + silent = true; + desc = "Test Class"; + }; + } + + { + mode = ["v"]; + key = "dPs"; + action = { + __raw = "require('dap-python').debug_selection"; + }; + options = { + silent = true; + desc = "Debug selection"; + }; + } + ]; +} diff --git a/config/plugins/dap/dap-ui.nix b/config/plugins/dap/dap-ui.nix new file mode 100644 index 0000000..e26e2a2 --- /dev/null +++ b/config/plugins/dap/dap-ui.nix @@ -0,0 +1,18 @@ +{...}: { + plugins.dap-ui = { + enable = true; + }; + + keymaps = [ + { + key = "du"; + action = { + __raw = "require('dapui').toggle"; + }; + options = { + silent = true; + desc = "Toggle UI"; + }; + } + ]; +} diff --git a/config/plugins/dap/dap-virtual-text.nix b/config/plugins/dap/dap-virtual-text.nix new file mode 100644 index 0000000..9f7b378 --- /dev/null +++ b/config/plugins/dap/dap-virtual-text.nix @@ -0,0 +1,5 @@ +{ ... }: { + plugins.dap-virtual-text = { + enable = true; + }; +} diff --git a/config/plugins/dap/dap.nix b/config/plugins/dap/dap.nix new file mode 100644 index 0000000..67cc2ea --- /dev/null +++ b/config/plugins/dap/dap.nix @@ -0,0 +1,143 @@ +{...}: { + plugins.dap = { + enable = true; + }; + + keymaps = [ + # Prefix: dap + { + mode = ["n" "v"]; + key = "d"; + action = ""; + options = { + silent = true; + desc = "+dap"; + }; + } + + + # Session management: + { + mode = ["n" "v"]; + key = "dc"; + action = "DapContinue"; + options = { + silent = true; + }; + } + + { + mode = ["n"]; + key = "dd"; + action = "DapDisconnect"; + options = { + silent = true; + }; + } + + { + mode = ["n"]; + key = "dn"; + action = "DapNew"; + options = { + silent = true; + }; + } + + { + mode = ["n"]; + key = "dt"; + action = "DapTerminate"; + options = { + silent = true; + }; + } + + + # Stepping: + { + mode = ["n"]; + key = "dr"; + action = "DapRestartFrame"; + options = { + silent = true; + }; + } + + { + mode = ["n"]; + key = "di"; + action = "DapStepInto"; + options = { + silent = true; + }; + } + + { + mode = ["n"]; + key = "dO"; + action = "DapStepOut"; + options = { + silent = true; + }; + } + + { + mode = ["n"]; + key = "do"; + action = "DapStepOver"; + options = { + silent = true; + }; + } + + { + mode = ["n"]; + key = "dp"; + action = "DapPause"; + options = { + silent = true; + }; + } + + + # Repl: + { + mode = ["n"]; + key = "dE"; + action = "DapEval"; + options = { + silent = true; + }; + } + + { + mode = ["n"]; + key = "dR"; + action = "DapToggleRepl"; + options = { + silent = true; + }; + } + + + # Breakpoints: + { + mode = ["n"]; + key = "dB"; + action = "DapClearBreakpoints"; + options = { + silent = true; + }; + } + + { + mode = ["n"]; + key = "db"; + action = "DapToggleBreakpoint"; + options = { + silent = true; + }; + } + ]; +}