[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#17453: Isearch doesn't work properly with Follow Mode.
From: |
Juri Linkov |
Subject: |
bug#17453: Isearch doesn't work properly with Follow Mode. |
Date: |
Wed, 04 Nov 2015 02:28:08 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (x86_64-pc-linux-gnu) |
>> >> This is complicated. Ideally, the Follow Mode windows should be
>> >> synchronised in FM's post-command-hook, not isearch's. It is not
>> >> isearch's job to realign windows. follow-post-command-hook both realigns
>> >> windows and choses an appropriate window to put point in. We should let
>> >> it.
>
>> > Once again, if some code in Isearch calls the same function that is
>> > used in follow-post-command-hook, the above is not an issue.
>> > Moreover, saving some calls to the hook will make Emacs more
>> > responsive.
>
>> I agree with Eli and Juri on this. If there's a solution as simple as
>> calling a follow-mode function in isearch-post-update-hook, then this
>> sounds like a no-downside solution.
>
> I'm wondering if we're still talking about the same problem. ;-) A
> simpler solution is _not_ to call a FM function from that Isearch hook.
> Unless we're talking at cross purposes, there is simply no need. As
> long as the Isearch command is allowed to go to completion without
> forcibly redisplaying, FM will re-synchronise the windows (if needed)
> and select an appropriate window for point, all on its own (in
> follow-post-command-hook).
It still might help to synchronise the windows from isearch-update-post-hook
if we'll call it before calling isearch-lazy-highlight-new-loop with sit-for.
I see no problem in changing the order of calls to isearch-update-post-hook and
isearch-lazy-highlight-new-loop in isearch-update. Sure,
follow-post-command-hook
will be called twice but at least this simple solution for follow-mode
doesn't require re-designing the whole lazy-highlighting machinery.
diff --git a/lisp/follow.el b/lisp/follow.el
index 938c59e..75c2788 100644
--- a/lisp/follow.el
+++ b/lisp/follow.el
@@ -420,6 +420,7 @@ (define-minor-mode follow-mode
(if follow-mode
(progn
(add-hook 'compilation-filter-hook 'follow-align-compilation-windows t
t)
+ (add-hook 'isearch-update-post-hook 'follow-post-command-hook t t)
(add-hook 'post-command-hook 'follow-post-command-hook t)
(add-hook 'window-size-change-functions 'follow-window-size-change t))
;; Remove globally-installed hook functions only if there is no
@@ -432,6 +433,7 @@ (define-minor-mode follow-mode
(unless following
(remove-hook 'post-command-hook 'follow-post-command-hook)
(remove-hook 'window-size-change-functions 'follow-window-size-change)))
+ (remove-hook 'isearch-update-post-hook 'follow-post-command-hook t)
(remove-hook 'compilation-filter-hook 'follow-align-compilation-windows
t)))
(defun follow-find-file-hook ()
diff --git a/lisp/isearch.el b/lisp/isearch.el
index b762884..1e4a1a5 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -1011,12 +1011,12 @@ (defun isearch-update ()
(setq ;; quit-flag nil not for isearch-mode
isearch-adjusted nil
isearch-yank-flag nil)
- (when isearch-lazy-highlight
- (isearch-lazy-highlight-new-loop))
;; We must prevent the point moving to the end of composition when a
;; part of the composition has just been searched.
(setq disable-point-adjustment t)
- (run-hooks 'isearch-update-post-hook))
+ (run-hooks 'isearch-update-post-hook)
+ (when isearch-lazy-highlight
+ (isearch-lazy-highlight-new-loop)))
(defun isearch-done (&optional nopush edit)
"Exit Isearch mode.
- bug#17453: Isearch doesn't work properly with Follow Mode., (continued)
- bug#17453: Isearch doesn't work properly with Follow Mode., Eli Zaretskii, 2015/11/02
- bug#17453: Isearch doesn't work properly with Follow Mode., Juri Linkov, 2015/11/02
- bug#17453: Isearch doesn't work properly with Follow Mode., Alan Mackenzie, 2015/11/03
- bug#17453: Isearch doesn't work properly with Follow Mode., Eli Zaretskii, 2015/11/03
- bug#17453: Isearch doesn't work properly with Follow Mode., Artur Malabarba, 2015/11/03
- bug#17453: Isearch doesn't work properly with Follow Mode., Alan Mackenzie, 2015/11/03
- bug#17453: Isearch doesn't work properly with Follow Mode.,
Juri Linkov <=
- bug#17453: Isearch doesn't work properly with Follow Mode., Alan Mackenzie, 2015/11/04
- bug#17453: Isearch doesn't work properly with Follow Mode., Artur Malabarba, 2015/11/04
- bug#17453: Isearch doesn't work properly with Follow Mode., Alan Mackenzie, 2015/11/05
- bug#17453: Isearch doesn't work properly with Follow Mode., Artur Malabarba, 2015/11/05
- bug#17453: Isearch doesn't work properly with Follow Mode., Alan Mackenzie, 2015/11/07
- bug#17453: Isearch doesn't work properly with Follow Mode., Eli Zaretskii, 2015/11/07
- bug#17453: Isearch doesn't work properly with Follow Mode., Alan Mackenzie, 2015/11/08
- bug#17453: Isearch doesn't work properly with Follow Mode., Alan Mackenzie, 2015/11/03
- bug#17453: Isearch doesn't work properly with Follow Mode., Juri Linkov, 2015/11/02
- bug#17453: Isearch doesn't work properly with Follow Mode., Eli Zaretskii, 2015/11/02