magit purpose defined by purpose-x-magit can cause error: Wrong number of arguments: (0 . 2), 3
qleguennec opened this issue · comments
The following configuration gives me the error: Wrong number of arguments: (0 . 2), 3
when I call switch-to-buffer
or magit
:
(use-package window-purpose
:demand t
:config
(purpose-mode)
(require 'window-purpose-x)
(setq pop-up-frames t)
(purpose-x-magit-single-on)
(add-to-list 'purpose-special-action-sequences
'(magit
purpose-display-reuse-window-buffer
purpose-display-reuse-window-purpose
purpose-display-pop-up-frame)))
emacs version: 27.0.50
When you put magit
in purpose-special-action-sequences
like this, because a function named magit
exists, Purpose interprets it as a predicate functions and calls it with 3 arguments.
The problem here is in the purpose-x-magit extension - I should change it to define a Magit
purpose instead of magit
, then you can put Magit
instead of magit
. In the meantime you can replace magit
with (lambda (purpose _buffer _alist) (eq purpose 'magit))
.
I'm gonna change the title to reflect the bug (it is unrelated to Emacs version).