Function: dape--breakpoint-update

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

Signature

(dape--breakpoint-update CONN BREAKPOINT UPDATE)

Documentation

Update BREAKPOINT with UPDATE plist from CONN.

Source Code

;; Defined in /nix/store/1fiaif8pifqj2jh65rbg3fkhg3i56q42-emacs-packages-deps/share/emacs/site-lisp/elpa/dape-0.27.1/dape.el
(defun dape--breakpoint-update (conn breakpoint update)
  "Update BREAKPOINT with UPDATE plist from CONN."
  (unless (dape--breakpoint-disabled breakpoint)
    ;; Update `dape--breakpoint' data
    (setf (dape--breakpoint-id breakpoint)
          (plist-put (dape--breakpoint-id breakpoint) conn
                     (plist-get update :id))
          (dape--breakpoint-verified breakpoint)
          (plist-put (dape--breakpoint-verified breakpoint) conn
                     (eq (plist-get update :verified) t)))
    ;; Move breakpoints and notify adapters
    (let ((buffer (dape--breakpoint-buffer breakpoint))
          (line (dape--breakpoint-line breakpoint))
          (new-line (plist-get update :line)))
      ;; Skip work and notify if nothing has moved
      (when (and (numberp line) (numberp new-line)
                 (not (eq line new-line)))
        (dape--breakpoint-delete-overlay breakpoint)
        (if buffer
            (dape--with-line buffer new-line
              (dape-breakpoint-remove-at-point 'skip-notify)
              (dape--breakpoint-make-overlay breakpoint)
              (pulse-momentary-highlight-region
               (line-beginning-position) (line-beginning-position 2)
               'next-error))
          (setcdr (dape--source-breakpoint-location breakpoint) new-line))
        (dape--breakpoint-notify-changes (dape--breakpoint-source breakpoint))
        (dape--message "Breakpoint in %s moved from line %s to %s"
                       (if buffer (buffer-name buffer)
                         (dape--breakpoint-file-name breakpoint))
                       line new-line))))
  (run-hooks 'dape-update-ui-hook))