emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Rainer M Krug <Rainer@krugs.de>
To: Eric Schulte <schulte.eric@gmail.com>
Cc: Vitalie Spinu <spinuvit@gmail.com>,
	emacs-orgmode <emacs-orgmode@gnu.org>
Subject: Automatically adding local variables to tangled file
Date: Wed, 05 Jun 2013 16:04:59 +0200	[thread overview]
Message-ID: <878v2omz5g.fsf@krugs.de> (raw)

[-- Attachment #1: Type: text/plain, Size: 2768 bytes --]

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:      Rainer@krugs.de

Skype:      RMkrug

[-- Attachment #2: Type: application/pgp-signature, Size: 489 bytes --]

             reply	other threads:[~2013-06-05 14:05 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-05 14:04 Rainer M Krug [this message]
2013-06-05 14:32 ` Automatically adding local variables to tangled file Darlan Cavalcante Moreira
2013-06-05 15:41   ` Vitalie Spinu
2013-06-05 16:15   ` Rainer M Krug
2013-06-06  7:53   ` Sebastien Vauban
2013-06-06 16:01   ` Eric Schulte
2013-06-07  7:57     ` Rainer M Krug
2013-06-07  8:32       ` Rainer M Krug
2013-06-07 10:57         ` [PATCH] Don't ask "File changed on disk" in org-babel-post-tangle-hook Vitalie Spinu
2013-06-07 13:23           ` Eric Schulte
2013-06-07 13:47             ` Rainer M Krug
2013-06-08 18:23       ` Automatically adding local variables to tangled file Eric Schulte
2013-06-08 20:59         ` Achim Gratz
2013-06-08 21:17           ` Eric Schulte
2013-06-10  8:02         ` Rainer M Krug
2013-06-10 10:12           ` Problem in tangle-mode -- WAS: " Rainer M Krug
2013-06-10 15:58             ` Eric Schulte
2013-06-11  7:25               ` BUG - Problem in tangle-mode Rainer M Krug
2013-06-11 13:09                 ` Eric Schulte
2013-06-11 18:25                   ` Rainer M Krug
2013-06-12 15:15                     ` Rainer M Krug
2013-06-12 21:42                       ` Eric Schulte
2013-06-13  7:28                         ` Rainer M Krug
2013-06-10 11:32     ` SOLVED: Automatically adding local variables to tangled file Rainer M Krug
2013-06-05 17:10 ` Thorsten Jolitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=878v2omz5g.fsf@krugs.de \
    --to=rainer@krugs.de \
    --cc=emacs-orgmode@gnu.org \
    --cc=schulte.eric@gmail.com \
    --cc=spinuvit@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).