mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2025-02-02 20:55:13 +00:00
result insertion is now working for lists and non-lists
This commit is contained in:
parent
c40217b5f0
commit
9b2e4f2257
@ -107,7 +107,7 @@ prefix don't dump results into buffer."
|
||||
(setq result (funcall cmd body params))
|
||||
(if arg
|
||||
(message (format "%S" result))
|
||||
(litorgy-insert-result result (assoc :replace params)))))
|
||||
(litorgy-insert-result result (assoc :replace params)))))
|
||||
|
||||
(defun litorgy-eval-buffer (&optional arg)
|
||||
"Replace EVAL snippets in the entire buffer."
|
||||
@ -143,7 +143,7 @@ form. (language body header-arguments-alist)"
|
||||
(delq nil
|
||||
(mapcar
|
||||
(lambda (arg) (if (string-match "\\([^ \f\t\n\r\v]+\\)[ \f\t\n\r\v]*\\([^ \f\t\n\r\v]*\\)" arg)
|
||||
(cons (intern (concat ":" (match-string 1 arg))) (match-string 2 arg))))
|
||||
(cons (intern (concat ":" (match-string 1 arg))) (match-string 2 arg))))
|
||||
(split-string (concat " " arg-string) "[ \f\t\n\r\v]+:"))))
|
||||
|
||||
(defun litorgy-insert-result (result &optional replace)
|
||||
@ -151,21 +151,22 @@ form. (language body header-arguments-alist)"
|
||||
current source block. With optional argument REPLACE replace any
|
||||
existing results currently located after the source block."
|
||||
(if replace (litorgy-remove-result (listp result)))
|
||||
(if (and (stringp result)
|
||||
(not (or (string-equal (substring result -1)
|
||||
"\n")
|
||||
(string-equal (substring result -1)
|
||||
"\r"))))
|
||||
(setq result (concat result "\n")))
|
||||
(when (and (stringp result)
|
||||
(not (or (string-equal (substring result -1) "\n")
|
||||
(string-equal (substring result -1) "\r"))))
|
||||
(setq result (concat result "\n")))
|
||||
(save-excursion
|
||||
(re-search-forward "^#\\+end_src" nil t) (open-line 1) (forward-char 2)
|
||||
(if (stringp result)
|
||||
(litorgy-examplize-region (point) (progn (insert result) (point))))
|
||||
(insert ;; for now lets assume the result is a table if it's not a string
|
||||
(concat (orgtbl-to-orgtbl result '(:fmt (lambda (cell) (format "%S" cell)))) "\n"))
|
||||
(forward-line -1)
|
||||
(org-cycle)))
|
||||
|
||||
(litorgy-examplize-region (point) (progn (insert result) (point)))
|
||||
(progn
|
||||
(insert ;; for now lets assume the result is a table if it's not a string
|
||||
(concat (orgtbl-to-orgtbl
|
||||
(if (consp (car result)) result (list result))
|
||||
'(:fmt (lambda (cell) (format "%S" cell)))) "\n"))
|
||||
(forward-line -1)
|
||||
(org-cycle)))))
|
||||
|
||||
(defun litorgy-remove-result (&optional table)
|
||||
"Remove the result following the current source block. If
|
||||
optional argument TABLE is supplied then remove the table
|
||||
@ -194,9 +195,9 @@ following the block rather than the fixed width example."
|
||||
(delete-region beg end)
|
||||
(insert (concat ": " result)))
|
||||
(save-excursion
|
||||
(goto-char beg)
|
||||
(dotimes (n size)
|
||||
(move-beginning-of-line 1) (insert ": ") (forward-line 1))))))
|
||||
(goto-char beg)
|
||||
(dotimes (n size)
|
||||
(move-beginning-of-line 1) (insert ": ") (forward-line 1))))))
|
||||
|
||||
(defun litorgy-clean-text-properties (text)
|
||||
"Strip all properties from text return."
|
||||
|
Loading…
x
Reference in New Issue
Block a user