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
ファイルを開いてもエラーが出なくなった