emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* [babel] feature request - tangle-and-evaluate-tangled-file
@ 2010-07-06  7:55 Rainer M Krug
  2010-07-08 19:03 ` Eric Schulte
  0 siblings, 1 reply; 17+ messages in thread
From: Rainer M Krug @ 2010-07-06  7:55 UTC (permalink / raw)
  To: emacs-orgmode


[-- Attachment #1.1: Type: text/plain, Size: 1154 bytes --]

Hi

I am using org-babel for literate programming in R and I am using the
following approach to test the code:

1) tangle
2) refresh buffer containing the tangled code (I use auto-revert-mode or
global-auto-revert-mode for that)
3) load the tangled file into an existing R session via ESS R for evaluation

This involves switching between buffers in always the same sequence.
Therefore my suggestion:

would it be possible to have a tangle-and-evaluate-tangled-file funcction,
which is doing this automatically?

C-c - 0 and org-babel-execute-buffer do not work in this case, as functions
are split over several code blocks in R.

Cheers,

Rainer


-- 
NEW GERMAN FAX NUMBER!!!

Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology,
UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Natural Sciences Building
Office Suite 2039
Stellenbosch University
Main Campus, Merriman Avenue
Stellenbosch
South Africa

Cell:           +27 - (0)83 9479 042
Fax:            +27 - (0)86 516 2782
Fax:            +49 - (0)321 2125 2244
email:          Rainer@krugs.de

Skype:          RMkrug
Google:         R.M.Krug@gmail.com

[-- Attachment #1.2: Type: text/html, Size: 1377 bytes --]

[-- Attachment #2: Type: text/plain, Size: 201 bytes --]

_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [babel] feature request - tangle-and-evaluate-tangled-file
  2010-07-06  7:55 [babel] feature request - tangle-and-evaluate-tangled-file Rainer M Krug
@ 2010-07-08 19:03 ` Eric Schulte
  2010-07-09  7:47   ` Rainer M Krug
  0 siblings, 1 reply; 17+ messages in thread
From: Eric Schulte @ 2010-07-08 19:03 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: emacs-orgmode

Hi Rainer,

I just pushed up a new hook `org-babel-post-tangle-hook' which can be
used to run activities in tangled code files immediately after tangling.
I believe the following can be used implement the feature you described
with this hook.

(add-hook 'org-babel-post-tangle-hook
          (lambda () (ess-load-file (buffer-file-name))))

Best -- Eric

Rainer M Krug <r.m.krug@gmail.com> writes:

> Hi
>
> I am using org-babel for literate programming in R and I am using the
> following approach to test the code:
>
> 1) tangle
> 2) refresh buffer containing the tangled code (I use auto-revert-mode or
> global-auto-revert-mode for that)
> 3) load the tangled file into an existing R session via ESS R for evaluation
>
> This involves switching between buffers in always the same sequence.
> Therefore my suggestion:
>
> would it be possible to have a tangle-and-evaluate-tangled-file funcction,
> which is doing this automatically?
>
> C-c - 0 and org-babel-execute-buffer do not work in this case, as functions
> are split over several code blocks in R.
>
> Cheers,
>
> Rainer

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [babel] feature request - tangle-and-evaluate-tangled-file
  2010-07-08 19:03 ` Eric Schulte
@ 2010-07-09  7:47   ` Rainer M Krug
  2010-07-09 15:44     ` Eric Schulte
  0 siblings, 1 reply; 17+ messages in thread
From: Rainer M Krug @ 2010-07-09  7:47 UTC (permalink / raw)
  To: Eric Schulte; +Cc: emacs-orgmode


[-- Attachment #1.1: Type: text/plain, Size: 2275 bytes --]

On Thu, Jul 8, 2010 at 9:03 PM, Eric Schulte <schulte.eric@gmail.com> wrote:

> Hi Rainer,
>

Hi Eric


>
> I just pushed up a new hook `org-babel-post-tangle-hook' which can be
> used to run activities in tangled code files immediately after tangling.
> I believe the following can be used implement the feature you described
> with this hook.
>

Sounds perfect - thanks a lot.


>
> (add-hook 'org-babel-post-tangle-hook
>          (lambda () (ess-load-file (buffer-file-name))))
>

Unfortunately, this does not work. I put the code above into my
emacs.organd nothing happens - not even an error message. I tried to
use the C-h v to
customise the variable, but I don't manage it. In addition, The filename for
es-load-file shoud not be the buffer name, but the buffer name with the
extension replaced with R.

I am sorry about all these questions, but emacs-lisp I have never used
emacs-lisp (I should - and I will!)

Cheers and thanks for your patience,

Rainer


> Best -- Eric
>
> Rainer M Krug <r.m.krug@gmail.com> writes:
>
> > Hi
> >
> > I am using org-babel for literate programming in R and I am using the
> > following approach to test the code:
> >
> > 1) tangle
> > 2) refresh buffer containing the tangled code (I use auto-revert-mode or
> > global-auto-revert-mode for that)
> > 3) load the tangled file into an existing R session via ESS R for
> evaluation
> >
> > This involves switching between buffers in always the same sequence.
> > Therefore my suggestion:
> >
> > would it be possible to have a tangle-and-evaluate-tangled-file
> funcction,
> > which is doing this automatically?
> >
> > C-c - 0 and org-babel-execute-buffer do not work in this case, as
> functions
> > are split over several code blocks in R.
> >
> > Cheers,
> >
> > Rainer
>



-- 
NEW GERMAN FAX NUMBER!!!

Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology,
UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Natural Sciences Building
Office Suite 2039
Stellenbosch University
Main Campus, Merriman Avenue
Stellenbosch
South Africa

Cell:           +27 - (0)83 9479 042
Fax:            +27 - (0)86 516 2782
Fax:            +49 - (0)321 2125 2244
email:          Rainer@krugs.de

Skype:          RMkrug
Google:         R.M.Krug@gmail.com

[-- Attachment #1.2: Type: text/html, Size: 3535 bytes --]

[-- Attachment #2: Type: text/plain, Size: 201 bytes --]

_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [babel] feature request - tangle-and-evaluate-tangled-file
  2010-07-09  7:47   ` Rainer M Krug
@ 2010-07-09 15:44     ` Eric Schulte
  2010-07-12  7:46       ` Rainer M Krug
  0 siblings, 1 reply; 17+ messages in thread
From: Eric Schulte @ 2010-07-09 15:44 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: emacs-orgmode

Hi Rainer,

Rainer M Krug <r.m.krug@gmail.com> writes:

> On Thu, Jul 8, 2010 at 9:03 PM, Eric Schulte <schulte.eric@gmail.com> wrote:
[...]
>>
>> (add-hook 'org-babel-post-tangle-hook
>>          (lambda () (ess-load-file (buffer-file-name))))
>>
>
> Unfortunately, this does not work. I put the code above into my
> emacs.organd nothing happens - not even an error message. I tried to
> use the C-h v to customise the variable, but I don't manage it.

If the variable isn't registered with C-h v, then it sounds like maybe
you need to update Org-mode, and/or re-run make clean && make.

> In addition, The filename for es-load-file shoud not be the buffer
> name, but the buffer name with the extension replaced with R.
>

`buffer-file-name', returns the name of the file that the buffer is
visiting, so wouldn't this already be the case if the filename ends with
.R?

This minimal example with the hook defined as above works for me.  After
tangling I can jump to the *R* buffer where both x and y are defined.

--8<---------------cut here---------------start------------->8---
** tangle R and load
   :PROPERTIES:
   :tangle:   to-load.r
   :END:

#+begin_src R :comments yes
  x <- 8
#+end_src

#+begin_src R
  y <- 9
#+end_src
--8<---------------cut here---------------end--------------->8---

>
> I am sorry about all these questions, but emacs-lisp I have never used
> emacs-lisp (I should - and I will!)
>

No problem at all, but be careful about learning too much lisp as you
may begin to grow dissatisfied with R :)

Best -- Eric

>
> Cheers and thanks for your patience,
>
> Rainer
>
>
>> Best -- Eric
>>
>> Rainer M Krug <r.m.krug@gmail.com> writes:
>>
>> > Hi
>> >
>> > I am using org-babel for literate programming in R and I am using the
>> > following approach to test the code:
>> >
>> > 1) tangle
>> > 2) refresh buffer containing the tangled code (I use auto-revert-mode or
>> > global-auto-revert-mode for that)
>> > 3) load the tangled file into an existing R session via ESS R for
>> evaluation
>> >
>> > This involves switching between buffers in always the same sequence.
>> > Therefore my suggestion:
>> >
>> > would it be possible to have a tangle-and-evaluate-tangled-file
>> funcction,
>> > which is doing this automatically?
>> >
>> > C-c - 0 and org-babel-execute-buffer do not work in this case, as
>> functions
>> > are split over several code blocks in R.
>> >
>> > Cheers,
>> >
>> > Rainer
>>

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [babel] feature request - tangle-and-evaluate-tangled-file
  2010-07-09 15:44     ` Eric Schulte
@ 2010-07-12  7:46       ` Rainer M Krug
  2010-07-12 17:51         ` Eric Schulte
  0 siblings, 1 reply; 17+ messages in thread
From: Rainer M Krug @ 2010-07-12  7:46 UTC (permalink / raw)
  To: Eric Schulte; +Cc: emacs-orgmode


[-- Attachment #1.1: Type: text/plain, Size: 4631 bytes --]

Hi Eric,

On Fri, Jul 9, 2010 at 5:44 PM, Eric Schulte <schulte.eric@gmail.com> wrote:

> Hi Rainer,
>
> Rainer M Krug <r.m.krug@gmail.com> writes:
>
> > On Thu, Jul 8, 2010 at 9:03 PM, Eric Schulte <schulte.eric@gmail.com>
> wrote:
> [...]
> >>
> >> (add-hook 'org-babel-post-tangle-hook
> >>          (lambda () (ess-load-file (buffer-file-name))))
> >>
> >
> > Unfortunately, this does not work. I put the code above into my
> > emacs.organd nothing happens - not even an error message. I tried to
> > use the C-h v to customise the variable, but I don't manage it.
>
> If the variable isn't registered with C-h v, then it sounds like maybe
> you need to update Org-mode, and/or re-run make clean && make.
>

OK - that is working now.


>
> > In addition, The filename for es-load-file shoud not be the buffer
> > name, but the buffer name with the extension replaced with R.
> >
>
> `buffer-file-name', returns the name of the file that the buffer is
> visiting, so wouldn't this already be the case if the filename ends with
> .R?
>

