diff --git a/core/siren-core-modules.el b/core/siren-core-modules.el index 2d49e6d..a917b73 100644 --- a/core/siren-core-modules.el +++ b/core/siren-core-modules.el @@ -77,6 +77,9 @@ (require 'siren-lsp-ui) (require 'siren-helm-lsp) +;; Debugging +(require 'siren-dap) + ;; Shell (require 'siren-shell-pop) diff --git a/modules/debugging/siren-dap.el b/modules/debugging/siren-dap.el new file mode 100644 index 0000000..3dc4973 --- /dev/null +++ b/modules/debugging/siren-dap.el @@ -0,0 +1,33 @@ +;;; siren-dap.el --- jimeh's Emacs Siren: dap-mode configuration. + +;;; Commentary: + +;; Basic configuration for dap-mode. + +;;; Code: + +(require 'siren-debug-map) +(require 'siren-hydra) + +(use-package dap-mode + :defer t + + :bind (:map siren-debug-map + ("d" . dap-debug) + ("t" . dap-breakpoint-toggle) + ("c" . dap-breakpoint-condition) + ("h" . dap-breakpoint-hit-condition) + ("m" . dap-breakpoint-log-message) + ("l" . dap-ui-breakpoints-list) + ("b" . dap-ui-breakpoints)) + + :custom + (dap-auto-configure-features '(sessions locals controls tooltip)) + + :config + (dap-auto-configure-mode t) + (add-hook 'dap-stopped-hook + (lambda (arg) (call-interactively #'dap-hydra)))) + +(provide 'siren-dap) +;;; siren-dap.el ends here diff --git a/modules/debugging/siren-debug-map.el b/modules/debugging/siren-debug-map.el new file mode 100644 index 0000000..6a220c4 --- /dev/null +++ b/modules/debugging/siren-debug-map.el @@ -0,0 +1,19 @@ +;;; siren-debug-map.el --- jimeh's Emacs Siren: debug-map setup. + +;;; Commentary: + +;; Setup of siren-debug-map which other debugging modules can add keybindings +;; to. + +;;; Code: + +(use-package siren-debug-map + :straight (:type built-in) + :no-require t + + :bind + (:prefix-map siren-debug-map + :prefix "C-c -")) + +(provide 'siren-debug-map) +;;; siren-debug-map.el ends here diff --git a/modules/editor/siren-hydra.el b/modules/editor/siren-hydra.el new file mode 100644 index 0000000..cffbd62 --- /dev/null +++ b/modules/editor/siren-hydra.el @@ -0,0 +1,13 @@ +;;; siren-hydra.el --- jimeh's Emacs Siren: hydra-mode configuration. + +;;; Commentary: + +;; Basic configuration for hydra-mode. + +;;; Code: + +(use-package hydra + :defer t) + +(provide 'siren-hydra) +;;; siren-hydra.el ends here diff --git a/modules/languages/siren-golang.el b/modules/languages/siren-golang.el index 7f634c1..f4cb786 100644 --- a/modules/languages/siren-golang.el +++ b/modules/languages/siren-golang.el @@ -7,6 +7,7 @@ ;;; Code: (require 'siren-company) +(require 'siren-dap) (require 'siren-display-indentation) (require 'siren-flycheck) (require 'siren-folding) @@ -84,6 +85,10 @@ ("gopls.staticcheck" t t) ("gopls.symbolMatcher" "Fuzzy")))) +(use-package dap-go + :straight dap-mode + :after (go-mode dap-mode)) + (use-package go-dlv :defer t) diff --git a/modules/languages/siren-ruby.el b/modules/languages/siren-ruby.el index 9512f84..40e9839 100644 --- a/modules/languages/siren-ruby.el +++ b/modules/languages/siren-ruby.el @@ -7,6 +7,7 @@ ;;; Code: (require 'siren-company) +(require 'siren-dap) (require 'siren-folding) (require 'siren-lsp) (require 'siren-projectile) @@ -89,6 +90,10 @@ :custom (lsp-solargraph-multi-root nil)) +(use-package dap-ruby + :straight dap-mode + :after (ruby-mode dap-mode)) + (use-package bundler :defer t)