branch: externals/dape
commit 2bfa7ddaa5f626b7e0d79ab84f44657f81ade678
Author: Daniel Pettersson <[email protected]>
Commit: Daniel Pettersson <[email protected]>

    Add breakpoints mode for fring/margin breakpoint toggling
---
 dape.el | 26 ++++++++++++++++++++++++--
 1 file changed, 24 insertions(+), 2 deletions(-)

diff --git a/dape.el b/dape.el
index 544b3cf4a9..c6de386d1f 100644
--- a/dape.el
+++ b/dape.el
@@ -1848,8 +1848,30 @@ Removes itself on execution."
 
 
 ;;; Breakpoints
-;; TODO Breakpoints look bad and should feel bad
-;;      Should be able to be controlled by mouse
+
+(defun dape-mouse-breakpoint-toggle (event)
+  "Toggle breakpoint at EVENT."
+  (interactive "e")
+  (save-selected-window
+    (let ((start (event-start event)))
+      (select-window (posn-window start))
+      (save-excursion
+        (goto-char (posn-point start))
+        (dape-breakpoint-toggle)))))
+
+(defvar dape-breakpoint-global-mode-map
+  (let ((map (make-sparse-keymap)))
+    (define-key map [left-fringe mouse-1] 'dape-mouse-breakpoint-toggle)
+    (define-key map [left-margin mouse-1] 'dape-mouse-breakpoint-toggle)
+    map)
+  "Keymap for `dape-breakpoint-global-mode'.")
+
+;; TODO Whould be nice if it was enabled
+(define-minor-mode dape-breakpoint-global-mode
+  "Adds fringe and margin breakpoint controls."
+  :global t
+  :lighter "dape")
+
 (defvar dape--original-margin nil
   "Bookkeeping for buffer margin width.")
 

Reply via email to