emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Automatically adding local variables to tangled file


From: Darlan Cavalcante Moreira
Subject: Re: [O] Automatically adding local variables to tangled file
Date: Wed, 05 Jun 2013 11:32:22 -0300
User-agent: Wanderlust/2.15.9 (Almost Unreal) Emacs/24.3 Mule/6.0 (HANACHIRUSATO)

It's a good idea to have useful information in the tangled file that can
help these functions. But since org-mode can already tangle with comments
containing useful information, isn't this enough to detect that the file
is a tangled file?

On the other hand, a local variable in the tangled files to set the buffer
to read-only could be very useful to avoid the mistake of editing the
tangled files directly.

--
Darlan

At Wed, 05 Jun 2013 16:04:59 +0200,
Rainer M Krug wrote:
> 
> Hi 
> 
> I am trying to improve my workflow of literate programming of R in
> org. My org file is tangled into many R files and I am using ESS to
> debug.
> 
> If an error occurs, I can jump via ESS to the .R file, and in a second
> step via calling org-babel-tangle-jump-to-org into the org file where
> the buggy line sits.
> 
> 
> Now this is error prone, as one (or is it only me?) is easily tempted to
> edit the R file which is reverted after the next tangle.
> 
> So I was thinking: what about calling org-babel-tangle-jump-to-org
> directly from ESS. Vitalie Spinu looked into this option, and came up with the
> following suggestion:
> 
> If the tangled .R file contains a local variable, one could easily
> identify that it is a tangled file and call org-babel-tangle-jump-to-org
> and would be at the line causing the error.
> 
> Therefore my question:
> 
> Would it be possible and reasonable, to add a local variable to each
> tangled file which identifies the file as an file tangled from an org
> mode file?
> 
> He added the following to his config file to test the approach:
> 
> ,----
> |  (defvar org-babel-tangled-file nil
> |      "If non-nill, current file was tangled with org-babel-tangle")
> |    (put 'org-babel-tangled-file 'safe-local-variable 'booleanp)
> |    
> |    (defun org-babel-mark-file-as-tangled ()
> |      (add-file-local-variable 'org-babel-tangled-file t)
> |      (basic-save-buffer))
> | 
> |    (add-hook 'org-babel-post-tangle-hook 'org-babel-mark-file-as-tangled)
> `----
> 
> and he also already added automatic redirection to the org mode file via
> org-babel-tangle-jump-to-org to ESS on SVN.
> 
> To keep backwards compatibility, a variable
> org-babel-tangle-add-tangled-file-variable could be introduced, which
> can have the following values:
> 
> - nil :: (default) do not add anything
> - t :: org-babel-tangled-file is added as t to the tangled files
> - "name" :: org-babel-tangled-file is set to the org file name
> - "path" :: org-babel-tangled-file is set to the path of the org file
> - "all" :: org-babel-tangled-file is set to the full name including path
>            of the org file
> 
> I can even imagine many more possibilities for the use of local file
> variables to store meta data in the tangled file (VCS info comes to
> mind, which would enable one to even go back to older revisions based on
> the tangled code rather easily).
> 
> Cheers,
> 
> Rainer
> 
> -- 
> Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, 
> UCT), Dipl. Phys. (Germany)
> 
> Centre of Excellence for Invasion Biology
> Stellenbosch University
> South Africa
> 
> Tel :       +33 - (0)9 53 10 27 44
> Cell:       +33 - (0)6 85 62 59 98
> Fax :       +33 - (0)9 58 10 27 44
> 
> Fax (D):    +49 - (0)3 21 21 25 22 44
> 
> email:      address@hidden
> 
> Skype:      RMkrug



reply via email to

[Prev in Thread] Current Thread [Next in Thread]