Apa yang saya inginkan:
Saya punya program clojure di situs jarak jauh, sebut saja mccarthy. Yang ingin saya lakukan adalah menghubungkan ke nrepl-ritzdari laptop saya, lebih disukai menggunakan nrepl-ritz-jack-in. Jack in berfungsi dengan baik untuk program lokal, tetapi sepertinya tidak terhubung ke program jarak jauh.
Percobaan 1
C-x C-f di /mccarthy:code/program/project.clj
(require 'nrepl-ritz)
M-x nrepl-ritz-jack-in
Hasil
Emacs tampaknya hang. Jika saya pergi ke *nrepl-server*buffer, saya melihat ini:
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)
(dan berton-ton saluran lain, juga ...)
Saya menggunakan dripdi laptop saya, tetapi tidak aktif mccarthy, jadi jelas nrepl-ritz-jack-intidak mendeteksi bahwa itu adalah file jarak jauh. Namun, lama reguler nrepl-jack-inakan berfungsi seperti yang diharapkan dalam kasus ini.
Percobaan 2
Saya juga mencoba memulai nrepl-ritzpenggunaan leindi mccarthy:
mattox@mccarthy$ lein ritz-nrepl
nREPL server started on port 42874
Dari laptop saya meneruskan port sehingga lokal 42874menghubungkan ke 42874atas mccarthy:
ssh -L 42874:localhost:42874 -N mccarthy
Kemudian, dari Emacs lokal saya:
(require 'nrepl-ritz)
M-x nrepl
Tuan rumah: 127.0.0.1
Pelabuhan: 42874
Ini memberi saya koneksi:
; nREPL 0.1.7-preview
user>
Jadi untuk mengujinya, saya lari
M-x nrepl-ritz-threads
Ini memberi saya tabel utas yang bagus.
M-x nrepl-ritz-break-on-exception
user> (/ 1 0)
Hasil
Ini hang, tapi terkadang menunjukkan buffer debugging tersembunyi dengan beberapa restart tersedia. Jika saya memintanya untuk mengembalikan pengecualian ke program, itu tidak pernah memberikan kontrol kembali ke REPL.
Saya telah melakukan banyak pencarian tetapi belum bisa mendapatkan sesuatu yang lebih spesifik daripada "pastikan lein ada di jalur Anda" (Dan saya melakukan itu, pada kedua mesin ...).
Attempt 2di mesin lokal Anda, tidak berfungsi ok? Itu mulai lein ritz-repldan kemudian terhubung dari emacs
(/ 1 0)- ini hang? Mungkin mencoba untuk mengevaluasi infinity ... ;-)