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 cannot edit two source code examples simultaneously 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 \
/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).