What happened?
Sometimes, after working in Emacs for a while, file completions start behaving in a weird fashion. If the input does not reference any existing file (e.g. when I’m trying to open a new file, or just misspell existing one), an error is displayed, and minibuffer completion system stops working – I cannot select candidates, candidate list is not refreshed, etc.
This is the errors I see in Messages:
Error in post-command-hook (vertico--exhibit): (void-function nil)
Error in pre-command-hook (vertico--prepare): (void-function nil)
What did you expect to happen?
I expect the completions system to behave normally, e.g. allowing me to select candidates etc.
Steps to reproduce
- Use
vertico
engine - Work with Emacs for a while (?)
- Try to open non-existing file
System information
Loading data dump...
Additional info
After several unsuccessful attempts to debug this, I finally found out the what causes this. For some reason, the completion-styles-alist
misses the +vertico-basic-remote
entry (which was there initially), but minibuffer-completion nevertheless tries to use that style anyway.
Adding the whole entry back to the completion-style-alist
fixes the issue.
I’m very confused about how to reproduce that in a stable way, so if anybody can give some hint, it would be great.