Function: org-babel-R-initiate-session
org-babel-R-initiate-session is a byte-compiled function defined in
ob-R.el.gz.
Signature
(org-babel-R-initiate-session SESSION PARAMS)
Documentation
Create or return the current R SESSION buffer.
Source Code
;; Defined in /usr/src/emacs/lisp/org/ob-R.el.gz
(defun org-babel-R-initiate-session (session _params)
"Create or return the current R SESSION buffer."
(unless (string= session "none")
(let* ((session (or session "*R*"))
;; Force using `default-directory', as we promise in the
;; manual. The caller should have taken care about setting
;; it according to :dir if necessary.
;; https://ess.r-project.org/Manual/ess.html#Changing-the-startup-actions
(ess-ask-for-ess-directory nil)
(ess-directory-function nil)
(ess-directory nil)
;; Make ESS name the process buffer as SESSION.
(ess-gen-proc-buffer-name-function
(lambda (_) session)))
(if (org-babel-comint-buffer-livep session)
session
(save-window-excursion
(when (get-buffer session)
;; Session buffer exists, but with dead process
(set-buffer session))
(org-require-package 'ess-r-mode "ESS")
(set-buffer (run-ess-r))
(let ((R-proc (get-process (or ess-local-process-name
ess-current-process-name))))
(while (process-get R-proc 'callbacks)
(ess-wait-for-process R-proc)))
(current-buffer))))))