diff options
| author | Lars Ingebrigtsen | 2019-10-21 22:17:12 +0200 |
|---|---|---|
| committer | Lars Ingebrigtsen | 2019-10-21 22:22:16 +0200 |
| commit | 73cea54064828197f9db256fb4b925ef6be85861 (patch) | |
| tree | 4abf451389b93bcc94359ae259b04f21d671d5af | |
| parent | ce94c43c155f86bbbd9d3196ff84f334738ced75 (diff) | |
| download | emacs-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.el | 23 |
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)) |