SpacemacsでClojureファイルを開いた時の (wrong-type-argument stringp package-desc)を直す


Clojureファイルを開く度にエラー

Spacemacs on Emacs26.3 on Ubuntu18.04LTS on WSL2 on Windows10.cljファイルを開いた時、毎回このエラーが起こる。

File mode specification error: (wrong-type-argument stringp package-desc)

どこに実害があったかわからなかったが、 File mode specification errorは大体どこかの機能に支障をきたしているので直したい。

パッケージの再コンパイルで解決

clj-refactorに関するドンピシャissueがあった。なるほどrefactor…

cf. Wrong type argument: stringp, package-desc

そして解決方法もいくつか提示されていた。注目したのはこれ (Emacs26なので)

Rebuilding all packages after upgrading from 25->26 helped to solve a similar error with a different package, thanks all and especially @kaushalmodi !
I did:
M-: (byte-recompile-directory package-user-dir nil 'force)
see: stackoverflow.com/a/24735377/531439

cf. https://github.com/clojure-emacs/clj-refactor.el/issues/369#issuecomment-388326195

Spacemacsの本体はEmacsなので、当然実行できる。

M-:は、WSL2なら Alt + :
その場で式を入力して実行できるみたい。

M-: (eval-expression)は、ミニバッファーを使って式を読み取り、それを評価します(式を評価する前に、カレントバッファーは、式をタイプするためのミニバッファーではなく、M-:をタイプしたときカレントだったバッファーに切り替わります)。

cf. https://ayatakesi.github.io/emacs/24.5/Lisp-Eval.html

書かれていた通り (byte-recompile-directory package-user-dir nil 'force)を評価すると、再コンパイルが始まる。あとは待っていれば終わるので、Spacemacsを再起動する。

.cljファイルを開いてもエラーが出なくなった