From: Juri Linkov <juri@linkov.net>
To: Alan Mackenzie <acm@muc.de>
Cc: 17453@debbugs.gnu.org
Subject: bug#17453: Framework extending window functions for Follow Mode (etc.).
Date: Tue, 01 Dec 2015 02:07:31 +0200 [thread overview]
Message-ID: <874mg33ubg.fsf@mail.linkov.net> (raw)
In-Reply-To: <20151130203723.GA24162@acm.fritz.box> (Alan Mackenzie's message of "Mon, 30 Nov 2015 20:37:23 +0000")
>> The patch in bug#20430 awaits the possibility of helping to fix this
>> problem. It adds a new hook replace-update-post-hook that is like
>> its isearch counterpart hook isearch-update-post-hook is the right way
>> to handle display updates like syncing follow windows, etc.
>
> Does this patch exist, yet?
Yes, you can find the patch in http://debbugs.gnu.org/20430#8
> It bothers me a little that we might be adding hook after hook into
> Emacs, each one for a single special purpose.
Fortunately, a new hook is not for a single special purpose -
it's a general type of hook, requested for different user needs.
> Would it not perhaps be better to call `isearch-update-post-hook' also
> from `perform-replace', since that would be more economical with hooks;
> the meaning of the hook invocation would be "the same" in Isearch and
> `perform-replace' - "hook called after having moved to the next match".
Logically, it makes sense to reuse isearch hooks in query-replace
since query-replace searches for matches like isearch does, but
practically users might have such customizations in .emacs that
would break query-replace in unpredictable ways. This is why
a separate query-replace hook would be much safer.
I see no problem for follow-mode to add follow-post-command-hook
to both hooks.
>> Together with changing the order of calling isearch-update-post-hook
>> and isearch-lazy-highlight-new-loop in isearch-update, adding
>> follow-post-command-hook to isearch-update-post-hook, and adding
>> follow-post-command-hook to replace-update-post-hook to handle
>> follow-mode in query-replace will comprise the least radical change
>> just before the next release.
>
> This sounds like a good idea. Though, again, I think calling
> isearch-update-post-hook from `query-replace' would be better than
> implementing a new hook.
Adding a new hook is just a one-liner, but we have to find the right place
in perform-replace to call it. I think replace-update-pre-hook should be
called before (read-event), and replace-update-post-hook after (read-event).
I'm not yet sure which one is needed for follow-mode to sync windows?
> Would it still be possible to mark `isearch-update-post-hook' as "for
> internal use only", so that we could get rid of it later?
isearch-update-post-hook is a first-class hook added 5 years ago,
so there is no need to remove it.
next prev parent reply other threads:[~2015-12-01 0:07 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-05 19:29 Framework extending window functions for Follow Mode (etc.) Alan Mackenzie
2015-11-05 19:36 ` John Wiegley
2015-11-05 20:00 ` Alan Mackenzie
2015-11-07 13:07 ` Alan Mackenzie
2015-11-09 22:30 ` John Wiegley
2015-11-10 11:27 ` Alan Mackenzie
2015-11-10 13:13 ` Alan Mackenzie
2015-11-10 15:20 ` John Wiegley
2015-11-10 22:29 ` John Wiegley
2015-11-11 0:30 ` Alan Mackenzie
2015-11-11 0:34 ` John Wiegley
2015-11-11 16:15 ` Alan Mackenzie
2015-11-11 16:50 ` John Wiegley
2015-11-11 17:15 ` Comms and building Emacs. [Re: Framework extending window functions for Follow Mode (etc.).] Alan Mackenzie
2015-11-11 17:58 ` Alan Mackenzie
2015-11-07 13:26 ` Framework extending window functions for Follow Mode (etc.) martin rudalics
2015-11-07 13:57 ` Alan Mackenzie
2015-11-07 15:18 ` martin rudalics
2015-11-07 16:12 ` Alan Mackenzie
2015-11-07 17:07 ` martin rudalics
2015-11-07 18:55 ` Alan Mackenzie
2015-11-08 9:22 ` martin rudalics
2015-11-08 12:13 ` Alan Mackenzie
2015-11-08 18:10 ` martin rudalics
2015-11-08 19:57 ` Alan Mackenzie
2015-11-09 8:25 ` martin rudalics
2015-11-09 17:03 ` Alan Mackenzie
2015-11-07 17:54 ` Artur Malabarba
2015-11-07 18:24 ` Alan Mackenzie
2015-11-07 21:58 ` Juri Linkov
2015-11-08 0:29 ` Alan Mackenzie
2015-11-08 9:23 ` martin rudalics
2015-11-09 0:50 ` Juri Linkov
2015-11-09 15:41 ` bug#17453: " Alan Mackenzie
2015-11-09 15:41 ` Alan Mackenzie
2015-11-10 0:51 ` bug#17453: " Juri Linkov
2015-11-10 11:08 ` Alan Mackenzie
2015-11-11 0:12 ` Juri Linkov
2015-11-11 16:19 ` Alan Mackenzie
2015-11-12 0:52 ` Juri Linkov
2015-11-12 8:22 ` martin rudalics
2015-11-12 20:14 ` Juri Linkov
2015-11-17 22:55 ` Alan Mackenzie
2015-11-18 0:38 ` Juri Linkov
2015-11-18 17:58 ` Alan Mackenzie
2015-11-18 21:28 ` Alan Mackenzie
2015-11-19 0:45 ` Juri Linkov
2015-11-25 19:33 ` Alan Mackenzie
2015-11-26 23:03 ` Juri Linkov
2015-11-30 20:37 ` Alan Mackenzie
2015-12-01 0:07 ` Juri Linkov [this message]
2015-12-05 16:40 ` Alan Mackenzie
2015-12-05 23:06 ` Juri Linkov
2015-12-07 19:15 ` Alan Mackenzie
2015-12-08 0:42 ` Juri Linkov
2015-11-12 22:15 ` Alan Mackenzie
2015-11-09 0:50 ` Juri Linkov
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=874mg33ubg.fsf@mail.linkov.net \
--to=juri@linkov.net \
--cc=17453@debbugs.gnu.org \
--cc=acm@muc.de \
/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.