Closed yjloong closed 4 months ago
I got the same issue. It is triggered (for example) by calling (swiper-isearch "some string"). Thanks.
But the fix has not considered string-match-p.
Your analysis is correct, but is missing the same point that I missed in the refactor: that other parts of Ivy apparently rely on ivy--refilter
returning nil
when an error is encountered. IOW, this is my fault, not a problem with your environment.
So it seems like this is yet another example of non-string candidates being slapped on as an afterthought rather than being handled properly: I find it bizarre that ivy--reset-state
(which is called at the start of every completion session) tries to filter something that its caller swiper-isearch
knows in advance will not work (in the case of string-matching buffer positions).
Thank you both very much for catching this and for the easy repro, and sorry for the breakage. I hope it's fixed again.
Thanks for your works. And if I can get the fix soon after the fix commited in repository by use-package?
And if I can get the fix soon after the fix commited in repository by use-package?
I'm not sure what your use-package
setup is like, but yes, the fix should now be available via GNU-devel ELPA (recommended) and MELPA.
It works. Thank you very much!
After the commit 738da36d1b61e5b2a38e5775b23edd214ad88d6e, a bug run well before has been fixed in it. In my env, function ivy--re-filter's args re a string, and candidates a list(number). They will be called with string-match-p. But they are string and number. So error will ignored with ignore-errors function. Just like nothing has been filtered. But the fix has not considered string-match-p. Maybe the question is only caused by my env's setting.