Function: dape--object-to-marker

dape--object-to-marker is a natively compiled function defined in dape.el.

Signature

(dape--object-to-marker CONN PLIST)

Documentation

Return marker created from PLIST and CONN config.

Marker is created from PLIST keys :source and :line. Note requires dape--source-ensure if source is by reference.

Source Code

;; Defined in /nix/store/1fiaif8pifqj2jh65rbg3fkhg3i56q42-emacs-packages-deps/share/emacs/site-lisp/elpa/dape-0.27.1/dape.el
(defun dape--object-to-marker (conn plist)
  "Return marker created from PLIST and CONN config.
Marker is created from PLIST keys :source and :line.
Note requires `dape--source-ensure' if source is by reference."
  (when-let* ((source (plist-get plist :source))
              (line (or (plist-get plist :line) 1))
              (buffer (or
                       ;; Take buffer by source reference
                       (when-let* ((reference (plist-get source :sourceReference))
                                   (buffer (plist-get (dape--source-buffers
                                                       (dape--root-of conn))
                                                      reference))
                                   ((buffer-live-p buffer)))
                         buffer)
                       ;; Take buffer by path
                       (when-let* ((remote-path (plist-get source :path))
                                   (filename
                                    (dape--file-name-local conn remote-path))
                                   ((file-exists-p filename)))
                         (find-file-noselect filename t)))))
    (dape--with-line buffer line
      (when-let* ((column (plist-get plist :column)))
        (when (> column 0)
          (forward-char (1- column))))
      (point-marker))))