From: phillip.lord@newcastle.ac.uk (Phillip Lord)
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: help-gnu-emacs@gnu.org
Subject: Re: indirect-buffers and text-properties
Date: Fri, 31 Jan 2014 09:52:09 +0000 [thread overview]
Message-ID: <87a9eccwc6.fsf@newcastle.ac.uk> (raw)
In-Reply-To: <jwvwqhh3135.fsf-monnier+gmane.emacs.help@gnu.org> (Stefan Monnier's message of "Thu, 30 Jan 2014 11:17:39 -0500")
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> I would, but I am not sure what the correct behavour is.
>> Consider:
>> Window 1 (point at beg)
>> ----
>> Window 2 (point at end)
>> C-x 1
>> Window 1 (point at beg)
>
>> C-x 2
>> Window 1 (point at beg)
>> ----
>> Window 2 (point at beg)
>
>> If one of the two windows is indirect, at least point is preserved
>> somewhere, so I can get back to it.
>
> We could stash the window-point to some buffer-local variable
> buffer-other-points when the window is removed, and when the buffer is
> displayed in a new window, we could check if buffer-other-points holds
> other locations and reuse them. And/or provide a new command to cycle
> through those buffer-other-points. And/or use the mark-ring instead of
> buffer-other-points and just let the user use mark-ring navigation to
> return to the previous position.
I think the cycling might be the best way; so when a window disappears,
point is stored just before it goes. It would be rather like registers
but automatic. In fact, I do use registers for this, but find it works
poorly because I have to remember that I am going to want to go back to
something.
Having a buffer automatically do this when a new window is displayed
might be difficult; I think it would need an awful lot of DWIM
semantics, and I am not sure what these would be.
>> Okay, I have to accept your word on this, but I can't see another
>> solution in my head. The best I have come up with is to hook into the
>> change-functions, and link two (otherwise independent buffers) together
>> so that the text in both is identical. AFAICT this is tractable, at
>> least if I only edit one of them.
>
> I tend to this the "multiple major-mode in a single buffer" option would
> work better.
>
> But in any case, there is no simple solution like "indirect-buffer".
>
> Each of the major modes that participate in a mixed-mode buffer needs to
> be written in a way that is aware of the fact that there can be other
> modes on other parts of the buffer.
Indeed. I shall look at these solutions before I go further; but
fiddling with major modes to make them work together is also a costly
exercise.
Phil
next prev parent reply other threads:[~2014-01-31 9:52 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-30 12:29 indirect-buffers and text-properties Phillip Lord
2014-01-30 13:27 ` Stefan Monnier
2014-01-30 14:13 ` Phillip Lord
2014-01-30 15:03 ` Stefan Monnier
2014-01-30 15:45 ` Phillip Lord
2014-01-30 16:17 ` Stefan Monnier
2014-01-31 9:52 ` Phillip Lord [this message]
2014-01-31 13:35 ` Stefan Monnier
2014-01-31 16:12 ` Phillip Lord
2014-01-30 15:33 ` Andreas Röhler
2014-01-30 15:36 ` Nicolas Richard
2014-01-30 16:43 ` Andreas Röhler
2014-01-31 9:46 ` Phillip Lord
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87a9eccwc6.fsf@newcastle.ac.uk \
--to=phillip.lord@newcastle.ac.uk \
--cc=help-gnu-emacs@gnu.org \
--cc=monnier@iro.umontreal.ca \
/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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.