Function: edebug--overlay-breakpoints

edebug--overlay-breakpoints is a byte-compiled function defined in edebug.el.gz.

Signature

(edebug--overlay-breakpoints FUNCTION)

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/edebug.el.gz
(defun edebug--overlay-breakpoints (function)
  (let* ((data (edebug-get-edebug-or-ghost function))
         (start (nth 0 data))
         (breakpoints (nth 1 data))
         (offsets (nth 2 data)))
    ;; First remove all old breakpoint overlays.
    (edebug--overlay-breakpoints-remove
     start (+ start (aref offsets (1- (length offsets)))))
    ;; Then make overlays for the breakpoints (but only when we are in
    ;; edebug mode).
    (when edebug-active
      (dolist (breakpoint breakpoints)
        (let* ((pos (+ start (aref offsets (car breakpoint))))
               (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)
          (let ((fringe (make-overlay pos pos)))
            (overlay-put fringe 'edebug t)
            (overlay-put fringe 'before-string
                         (propertize
                          "x" 'display
                          `(left-fringe edebug-breakpoint ,face)))))))))