emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/dape b44fc2a71a 4/5: Add fringe bindings to placing log


From: ELPA Syncer
Subject: [elpa] externals/dape b44fc2a71a 4/5: Add fringe bindings to placing log and expression breakpoints
Date: Wed, 17 Jan 2024 12:57:56 -0500 (EST)

branch: externals/dape
commit b44fc2a71a4e4fc7bc7cfa0be7f3a1198bb37fa2
Author: Daniel Pettersson <daniel@dpettersson.net>
Commit: Daniel Pettersson <daniel@dpettersson.net>

    Add fringe bindings to placing log and expression breakpoints
---
 dape.el | 56 +++++++++++++++++++++++++++++---------------------------
 1 file changed, 29 insertions(+), 27 deletions(-)

diff --git a/dape.el b/dape.el
index ef27907368..68fb89c9cf 100644
--- a/dape.el
+++ b/dape.el
@@ -944,6 +944,18 @@ On SKIP-PROCESS-BUFFERS skip deletion of buffers which has 
processes."
           (_ (error "Unable to display buffer of mode `%s'" mode))))
        (_ (user-error "Invalid value of `dape-buffer-window-arrangement'"))))))
 
+(defmacro dape--mouse-command (name doc command)
+  "Create mouse command with NAME, DOC which runs COMMANDS."
+  (declare (indent 1))
+  `(defun ,name (event)
+     ,doc
+     (interactive "e")
+     (save-selected-window
+       (let ((start (event-start event)))
+         (select-window (posn-window start))
+         (save-excursion
+           (goto-char (posn-point start))
+           (call-interactively ',command))))))
 
 
 ;;; Connection
@@ -2166,20 +2178,26 @@ Using BUFFER and STR."
 
 ;;; Breakpoints
 
-(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)))))
+(dape--mouse-command dape-mouse-breakpoint-toggle
+  "Toggle breakpoint at line."
+  dape-breakpoint-toggle)
+
+(dape--mouse-command dape-mouse-breakpoint-expression
+  "Add log expression at line."
+  dape-breakpoint-expression)
+
+(dape--mouse-command dape-mouse-breakpoint-log
+  "Add log breakpoint at line."
+  dape-breakpoint-log)
 
 (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)
+    (define-key map [left-fringe mouse-2] 'dape-mouse-breakpoint-expression)
+    (define-key map [left-margin mouse-2] 'dape-mouse-breakpoint-expression)
+    (define-key map [left-fringe mouse-3] 'dape-mouse-breakpoint-log)
+    (define-key map [left-margin mouse-3] 'dape-mouse-breakpoint-log)
     map)
   "Keymap for `dape-breakpoint-global-mode'.")
 
@@ -2291,15 +2309,7 @@ If EXPRESSION place conditional breakpoint."
                                 'help-echo "mouse-1: edit log message"
                                 'keymap
                                 (let ((map (make-sparse-keymap)))
-                                  (define-key map [mouse-1]
-                                              (lambda (event)
-                                                (interactive "e")
-                                                (save-selected-window
-                                                  (let ((start (event-start 
event)))
-                                                    (select-window 
(posn-window start))
-                                                    (save-excursion
-                                                      (goto-char (posn-point 
start))
-                                                      (call-interactively 
'dape-breakpoint-log))))))
+                                  (define-key map [mouse-1] 
#'dape-mouse-breakpoint-log)
                                   map)))))
      (expression
       (overlay-put breakpoint 'dape-expr-message expression)
@@ -2313,15 +2323,7 @@ If EXPRESSION place conditional breakpoint."
                      'help-echo "mouse-1: edit break expression"
                      'keymap
                      (let ((map (make-sparse-keymap)))
-                       (define-key map [mouse-1]
-                                   (lambda (event)
-                                     (interactive "e")
-                                     (save-selected-window
-                                       (let ((start (event-start event)))
-                                         (select-window (posn-window start))
-                                         (save-excursion
-                                           (goto-char (posn-point start))
-                                           (call-interactively 
'dape-breakpoint-expression))))))
+                       (define-key map [mouse-1] 
#'dape-mouse-breakpoint-expression)
                        map)))))
      (t
       (overlay-put breakpoint 'dape-breakpoint t)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]