From: Jambunathan K <kjambunathan@gmail.com>
To: Dan Davison <davison@stats.ox.ac.uk>
Cc: emacs-orgmode@gnu.org
Subject: Re: [BABEL] [PROPOSAL] Seemless editing of Babel Blocks
Date: Sat, 04 Sep 2010 14:28:39 +0530 [thread overview]
Message-ID: <81k4n13mww.fsf@gmail.com> (raw)
In-Reply-To: <878w3j1zos.fsf@stats.ox.ac.uk> (Dan Davison's message of "Thu, 02 Sep 2010 16:41:07 -0700")
>> Offer a command say 'org-to-org-src-view' which when invoked
>> switches the org-mode buffer to target language mode and comments
>> out all the non-src blocks.
>>
>> Offer a reverse command 'org-src-to-org-view' that switches the
>> buffer to org-mode and uncomments the non-src blocks.
Dan> My vote is that this proposal is too drastic.
What I am proposing is tangling albeit in a loose sense of the word.
Would it sound as drastic if one were to divorce the consideration of
how often this operation gets performed - one time only or very often -
during the lifetime of the org file.
How about providing user-accessible tapping points within
'org-babel-map-src-blocks' (or a variation thereof) that would enable me
have a custom command in my .emacs.
For the sake of record, my suggestion is very closely related to what is
discussed here.
http://eschulte.github.com/babel-dev/PROPOSED-tangle-entire-org-mode-file-in-comments.html
Thanks,
Jambunathan K.
> 5 Gross code
> ~~~~~~~~~~~~~
>
>
> diff --git a/lisp/ob.el b/lisp/ob.el
> index b5b9d8f..613139e 100644
> --- a/lisp/ob.el
> +++ b/lisp/ob.el
> @@ -662,19 +662,52 @@ portions of results lines."
> (lambda () (org-add-hook 'change-major-mode-hook
> 'org-babel-show-result-all 'append 'local)))
>
> -(defmacro org-babel-map-src-blocks (file &rest body)
> +
> +(defun org-to-org-src-view ()
> + ""
> + (interactive)
> +
> + (emacs-lisp-mode)
> + (org-babel-map-src-blocks (buffer-file-name)
> + (
> + (comment-region beg-org end-org)
> + )
> + )
> + )
> +
> +(defmacro org-babel-map-src-blocks (file body1 &rest body)
> "Evaluate BODY forms on each source-block in FILE."
> (declare (indent 1))
> `(let ((visited-p (get-file-buffer (expand-file-name ,file)))
> - to-be-removed)
> + to-be-removed
> + (beg-org (make-marker))
> + (end-org (make-marker))
> + (beg-babel (make-marker))
> + (end-babel (make-marker))
> + )
> +
> (save-window-excursion
> (find-file ,file)
> (setq to-be-removed (current-buffer))
> +
> + (move-marker end-babel (point-min))
> (goto-char (point-min))
> +
> (while (re-search-forward org-babel-src-block-regexp nil t)
> - (goto-char (match-beginning 0))
> - (save-match-data ,@body)
> - (goto-char (match-end 0))))
> +
> + (move-marker beg-org end-babel)
> + (move-marker end-org (match-beginning 0))
> + (move-marker beg-babel (match-beginning 0))
> + (move-marker end-babel (match-end 0))
> +
> + (goto-char beg-org)
> + ,@body1
> +
> + (goto-char beg-babel)
> + ,@body
> +
> +
> + (goto-char end-babel)))
> (unless visited-p
> (kill-buffer to-be-removed))))
next prev parent reply other threads:[~2010-09-04 8:58 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-20 12:10 [BABEL] Seemless editing of Babel Blocks Jambunathan K
2010-07-20 22:58 ` Eric Schulte
2010-08-16 8:38 ` Jambunathan K
2010-08-16 9:20 ` [BABEL] [PROPOSAL] " Jambunathan K
2010-09-02 23:41 ` Dan Davison
2010-09-02 23:50 ` Erik Iverson
2010-09-03 19:08 ` Tom Short
2010-09-03 20:45 ` Dan Davison
2010-09-04 8:58 ` Jambunathan K [this message]
2010-09-04 15:04 ` Eric Schulte
2010-09-05 9:55 ` Jambunathan K
2010-09-05 15:58 ` Dan Davison
2010-09-05 19:12 ` Eric Schulte
2010-09-05 20:22 ` Eric Schulte
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=81k4n13mww.fsf@gmail.com \
--to=kjambunathan@gmail.com \
--cc=davison@stats.ox.ac.uk \
--cc=emacs-orgmode@gnu.org \
/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).