emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master 73cea54 1/2: Add fringe markers to edebug breakpoin


From: Lars Ingebrigtsen
Subject: [Emacs-diffs] master 73cea54 1/2: Add fringe markers to edebug breakpoints
Date: Mon, 21 Oct 2019 16:22:24 -0400 (EDT)

branch: master
commit 73cea54064828197f9db256fb4b925ef6be85861
Author: Lars Ingebrigtsen <address@hidden>
Commit: Lars Ingebrigtsen <address@hidden>

    Add fringe markers to edebug breakpoints
    
    * lisp/emacs-lisp/edebug.el (edebug--overlay-breakpoints): Set a
    fringe element to mark the breakpoint.
    (edebug-breakpoint): Fringe marker.
---
 lisp/emacs-lisp/edebug.el | 23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index a646ce6..0c3164b 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -3232,6 +3232,9 @@ the breakpoint."
          (goto-char position)
           (edebug--overlay-breakpoints edebug-def-name)))))
 
+(define-fringe-bitmap 'edebug-breakpoint
+  "\x3c\x7e\xff\xff\xff\xff\x7e\x3c")
+
 (defun edebug--overlay-breakpoints (function)
   (let* ((data (get function 'edebug))
          (start (nth 0 data))
@@ -3245,12 +3248,22 @@ the breakpoint."
     (when edebug-active
       (dolist (breakpoint breakpoints)
         (let* ((pos (+ start (aref offsets (car breakpoint))))
-               (overlay (make-overlay pos (1+ pos))))
+               (overlay (make-overlay pos (1+ pos)))
+               (face (if (nth 4 breakpoint)
+                         (progn
+                           (overlay-put overlay
+                                        'help-echo "Disabled breakpoint")
+                           (overlay-put overlay
+                                        'face 'edebug-disabled-breakpoint))
+                       (overlay-put overlay 'help-echo "Breakpoint")
+                       (overlay-put overlay 'face 
'edebug-enabled-breakpoint))))
           (overlay-put overlay 'edebug t)
-          (overlay-put overlay 'face
-                       (if (nth 4 breakpoint)
-                           'edebug-disabled-breakpoint
-                         'edebug-enabled-breakpoint)))))))
+          (let ((fringe (make-overlay pos pos (current-buffer))))
+            (overlay-put fringe 'edebug t)
+            (overlay-put fringe 'before-string
+                         (propertize
+                          "x" 'display
+                          `(left-fringe edebug-breakpoint ,face)))))))))
 
 (defun edebug--overlay-breakpoints-remove (start end)
   (dolist (overlay (overlays-in start end))



reply via email to

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