Isn't the buffer from which I am tangling the org buffer, and not the result
from the tangling? (see below for further remarks.


>
> This minimal example with the hook defined as above works for me.  After
> tangling I can jump to the *R* buffer where both x and y are defined.
>
> --8<---------------cut here---------------start------------->8---
> ** tangle R and load
>   :PROPERTIES:
>   :tangle:   to-load.r
>   :END:
>
> #+begin_src R :comments yes
>  x <- 8
> #+end_src
>
> #+begin_src R
>  y <- 9
> #+end_src
> --8<---------------cut here---------------end--------------->8---
>

Not here -

Emacs and org-mode version:

GNU Emacs 23.2.1 (i686-pc-linux-gnu, GTK+ Version 2.20.1)
Org-mode version 6.36trans (release_6.36.603.g227b)

1) if no R process is running, I get the following message:
ess-start-process-specific: No ESS processes running; not yet implemented to
start (Initial,nil)
No problem 0 I can start an R process manually.

2) when an R session is running, I get the following error message from ESS:
Errors: Use C-c ` to find error.
Symbol's function definition is void: with-temp-filebuffer

and from ESS:

Error in source("/home/rkrug/tmp/R.org") :
  /home/rkrug/tmp/R.org:1:1: unexpected '^'
1: **

it seems to submit the org file (the buffer is saved as R.org) to R.

So buffer-file-name should actually be replaced with the name from the file
name resulting from the tangling, in the easiest case (which would be fine
with me) the org buffer name with .org replaced with .R.
So I did the following (my firs elisp code!):

  (add-hook 'org-babel-post-tangle-hook
            (lambda () (ess-load-file (replace-regexp-in-string ".org" ".R"
buffer-file-name))))

and it is working - except that I still get the Symbol's function definition
is void: with-temp-filebuffer , but it does not seem to do anything.

Thanks a lot,

Rainer





> >
> > I am sorry about all these questions, but emacs-lisp I have never used
> > emacs-lisp (I should - and I will!)
> >
>
> No problem at all, but be careful about learning too much lisp as you
> may begin to grow dissatisfied with R :)
>
> Best -- Eric
>
> >
> > Cheers and thanks for your patience,
> >
> > Rainer
> >
> >
> >> Best -- Eric
> >>
> >> Rainer M Krug <r.m.krug@gmail.com> writes:
> >>
> >> > Hi
> >> >
> >> > I am using org-babel for literate programming in R and I am using the
> >> > following approach to test the code:
> >> >
> >> > 1) tangle
> >> > 2) refresh buffer containing the tangled code (I use auto-revert-mode
> or
> >> > global-auto-revert-mode for that)
> >> > 3) load the tangled file into an existing R session via ESS R for
> >> evaluation
> >> >
> >> > This involves switching between buffers in always the same sequence.
> >> > Therefore my suggestion:
> >> >
> >> > would it be possible to have a tangle-and-evaluate-tangled-file
> >> funcction,
> >> > which is doing this automatically?
> >> >
> >> > C-c - 0 and org-babel-execute-buffer do not work in this case, as
> >> functions
> >> > are split over several code blocks in R.
> >> >
> >> > Cheers,
> >> >
> >> > Rainer
> >>
>



-- 
NEW GERMAN FAX NUMBER!!!

Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology,
UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Natural Sciences Building
Office Suite 2039
Stellenbosch University
Main Campus, Merriman Avenue
Stellenbosch
South Africa

Cell:           +27 - (0)83 9479 042
Fax:            +27 - (0)86 516 2782
Fax:            +49 - (0)321 2125 2244
email:          Rainer@krugs.de

Skype:          RMkrug
Google:         R.M.Krug@gmail.com

[-- Attachment #1.2: Type: text/html, Size: 7827 bytes --]

[-- Attachment #2: Type: text/plain, Size: 201 bytes --]

_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [babel] feature request - tangle-and-evaluate-tangled-file
  2010-07-12  7:46       ` Rainer M Krug
@ 2010-07-12 17:51         ` Eric Schulte
  2010-07-13  8:14           ` Dr Rainer M Krug
  0 siblings, 1 reply; 17+ messages in thread
From: Eric Schulte @ 2010-07-12 17:51 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: emacs-orgmode

Rainer M Krug <r.m.krug@gmail.com> writes:

