aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Mackenzie2020-05-03 11:25:19 +0000
committerAlan Mackenzie2020-05-03 11:25:19 +0000
commite90b7b9ef2af00fb206052bc4458d7e692e5d413 (patch)
tree72c33d589634d00bcae5247f0f8e08b2fbff3eeb
parent0a3731feef351f6af47bed1458aefb6cb481b5f9 (diff)
downloademacs-e90b7b9ef2af00fb206052bc4458d7e692e5d413.tar.gz
emacs-e90b7b9ef2af00fb206052bc4458d7e692e5d413.zip
Revert "Mark breakpoints in edebug with highlights". This fixes bug #40992
Do not merge to master. This reverts commit e8b3a15cb6ff187ce08afcb43bd9a0b7907268ca.
-rw-r--r--lisp/emacs-lisp/edebug.el41
1 files changed, 1 insertions, 40 deletions
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index e6aed3a1202..dd1a17eb515 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -2755,7 +2755,6 @@ See `edebug-behavior-alist' for implementations.")
2755 (edebug-stop)) 2755 (edebug-stop))
2756 2756
2757 (edebug-overlay-arrow) 2757 (edebug-overlay-arrow)
2758 (edebug--overlay-breakpoints edebug-function)
2759 2758
2760 (unwind-protect 2759 (unwind-protect
2761 (if (or edebug-stop 2760 (if (or edebug-stop
@@ -3230,45 +3229,7 @@ the breakpoint."
3230 3229
3231 (setcar (cdr edebug-data) edebug-breakpoints) 3230 (setcar (cdr edebug-data) edebug-breakpoints)
3232 (goto-char position) 3231 (goto-char position)
3233 (edebug--overlay-breakpoints edebug-def-name))))) 3232 ))))
3234
3235(define-fringe-bitmap 'edebug-breakpoint
3236 "\x3c\x7e\xff\xff\xff\xff\x7e\x3c")
3237
3238(defun edebug--overlay-breakpoints (function)
3239 (let* ((data (get function 'edebug))
3240 (start (nth 0 data))
3241 (breakpoints (nth 1 data))
3242 (offsets (nth 2 data)))
3243 ;; First remove all old breakpoint overlays.
3244 (edebug--overlay-breakpoints-remove
3245 start (+ start (aref offsets (1- (length offsets)))))
3246 ;; Then make overlays for the breakpoints (but only when we are in
3247 ;; edebug mode).
3248 (when edebug-active
3249 (dolist (breakpoint breakpoints)
3250 (let* ((pos (+ start (aref offsets (car breakpoint))))
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))))
3260 (overlay-put overlay 'edebug t)
3261 (let ((fringe (make-overlay pos pos)))
3262 (overlay-put fringe 'edebug t)
3263 (overlay-put fringe 'before-string
3264 (propertize
3265 "x" 'display
3266 `(left-fringe edebug-breakpoint ,face)))))))))
3267
3268(defun edebug--overlay-breakpoints-remove (start end)
3269 (dolist (overlay (overlays-in start end))
3270 (when (overlay-get overlay 'edebug)
3271 (delete-overlay overlay))))
3272 3233
3273(defun edebug-set-breakpoint (arg) 3234(defun edebug-set-breakpoint (arg)
3274 "Set the breakpoint of nearest sexp. 3235 "Set the breakpoint of nearest sexp.