数日前に emacs の cider を CIDER 0.6.0alpha (パッケージ: 20140318.1539) に更新して以来、cider-jack-in を実行できませんでした。
Mx cider-jack-in を試すと、メッセージ バッファに次のエラーが表示されます
Wrong type argument: stringp, nil
Lispバッファからコマンドを実行すると、次のバックトレースが得られます
Debugger entered--Lisp error: (wrong-type-argument stringp nil)
find-file-name-handler(nil file-remote-p)
file-remote-p(nil)
start-file-process-shell-command("nrepl-server" "*nrepl-server*<2>" "lein repl :headless")
cider-jack-in()
eval((cider-jack-in) nil)
eval-last-sexp-1(nil)
eval-last-sexp(nil)
ad-Orig-call-interactively(eval-last-sexp nil nil)
call-interactively(eval-last-sexp nil nil)
デバッガーでソースを見ると、start-file-process-shell-command のコードが、default-directory を引数として file-remote-p を数回呼び出していることがわかります。
ここで深みから抜け出しているので、これが役立つかどうかはわかりません。しかし、ソース バッファで default-directory を評価しようとすると、nil 以外の値 ("/usr/share/emacs/24.3/lisp/") が返されます。
.emacs.d ディレクトリを消去して cider と clojure モードを再インストールしようとしましたが、それでも同じ問題が発生し、cider github ページでこの特定の動作について話している他のスレッドを見たことがありません。どうやら私の環境と関係があるようです。
この問題のトラブルシューティング方法に関するヘルプをいただければ幸いです。
サンティ。