> Hi Eric,
>
> On Fri, Jul 9, 2010 at 5:44 PM, Eric Schulte <schulte.eric@gmail.com> wrote:
>
>> Hi Rainer,
>>
>> Rainer M Krug <r.m.krug@gmail.com> writes:
>>
>> > On Thu, Jul 8, 2010 at 9:03 PM, Eric Schulte <schulte.eric@gmail.com>
>> wrote:
>> [...]
>> >>
>> >> (add-hook 'org-babel-post-tangle-hook
>> >>          (lambda () (ess-load-file (buffer-file-name))))
>> >>
>> >
>> > Unfortunately, this does not work. I put the code above into my
>> > emacs.organd nothing happens - not even an error message. I tried to
>> > use the C-h v to customise the variable, but I don't manage it.
>>
>> If the variable isn't registered with C-h v, then it sounds like maybe
>> you need to update Org-mode, and/or re-run make clean && make.
>>
>
> OK - that is working now.
>
>
>>
>> > In addition, The filename for es-load-file shoud not be the buffer
>> > name, but the buffer name with the extension replaced with R.
>> >
>>
>> `buffer-file-name', returns the name of the file that the buffer is
>> visiting, so wouldn't this already be the case if the filename ends with
>> .R?
>>
>
> Isn't the buffer from which I am tangling the org buffer, and not the result
> from the tangling? (see below for further remarks.
>

No this hook is run from /within/ a buffer visiting the file of tangled
code, so in the example hook function above (buffer-file-name) will
equal the name of the file of tangled R code.  From your later message
it looks like the issues below have been resolved.

Best -- Eric

>
>
>>
>> This minimal example with the hook defined as above works for me.  After
>> tangling I can jump to the *R* buffer where both x and y are defined.
>>
>> --8<---------------cut here---------------start------------->8---
>> ** tangle R and load
>>   :PROPERTIES:
>>   :tangle:   to-load.r
>>   :END:
>>
>> #+begin_src R :comments yes
>>  x <- 8
>> #+end_src
>>
>> #+begin_src R
>>  y <- 9
>> #+end_src
>> --8<---------------cut here---------------end--------------->8---
>>
>
> Not here -
>
> Emacs and org-mode version:
>
> GNU Emacs 23.2.1 (i686-pc-linux-gnu, GTK+ Version 2.20.1)
> Org-mode version 6.36trans (release_6.36.603.g227b)
>
> 1) if no R process is running, I get the following message:
> ess-start-process-specific: No ESS processes running; not yet implemented to
> start (Initial,nil)
> No problem 0 I can start an R process manually.
>
> 2) when an R session is running, I get the following error message from ESS:
> Errors: Use C-c ` to find error.
> Symbol's function definition is void: with-temp-filebuffer
>
> and from ESS:
>
> Error in source("/home/rkrug/tmp/R.org") :
>   /home/rkrug/tmp/R.org:1:1: unexpected '^'
> 1: **
>
> it seems to submit the org file (the buffer is saved as R.org) to R.
>
> So buffer-file-name should actually be replaced with the name from the file
> name resulting from the tangling, in the easiest case (which would be fine
> with me) the org buffer name with .org replaced with .R.
> So I did the following (my firs elisp code!):
>
>   (add-hook 'org-babel-post-tangle-hook
>             (lambda () (ess-load-file (replace-regexp-in-string ".org" ".R"
> buffer-file-name))))
>
> and it is working - except that I still get the Symbol's function definition
> is void: with-temp-filebuffer , but it does not seem to do anything.
>
> Thanks a lot,
>
> Rainer
>
>
>
>
>
>> >
>> > I am sorry about all these questions, but emacs-lisp I have never used
>> > emacs-lisp (I should - and I will!)
>> >
>>
>> No problem at all, but be careful about learning too much lisp as you
>> may begin to grow dissatisfied with R :)
>>
>> Best -- Eric
>>
>> >
>> > Cheers and thanks for your patience,
>> >
>> > Rainer
>> >
>> >
>> >> Best -- Eric
>> >>
>> >> Rainer M Krug <r.m.krug@gmail.com> writes:
>> >>
>> >> > Hi
>> >> >
>> >> > I am using org-babel for literate programming in R and I am using the
>> >> > following approach to test the code:
>> >> >
>> >> > 1) tangle
>> >> > 2) refresh buffer containing the tangled code (I use auto-revert-mode
>> or
>> >> > global-auto-revert-mode for that)
>> >> > 3) load the tangled file into an existing R session via ESS R for
>> >> evaluation
>> >> >
>> >> > This involves switching between buffers in always the same sequence.
>> >> > Therefore my suggestion:
>> >> >
>> >> > would it be possible to have a tangle-and-evaluate-tangled-file
>> >> funcction,
>> >> > which is doing this automatically?
>> >> >
>> >> > C-c - 0 and org-babel-execute-buffer do not work in this case, as
>> >> functions
>> >> > are split over several code blocks in R.
>> >> >
>> >> > Cheers,
>> >> >
>> >> > Rainer
>> >>
>>

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [babel] feature request - tangle-and-evaluate-tangled-file
  2010-07-12 17:51         ` Eric Schulte
@ 2010-07-13  8:14           ` Dr Rainer M Krug
  2010-07-15 12:37             ` Rainer M Krug
  0 siblings, 1 reply; 17+ messages in thread
From: Dr Rainer M Krug @ 2010-07-13  8:14 UTC (permalink / raw)
  To: Eric Schulte; +Cc: emacs-orgmode, Rainer M Krug

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 12/07/2010 19:51, Eric Schulte wrote:
> Rainer M Krug <r.m.krug@gmail.com> writes:
> 
>> Hi Eric,
>>
>> On Fri, Jul 9, 2010 at 5:44 PM, Eric Schulte <schulte.eric@gmail.com> wrote:
>>
>>> Hi Rainer,
>>>
>>> Rainer M Krug <r.m.krug@gmail.com> writes:
>>>
>>>> On Thu, Jul 8, 2010 at 9:03 PM, Eric Schulte <schulte.eric@gmail.com>
>>> wrote:
>>> [...]
>>>>>
>>>>> (add-hook 'org-babel-post-tangle-hook
>>>>>          (lambda () (ess-load-file (buffer-file-name))))
>>>>>
>>>>
>>>> Unfortunately, this does not work. I put the code above into my
>>>> emacs.organd nothing happens - not even an error message. I tried to
>>>> use the C-h v to customise the variable, but I don't manage it.
>>>
>>> If the variable isn't registered with C-h v, then it sounds like maybe
>>> you need to update Org-mode, and/or re-run make clean && make.
>>>
>>
>> OK - that is working now.
>>
>>
>>>
>>>> In addition, The filename for es-load-file shoud not be the buffer
>>>> name, but the buffer name with the extension replaced with R.
>>>>
>>>
>>> `buffer-file-name', returns the name of the file that the buffer is
>>> visiting, so wouldn't this already be the case if the filename ends with
>>> .R?
>>>
>>
>> Isn't the buffer from which I am tangling the org buffer, and not the result
>> from the tangling? (see below for further remarks.
>>
> 
> No this hook is run from /within/ a buffer visiting the file of tangled
> code, so in the example hook function above (buffer-file-name) will
> equal the name of the file of tangled R code.  From your later message
> it looks like the issues below have been resolved.

Thanks a lot for a very useful addition, and I will see abut the
buffer-name and come back if it is still the org-file buffer for me,

Rainer

> 
> Best -- Eric
> 
>>
>>
>>>
>>> This minimal example with the hook defined as above works for me.  After
>>> tangling I can jump to the *R* buffer where both x and y are defined.
>>>
>>> --8<---------------cut here---------------start------------->8---
>>> ** tangle R and load
>>>   :PROPERTIES:
>>>   :tangle:   to-load.r
>>>   :END:
>>>
>>> #+begin_src R :comments yes
>>>  x <- 8
>>> #+end_src
>>>
>>> #+begin_src R
>>>  y <- 9
>>> #+end_src
>>> --8<---------------cut here---------------end--------------->8---
>>>
>>
>> Not here -
>>
>> Emacs and org-mode version:
>>
>> GNU Emacs 23.2.1 (i686-pc-linux-gnu, GTK+ Version 2.20.1)
>> Org-mode version 6.36trans (release_6.36.603.g227b)
>>
>> 1) if no R process is running, I get the following message:
>> ess-start-process-specific: No ESS processes running; not yet implemented to
>> start (Initial,nil)
>> No problem 0 I can start an R process manually.
>>
>> 2) when an R session is running, I get the following error message from ESS:
>> Errors: Use C-c ` to find error.
>> Symbol's function definition is void: with-temp-filebuffer
>>
>> and from ESS:
>>
>> Error in source("/home/rkrug/tmp/R.org") :
>>   /home/rkrug/tmp/R.org:1:1: unexpected '^'
>> 1: **
>>
>> it seems to submit the org file (the buffer is saved as R.org) to R.
>>
>> So buffer-file-name should actually be replaced with the name from the file
>> name resulting from the tangling, in the easiest case (which would be fine
>> with me) the org buffer name with .org replaced with .R.
>> So I did the following (my firs elisp code!):
>>
>>   (add-hook 'org-babel-post-tangle-hook
>>             (lambda () (ess-load-file (replace-regexp-in-string ".org" ".R"
>> buffer-file-name))))
>>
>> and it is working - except that I still get the Symbol's function definition
>> is void: with-temp-filebuffer , but it does not seem to do anything.
>>
>> Thanks a lot,
>>
>> Rainer
>>
>>
>>
>>
>>
>>>>
>>>> I am sorry about all these questions, but emacs-lisp I have never used
>>>> emacs-lisp (I should - and I will!)
>>>>
>>>
>>> No problem at all, but be careful about learning too much lisp as you
>>> may begin to grow dissatisfied with R :)
>>>
>>> Best -- Eric
>>>
>>>>
>>>> Cheers and thanks for your patience,
>>>>
>>>> Rainer
>>>>
>>>>
>>>>> Best -- Eric
>>>>>
>>>>> Rainer M Krug <r.m.krug@gmail.com> writes:
>>>>>
>>>>>> Hi
>>>>>>
>>>>>> I am using org-babel for literate programming in R and I am using the
>>>>>> following approach to test the code:
>>>>>>
>>>>>> 1) tangle
>>>>>> 2) refresh buffer containing the tangled code (I use auto-revert-mode
>>> or
>>>>>> global-auto-revert-mode for that)
>>>>>> 3) load the tangled file into an existing R session via ESS R for
>>>>> evaluation
>>>>>>
>>>>>> This involves switching between buffers in always the same sequence.
>>>>>> Therefore my suggestion:
>>>>>>
>>>>>> would it be possible to have a tangle-and-evaluate-tangled-file
>>>>> funcction,
>>>>>> which is doing this automatically?
>>>>>>
>>>>>> C-c - 0 and org-babel-execute-buffer do not work in this case, as
>>>>> functions
>>>>>> are split over several code blocks in R.
>>>>>>
>>>>>> Cheers,
>>>>>>
>>>>>> Rainer
>>>>>
>>>

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkw8IGQACgkQoYgNqgF2egpm/ACdEttwt8P3epMZI6GfcksVW6s/
apIAnAj6BYlyAUgTcUST65NOjWk91Pmz
=15EP
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [babel] feature request - tangle-and-evaluate-tangled-file
  2010-07-13  8:14           ` Dr Rainer M Krug
@ 2010-07-15 12:37             ` Rainer M Krug
  2010-07-16 22:58               ` Eric Schulte
  0 siblings, 1 reply; 17+ messages in thread
