optional arguments to org-babel-insert-header-arg

* lisp/ob-core.el (org-babel-insert-header-arg): Optional arguments
  for usage from Emacs Lisp programs.  In addition this function will
  now insert header arguments in the correct place instead of at the
  current point.
This commit is contained in:
Eric Schulte 2013-10-06 09:05:02 -06:00
parent 45d81d47ca
commit 5afd5d9785

View file

@ -770,24 +770,24 @@ arguments and pop open the results in a preview buffer."
(message "No suspicious header arguments found.")))
;;;###autoload
(defun org-babel-insert-header-arg ()
(defun org-babel-insert-header-arg (&optional header-arg value)
"Insert a header argument selecting from lists of common args and values."
(interactive)
(let* ((lang (car (org-babel-get-src-block-info 'light)))
(let* ((info (org-babel-get-src-block-info 'light))
(lang (car info))
(begin (nth 6 info))
(lang-headers (intern (concat "org-babel-header-args:" lang)))
(headers (org-babel-combine-header-arg-lists
org-babel-common-header-args-w-values
(when (boundp lang-headers) (eval lang-headers))))
(arg (org-icompleting-read
(header-arg (or header-arg
(org-icompleting-read
"Header Arg: "
(mapcar
(lambda (header-spec) (symbol-name (car header-spec)))
headers))))
(insert ":" arg)
(let ((vals (cdr (assoc (intern arg) headers))))
(when vals
(insert
" "
(vals (cdr (assoc (intern header-arg) headers)))
(value (or value
(cond
((eq vals :any)
(read-from-minibuffer "value: "))
@ -796,11 +796,17 @@ arguments and pop open the results in a preview buffer."
(lambda (group)
(let ((arg (org-icompleting-read
"value: "
(cons "default" (mapcar #'symbol-name group)))))
(cons "default"
(mapcar #'symbol-name group)))))
(if (and arg (not (string= "default" arg)))
(concat arg " ")
"")))
vals ""))))))))
vals ""))))))
(save-excursion
(goto-char begin)
(goto-char (point-at-eol))
(unless (= (char-before (point)) ?\ ) (insert " "))
(insert ":" header-arg) (when value (insert " " value)))))
;; Add support for completing-read insertion of header arguments after ":"
(defun org-babel-header-arg-expand ()