From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: Re: cannot edit two source code examples simultaneously Date: Mon, 18 May 2009 12:48:30 +0200 Message-ID: <17D94F21-E705-4EBA-BAB7-237524A9E36B@gmail.com> References: <20090515053802.GE13183@hplhtang1> <4FBDF50D-609C-4816-952C-54A83854F528@gmail.com> <87hbzjmyfy.fsf@stats.ox.ac.uk> Mime-Version: 1.0 (Apple Message framework v930.3) Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1M60Od-0005Tw-Ma for emacs-orgmode@gnu.org; Mon, 18 May 2009 06:48:39 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1M60OY-0005Tg-Mf for emacs-orgmode@gnu.org; Mon, 18 May 2009 06:48:38 -0400 Received: from [199.232.76.173] (port=52815 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1M60OY-0005Td-Gs for emacs-orgmode@gnu.org; Mon, 18 May 2009 06:48:34 -0400 Received: from mail-ew0-f162.google.com ([209.85.219.162]:36712) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1M60OX-0004DF-V7 for emacs-orgmode@gnu.org; Mon, 18 May 2009 06:48:34 -0400 Received: by ewy6 with SMTP id 6so4046308ewy.42 for ; Mon, 18 May 2009 03:48:33 -0700 (PDT) In-Reply-To: <87hbzjmyfy.fsf@stats.ox.ac.uk> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Dan Davison Cc: emacs-orgmode@gnu.org On May 17, 2009, at 7:28 PM, Dan Davison wrote: > Following on from this, I'd like to suggest that, while it is being > edited, the source code is removed from the org buffer, to avoid > concurrency problems. I just had a go at that -- the patch below > replaces the source code with a work-in-progress message that contains > a link to the edit buffer. > > That brought up a couple of related questions: > > 1. Is there a dedicated format for an org-link to an emacs buffer? (I > used an elisp: link) > > 2. Now I'm going to be confusing. Despite me using a link inside a > code > block in that, I had previously wondered about how appropriate it is > that org conducts its special formatting operations inside source > code blocks. It is totally inappropriate, but I have not yet figured out how to fix this. - Carsten > E.g. in R code, x[[3]] means the 3rd element of list > x. But that gets magically formatted by org as a link, which looks > weird. Do we think that the current behaviour is desirable? If not, > should org be prevented from formatting stuff in literal blocks, or > is it too inefficient or messy to implement that? (If it were > changed, the work-in-progress message could go outside the block.) > > Dan > > diff --git a/lisp/org.el b/lisp/org.el > index b9df6ec..25973be 100644 > --- a/lisp/org.el > +++ b/lisp/org.el > @@ -6394,6 +6394,7 @@ the edited version." > nil > (setq beg (move-marker beg (nth 0 info)) > end (move-marker end (nth 1 info)) > + org-buffer (buffer-name) > code (buffer-substring-no-properties beg end) > lang (nth 2 info) > single (nth 3 info) > @@ -6409,6 +6410,14 @@ the edited version." > (and buffer (kill-buffer buffer)) > (switch-to-buffer (generate-new-buffer "*Org Edit Src Example*")) > (insert code) > + (save-excursion > + (let ((src-buffer (buffer-name))) > + (set-buffer org-buffer) > + (goto-char beg) > + (delete-region beg end) > + (insert (format "<<%s [[elisp:(switch-to-buffer \"%s\")][%s]]>>" > + "Contents are currently being edited" src-buffer "here")) > + (setq end (move-marker end (point))))) > (remove-text-properties (point-min) (point-max) > '(display nil invisible nil intangible nil)) > (let ((org-inhibit-startup t)) > > > Carsten Dominik writes: > >> Hi Hsiu-Khuern, >> >> On May 15, 2009, at 7:38 AM, Hsiu-Khuern Tang wrote: >> >> Hi Carsten, >> >> You recently changed org-edit-src-code to use a separate buffer >> instead of an >> indirect buffer. One side effect of this is that I can no >> longer edit several >> code examples at the same time: opening the second buffer will >> silently discard >> any changes made in the first. I would prefer this behavior: >> when opening the >> second edit source buffer, write any changes in the first buffer >> to the >> originating Org buffer (but don't save it, of course). >> >> Another approach is to use different buffer names. >> >> I think the second idea is better, provided that a mechanism >> ensures that not two editing instances of the same region >> are created. This is what I have implemented now. Thank >> you for your report. >> >> - Carsten >> >> _______________________________________________ >> Emacs-orgmode mailing list >> Remember: use `Reply All' to send replies to the list. >> Emacs-orgmode@gnu.org >> http://lists.gnu.org/mailman/listinfo/emacs-orgmode