From: Rainer M Krug @ 2010-07-15 12:37 UTC (permalink / raw)
  To: Dr Rainer M Krug; +Cc: emacs-orgmode

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 13/07/2010 10:14, Dr Rainer M Krug wrote:
> On 12/07/2010 19:51, Eric Schulte wrote:
>> Rainer M Krug <r.m.krug@gmail.com> writes:
> 
>>> Hi Eric,
>>>
>>> On Fri, Jul 9, 2010 at 5:44 PM, Eric Schulte <schulte.eric@gmail.com> wrote:
>>>
>>>> Hi Rainer,
>>>>
>>>> Rainer M Krug <r.m.krug@gmail.com> writes:
>>>>
>>>>> On Thu, Jul 8, 2010 at 9:03 PM, Eric Schulte <schulte.eric@gmail.com>
>>>> wrote:
>>>> [...]
>>>>>>
>>>>>> (add-hook 'org-babel-post-tangle-hook
>>>>>>          (lambda () (ess-load-file (buffer-file-name))))
>>>>>>
>>>>>
>>>>> Unfortunately, this does not work. I put the code above into my
>>>>> emacs.organd nothing happens - not even an error message. I tried to
>>>>> use the C-h v to customise the variable, but I don't manage it.
>>>>
>>>> If the variable isn't registered with C-h v, then it sounds like maybe
>>>> you need to update Org-mode, and/or re-run make clean && make.
>>>>
>>>
>>> OK - that is working now.
>>>
>>>
>>>>
>>>>> In addition, The filename for es-load-file shoud not be the buffer
>>>>> name, but the buffer name with the extension replaced with R.
>>>>>
>>>>
>>>> `buffer-file-name', returns the name of the file that the buffer is
>>>> visiting, so wouldn't this already be the case if the filename ends with
>>>> .R?
>>>>
>>>
>>> Isn't the buffer from which I am tangling the org buffer, and not the result
>>> from the tangling? (see below for further remarks.
>>>
> 
>> No this hook is run from /within/ a buffer visiting the file of tangled
>> code, so in the example hook function above (buffer-file-name) will
>> equal the name of the file of tangled R code.  From your later message
>> it looks like the issues below have been resolved.
> 
> Thanks a lot for a very useful addition, and I will see abut the
> buffer-name and come back if it is still the org-file buffer for me,

I finally tried it out, and it is still the same: when I tangle an org
file, for the hook as defined above, buffer-file-name is the org file.

Cheers,

Raienr

> 
> Rainer
> 
> 
>> Best -- Eric
> 
>>>
>>>
>>>>
>>>> This minimal example with the hook defined as above works for me.  After
>>>> tangling I can jump to the *R* buffer where both x and y are defined.
>>>>
>>>> --8<---------------cut here---------------start------------->8---
>>>> ** tangle R and load
>>>>   :PROPERTIES:
>>>>   :tangle:   to-load.r
>>>>   :END:
>>>>
>>>> #+begin_src R :comments yes
>>>>  x <- 8
>>>> #+end_src
>>>>
>>>> #+begin_src R
>>>>  y <- 9
>>>> #+end_src
>>>> --8<---------------cut here---------------end--------------->8---
>>>>
>>>
>>> Not here -
>>>
>>> Emacs and org-mode version:
>>>
>>> GNU Emacs 23.2.1 (i686-pc-linux-gnu, GTK+ Version 2.20.1)
>>> Org-mode version 6.36trans (release_6.36.603.g227b)
>>>
>>> 1) if no R process is running, I get the following message:
>>> ess-start-process-specific: No ESS processes running; not yet implemented to
>>> start (Initial,nil)
>>> No problem 0 I can start an R process manually.
>>>
>>> 2) when an R session is running, I get the following error message from ESS:
>>> Errors: Use C-c ` to find error.
>>> Symbol's function definition is void: with-temp-filebuffer
>>>
>>> and from ESS:
>>>
>>> Error in source("/home/rkrug/tmp/R.org") :
>>>   /home/rkrug/tmp/R.org:1:1: unexpected '^'
>>> 1: **
>>>
>>> it seems to submit the org file (the buffer is saved as R.org) to R.
>>>
>>> So buffer-file-name should actually be replaced with the name from the file
>>> name resulting from the tangling, in the easiest case (which would be fine
>>> with me) the org buffer name with .org replaced with .R.
>>> So I did the following (my firs elisp code!):
>>>
>>>   (add-hook 'org-babel-post-tangle-hook
>>>             (lambda () (ess-load-file (replace-regexp-in-string ".org" ".R"
>>> buffer-file-name))))
>>>
>>> and it is working - except that I still get the Symbol's function definition
>>> is void: with-temp-filebuffer , but it does not seem to do anything.
>>>
>>> Thanks a lot,
>>>
>>> Rainer
>>>
>>>
>>>
>>>
>>>
>>>>>
>>>>> I am sorry about all these questions, but emacs-lisp I have never used
>>>>> emacs-lisp (I should - and I will!)
>>>>>
>>>>
>>>> No problem at all, but be careful about learning too much lisp as you
>>>> may begin to grow dissatisfied with R :)
>>>>
>>>> Best -- Eric
>>>>
>>>>>
>>>>> Cheers and thanks for your patience,
>>>>>
>>>>> Rainer
>>>>>
>>>>>
>>>>>> Best -- Eric
>>>>>>
>>>>>> Rainer M Krug <r.m.krug@gmail.com> writes:
>>>>>>
>>>>>>> Hi
>>>>>>>
>>>>>>> I am using org-babel for literate programming in R and I am using the
>>>>>>> following approach to test the code:
>>>>>>>
>>>>>>> 1) tangle
>>>>>>> 2) refresh buffer containing the tangled code (I use auto-revert-mode
>>>> or
>>>>>>> global-auto-revert-mode for that)
>>>>>>> 3) load the tangled file into an existing R session via ESS R for
>>>>>> evaluation
>>>>>>>
>>>>>>> This involves switching between buffers in always the same sequence.
>>>>>>> Therefore my suggestion:
>>>>>>>
>>>>>>> would it be possible to have a tangle-and-evaluate-tangled-file
>>>>>> funcction,
>>>>>>> which is doing this automatically?
>>>>>>>
>>>>>>> C-c - 0 and org-babel-execute-buffer do not work in this case, as
>>>>>> functions
>>>>>>> are split over several code blocks in R.
>>>>>>>
>>>>>>> Cheers,
>>>>>>>
>>>>>>> Rainer
>>>>>>
>>>>
> 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkw/AQYACgkQoYgNqgF2egpOHgCeIoOMiIxi1ZbrDPVW4OpbKM8W
r9IAnihCH3WTFpWgK/z9BFd7kx1Clh+k
=JR5K
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [babel] feature request - tangle-and-evaluate-tangled-file
  2010-07-15 12:37             ` Rainer M Krug
@ 2010-07-16 22:58               ` Eric Schulte
  2010-07-19  7:12                 ` Rainer M Krug
  0 siblings, 1 reply; 17+ messages in thread
From: Eric Schulte @ 2010-07-16 22:58 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: emacs-orgmode

Hi Rainer,

I've just pushed up a fix for the org-babel-post-tangle-hook.

With a minimal org-babel configuration, if I open the following file.

--8<---------------cut here---------------start------------->8---
** tangle R and load
  :PROPERTIES:
  :tangle:   to-load.r
  :END:

evaluate this
#+begin_src emacs-lisp :results silent :tangle no
  (add-hook 'org-babel-post-tangle-hook
            (lambda () (message "I'm in %s" (buffer-file-name))))
#+end_src

then tangle

#+begin_src R :comments yes
 x <- 8
#+end_src

#+begin_src R
 y <- 9
#+end_src
--8<---------------cut here---------------end--------------->8---

evaluate the emacs-lisp code block to initialize my post-tangle-hook,
and then tangle the very same file, I see the following in my messages
buffer, indicating that the correct file is now being visited.

--8<---------------cut here---------------start------------->8---
Wrote /home/eschulte/Desktop/to-load.r [2 times]
tangled 2 code blocks
I'm in /home/eschulte/Desktop/to-load.r
--8<---------------cut here---------------end--------------->8---

Hopefully this will now work for you as well.

Thanks -- Eric

Rainer M Krug <r.m.krug@gmail.com> writes:

> On 13/07/2010 10:14, Dr Rainer M Krug wrote:
>> On 12/07/2010 19:51, Eric Schulte wrote:
>>> Rainer M Krug <r.m.krug@gmail.com> writes:
>> 
>>>> Hi Eric,
>>>>
>>>> On Fri, Jul 9, 2010 at 5:44 PM, Eric Schulte <schulte.eric@gmail.com> wrote:
>>>>
>>>>> Hi Rainer,
>>>>>
>>>>> Rainer M Krug <r.m.krug@gmail.com> writes:
>>>>>
>>>>>> On Thu, Jul 8, 2010 at 9:03 PM, Eric Schulte <schulte.eric@gmail.com>
>>>>> wrote:
>>>>> [...]
>>>>>>>
>>>>>>> (add-hook 'org-babel-post-tangle-hook
>>>>>>>          (lambda () (ess-load-file (buffer-file-name))))
>>>>>>>
>>>>>>
>>>>>> Unfortunately, this does not work. I put the code above into my
>>>>>> emacs.organd nothing happens - not even an error message. I tried to
>>>>>> use the C-h v to customise the variable, but I don't manage it.
>>>>>
>>>>> If the variable isn't registered with C-h v, then it sounds like maybe
>>>>> you need to update Org-mode, and/or re-run make clean && make.
>>>>>
>>>>
>>>> OK - that is working now.
>>>>
>>>>
>>>>>
>>>>>> In addition, The filename for es-load-file shoud not be the buffer
>>>>>> name, but the buffer name with the extension replaced with R.
>>>>>>
>>>>>
>>>>> `buffer-file-name', returns the name of the file that the buffer is
>>>>> visiting, so wouldn't this already be the case if the filename ends with
>>>>> .R?
>>>>>
>>>>
>>>> Isn't the buffer from which I am tangling the org buffer, and not the result
>>>> from the tangling? (see below for further remarks.
>>>>
>> 
>>> No this hook is run from /within/ a buffer visiting the file of tangled
>>> code, so in the example hook function above (buffer-file-name) will
>>> equal the name of the file of tangled R code.  From your later message
>>> it looks like the issues below have been resolved.
>> 
>> Thanks a lot for a very useful addition, and I will see abut the
>> buffer-name and come back if it is still the org-file buffer for me,
>
> I finally tried it out, and it is still the same: when I tangle an org
> file, for the hook as defined above, buffer-file-name is the org file.
>
> Cheers,
>
> Raienr
>
>> 
>> Rainer
>> 
>> 
>>> Best -- Eric
>> 
>>>>
>>>>
>>>>>
>>>>> This minimal example with the hook defined as above works for me.  After
>>>>> tangling I can jump to the *R* buffer where both x and y are defined.
>>>>>
>>>>> --8<---------------cut here---------------start------------->8---
>>>>> ** tangle R and load
>>>>>   :PROPERTIES:
>>>>>   :tangle:   to-load.r
>>>>>   :END:
>>>>>
>>>>> #+begin_src R :comments yes
>>>>>  x <- 8
>>>>> #+end_src
>>>>>
>>>>> #+begin_src R
>>>>>  y <- 9
>>>>> #+end_src
>>>>> --8<---------------cut here---------------end--------------->8---
>>>>>
>>>>
>>>> Not here -
>>>>
>>>> Emacs and org-mode version:
>>>>
>>>> GNU Emacs 23.2.1 (i686-pc-linux-gnu, GTK+ Version 2.20.1)
>>>> Org-mode version 6.36trans (release_6.36.603.g227b)
>>>>
>>>> 1) if no R process is running, I get the following message:
>>>> ess-start-process-specific: No ESS processes running; not yet implemented to
>>>> start (Initial,nil)
>>>> No problem 0 I can start an R process manually.
>>>>
>>>> 2) when an R session is running, I get the following error message from ESS:
>>>> Errors: Use C-c ` to find error.
>>>> Symbol's function definition is void: with-temp-filebuffer
>>>>
>>>> and from ESS:
>>>>
>>>> Error in source("/home/rkrug/tmp/R.org") :
>>>>   /home/rkrug/tmp/R.org:1:1: unexpected '^'
>>>> 1: **
>>>>
>>>> it seems to submit the org file (the buffer is saved as R.org) to R.
>>>>
>>>> So buffer-file-name should actually be replaced with the name from the file
>>>> name resulting from the tangling, in the easiest case (which would be fine
>>>> with me) the org buffer name with .org replaced with .R.
>>>> So I did the following (my firs elisp code!):
>>>>
>>>>   (add-hook 'org-babel-post-tangle-hook
>>>>             (lambda () (ess-load-file (replace-regexp-in-string ".org" ".R"
>>>> buffer-file-name))))
>>>>
>>>> and it is working - except that I still get the Symbol's function definition
>>>> is void: with-temp-filebuffer , but it does not seem to do anything.
>>>>
>>>> Thanks a lot,
>>>>
>>>> Rainer
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>>>
>>>>>> I am sorry about all these questions, but emacs-lisp I have never used
>>>>>> emacs-lisp (I should - and I will!)
>>>>>>
>>>>>
>>>>> No problem at all, but be careful about learning too much lisp as you
>>>>> may begin to grow dissatisfied with R :)
>>>>>
>>>>> Best -- Eric
>>>>>
>>>>>>
>>>>>> Cheers and thanks for your patience,
>>>>>>
>>>>>> Rainer
>>>>>>
>>>>>>
>>>>>>> Best -- Eric
>>>>>>>
>>>>>>> Rainer M Krug <r.m.krug@gmail.com> writes:
>>>>>>>
>>>>>>>> Hi
>>>>>>>>
>>>>>>>> I am using org-babel for literate programming in R and I am using the
>>>>>>>> following approach to test the code:
>>>>>>>>
>>>>>>>> 1) tangle
>>>>>>>> 2) refresh buffer containing the tangled code (I use auto-revert-mode
>>>>> or
>>>>>>>> global-auto-revert-mode for that)
>>>>>>>> 3) load the tangled file into an existing R session via ESS R for
>>>>>>> evaluation
>>>>>>>>
>>>>>>>> This involves switching between buffers in always the same sequence.
>>>>>>>> Therefore my suggestion:
>>>>>>>>
>>>>>>>> would it be possible to have a tangle-and-evaluate-tangled-file
>>>>>>> funcction,
>>>>>>>> which is doing this automatically?
>>>>>>>>
>>>>>>>> C-c - 0 and org-babel-execute-buffer do not work in this case, as
>>>>>>> functions
>>>>>>>> are split over several code blocks in R.
>>>>>>>>
>>>>>>>> Cheers,
>>>>>>>>
>>>>>>>> Rainer
>>>>>>>
>>>>>
>> 

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [babel] feature request - tangle-and-evaluate-tangled-file
  2010-07-16 22:58               ` Eric Schulte
