From 672d6d819cf2e522581dbfc9b222ed5bc521bbe7 Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Mon, 4 Jan 2021 00:20:09 +0000 Subject: [PATCH] feat(lang): enable debugging current test in go-mode via dap-mode Adds a function and keybinding to lookup name of current test via a gotest.el helper function, and runs dap-mode with relevant config to debug the specific test name found. --- modules/languages/siren-golang.el | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/modules/languages/siren-golang.el b/modules/languages/siren-golang.el index 3c3ece5..5c2bdbe 100644 --- a/modules/languages/siren-golang.el +++ b/modules/languages/siren-golang.el @@ -89,10 +89,6 @@ (lsp-deferred))) -(use-package dap-go - :straight dap-mode - :after (go-mode dap-mode)) - (use-package go-dlv :defer t) @@ -111,6 +107,27 @@ :custom (go-test-verbose t)) +(use-package dap-go + :straight dap-mode + :after (go-mode gotest dap-mode) + :bind (:map dap-mode-map + ("C-c , d" . siren-dap-go-debug-current-test)) + + :init + (defun siren-dap-go-debug-current-test () + (interactive) + (let ((name (go-test--get-current-test))) + (dap-debug + (list :type "go" + :request "launch" + :name (concat "Go: Debug " name " test") + :mode "auto" + :program "${workspaceFolder}" + :buildFlags nil + :args (concat "-test.run ^" name "$") + :env nil + :envFile nil))))) + (use-package go-gen-test :defer t :after (go-mode)