Function: dape--info-call-update-with
dape--info-call-update-with is a natively compiled function defined in
dape.el.
Signature
(dape--info-call-update-with FN)
Documentation
Helper for dape--info-revert functions.
Erase BUFFER content and updates header-line-format.
FN is expected to update insert buffer contents, update
dape--info-buffer-related and header-line-format.
Source Code
;; Defined in /nix/store/1fiaif8pifqj2jh65rbg3fkhg3i56q42-emacs-packages-deps/share/emacs/site-lisp/elpa/dape-0.27.1/dape.el
(defun dape--info-call-update-with (fn)
"Helper for `dape--info-revert' functions.
Erase BUFFER content and updates `header-line-format'.
FN is expected to update insert buffer contents, update
`dape--info-buffer-related' and `header-line-format'."
;; Save buffer as `select-window' sets buffer
(save-current-buffer
(when (derived-mode-p 'dape-info-parent-mode)
;; Would be nice with `replace-buffer-contents', but it messes
;; up string properties
(let ((line (line-number-at-pos (point) t))
(old-window (selected-window)))
;; Try to keep point and scroll
(when-let* ((window (get-buffer-window)))
(select-window window))
(save-window-excursion
(let ((inhibit-read-only t))
(erase-buffer)
(funcall fn))
(ignore-errors
(goto-char (point-min))
(forward-line (1- line))
(beginning-of-line))
(dape--info-set-related-buffers))
(when old-window
(select-window old-window))))))