refactor!(debugger): replace realgud with dape

BREAKING CHANGE: Anyone used to realgud will find it missing as of this
commit. It's been replaced with Dape (see
https://github.com/svaante/dape).

This change was made because realgud's implementation was archaic and
over-complicated, dap-mode requires lsp-mode (and has a lot of moving
parts and points of failure), and dape is straight-forward by
comparison; to set up and use. Note that dap-mode and dap-ui is now
deprecated and will be removed in the future, but still remains behind
the +lsp flag for backwards compatibility, at least until v3.

This also adds a '<leader> d' prefix for debugger commands (except for
vanilla users, who already have dape's prefix on 'C-x C-a')
This commit is contained in:
Henrik Lissner
2025-04-20 21:25:12 -04:00
parent ed85328f57
commit b4bd368485
6 changed files with 87 additions and 421 deletions

View File

@ -482,6 +482,34 @@
:desc "Delete trailing newlines" "W" #'doom/delete-trailing-newlines
:desc "List errors" "x" #'+default/diagnostics)
;;; <leader> d --- debugger
(:when (modulep! :tools debugger)
(:prefix-map ("d" . "debugger")
"d" #'dape
"p" #'dape-pause
"c" #'dape-continue
"n" #'dape-next
"s" #'dape-step-in
"o" #'dape-step-out
"r" #'dape-restart
"i" #'dape-info
"R" #'dape-repl
"m" #'dape-memory
"M" #'dape-disassemble
"l" #'dape-breakpoint-log
"e" #'dape-breakpoint-expression
"h" #'dape-breakpoint-hits
"b" #'dape-breakpoint-toggle
"B" #'dape-breakpoint-remove-all
"t" #'dape-select-thread
"S" #'dape-select-stack
">" #'dape-stack-select-down
"<" #'dape-stack-select-up
"x" #'dape-evaluate-expression
"w" #'dape-watch-dwim
"D" #'dape-disconnect-quit
"q" #'dape-quit))
;;; <leader> f --- file
(:prefix-map ("f" . "file")
:desc "Open project editorconfig" "c" #'editorconfig-find-current-editorconfig
@ -687,7 +715,7 @@
:desc "Tags search" "m" #'org-tags-view
:desc "View search" "v" #'org-search-view)
:desc "Default browser" "b" #'browse-url-of-file
:desc "Start debugger" "d" #'+debugger/start
:desc "Start a debugger" "d" #'+debugger/start
:desc "New frame" "f" #'make-frame
:desc "Select frame" "F" #'select-frame-by-name
:desc "REPL" "r" #'+eval/open-repl-other-window