[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#25561: 25.1; "Making isearch-search-fun-function local to *Minibuf-1
bug#25561: 25.1; "Making isearch-search-fun-function local to *Minibuf-1* while let-bound!" warning with Evil
Sun, 29 Jan 2017 13:25:24 +0100
> Thanks for the report. I'm not familiar with the Evil package, so
> please correct me if I make wrong guesses about it. I suppose that
> the basic mode of operation of the Evil package is not buffer-local.
It's a bit trickier than that. Evil defines a minor mode
(evil-local-mode), then a global minor mode (evil-mode) using it and a
few more variables for state tracking. The supported mode of operation
is therefore global, while still allowing to deactivate it on a
per-buffer or even per-command basis (there's a command to deactivate
Evil's keymaps for the duration of the next command).
> OTOH, if evil-mode is the global mode then it makes sense to change
> the global value of isearch-search-fun-function (and perhaps keeping
> its old value). If you need to keep standard search commands working,
> then you could create a new internal defvar e.g.
> evil-search-is-active, set it temporarily in evil-search commands, and
> check it in your new implementation of the search function in
> isearch-search-fun-function. If evil-search-is-active is nil, then
> call the old default value isearch-search-fun-default.
Hm, this sounds hackier than the current approach, also, what if another
package let-binds this variable for custom search functionality? The
reason I reported this warning is because I suspect something about
isearch and the minibuffer setup hook isn't done correctly, in hope of
getting rid of the warning for every user of that variable.