Clojure で時々やり続けるエラーがあります。忘れたものをすぐに知るにはまだ十分な頻度ではありませんが、本当に迷惑になるほど頻繁に行います。
基本的に を使用した後nrepl-jack-in
、正しい名前空間に変更するのを忘れることがよくありました。
したがって、nrepluser>
プロンプトで関数を入力すると、次のようになります。
CompilerException java.lang.RuntimeException: Unable to resolve symbol: foo-bar-baz in this context, compiling:(NO_SOURCE_PATH:1)
プロンプトnrepl
を返す前にバッファに出力されました。user>
そこで私は、Java / Clojure を台無しにしようとする代わりに、Emacs マジックだけを使用して、Emacs から直接ヒントを与える簡単な方法があると考えました。
フック(?)またはEmacs / nrepl-modeに似たものを追加して、特定のメッセージが出力されたときに(たとえば、「シンボルを解決できません」および「このコンテキストで」を含むメッセージなど)追加できるようにするにはどうすればよいですか?次のような1行:
"Didn't you forget to change namespace?"
あるいは:
"There's a .clj buffer opened using namespace abc.defk, didn't you forget to enter: (ns abc.def) ?"
Clojure にはかなり不可解なエラー メッセージがいくつかあり、通常、何が間違っているのかを理解するのに時間がかかります。これらのエラー メッセージを Emacs から直接「パーソナライズ」できれば、かなりの時間を勝ち取ることができます。
では、nrepl の出力を「傍受」して、ニーズに合わせて調整するにはどうすればよいでしょうか。