@ 2010-07-19  7:12                 ` Rainer M Krug
  2010-07-20  7:55                   ` Rainer M Krug
  0 siblings, 1 reply; 17+ messages in thread
From: Rainer M Krug @ 2010-07-19  7:12 UTC (permalink / raw)
  To: Eric Schulte; +Cc: emacs-orgmode, Rainer M Krug

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 17/07/2010 00:58, Eric Schulte wrote:
> Hi Rainer,
> 
> I've just pushed up a fix for the org-babel-post-tangle-hook.
> 
> With a minimal org-babel configuration, if I open the following file.
> 
> --8<---------------cut here---------------start------------->8---
> ** tangle R and load
>   :PROPERTIES:
>   :tangle:   to-load.r
>   :END:
> 
> evaluate this
> #+begin_src emacs-lisp :results silent :tangle no
>   (add-hook 'org-babel-post-tangle-hook
>             (lambda () (message "I'm in %s" (buffer-file-name))))
> #+end_src
> 
> then tangle
> 
> #+begin_src R :comments yes
>  x <- 8
> #+end_src
> 
> #+begin_src R
>  y <- 9
> #+end_src
> --8<---------------cut here---------------end--------------->8---
> 
> evaluate the emacs-lisp code block to initialize my post-tangle-hook,
> and then tangle the very same file, I see the following in my messages
> buffer, indicating that the correct file is now being visited.
> 
> --8<---------------cut here---------------start------------->8---
> Wrote /home/eschulte/Desktop/to-load.r [2 times]
> tangled 2 code blocks
> I'm in /home/eschulte/Desktop/to-load.r
> --8<---------------cut here---------------end--------------->8---
> 
> Hopefully this will now work for you as well.

Great - thanks a lot - it does.

I especially like the idea of putting the setting of the hook in the
.org file - I had it in my emacs.org, but it is MUCH nicer to have it in
the .org file.

Cheers and thanks a lot,

Rainer

> 
> Thanks -- Eric
> 
> Rainer M Krug <r.m.krug@gmail.com> writes:
> 
>> On 13/07/2010 10:14, Dr Rainer M Krug wrote:
>>> On 12/07/2010 19:51, Eric Schulte wrote:
>>>> Rainer M Krug <r.m.krug@gmail.com> writes:
>>>
>>>>> Hi Eric,
>>>>>
>>>>> On Fri, Jul 9, 2010 at 5:44 PM, Eric Schulte <schulte.eric@gmail.com> wrote:
>>>>>
>>>>>> Hi Rainer,
>>>>>>
>>>>>> Rainer M Krug <r.m.krug@gmail.com> writes:
>>>>>>
>>>>>>> On Thu, Jul 8, 2010 at 9:03 PM, Eric Schulte <schulte.eric@gmail.com>
>>>>>> wrote:
>>>>>> [...]
>>>>>>>>
>>>>>>>> (add-hook 'org-babel-post-tangle-hook
>>>>>>>>          (lambda () (ess-load-file (buffer-file-name))))
>>>>>>>>
>>>>>>>
>>>>>>> Unfortunately, this does not work. I put the code above into my
>>>>>>> emacs.organd nothing happens - not even an error message. I tried to
>>>>>>> use the C-h v to customise the variable, but I don't manage it.
>>>>>>
>>>>>> If the variable isn't registered with C-h v, then it sounds like maybe
>>>>>> you need to update Org-mode, and/or re-run make clean && make.
>>>>>>
>>>>>
>>>>> OK - that is working now.
>>>>>
>>>>>
>>>>>>
>>>>>>> In addition, The filename for es-load-file shoud not be the buffer
>>>>>>> name, but the buffer name with the extension replaced with R.
>>>>>>>
>>>>>>
>>>>>> `buffer-file-name', returns the name of the file that the buffer is
>>>>>> visiting, so wouldn't this already be the case if the filename ends with
>>>>>> .R?
>>>>>>
>>>>>
>>>>> Isn't the buffer from which I am tangling the org buffer, and not the result
>>>>> from the tangling? (see below for further remarks.
>>>>>
>>>
>>>> No this hook is run from /within/ a buffer visiting the file of tangled
>>>> code, so in the example hook function above (buffer-file-name) will
>>>> equal the name of the file of tangled R code.  From your later message
>>>> it looks like the issues below have been resolved.
>>>
>>> Thanks a lot for a very useful addition, and I will see abut the
>>> buffer-name and come back if it is still the org-file buffer for me,
>>
>> I finally tried it out, and it is still the same: when I tangle an org
>> file, for the hook as defined above, buffer-file-name is the org file.
>>
>> Cheers,
>>
>> Raienr
>>
>>>
>>> Rainer
>>>
>>>
>>>> Best -- Eric
>>>
>>>>>
>>>>>
>>>>>>
>>>>>> This minimal example with the hook defined as above works for me.  After
>>>>>> tangling I can jump to the *R* buffer where both x and y are defined.
>>>>>>
>>>>>> --8<---------------cut here---------------start------------->8---
>>>>>> ** tangle R and load
>>>>>>   :PROPERTIES:
>>>>>>   :tangle:   to-load.r
>>>>>>   :END:
>>>>>>
>>>>>> #+begin_src R :comments yes
>>>>>>  x <- 8
>>>>>> #+end_src
>>>>>>
>>>>>> #+begin_src R
>>>>>>  y <- 9
>>>>>> #+end_src
>>>>>> --8<---------------cut here---------------end--------------->8---
>>>>>>
>>>>>
>>>>> Not here -
>>>>>
>>>>> Emacs and org-mode version:
>>>>>
>>>>> GNU Emacs 23.2.1 (i686-pc-linux-gnu, GTK+ Version 2.20.1)
>>>>> Org-mode version 6.36trans (release_6.36.603.g227b)
>>>>>
>>>>> 1) if no R process is running, I get the following message:
>>>>> ess-start-process-specific: No ESS processes running; not yet implemented to
>>>>> start (Initial,nil)
>>>>> No problem 0 I can start an R process manually.
>>>>>
>>>>> 2) when an R session is running, I get the following error message from ESS:
>>>>> Errors: Use C-c ` to find error.
>>>>> Symbol's function definition is void: with-temp-filebuffer
>>>>>
>>>>> and from ESS:
>>>>>
>>>>> Error in source("/home/rkrug/tmp/R.org") :
>>>>>   /home/rkrug/tmp/R.org:1:1: unexpected '^'
>>>>> 1: **
>>>>>
>>>>> it seems to submit the org file (the buffer is saved as R.org) to R.
>>>>>
>>>>> So buffer-file-name should actually be replaced with the name from the file
>>>>> name resulting from the tangling, in the easiest case (which would be fine
>>>>> with me) the org buffer name with .org replaced with .R.
>>>>> So I did the following (my firs elisp code!):
>>>>>
>>>>>   (add-hook 'org-babel-post-tangle-hook
>>>>>             (lambda () (ess-load-file (replace-regexp-in-string ".org" ".R"
>>>>> buffer-file-name))))
>>>>>
>>>>> and it is working - except that I still get the Symbol's function definition
>>>>> is void: with-temp-filebuffer , but it does not seem to do anything.
>>>>>
>>>>> Thanks a lot,
>>>>>
>>>>> Rainer
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>>
>>>>>>> I am sorry about all these questions, but emacs-lisp I have never used
>>>>>>> emacs-lisp (I should - and I will!)
>>>>>>>
>>>>>>
>>>>>> No problem at all, but be careful about learning too much lisp as you
>>>>>> may begin to grow dissatisfied with R :)
>>>>>>
>>>>>> Best -- Eric
>>>>>>
>>>>>>>
>>>>>>> Cheers and thanks for your patience,
>>>>>>>
>>>>>>> Rainer
>>>>>>>
>>>>>>>
>>>>>>>> Best -- Eric
>>>>>>>>
>>>>>>>> Rainer M Krug <r.m.krug@gmail.com> writes:
>>>>>>>>
>>>>>>>>> Hi
>>>>>>>>>
>>>>>>>>> I am using org-babel for literate programming in R and I am using the
>>>>>>>>> following approach to test the code:
>>>>>>>>>
>>>>>>>>> 1) tangle
>>>>>>>>> 2) refresh buffer containing the tangled code (I use auto-revert-mode
>>>>>> or
>>>>>>>>> global-auto-revert-mode for that)
>>>>>>>>> 3) load the tangled file into an existing R session via ESS R for
>>>>>>>> evaluation
>>>>>>>>>
>>>>>>>>> This involves switching between buffers in always the same sequence.
>>>>>>>>> Therefore my suggestion:
>>>>>>>>>
>>>>>>>>> would it be possible to have a tangle-and-evaluate-tangled-file
>>>>>>>> funcction,
>>>>>>>>> which is doing this automatically?
>>>>>>>>>
>>>>>>>>> C-c - 0 and org-babel-execute-buffer do not work in this case, as
>>>>>>>> functions
>>>>>>>>> are split over several code blocks in R.
>>>>>>>>>
>>>>>>>>> Cheers,
>>>>>>>>>
>>>>>>>>> Rainer
>>>>>>>>
>>>>>>
>>>

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkxD+t0ACgkQoYgNqgF2egpFNQCePK2KXJDdvyDW9qiHc1KZkbgK
qccAn1mb+mWNwVDy6z4kDsdysZ0/hKEN
=Wqkn
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [babel] feature request - tangle-and-evaluate-tangled-file
  2010-07-19  7:12                 ` Rainer M Krug
@ 2010-07-20  7:55                   ` Rainer M Krug
  2010-07-20 22:41                     ` Eric Schulte
  0 siblings, 1 reply; 17+ messages in thread
From: Rainer M Krug @ 2010-07-20  7:55 UTC (permalink / raw)
  To: Eric Schulte; +Cc: emacs-orgmode

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi Eric

I just discovered a "switching of buffers" when tangling the following
org file with the new org-babel-post-tangle-hook.

Otherwise it is working perfectly now.


#############################################
** tangle R and load
  :PROPERTIES:
  :tangle:   to-load.r
  :END:

evaluate this
#+begin_src emacs-lisp :results silent :tangle no
  (add-hook 'org-babel-post-tangle-hook
            (lambda () (ess-load-file (buffer-file-name))))
#+end_src

then tangle

#+begin_src R :comments yes
 x <- 8
#+end_src
t
#+begin_src R
 y <- 9
#+end_src

#+begin_src R :tangle file2.R
 y <- 9
#+end_src

A second buffer will open with the R session.
If you tangle a second time, these buffers are switching, i.e. where the
.org buffer was is the R buffer and vice-versa.
#############################################



- -- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation
Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Natural Sciences Building
Office Suite 2039
Stellenbosch University
Main Campus, Merriman Avenue
Stellenbosch
South Africa

Tel:        +33 - (0)9 53 10 27 44
Cell:       +27 - (0)8 39 47 90 42
Fax (SA):   +27 - (0)8 65 16 27 82
Fax (D) :   +49 - (0)3 21 21 25 22 44
Fax (FR):   +33 - (0)9 58 10 27 44
email:      Rainer@krugs.de

Skype:      RMkrug
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkxFVosACgkQoYgNqgF2egpctwCfVc6cKfOYQ0P6xhoZfM3LGpxc
ZZcAoIGUfXWtrm0n7EAVxT4v5/QbouI8
=UFZe
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [babel] feature request - tangle-and-evaluate-tangled-file
  2010-07-20  7:55                   ` Rainer M Krug
