From: Carsten Dominik <carsten.dominik@gmail.com> To: Dan Davison <davison@stats.ox.ac.uk> Cc: emacs-orgmode@gnu.org Subject: Re: cannot edit two source code examples simultaneously Date: Mon, 18 May 2009 12:48:30 +0200 [thread overview] Message-ID: <17D94F21-E705-4EBA-BAB7-237524A9E36B@gmail.com> (raw) In-Reply-To: <87hbzjmyfy.fsf@stats.ox.ac.uk> 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 <carsten.dominik@gmail.com> 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
next prev parent reply other threads:[~2009-05-18 10:48 UTC|newest] Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top 2009-05-15 5:38 Hsiu-Khuern Tang 2009-05-16 17:39 ` Carsten Dominik 2009-05-17 17:28 ` Dan Davison 2009-05-18 5:38 ` Taru Karttunen 2009-05-18 6:07 ` Dan Davison 2009-05-18 6:27 ` Taru Karttunen 2009-05-18 10:12 ` Carsten Dominik 2009-05-18 15:23 ` Carsten Dominik 2009-05-18 17:40 ` Dan Davison 2009-05-18 10:48 ` Carsten Dominik [this message] 2009-05-19 0:32 ` Hsiu-Khuern Tang
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=17D94F21-E705-4EBA-BAB7-237524A9E36B@gmail.com \ --to=carsten.dominik@gmail.com \ --cc=davison@stats.ox.ac.uk \ --cc=emacs-orgmode@gnu.org \ --subject='Re: cannot edit two source code examples simultaneously' \ /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
Code repositories for project(s) associated with this 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).