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

    Expose breakpoint disable functionality for reuse
---
 dape.el | 46 +++++++++++++++++++++++++++-------------------
 1 file changed, 27 insertions(+), 19 deletions(-)

diff --git a/dape.el b/dape.el
index 12299f283a..72f34a58f1 100644
--- a/dape.el
+++ b/dape.el
@@ -3129,7 +3129,7 @@ If FROM-RESTART is non nil keep id and verified."
            else do
            (dape--breakpoint-remove breakpoint)))
 
-(cl-defun dape--breakpoint-place (&optional type value)
+(defun dape--breakpoint-place (&optional type value)
   "Place breakpoint at current line.
 Valid values for TYPE is nil, `log', `expression' and `hits'.
 If TYPE is non nil VALUE is expected to be an string.
@@ -3142,9 +3142,10 @@ If there are breakpoints at current line remove those 
breakpoints from
   ;; Create breakpoint
   (let ((breakpoint (dape--breakpoint-make :type type :value value)))
     (dape--breakpoint-set-overlay breakpoint)
-    (push breakpoint dape--breakpoints))
-  ;; Push breakpoint to adapter
-  (dape--breakpoint-broadcast-update (current-buffer)))
+    (push breakpoint dape--breakpoints)
+    ;; ...and push to adapter
+    (dape--breakpoint-broadcast-update (current-buffer))
+    breakpoint))
 
 (defun dape--breakpoint-delete-overlay (breakpoint)
   "Delete of BREAKPOINT overlay.
@@ -3168,6 +3169,22 @@ Handling restoring margin if necessary."
       (when-let* ((window (get-buffer-window buffer)))
         (set-window-buffer window buffer)))))
 
+(defun dape--breakpoint-disable (breakpoint disabled)
+  "Swap BREAKPOINT overlay to DISABLED state."
+  (setf (dape--breakpoint-disabled breakpoint) disabled)
+  (when-let* ((buffer (dape--breakpoint-source breakpoint))
+              (line (dape--breakpoint-line breakpoint))
+              ((bufferp buffer)))
+    (dape--breakpoint-delete-overlay breakpoint)
+    (dape--with-line buffer line (dape--breakpoint-set-overlay breakpoint))))
+
+(defun dape--breakpoints-update ()
+  "Broadcast breakpoint state in all breakpoint sources."
+  (thread-last dape--breakpoints
+               (seq-group-by #'dape--breakpoint-source)
+               (mapcar #'car)
+               (apply #'dape--breakpoint-broadcast-update)))
+
 (defun dape--breakpoint-remove (breakpoint &optional skip-update)
   "Remove BREAKPOINT breakpoint from buffer and session.
 When SKIP-UPDATE is non nil, does not notify adapter about removal."
@@ -3242,10 +3259,7 @@ Will use `dape-default-breakpoints-file' if FILE is nil."
                                               :type type
                                               :value value)
                        dape--breakpoints))))
-    (thread-last dape--breakpoints
-                 (seq-group-by #'dape--breakpoint-source)
-                 (mapcar #'car)
-                 (apply #'dape--breakpoint-broadcast-update))))
+    (dape--breakpoints-update)))
 
 (defun dape-breakpoint-save (&optional file)
   "Save breakpoints to FILE.
@@ -3647,17 +3661,11 @@ buffers get displayed and how they are grouped."
 
 ;;; Info breakpoints buffer
 
-(dape--command-at-line dape-info-breakpoint-disabled (dape--info-breakpoint)
+(dape--command-at-line dape-info-breakpoint-disable (dape--info-breakpoint)
   "Enable/disable breakpoint at line in dape info buffer."
-  (let ((breakpoint dape--info-breakpoint))
-    (setf (dape--breakpoint-disabled breakpoint)
-          (not (dape--breakpoint-disabled breakpoint)))
-    (when-let* ((buffer (dape--breakpoint-source breakpoint))
-                (line (dape--breakpoint-line breakpoint))
-                ((bufferp buffer)))
-      (dape--breakpoint-delete-overlay breakpoint)
-      (dape--with-line buffer line (dape--breakpoint-set-overlay breakpoint)))
-    (dape--breakpoint-broadcast-update (dape--breakpoint-source breakpoint)))
+  (dape--breakpoint-disable
+   dape--info-breakpoint (not (dape--breakpoint-disabled 
dape--info-breakpoint)))
+  (dape--breakpoint-broadcast-update (dape--breakpoint-source 
dape--info-breakpoint))
   (revert-buffer)
   (run-hooks 'dape-update-ui-hook))
 
@@ -3694,7 +3702,7 @@ buffers get displayed and how they are grouped."
 without log or expression breakpoint"))))))
 
 (dape--buffer-map dape-info-breakpoints-line-map dape-info-breakpoint-goto
-  (define-key map "D" #'dape-info-breakpoint-disabled)
+  (define-key map "D" #'dape-info-breakpoint-disable)
   (define-key map "d" #'dape-info-breakpoint-delete)
   (define-key map "e" #'dape-info-breakpoint-log-edit))
 

Reply via email to