Function: org-export-resolve-coderef

org-export-resolve-coderef is a byte-compiled function defined in ox.el.gz.

Signature

(org-export-resolve-coderef REF INFO)

Documentation

Resolve a code reference REF.

INFO is a plist used as a communication channel.

Return associated line number in source code, or REF itself, depending on src-block or example element's switches. Throw an error if no block contains REF.

Source Code

;; Defined in /usr/src/emacs/lisp/org/ox.el.gz
(defun org-export-resolve-coderef (ref info)
  "Resolve a code reference REF.

INFO is a plist used as a communication channel.

Return associated line number in source code, or REF itself,
depending on src-block or example element's switches.  Throw an
error if no block contains REF."
  (or (org-element-map (plist-get info :parse-tree) '(example-block src-block)
	(lambda (el)
	  (with-temp-buffer
	    (insert (org-trim (org-element-property :value el)))
	    (let* ((label-fmt (or (org-element-property :label-fmt el)
				  org-coderef-label-format))
		   (ref-re (org-src-coderef-regexp label-fmt ref)))
	      ;; Element containing REF is found.  Resolve it to
	      ;; either a label or a line number, as needed.
	      (when (re-search-backward ref-re nil t)
		(if (org-element-property :use-labels el) ref
		  (+ (or (org-export-get-loc el info) 0)
		     (line-number-at-pos)))))))
	info 'first-match)
      (signal 'org-link-broken (list ref))))