|
|
@@ -115,7 +115,8 @@ and the results to be collected in the same table.
|
|
|
|
|
|
|
|
|
* Tasks [22/35]
|
|
|
-** TODO Create objects in top level (global) environment in R?
|
|
|
+** TODO Create objects in top level (global) environment in R? [1/8]
|
|
|
+
|
|
|
*** initial requirement statement [DED]
|
|
|
At the moment, objects created by computations performed in the
|
|
|
code block are evaluated in the scope of the
|
|
|
@@ -187,7 +188,22 @@ Please let me know if you foresee any problems with this proposed setup,
|
|
|
or if you think any parts might be confusing for people coming from
|
|
|
Sweave. I'll hopefully find some time to work on this later in the
|
|
|
week.
|
|
|
-*** further requirement: make it play nicely with ESS [DED]
|
|
|
+
|
|
|
+*** TODO implement a *session* header argument
|
|
|
+*** TODO remove source bodies from their functional wrappers
|
|
|
+The current functional wrappers should be removed in favor of
|
|
|
+incremental evaluation in inferior-source-buffers
|
|
|
+
|
|
|
+*** TODO function to bring up inferior-process buffer
|
|
|
+This should be callable from inside of a source-code block in an
|
|
|
+org-mode buffer. It should evaluation the header arguments, then
|
|
|
+bring up the inf-proc buffer using =pop-to-buffer=.
|
|
|
+
|
|
|
+*** TODO function to dump last N lines from inf-proc buffer into source block
|
|
|
+Callable with a prefix argument to specify how many lines should be
|
|
|
+dumped into the source-code buffer.
|
|
|
+
|
|
|
+*** TODO set buffer-local-process variables appropriately [DED]
|
|
|
I think something like this would be great. You've probably
|
|
|
already thought of this, but just to note it down: it would be really
|
|
|
nice if org-babel's notion of a buffer's 'session/process' played
|
|
|
@@ -195,12 +211,21 @@ nicely with ESS's notion of the buffer's session/process. ESS keeps
|
|
|
the current process name for a buffer in a buffer-local variable
|
|
|
ess-local-process-name. So one thing we will probably want to do is
|
|
|
make sure that the *Org Edit Src Example* buffer sets that variable
|
|
|
-appropriately.
|
|
|
+appropriately. [DED]
|
|
|
|
|
|
+I had not thought of that, but I agree whole heartedly. [Eric]
|
|
|
+
|
|
|
+Once this is done every variable should be able to dump regions into
|
|
|
+their inferior-process buffer using major-mode functions.
|
|
|
+
|
|
|
+*** TODO some possible requests/proposed changes for Carsten [2/3]
|
|
|
While I remember, some possible requests/proposed changes for Carsten
|
|
|
come to mind in that regard:
|
|
|
-**** a hook called when the src edit buffer is created
|
|
|
-**** Remap C-x C-s to save the source to the org buffer?
|
|
|
+
|
|
|
+**** DEFERRED a hook called when the src edit buffer is created
|
|
|
+This should be implemented in the org-mode core
|
|
|
+
|
|
|
+**** DEFERRED Remap C-x C-s to save the source to the org buffer?
|
|
|
I've done this personally and I find it essential. I'm using
|
|
|
#+begin_src emacs-lisp
|
|
|
(defun org-edit-src-save ()
|
|
|
@@ -217,7 +242,10 @@ buffer."
|
|
|
(define-key org-exit-edit-mode-map "\C-x\C-s" 'org-edit-src-save)
|
|
|
#+end_src
|
|
|
which seems to work.
|
|
|
-**** Rename buffer and minor mode?
|
|
|
+
|
|
|
+I think this is great, but I think it should be implemented in the
|
|
|
+org-mode core
|
|
|
+**** TODO Rename buffer and minor mode?
|
|
|
Something shorter than *Org Edit Src Example* for the buffer
|
|
|
name. org-babel is bringing org's source code interaction to a
|
|
|
level of maturity where the 'example' is no longer
|
|
|
@@ -225,24 +253,43 @@ buffer."
|
|
|
the minor mode then maybe org-edit-src-mode is a better name than
|
|
|
org-exit-edit-mode.
|
|
|
|
|
|
-*** need to evaluate header arguments whenever we switch to *Org Edit Src* buffer
|
|
|
- Another thought on this topic: I think we will want users to send chunks
|
|
|
-of code to the interpreter from within the *Org Edit Src* buffer, and I
|
|
|
-think that's what you have in mind already. In ESS that is done using
|
|
|
-the ess-eval-* functions. That seems to imply that the header references
|
|
|
-need to be evaluated and transformed into the target language object
|
|
|
-when we hit C-c ' to enter the *Org Edit Src* buffer (or at least before
|
|
|
-the first time we attempt to evaluate code in that buffer -- I suppose
|
|
|
-there might be an argument for lazy evaluation, in case someone hits C-c
|
|
|
-' but is "just looking" and not actually evaluating anything.) Of course
|
|
|
-if evaluating the reference is computationally intensive then the user
|
|
|
-might have to wait before they get the *Org Edit Src* buffer.
|
|
|
-
|
|
|
-*** implementation
|
|
|
-in [[file:lisp/org-babel-comint.el][org-babel-comint.el]]
|
|
|
-
|
|
|
-Currently I've coppied and begun generalizing the functions for
|
|
|
-interacting with R buffers.
|
|
|
+ Maybe we should name the buffer with a combination of the source
|
|
|
+ code and the session. I think that makes sense.
|
|
|
+
|
|
|
+ Are you also suggesting a new org-edit-src minor mode?
|
|
|
+
|
|
|
+*** DEFERRED send code to inferior process
|
|
|
+Another thought on this topic: I think we will want users to send
|
|
|
+chunks of code to the interpreter from within the *Org Edit Src*
|
|
|
+buffer, and I think that's what you have in mind already. In ESS that
|
|
|
+is done using the ess-eval-* functions. [DED]
|
|
|
+
|
|
|
+I think we can leave this up to the major-mode in the source code
|
|
|
+buffer, as almost every source-code major mode will have functions for
|
|
|
+doing things like sending regions to the inferior process. If
|
|
|
+anything we might need to set the value of the buffer local inferior
|
|
|
+process variable. [Eric]
|
|
|
+
|
|
|
+*** TODO optionally evaluate header references when we switch to =*Org Edit Src*= buffer
|
|
|
+That seems to imply that the header references need to be evaluated
|
|
|
+and transformed into the target language object when we hit C-c ' to
|
|
|
+enter the *Org Edit Src* buffer [DED]
|
|
|
+
|
|
|
+Good point, I heartily agree that this should be supported [Eric]
|
|
|
+
|
|
|
+(or at least before the first time we attempt to evaluate code in that
|
|
|
+buffer -- I suppose there might be an argument for lazy evaluation, in
|
|
|
+case someone hits C-c ' but is "just looking" and not actually
|
|
|
+evaluating anything.) Of course if evaluating the reference is
|
|
|
+computationally intensive then the user might have to wait before they
|
|
|
+get the *Org Edit Src* buffer. [DED]
|
|
|
+
|
|
|
+I fear that it may be hard to anticipate when the references will be
|
|
|
+needed, some major-modes do on-the-fly evaluation while the buffer is
|
|
|
+being edited. I think that we should either do this before the buffer
|
|
|
+is opened or not at all, specifically I think we should resolve
|
|
|
+references if the user calls C-c ' with a prefix argument. Does that
|
|
|
+sound reasonable? [Eric]
|
|
|
** TODO fully purge org-babel-R of direct comint interaction
|
|
|
try to remove all code under the [[file:lisp/org-babel-R.el::functions%20for%20evaluation%20of%20R%20code][;; functions for evaluation of R code]] line
|
|
|
|