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.")