@ 2010-07-20 22:41                     ` Eric Schulte
  2010-07-21  7:23                       ` Rainer M Krug
  0 siblings, 1 reply; 17+ messages in thread
From: Eric Schulte @ 2010-07-20 22:41 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: emacs-orgmode

Hi Rainer,

I see the problem.  When ess-load-file is called an even number of
times, it results in flip-flopped buffers.  I'm not sure of a good
solution here, aside from possibly tangling to a 3rd file, e.g.

#+begin_src R :tangle /tmp/nothing.R
 y <- 9
#+end_src

to ensure a good final balance.  Alternately you could try wrapping the
ess-load-file call in save-window-excursion, which will inhibit it's
ability to change buffers -- and result in the *R* window taking over
your frame.

#+begin_src emacs-lisp :results silent :tangle no
  (add-hook 'org-babel-post-tangle-hook
            (lambda () (save-window-excursion (ess-load-file (buffer-file-name)))))
#+end_src

Sorry I can't be of more help.

Best -- Eric

Rainer M Krug <r.m.krug@gmail.com> writes:

> Hi Eric
>
> I just discovered a "switching of buffers" when tangling the following
> org file with the new org-babel-post-tangle-hook.
>
> Otherwise it is working perfectly now.
>
>
> #############################################
> ** tangle R and load
>   :PROPERTIES:
>   :tangle:   to-load.r
>   :END:
>
> evaluate this
> #+begin_src emacs-lisp :results silent :tangle no
>   (add-hook 'org-babel-post-tangle-hook
>             (lambda () (ess-load-file (buffer-file-name))))
> #+end_src
>
> then tangle
>
> #+begin_src R :comments yes
>  x <- 8
> #+end_src
> t
> #+begin_src R
>  y <- 9
> #+end_src
>
> #+begin_src R :tangle file2.R
>  y <- 9
> #+end_src
>
> A second buffer will open with the R session.
> If you tangle a second time, these buffers are switching, i.e. where the
> .org buffer was is the R buffer and vice-versa.
> #############################################

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [babel] feature request - tangle-and-evaluate-tangled-file
  2010-07-20 22:41                     ` Eric Schulte
@ 2010-07-21  7:23                       ` Rainer M Krug
  2010-07-21  7:49                         ` Rainer M Krug
  0 siblings, 1 reply; 17+ messages in thread
From: Rainer M Krug @ 2010-07-21  7:23 UTC (permalink / raw)
  To: Eric Schulte; +Cc: emacs-orgmode

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi Eric


On 21/07/2010 00:41, Eric Schulte wrote:
> Hi Rainer,
> 
> I see the problem.  When ess-load-file is called an even number of
> times, it results in flip-flopped buffers.  I'm not sure of a good

Thanks for the clarification.

> solution here, aside from possibly tangling to a 3rd file, e.g.
> 
> #+begin_src R :tangle /tmp/nothing.R
>  y <- 9
> #+end_src
> 
> to ensure a good final balance.  Alternately you could try wrapping the
> ess-load-file call in save-window-excursion, which will inhibit it's
> ability to change buffers -- and result in the *R* window taking over
> your frame.
> 
> #+begin_src emacs-lisp :results silent :tangle no
>   (add-hook 'org-babel-post-tangle-hook
>             (lambda () (save-window-excursion (ess-load-file (buffer-file-name)))))
> #+end_src
> 
> Sorry I can't be of more help.

No problem - now I know where the problem is sitting and I might be able
to work around it.

Just an idea: if I could put an if statement in the hook, so that only
when the buffer-file-name is a specific name, ess-load-file is called, I
assume that it should work?
I'll try that one out as well.

Cheers and thanks,

Rainer


> 
> Best -- Eric
> 
> Rainer M Krug <r.m.krug@gmail.com> writes:
> 
>> Hi Eric
>>
>> I just discovered a "switching of buffers" when tangling the following
>> org file with the new org-babel-post-tangle-hook.
>>
>> Otherwise it is working perfectly now.
>>
>>
>> #############################################
>> ** tangle R and load
>>   :PROPERTIES:
>>   :tangle:   to-load.r
>>   :END:
>>
>> evaluate this
>> #+begin_src emacs-lisp :results silent :tangle no
>>   (add-hook 'org-babel-post-tangle-hook
>>             (lambda () (ess-load-file (buffer-file-name))))
>> #+end_src
>>
>> then tangle
>>
>> #+begin_src R :comments yes
>>  x <- 8
>> #+end_src
>> t
>> #+begin_src R
>>  y <- 9
>> #+end_src
>>
>> #+begin_src R :tangle file2.R
>>  y <- 9
>> #+end_src
>>
>> A second buffer will open with the R session.
>> If you tangle a second time, these buffers are switching, i.e. where the
>> .org buffer was is the R buffer and vice-versa.
>> #############################################


- -- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation
Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Natural Sciences Building
Office Suite 2039
Stellenbosch University
Main Campus, Merriman Avenue
Stellenbosch
South Africa

Tel:        +33 - (0)9 53 10 27 44
Cell:       +27 - (0)8 39 47 90 42
Fax (SA):   +27 - (0)8 65 16 27 82
Fax (D) :   +49 - (0)3 21 21 25 22 44
Fax (FR):   +33 - (0)9 58 10 27 44
email:      Rainer@krugs.de

Skype:      RMkrug
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkxGoIUACgkQoYgNqgF2egq6/ACfWV1cv1tu1wlbsYH7oWubovwE
WBkAn3/8N1CSEsY5L8lvLwUxllUEPw+u
=RRhh
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [babel] feature request - tangle-and-evaluate-tangled-file
  2010-07-21  7:23                       ` Rainer M Krug
@ 2010-07-21  7:49                         ` Rainer M Krug
  2010-07-21  8:09                           ` Rainer M Krug
  0 siblings, 1 reply; 17+ messages in thread
From: Rainer M Krug @ 2010-07-21  7:49 UTC (permalink / raw)
  To: Eric Schulte; +Cc: emacs-orgmode

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 21/07/2010 09:23, Rainer M Krug wrote:
> Hi Eric
> 
> 
> On 21/07/2010 00:41, Eric Schulte wrote:
>> Hi Rainer,
> 
>> I see the problem.  When ess-load-file is called an even number of
>> times, it results in flip-flopped buffers.  I'm not sure of a good
> 
> Thanks for the clarification.
> 
>> solution here, aside from possibly tangling to a 3rd file, e.g.
> 
>> #+begin_src R :tangle /tmp/nothing.R
>>  y <- 9
>> #+end_src
> 
>> to ensure a good final balance.  Alternately you could try wrapping the
>> ess-load-file call in save-window-excursion, which will inhibit it's
>> ability to change buffers -- and result in the *R* window taking over
>> your frame.
> 
>> #+begin_src emacs-lisp :results silent :tangle no
>>   (add-hook 'org-babel-post-tangle-hook
>>             (lambda () (save-window-excursion (ess-load-file (buffer-file-name)))))
>> #+end_src
> 
>> Sorry I can't be of more help.
> 
> No problem - now I know where the problem is sitting and I might be able
> to work around it.
> 
> Just an idea: if I could put an if statement in the hook, so that only
> when the buffer-file-name is a specific name, ess-load-file is called, I
> assume that it should work?
> I'll try that one out as well.

It seems, that it has nothing to do with ess-load-file. I'll send you
the file I am working on directly, as it is quite longish.

Cheers,

Rainer


