Function: dape--breakpoint-delete-overlay

dape--breakpoint-delete-overlay is a natively compiled function defined in dape.el.

Signature

(dape--breakpoint-delete-overlay BREAKPOINT)

Documentation

Delete overlay of BREAKPOINT and restore margin if needed.

Source Code

;; Defined in /nix/store/1fiaif8pifqj2jh65rbg3fkhg3i56q42-emacs-packages-deps/share/emacs/site-lisp/elpa/dape-0.27.1/dape.el
(defun dape--breakpoint-delete-overlay (breakpoint)
  "Delete overlay of BREAKPOINT and restore margin if needed."
  (let ((overlay (dape--source-breakpoint-location breakpoint)))
    (when-let* ((buffer (dape--breakpoint-buffer breakpoint)))
      (with-current-buffer buffer
        (when (and
               ;; If margin has been touched
               dape--original-margin
               ;; ...and no breakpoints left in margin
               (not (cl-some (lambda (bp)
                               (let ((type (dape--source-breakpoint-type bp)))
                                 (or (not type) (eq 'until type))))
                             (dape--breakpoints-in-buffer))))
          ;; ...the margin should be reset
          (setq-local left-margin-width dape--original-margin
                      dape--original-margin nil)
          (when-let* ((window (get-buffer-window buffer)))
            (set-window-margins window
                                left-margin-width right-margin-width)
            (redisplay t)))))
    (when (overlayp overlay)
      (delete-overlay overlay))
    (setf (dape--source-breakpoint-location breakpoint) nil)))