aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Ingebrigtsen2019-10-21 22:17:12 +0200
committerLars Ingebrigtsen2019-10-21 22:22:16 +0200
commit73cea54064828197f9db256fb4b925ef6be85861 (patch)
tree4abf451389b93bcc94359ae259b04f21d671d5af
parentce94c43c155f86bbbd9d3196ff84f334738ced75 (diff)
downloademacs-73cea54064828197f9db256fb4b925ef6be85861.tar.gz
emacs-73cea54064828197f9db256fb4b925ef6be85861.zip
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.
-rw-r--r--lisp/emacs-lisp/edebug.el23
1 files changed, 18 insertions, 5 deletions
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index a646ce6febe..0c3164b5cb8 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -3232,6 +3232,9 @@ the breakpoint."
3232 (goto-char position) 3232 (goto-char position)
3233 (edebug--overlay-breakpoints edebug-def-name))))) 3233 (edebug--overlay-breakpoints edebug-def-name)))))
3234 3234
3235(define-fringe-bitmap 'edebug-breakpoint
3236 "\x3c\x7e\xff\xff\xff\xff\x7e\x3c")
3237
3235(defun edebug--overlay-breakpoints (function) 3238(defun edebug--overlay-breakpoints (function)
3236 (let* ((data (get function 'edebug)) 3239 (let* ((data (get function 'edebug))
3237 (start (nth 0 data)) 3240 (start (nth 0 data))
@@ -3245,12 +3248,22 @@ the breakpoint."
3245 (when edebug-active 3248 (when edebug-active
3246 (dolist (breakpoint breakpoints) 3249 (dolist (breakpoint breakpoints)
3247 (let* ((pos (+ start (aref offsets (car breakpoint)))) 3250 (let* ((pos (+ start (aref offsets (car breakpoint))))
3248 (overlay (make-overlay pos (1+ pos)))) 3251 (overlay (make-overlay pos (1+ pos)))
3252 (face (if (nth 4 breakpoint)
3253 (progn
3254 (overlay-put overlay
3255 'help-echo "Disabled breakpoint")
3256 (overlay-put overlay
3257 'face 'edebug-disabled-breakpoint))
3258 (overlay-put overlay 'help-echo "Breakpoint")
3259 (overlay-put overlay 'face 'edebug-enabled-breakpoint))))
3249 (overlay-put overlay 'edebug t) 3260 (overlay-put overlay 'edebug t)
3250 (overlay-put overlay 'face 3261 (let ((fringe (make-overlay pos pos (current-buffer))))
3251 (if (nth 4 breakpoint) 3262 (overlay-put fringe 'edebug t)
3252 'edebug-disabled-breakpoint 3263 (overlay-put fringe 'before-string
3253 'edebug-enabled-breakpoint))))))) 3264 (propertize
3265 "x" 'display
3266 `(left-fringe edebug-breakpoint ,face)))))))))
3254 3267
3255(defun edebug--overlay-breakpoints-remove (start end) 3268(defun edebug--overlay-breakpoints-remove (start end)
3256 (dolist (overlay (overlays-in start end)) 3269 (dolist (overlay (overlays-in start end))