> 
> Cheers and thanks,
> 
> Rainer
> 
> 
> 
>> Best -- Eric
> 
>> Rainer M Krug <r.m.krug@gmail.com> writes:
> 
>>> Hi Eric
>>>
>>> I just discovered a "switching of buffers" when tangling the following
>>> org file with the new org-babel-post-tangle-hook.
>>>
>>> Otherwise it is working perfectly now.
>>>
>>>
>>> #############################################
>>> ** tangle R and load
>>>   :PROPERTIES:
>>>   :tangle:   to-load.r
>>>   :END:
>>>
>>> evaluate this
>>> #+begin_src emacs-lisp :results silent :tangle no
>>>   (add-hook 'org-babel-post-tangle-hook
>>>             (lambda () (ess-load-file (buffer-file-name))))
>>> #+end_src
>>>
>>> then tangle
>>>
>>> #+begin_src R :comments yes
>>>  x <- 8
>>> #+end_src
>>> t
>>> #+begin_src R
>>>  y <- 9
>>> #+end_src
>>>
>>> #+begin_src R :tangle file2.R
>>>  y <- 9
>>> #+end_src
>>>
>>> A second buffer will open with the R session.
>>> If you tangle a second time, these buffers are switching, i.e. where the
>>> .org buffer was is the R buffer and vice-versa.
>>> #############################################
> 
> 

- -- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation
Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Natural Sciences Building
Office Suite 2039
Stellenbosch University
Main Campus, Merriman Avenue
Stellenbosch
South Africa

Tel:        +33 - (0)9 53 10 27 44
Cell:       +27 - (0)8 39 47 90 42
Fax (SA):   +27 - (0)8 65 16 27 82
Fax (D) :   +49 - (0)3 21 21 25 22 44
Fax (FR):   +33 - (0)9 58 10 27 44
email:      Rainer@krugs.de

Skype:      RMkrug
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkxGppYACgkQoYgNqgF2egomWQCghaDjANwwLdY3UJZGTwvxMLAJ
sAkAoIgWdlbBAttshxWpJXDn8K7tQMgN
=8NKQ
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [babel] feature request - tangle-and-evaluate-tangled-file
  2010-07-21  7:49                         ` Rainer M Krug
@ 2010-07-21  8:09                           ` Rainer M Krug
  2010-07-21 16:50                             ` Eric Schulte
  0 siblings, 1 reply; 17+ messages in thread
From: Rainer M Krug @ 2010-07-21  8:09 UTC (permalink / raw)
  To: Eric Schulte; +Cc: emacs-orgmode

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 21/07/2010 09:49, Rainer M Krug wrote:
> On 21/07/2010 09:23, Rainer M Krug wrote:
>> Hi Eric
> 
> 
>> On 21/07/2010 00:41, Eric Schulte wrote:
>>> Hi Rainer,
> 
>>> I see the problem.  When ess-load-file is called an even number of
>>> times, it results in flip-flopped buffers.  I'm not sure of a good
> 
>> Thanks for the clarification.
> 
>>> solution here, aside from possibly tangling to a 3rd file, e.g.
> 
>>> #+begin_src R :tangle /tmp/nothing.R
>>>  y <- 9
>>> #+end_src
> 
>>> to ensure a good final balance.  Alternately you could try wrapping the
>>> ess-load-file call in save-window-excursion, which will inhibit it's
>>> ability to change buffers -- and result in the *R* window taking over
>>> your frame.
> 
>>> #+begin_src emacs-lisp :results silent :tangle no
>>>   (add-hook 'org-babel-post-tangle-hook
>>>             (lambda () (save-window-excursion (ess-load-file (buffer-file-name)))))
>>> #+end_src
> 
>>> Sorry I can't be of more help.
> 
>> No problem - now I know where the problem is sitting and I might be able
>> to work around it.
> 
>> Just an idea: if I could put an if statement in the hook, so that only
>> when the buffer-file-name is a specific name, ess-load-file is called, I
>> assume that it should work?
>> I'll try that one out as well.
> 
> It seems, that it has nothing to do with ess-load-file. I'll send you
> the file I am working on directly, as it is quite longish.

I managed to reproduce the problem with the following org file:


########################################################
** tangle R and load
  :PROPERTIES:
  :tangle:   to-load.r
  :END:

evaluate this
#+begin_src emacs-lisp :results silent :tangle no
  (add-hook 'org-babel-post-tangle-hook
            (lambda () (message "I'm in %s" (buffer-file-name))))
#+end_src

then tangle

#+begin_src R :comments yes
 x <- 8
#+end_src

#+begin_src R
 y <- 9
#+end_src

#+begin_src R :tangle file2.R
 y <- 9
#+end_src
########################################################

What I did:

1) Opened a file containing the text above
2) evaluated the lisp code to set the hook
3) C-x 2 to create a second buffer which shows the same file
4) go to the top buffer and C-c C-v t to tangle
- -> The top window is switching to a different buffer
5) reproducible here.

6) If I open to-load.r but make sure that both windows are displaying
the .org buffer, it doesn't happen - only that the second buffer is
switching to to-load.r

7) if to-load.r is not visited by a buffer but file2.R is, the switching
is there again.

Hope this helps,

Rainer


> 
> Cheers,
> 
> Rainer
> 
> 
> 
>> Cheers and thanks,
> 
>> Rainer
> 
> 
> 
>>> Best -- Eric
> 
>>> Rainer M Krug <r.m.krug@gmail.com> writes:
> 
>>>> Hi Eric
>>>>
>>>> I just discovered a "switching of buffers" when tangling the following
>>>> org file with the new org-babel-post-tangle-hook.
>>>>
>>>> Otherwise it is working perfectly now.
>>>>
>>>>
>>>> #############################################
>>>> ** tangle R and load
>>>>   :PROPERTIES:
>>>>   :tangle:   to-load.r
>>>>   :END:
>>>>
>>>> evaluate this
>>>> #+begin_src emacs-lisp :results silent :tangle no
>>>>   (add-hook 'org-babel-post-tangle-hook
>>>>             (lambda () (ess-load-file (buffer-file-name))))
>>>> #+end_src
>>>>
>>>> then tangle
>>>>
>>>> #+begin_src R :comments yes
>>>>  x <- 8
>>>> #+end_src
>>>> t
>>>> #+begin_src R
>>>>  y <- 9
>>>> #+end_src
>>>>
>>>> #+begin_src R :tangle file2.R
>>>>  y <- 9
>>>> #+end_src
>>>>
>>>> A second buffer will open with the R session.
>>>> If you tangle a second time, these buffers are switching, i.e. where the
>>>> .org buffer was is the R buffer and vice-versa.
>>>> #############################################
> 
> 
> 

- -- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation
Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Natural Sciences Building
Office Suite 2039
Stellenbosch University
Main Campus, Merriman Avenue
Stellenbosch
South Africa

Tel:        +33 - (0)9 53 10 27 44
Cell:       +27 - (0)8 39 47 90 42
Fax (SA):   +27 - (0)8 65 16 27 82
Fax (D) :   +49 - (0)3 21 21 25 22 44
Fax (FR):   +33 - (0)9 58 10 27 44
email:      Rainer@krugs.de

Skype:      RMkrug
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkxGqzUACgkQoYgNqgF2ego8igCggpPRsoeA6x9PzY+E3bMaG8lg
gK0AnRn8nl1nj7vcWyO05jHgtUF3kMML
=HsUM
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [babel] feature request - tangle-and-evaluate-tangled-file
  2010-07-21  8:09                           ` Rainer M Krug
@ 2010-07-21 16:50                             ` Eric Schulte
  2010-07-22  6:30                               ` Rainer M Krug
  0 siblings, 1 reply; 17+ messages in thread
From: Eric Schulte @ 2010-07-21 16:50 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: emacs-orgmode

Hi Rainer,

Thanks for your patience and persistence.  I've pushed up what I believe
should be a fix for this excess buffer movement.  There still may be
some issues with things like ess-load-file, but those can now optionally
be squashed by wrapping your hook functions with `save-window-excursion'
as shown.

#+begin_src emacs-lisp :results silent :tangle no
  (add-hook 'org-babel-post-tangle-hook
            (lambda () (save-window-excursion
                        (ess-load-file (buffer-file-name)))))
#+end_src

Best -- Eric

Rainer M Krug <r.m.krug@gmail.com> writes:

> On 21/07/2010 09:49, Rainer M Krug wrote:
>> On 21/07/2010 09:23, Rainer M Krug wrote:
>>> Hi Eric
>> 
>> 
>>> On 21/07/2010 00:41, Eric Schulte wrote:
>>>> Hi Rainer,
>> 
>>>> I see the problem.  When ess-load-file is called an even number of
>>>> times, it results in flip-flopped buffers.  I'm not sure of a good
>> 
>>> Thanks for the clarification.
>> 
>>>> solution here, aside from possibly tangling to a 3rd file, e.g.
>> 
>>>> #+begin_src R :tangle /tmp/nothing.R
>>>>  y <- 9
>>>> #+end_src
>> 
>>>> to ensure a good final balance.  Alternately you could try wrapping the
>>>> ess-load-file call in save-window-excursion, which will inhibit it's
>>>> ability to change buffers -- and result in the *R* window taking over
>>>> your frame.
>> 
>>>> #+begin_src emacs-lisp :results silent :tangle no
>>>>   (add-hook 'org-babel-post-tangle-hook
>>>>             (lambda () (save-window-excursion (ess-load-file (buffer-file-name)))))
>>>> #+end_src
>> 
>>>> Sorry I can't be of more help.
>> 
>>> No problem - now I know where the problem is sitting and I might be able
>>> to work around it.
>> 
>>> Just an idea: if I could put an if statement in the hook, so that only
>>> when the buffer-file-name is a specific name, ess-load-file is called, I
>>> assume that it should work?
>>> I'll try that one out as well.
>> 
>> It seems, that it has nothing to do with ess-load-file. I'll send you
>> the file I am working on directly, as it is quite longish.
>
> I managed to reproduce the problem with the following org file:
>
>
> ########################################################
> ** tangle R and load
>   :PROPERTIES:
>   :tangle:   to-load.r
>   :END:
>
> evaluate this
> #+begin_src emacs-lisp :results silent :tangle no
>   (add-hook 'org-babel-post-tangle-hook
>             (lambda () (message "I'm in %s" (buffer-file-name))))
> #+end_src
>
> then tangle
>
> #+begin_src R :comments yes
>  x <- 8
> #+end_src
>
> #+begin_src R
>  y <- 9
> #+end_src
>
> #+begin_src R :tangle file2.R
>  y <- 9
> #+end_src
> ########################################################
>
> What I did:
>
> 1) Opened a file containing the text above
> 2) evaluated the lisp code to set the hook
> 3) C-x 2 to create a second buffer which shows the same file
> 4) go to the top buffer and C-c C-v t to tangle
> -> The top window is switching to a different buffer
> 5) reproducible here.
>
> 6) If I open to-load.r but make sure that both windows are displaying
> the .org buffer, it doesn't happen - only that the second buffer is
> switching to to-load.r
>
> 7) if to-load.r is not visited by a buffer but file2.R is, the switching
> is there again.
>
> Hope this helps,
>
> Rainer
>
>
>> 
>> Cheers,
>> 
>> Rainer
>> 
>> 
>> 
>>> Cheers and thanks,
>> 
>>> Rainer
>> 
>> 
>> 
>>>> Best -- Eric
>> 
>>>> Rainer M Krug <r.m.krug@gmail.com> writes:
>> 
>>>>> Hi Eric
>>>>>
>>>>> I just discovered a "switching of buffers" when tangling the following
>>>>> org file with the new org-babel-post-tangle-hook.
>>>>>
>>>>> Otherwise it is working perfectly now.
>>>>>
>>>>>
>>>>> #############################################
>>>>> ** tangle R and load
>>>>>   :PROPERTIES:
>>>>>   :tangle:   to-load.r
>>>>>   :END:
>>>>>
>>>>> evaluate this
>>>>> #+begin_src emacs-lisp :results silent :tangle no
>>>>>   (add-hook 'org-babel-post-tangle-hook
>>>>>             (lambda () (ess-load-file (buffer-file-name))))
>>>>> #+end_src
>>>>>
>>>>> then tangle
>>>>>
>>>>> #+begin_src R :comments yes
>>>>>  x <- 8
>>>>> #+end_src
>>>>> t
>>>>> #+begin_src R
>>>>>  y <- 9
>>>>> #+end_src
>>>>>
>>>>> #+begin_src R :tangle file2.R
>>>>>  y <- 9
>>>>> #+end_src
>>>>>
>>>>> A second buffer will open with the R session.
>>>>> If you tangle a second time, these buffers are switching, i.e. where the
>>>>> .org buffer was is the R buffer and vice-versa.
>>>>> #############################################
>> 
>> 
>> 

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [babel] feature request - tangle-and-evaluate-tangled-file
  2010-07-21 16:50                             ` Eric Schulte
