On Wednesday, June 5, 2013, Darlan Cavalcante Moreira wrote: > > 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?
Yes and no. In regards to jumping to the source code, it would necessitate a searching in the text, but it would be much easier to have it in a file local variable. This is more standardized then a comment. > > 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. My reasoning - and I would make all tangled R files read only. Cheers, Rainer > > -- > 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: rai...@krugs.de <javascript:;> > > > > Skype: RMkrug > -- 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 (F): +33 - (0)9 58 10 27 44 Fax (D): +49 - (0)3 21 21 25 22 44 email: rai...@krugs.de Skype: RMkrug