forked from mirrors/org-mode
edit-prep: language specific src-edit buffer preparation, with R session association
* lisp/ob-R.el (org-babel-edit-prep:R): Associate the appropriate R process with the edit buffer when :session is specified. * lisp/org-src.el (org-edit-src-code): Allow language-specific edit-buffer preparation by calling the org-babel-edit-prep:lang function when it is defined.
This commit is contained in:
parent
cd4ce49449
commit
30931bfe1d
|
@ -51,6 +51,12 @@
|
|||
(defvar org-babel-R-command "R --slave --no-save"
|
||||
"Name of command to use for executing R code.")
|
||||
|
||||
(defun org-babel-edit-prep:R (info)
|
||||
(let ((session (cdr (assoc :session (nth 2 info)))))
|
||||
(when (and session (string-match "^\\*\\(.+?\\)\\*$" session))
|
||||
(save-match-data (org-babel-R-initiate-session session nil))
|
||||
(setq ess-local-process-name (match-string 1 session)))))
|
||||
|
||||
(defun org-babel-expand-body:R (body params &optional graphics-file)
|
||||
"Expand BODY according to PARAMS, return the expanded body."
|
||||
(let ((graphics-file
|
||||
|
|
|
@ -214,6 +214,7 @@ buffer."
|
|||
(let ((mark (and (org-region-active-p) (mark)))
|
||||
(case-fold-search t)
|
||||
(info (org-edit-src-find-region-and-lang))
|
||||
(full-info (org-babel-get-src-block-info))
|
||||
(org-mode-p (or (org-mode-p) (derived-mode-p 'org-mode)))
|
||||
(beg (make-marker))
|
||||
(end (make-marker))
|
||||
|
@ -323,7 +324,10 @@ buffer."
|
|||
(org-src-mode)
|
||||
(set-buffer-modified-p nil)
|
||||
(and org-edit-src-persistent-message
|
||||
(org-set-local 'header-line-format msg)))
|
||||
(org-set-local 'header-line-format msg))
|
||||
(let ((edit-prep-func (intern (concat "org-babel-edit-prep:" lang))))
|
||||
(when (fboundp edit-prep-func)
|
||||
(funcall edit-prep-func full-info))))
|
||||
t)))
|
||||
|
||||
(defun org-edit-src-continue (e)
|
||||
|
|
Loading…
Reference in a new issue