mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-11-22 07:09:47 +00:00
ob-core: Silence byte-compiler
This commit is contained in:
parent
ae767704ff
commit
94b78a1198
137
lisp/ob-core.el
137
lisp/ob-core.el
@ -39,6 +39,7 @@
|
||||
(defvar org-babel-library-of-babel)
|
||||
(defvar org-edit-src-content-indentation)
|
||||
(defvar org-src-lang-modes)
|
||||
(defvar org-src-preserve-indentation)
|
||||
|
||||
(declare-function outline-show-all "outline" ())
|
||||
(declare-function org-get-indentation "org" (&optional line))
|
||||
@ -213,74 +214,6 @@ list of the cdr of all the `:var' entries."
|
||||
(mapcar #'cdr
|
||||
(cl-remove-if-not (lambda (x) (eq (car x) :var)) params)))
|
||||
|
||||
(defun org-babel-get-src-block-info (&optional light datum)
|
||||
"Extract information from a source block or inline source block.
|
||||
|
||||
Optional argument LIGHT does not resolve remote variable
|
||||
references; a process which could likely result in the execution
|
||||
of other code blocks.
|
||||
|
||||
By default, consider the block at point. However, when optional
|
||||
argument DATUM is provided, extract information from that parsed
|
||||
object instead.
|
||||
|
||||
Return nil if point is not on a source block. Otherwise, return
|
||||
a list with the following pattern:
|
||||
|
||||
\(language body header-arguments-alist switches name block-head)"
|
||||
(let* ((datum (or datum (org-element-context)))
|
||||
(type (org-element-type datum))
|
||||
(inline (eq type 'inline-src-block)))
|
||||
(when (memq type '(inline-src-block src-block))
|
||||
(let* ((lang (org-element-property :language datum))
|
||||
(lang-headers (intern
|
||||
(concat "org-babel-default-header-args:" lang)))
|
||||
(name (org-element-property :name datum))
|
||||
(info
|
||||
(list
|
||||
lang
|
||||
;; Normalize contents. In particular, remove spurious
|
||||
;; indentation and final newline character.
|
||||
(let* ((value (org-element-property :value datum))
|
||||
(body (if (and (> (length value) 1)
|
||||
(string-match-p "\n\\'" value))
|
||||
(substring value 0 -1)
|
||||
value)))
|
||||
(cond (inline
|
||||
;; Newline characters and indentation in an
|
||||
;; inline src-block are not meaningful, since
|
||||
;; they could come from some paragraph
|
||||
;; filling. Treat them as a white space.
|
||||
(replace-regexp-in-string "\n[ \t]*" " " body))
|
||||
((or org-src-preserve-indentation
|
||||
(org-element-property :preserve-indent datum))
|
||||
body)
|
||||
(t (org-remove-indentation body))))
|
||||
(apply #'org-babel-merge-params
|
||||
(if inline org-babel-default-inline-header-args
|
||||
org-babel-default-header-args)
|
||||
(and (boundp lang-headers) (symbol-value lang-headers))
|
||||
(append
|
||||
;; If DATUM is provided, make sure we get node
|
||||
;; properties applicable to its location within
|
||||
;; the document.
|
||||
(org-with-wide-buffer
|
||||
(when datum
|
||||
(goto-char (org-element-property :begin datum)))
|
||||
(org-babel-params-from-properties lang))
|
||||
(mapcar #'org-babel-parse-header-arguments
|
||||
(cons
|
||||
(org-element-property :parameters datum)
|
||||
(org-element-property :header datum)))))
|
||||
(or (org-element-property :switches datum) "")
|
||||
name
|
||||
(org-element-property (if inline :begin :post-affiliated)
|
||||
datum))))
|
||||
(unless light
|
||||
(setf (nth 2 info) (org-babel-process-params (nth 2 info))))
|
||||
(setf (nth 2 info) (org-babel-generate-file-param name (nth 2 info)))
|
||||
info))))
|
||||
|
||||
(defvar org-babel-exp-reference-buffer nil
|
||||
"Buffer containing original contents of the exported buffer.
|
||||
This is used by Babel to resolve references in source blocks.
|
||||
@ -624,6 +557,74 @@ the outer-most code block.")
|
||||
|
||||
(defvar *this*)
|
||||
|
||||
(defun org-babel-get-src-block-info (&optional light datum)
|
||||
"Extract information from a source block or inline source block.
|
||||
|
||||
Optional argument LIGHT does not resolve remote variable
|
||||
references; a process which could likely result in the execution
|
||||
of other code blocks.
|
||||
|
||||
By default, consider the block at point. However, when optional
|
||||
argument DATUM is provided, extract information from that parsed
|
||||
object instead.
|
||||
|
||||
Return nil if point is not on a source block. Otherwise, return
|
||||
a list with the following pattern:
|
||||
|
||||
\(language body header-arguments-alist switches name block-head)"
|
||||
(let* ((datum (or datum (org-element-context)))
|
||||
(type (org-element-type datum))
|
||||
(inline (eq type 'inline-src-block)))
|
||||
(when (memq type '(inline-src-block src-block))
|
||||
(let* ((lang (org-element-property :language datum))
|
||||
(lang-headers (intern
|
||||
(concat "org-babel-default-header-args:" lang)))
|
||||
(name (org-element-property :name datum))
|
||||
(info
|
||||
(list
|
||||
lang
|
||||
;; Normalize contents. In particular, remove spurious
|
||||
;; indentation and final newline character.
|
||||
(let* ((value (org-element-property :value datum))
|
||||
(body (if (and (> (length value) 1)
|
||||
(string-match-p "\n\\'" value))
|
||||
(substring value 0 -1)
|
||||
value)))
|
||||
(cond (inline
|
||||
;; Newline characters and indentation in an
|
||||
;; inline src-block are not meaningful, since
|
||||
;; they could come from some paragraph
|
||||
;; filling. Treat them as a white space.
|
||||
(replace-regexp-in-string "\n[ \t]*" " " body))
|
||||
((or org-src-preserve-indentation
|
||||
(org-element-property :preserve-indent datum))
|
||||
body)
|
||||
(t (org-remove-indentation body))))
|
||||
(apply #'org-babel-merge-params
|
||||
(if inline org-babel-default-inline-header-args
|
||||
org-babel-default-header-args)
|
||||
(and (boundp lang-headers) (symbol-value lang-headers))
|
||||
(append
|
||||
;; If DATUM is provided, make sure we get node
|
||||
;; properties applicable to its location within
|
||||
;; the document.
|
||||
(org-with-wide-buffer
|
||||
(when datum
|
||||
(goto-char (org-element-property :begin datum)))
|
||||
(org-babel-params-from-properties lang))
|
||||
(mapcar #'org-babel-parse-header-arguments
|
||||
(cons
|
||||
(org-element-property :parameters datum)
|
||||
(org-element-property :header datum)))))
|
||||
(or (org-element-property :switches datum) "")
|
||||
name
|
||||
(org-element-property (if inline :begin :post-affiliated)
|
||||
datum))))
|
||||
(unless light
|
||||
(setf (nth 2 info) (org-babel-process-params (nth 2 info))))
|
||||
(setf (nth 2 info) (org-babel-generate-file-param name (nth 2 info)))
|
||||
info))))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-babel-execute-src-block (&optional arg info params)
|
||||
"Execute the current source code block.
|
||||
|
Loading…
Reference in New Issue
Block a user