From: Darlan Cavalcante Moreira <darcamo@gmail.com>
To: Rainer M Krug <Rainer@krugs.de>
Cc: Vitalie Spinu <spinuvit@gmail.com>,
emacs-orgmode <emacs-orgmode@gnu.org>,
Eric Schulte <schulte.eric@gmail.com>
Subject: Re: Automatically adding local variables to tangled file
Date: Wed, 05 Jun 2013 11:32:22 -0300 [thread overview]
Message-ID: <51af4bfd.0c95ec0a.2372.097e@mx.google.com> (raw)
In-Reply-To: <878v2omz5g.fsf@krugs.de>
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: Rainer@krugs.de
>
> Skype: RMkrug
next prev parent reply other threads:[~2013-06-05 14:32 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-05 14:04 Automatically adding local variables to tangled file Rainer M Krug
2013-06-05 14:32 ` Darlan Cavalcante Moreira [this message]
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=51af4bfd.0c95ec0a.2372.097e@mx.google.com \
--to=darcamo@gmail.com \
--cc=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).