web-dev-qa-db-ja.com

TRAMP / Emacs経由でnrepl-ritz-jack-inをリモートで動作させるにはどうすればよいですか

私が欲しいもの:

リモートサイトにclojureプログラムがあります。それをmccarthyと呼びましょう。私がやりたいのは、できればnrepl-ritzを使用して、ラップトップからnrepl-ritz-jack-inに接続することです。ジャックインはローカルプログラムでは正常に機能しますが、リモートプログラムには接続していないようです。

試行1

C-x C-f /mccarthy:code/program/project.clj

(require 'nrepl-ritz)

M-x nrepl-ritz-jack-in

結果

Emacsがハングしているようです。 *nrepl-server*バッファーに移動すると、次のように表示されます。

Exception in thread "main" Java.lang.reflect.InvocationTargetException
    at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:57)
    at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
    at Java.lang.reflect.Method.invoke(Method.Java:601)
    at org.flatland.drip.Main.invoke(Main.Java:117)
    at org.flatland.drip.Main.start(Main.Java:88)
    at org.flatland.drip.Main.main(Main.Java:64)
Caused by: Java.lang.AssertionError: Assert failed: project
    at leiningen.ritz_nrepl$start_jpda_server.invoke(ritz_nrepl.clj:23)
    at leiningen.ritz_nrepl$ritz_nrepl.doInvoke(ritz_nrepl.clj:95)

(および他の行もたくさん...)

私はラップトップでdripを使用していますが、mccarthyでは使用していないため、nrepl-ritz-jack-inはリモートファイルであることを検出していません。ただし、この場合、通常の古いnrepl-jack-inは期待どおりに機能します。

試行2

また、leinmccarthyを使用してnrepl-ritzを開始しようとしました。

mattox@mccarthy$ lein ritz-nrepl
nREPL server started on port 42874

私のラップトップからポートを転送して、ローカル42874mccarthy42874に接続するようにします。

ssh -L 42874:localhost:42874 -N mccarthy

次に、私のローカルEmacsから:

(require 'nrepl-ritz)

M-x nrepl

ホスト:127.0.0.1

ポート:42874

これは私に接続を与えます:

; nREPL 0.1.7-preview
user> 

それをテストするために、私は実行します

M-x nrepl-ritz-threads

スレッドの素敵なテーブルを提供します。

M-x nrepl-ritz-break-on-exception

user> (/ 1 0)

結果

これはハングしますが、いくつかの再起動が利用可能な非表示のデバッグバッファが表示されることがあります。例外をプログラムに戻すように指示した場合、REPLに制御を戻すことはありません。

私は多くの検索を行いましたが、「レインがパス上にあることを確認する」よりも具体的な情報を得ることができませんでした(そして、両方のマシンでそれを行いました...)。

298
MattoxBeckman

Replが以前のcider-jack-inからまだ実行されている場合は、ciderコマンドを使用して実行中のインスタンスに接続するか、新しいインスタンスを開始する前に以前のインスタンスを停止する必要があります。

ここから ` Clojure-cider-jack-inを再実行する接続の問題

こちらもご覧くださいhttps://devcenter.heroku.com/articles/debugging-clojure

1
Syed Ali Naqi