[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#53126: 29.0.50; [PATCH] Lazy highlight/count when reading query-repl
From: |
Augusto Stoffel |
Subject: |
bug#53126: 29.0.50; [PATCH] Lazy highlight/count when reading query-replace string, etc. |
Date: |
Mon, 10 Jan 2022 18:34:18 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) |
Hi Juri,
I attached a new patch (still a sketch) that requires no changes in
comint.el and simple.el. Perhaps you will find this approach more
acceptable.
More comments below.
On Sun, 9 Jan 2022 at 20:58, Juri Linkov <juri@linkov.net> wrote:
> It would be great to use your new variable with a function
> to show replacement counts in perform-replace. IIUC,
> let-binding isearch-lazy-count-display-function to
> isearch-read-with-highlight-count will suppress isearch-message?
>
I tried this and it's relatively simple to do, but there is a problem.
Suppose you want to replace all "a" with "z", and your buffer has 20
"a"s initially. Then, as you keep hitting "y" to confirm a replacement
the count will be
1/20, 1/19, ..., 1/1
since the number of "a"s decrease, and the point is always at the first
of the still-existing ones. But probably one should count the number of
prompts, so
1/20, 2/20, ..., 20/20
I think this means `perform-replace' has to implement its own way to
display a count.
> I meant using simply
>
> (add-hook 'minibuffer-setup-hook 'isearch-read-with-highlight-setup)
>
> But it seems isearch-read-with-highlight-setup doesn't set
> isearch-lazy-count-display-function.
>
I guess this could be done. But note that there are two possible types
of counts: a "current/total" counter or just a "total" counter. Each
use case calls for a different count style.
>>> Then maybe a new feature could be named e.g. "lazy-minibuffer"?
>
> This feature has little to do with isearch. This is why there are
> efforts to move away from the prefix isearch- for lazy-related
> functions and variables, so we have now:
>
> lazy-count-prefix-format
> lazy-count-suffix-format
> lazy-highlight-buffer
> lazy-highlight-buffer-max-at-a-time
> lazy-highlight-cleanup
> lazy-highlight-initial-delay
> lazy-highlight-interval
> lazy-highlight-max-at-a-time
> ...
>
> There are still isearch-specific names like isearch-lazy-count
> that enables lazy-count in isearch-mode. What would be a similar
> name for the minibuffer? Maybe minibuffer-lazy-count?
I see, the lazy-* names are the new ones!
>
> Then the prefix isearch- needs to be removed from other names too,
> e.g. isearch-lazy-count-display-function -> lazy-count-display-function
> isearch-read-with-highlight-setup maybe to minibuffer-lazy-highlight-setup,
> etc.
Yes, I agree. The names I came up with are horrible and
`lazy-minibuffer' is weird, but your current suggestion is nice.
By the way, I'm debating a bit whether
`isearch-lazy-count-display-function' should be:
1. Either nil or function, as it is right now,
2. #'ignore by default, so similar to 1) but a bit easier to use with
`add-function'
3. a hook, the main inconvenience being that it can't be easily let-bound.
0001-Allow-reading-from-minibuffer-with-lazy-highlight-an.patch
Description: Text Data
0002-Lazy-highlight-when-reading-query-replace-text.patch
Description: Text Data
- bug#53126: 29.0.50; [PATCH] Lazy highlight/count when reading query-replace string, etc., Augusto Stoffel, 2022/01/08
- bug#53126: 29.0.50; [PATCH] Lazy highlight/count when reading query-replace string, etc., Juri Linkov, 2022/01/08
- bug#53126: 29.0.50; [PATCH] Lazy highlight/count when reading query-replace string, etc., Augusto Stoffel, 2022/01/08
- bug#53126: 29.0.50; [PATCH] Lazy highlight/count when reading query-replace string, etc., Juri Linkov, 2022/01/09
- bug#53126: 29.0.50; [PATCH] Lazy highlight/count when reading query-replace string, etc., Augusto Stoffel, 2022/01/09
- bug#53126: 29.0.50; [PATCH] Lazy highlight/count when reading query-replace string, etc., Augusto Stoffel, 2022/01/09
- bug#53126: 29.0.50; [PATCH] Lazy highlight/count when reading query-replace string, etc., Juri Linkov, 2022/01/09
- bug#53126: 29.0.50; [PATCH] Lazy highlight/count when reading query-replace string, etc.,
Augusto Stoffel <=
- bug#53126: 29.0.50; [PATCH] Lazy highlight/count when reading query-replace string, etc., Juri Linkov, 2022/01/10