Function: dape--source-ensure
dape--source-ensure is a natively compiled function defined in
dape.el.
Signature
(dape--source-ensure CONN PLIST CB)
Documentation
Ensure that source object in PLIST exist for adapter CONN.
See dape-request for expected CB signature.
Source Code
;; Defined in /nix/store/1fiaif8pifqj2jh65rbg3fkhg3i56q42-emacs-packages-deps/share/emacs/site-lisp/elpa/dape-0.27.1/dape.el
(defun dape--source-ensure (conn plist cb)
"Ensure that source object in PLIST exist for adapter CONN.
See `dape-request' for expected CB signature."
(let* ((source (plist-get plist :source))
(filename (plist-get source :path))
(reference (plist-get source :sourceReference))
(buffer (plist-get (dape--source-buffers (dape--root-of conn))
reference)))
(cond
((or (and (stringp filename)
(file-exists-p (dape--file-name-local conn filename)))
(and (buffer-live-p buffer)))
(dape--request-continue cb))
((and (numberp reference)
(< 0 reference))
(dape--with-request-bind
((&key content mimeType &allow-other-keys) error)
(dape-request conn :source
(list :source source :sourceReference reference))
(cond (error
(dape--warn "%s" error))
(content
(dape--source-make-buffer conn (plist-get source :name)
reference content mimeType)
(dape--request-continue cb))))))))