@ 2010-07-22  6:30                               ` Rainer M Krug
  0 siblings, 0 replies; 17+ messages in thread
From: Rainer M Krug @ 2010-07-22  6:30 UTC (permalink / raw)
  To: Eric Schulte; +Cc: emacs-orgmode, Rainer M Krug

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi Eric

On 21/07/2010 18:50, Eric Schulte wrote:
> Hi Rainer,
> 
> Thanks for your patience and persistence.  I've pushed up what I believe
> should be a fix for this excess buffer movement.  There still may be
> some issues with things like ess-load-file, but those can now optionally
> be squashed by wrapping your hook functions with `save-window-excursion'
> as shown.
> 
> #+begin_src emacs-lisp :results silent :tangle no
>   (add-hook 'org-babel-post-tangle-hook
>             (lambda () (save-window-excursion
>                         (ess-load-file (buffer-file-name)))))
> #+end_src

Thanks a lot - I'll report back if I have still problems with it.

That hook really makes my life much easier.

Cheers,

Rainer

> 
> Best -- Eric
> 
> Rainer M Krug <r.m.krug@gmail.com> writes:
> 
>> On 21/07/2010 09:49, Rainer M Krug wrote:
>>> On 21/07/2010 09:23, Rainer M Krug wrote:
>>>> Hi Eric
>>>
>>>
>>>> On 21/07/2010 00:41, Eric Schulte wrote:
>>>>> Hi Rainer,
>>>
>>>>> I see the problem.  When ess-load-file is called an even number of
>>>>> times, it results in flip-flopped buffers.  I'm not sure of a good
>>>
>>>> Thanks for the clarification.
>>>
>>>>> solution here, aside from possibly tangling to a 3rd file, e.g.
>>>
>>>>> #+begin_src R :tangle /tmp/nothing.R
>>>>>  y <- 9
>>>>> #+end_src
>>>
>>>>> to ensure a good final balance.  Alternately you could try wrapping the
>>>>> ess-load-file call in save-window-excursion, which will inhibit it's
>>>>> ability to change buffers -- and result in the *R* window taking over
>>>>> your frame.
>>>
>>>>> #+begin_src emacs-lisp :results silent :tangle no
>>>>>   (add-hook 'org-babel-post-tangle-hook
>>>>>             (lambda () (save-window-excursion (ess-load-file (buffer-file-name)))))
>>>>> #+end_src
>>>
>>>>> Sorry I can't be of more help.
>>>
>>>> No problem - now I know where the problem is sitting and I might be able
>>>> to work around it.
>>>
>>>> Just an idea: if I could put an if statement in the hook, so that only
>>>> when the buffer-file-name is a specific name, ess-load-file is called, I
>>>> assume that it should work?
>>>> I'll try that one out as well.
>>>
>>> It seems, that it has nothing to do with ess-load-file. I'll send you
>>> the file I am working on directly, as it is quite longish.
>>
>> I managed to reproduce the problem with the following org file:
>>
>>
>> ########################################################
>> ** tangle R and load
>>   :PROPERTIES:
>>   :tangle:   to-load.r
>>   :END:
>>
>> evaluate this
>> #+begin_src emacs-lisp :results silent :tangle no
>>   (add-hook 'org-babel-post-tangle-hook
>>             (lambda () (message "I'm in %s" (buffer-file-name))))
>> #+end_src
>>
>> then tangle
>>
>> #+begin_src R :comments yes
>>  x <- 8
>> #+end_src
>>
>> #+begin_src R
>>  y <- 9
>> #+end_src
>>
>> #+begin_src R :tangle file2.R
>>  y <- 9
>> #+end_src
>> ########################################################
>>
>> What I did:
>>
>> 1) Opened a file containing the text above
>> 2) evaluated the lisp code to set the hook
>> 3) C-x 2 to create a second buffer which shows the same file
>> 4) go to the top buffer and C-c C-v t to tangle
>> -> The top window is switching to a different buffer
>> 5) reproducible here.
>>
>> 6) If I open to-load.r but make sure that both windows are displaying
>> the .org buffer, it doesn't happen - only that the second buffer is
>> switching to to-load.r
>>
>> 7) if to-load.r is not visited by a buffer but file2.R is, the switching
>> is there again.
>>
>> Hope this helps,
>>
>> Rainer
>>
>>
>>>
>>> Cheers,
>>>
>>> Rainer
>>>
>>>
>>>
>>>> Cheers and thanks,
>>>
>>>> Rainer
>>>
>>>
>>>
>>>>> Best -- Eric
>>>
>>>>> Rainer M Krug <r.m.krug@gmail.com> writes:
>>>
>>>>>> Hi Eric
>>>>>>
>>>>>> I just discovered a "switching of buffers" when tangling the following
>>>>>> org file with the new org-babel-post-tangle-hook.
>>>>>>
>>>>>> Otherwise it is working perfectly now.
>>>>>>
>>>>>>
>>>>>> #############################################
>>>>>> ** tangle R and load
>>>>>>   :PROPERTIES:
>>>>>>   :tangle:   to-load.r
>>>>>>   :END:
>>>>>>
>>>>>> evaluate this
>>>>>> #+begin_src emacs-lisp :results silent :tangle no
>>>>>>   (add-hook 'org-babel-post-tangle-hook
>>>>>>             (lambda () (ess-load-file (buffer-file-name))))
>>>>>> #+end_src
>>>>>>
>>>>>> then tangle
>>>>>>
>>>>>> #+begin_src R :comments yes
>>>>>>  x <- 8
>>>>>> #+end_src
>>>>>> t
>>>>>> #+begin_src R
>>>>>>  y <- 9
>>>>>> #+end_src
>>>>>>
>>>>>> #+begin_src R :tangle file2.R
>>>>>>  y <- 9
>>>>>> #+end_src
>>>>>>
>>>>>> A second buffer will open with the R session.
>>>>>> If you tangle a second time, these buffers are switching, i.e. where the
>>>>>> .org buffer was is the R buffer and vice-versa.
>>>>>> #############################################
>>>
>>>
>>>


- -- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation
Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Natural Sciences Building
Office Suite 2039
Stellenbosch University
Main Campus, Merriman Avenue
Stellenbosch
South Africa

Tel:        +33 - (0)9 53 10 27 44
Cell:       +27 - (0)8 39 47 90 42
Fax (SA):   +27 - (0)8 65 16 27 82
Fax (D) :   +49 - (0)3 21 21 25 22 44
Fax (FR):   +33 - (0)9 58 10 27 44
email:      Rainer@krugs.de

Skype:      RMkrug
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkxH5XcACgkQoYgNqgF2egqEIQCdGs6S0J9McYwLOu5gecr8/QRu
FJkAn2zfZ+LWvDynnz8OrCKQ5loRMlsk
=U9Zu
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2010-07-22  6:30 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-07-06  7:55 [babel] feature request - tangle-and-evaluate-tangled-file Rainer M Krug
2010-07-08 19:03 ` Eric Schulte
2010-07-09  7:47   ` Rainer M Krug
2010-07-09 15:44     ` Eric Schulte
2010-07-12  7:46       ` Rainer M Krug
2010-07-12 17:51         ` Eric Schulte
2010-07-13  8:14           ` Dr Rainer M Krug
2010-07-15 12:37             ` Rainer M Krug
2010-07-16 22:58               ` Eric Schulte
2010-07-19  7:12                 ` Rainer M Krug
2010-07-20  7:55                   ` Rainer M Krug
2010-07-20 22:41                     ` Eric Schulte
2010-07-21  7:23                       ` Rainer M Krug
2010-07-21  7:49                         ` Rainer M Krug
2010-07-21  8:09                           ` Rainer M Krug
2010-07-21 16:50                             ` Eric Schulte
2010-07-22  6:30                               ` Rainer M Krug

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).