Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error in post-command-hook (ivy--queue-exhibit) #115

Open
Mihara opened this issue Feb 2, 2022 · 3 comments
Open

Error in post-command-hook (ivy--queue-exhibit) #115

Mihara opened this issue Feb 2, 2022 · 3 comments

Comments

@Mihara
Copy link

Mihara commented Feb 2, 2022

So I have ivy, counsel, ivy-rich running, and open up describe-variable - which counsel overrides with counsel-describe-variable, and ivy-rich annotates with extra data, including variable values.

I type: url- -- and that's the moment it freezes and I have to cancel it to get the editor back to working order. The only clue so far is the error message:

Error in post-command-hook (ivy--queue-exhibit): (error "Invalid key sequence in substitution: ‘https?://www\\.google\\.com/\" conceals
Google’")

Exactly like that. Turning on debug-on-error and doing that again produces no results and no debug output of any kind.

After much mucking around, I've been able to identify the specific variable that's tripping the problem: It's w3m-ignored-image-url-regexp from w3m.el, or rather, its docstring.

I couldn't tell you who is in the wrong here, w3m for containing a mangled docstring, (honestly, I can't tell just what is mangled about it) or ivy-rich for choking on it, the error message itself comes from substitute-command-keys which ivy-rich doesn't even directly use.

Unfortunately, excising this line from w3m.el isn't really enough, as it finds something else to trip on.

Could you please help me in directing this bug to its proper owners, if it's not in ivy-rich itself?

@zbelial
Copy link

zbelial commented Dec 5, 2022

I had a similiar but different error like yours today, but anyway, you can try to use (setq debug-on-signal t) and see whether Backtrace appears.
I used this method to find out what caused the error.

@BlindingDark
Copy link

If anyone encounters something like not a directory error when updating to emacs 30 (master), try the following patch:

  (defun ivy-rich--switch-buffer-directory! (orig-fun &rest args)
    (cl-letf (((symbol-function 'directory-file-name) #'file-name-directory))
      (apply orig-fun args)))
  (advice-add 'ivy-rich--switch-buffer-directory :around #'ivy-rich--switch-buffer-directory!)

@SPFabGerman
Copy link

SPFabGerman commented Mar 12, 2023

I had a similar issue to @BlindingDark, that was however not fixed by #117 or his patch. In my case it was caused by Helpful-Mode. (Since helpful-mode likes to set list-buffers-directory, which confuses ivy-rich.)
In case anyone else has the same problem as me, here is the fix I used:

(advice-add #'helpful--buffer :filter-return
  (lambda (buf)
    (with-current-buffer buf (setq-local list-buffers-directory nil))
    buf))

Why this issue has only occured after upgrading to Emacs 30 is however still a mystery to me.

mtwomey added a commit to mtwomey/emacs-doom-config that referenced this issue May 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants