İstediğim:
Uzak bir sitede bir clojure programım var, diyelim mccarthy. Yapmak istediğim şey nrepl-ritz, tercihen dizüstü bilgisayarımdan bir a bağlamaktır nrepl-ritz-jack-in. Jack, yerel bir program için iyi çalışıyor, ancak uzak bir programa bağlanmıyor gibi görünüyor.
Deneme 1
C-x C-f üzerinde /mccarthy:code/program/project.clj
(require 'nrepl-ritz)
M-x nrepl-ritz-jack-in
Sonuç
Emacs asılı görünüyor. *nrepl-server*Arabelleğe gidersem , şunu görüyorum:
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)
(ve tonlarca başka hat da ...)
dripDizüstü bilgisayarımda kullanıyorum , ancak mccarthyaçık nrepl-ritz-jack-indeğil , bu yüzden uzak bir dosya olduğunu algılamıyor. nrepl-jack-inBununla birlikte, normal yaşlılar bu durumda beklendiği gibi çalışacaktır.
Deneme 2
Ben de bir başlangıç çalıştı nrepl-ritzkullanarak leinüzerinde mccarthy:
mattox@mccarthy$ lein ritz-nrepl
nREPL server started on port 42874
Benim laptop itibaren bir port nedenle yerel iletmek 42874erişim sağlanır 42874üzerinde mccarthy:
ssh -L 42874:localhost:42874 -N mccarthy
Sonra, yerel Emacs'ımdan:
(require 'nrepl-ritz)
M-x nrepl
Host: 127.0.0.1
Liman: 42874
Bu bana bir bağlantı veriyor:
; nREPL 0.1.7-preview
user>
Test etmek için koşuyorum
M-x nrepl-ritz-threads
Bana güzel bir konu tablosu veriyor.
M-x nrepl-ritz-break-on-exception
user> (/ 1 0)
Sonuç
Bu askıda kalır, ancak bazen bazı yeniden başlatmaların olduğu gizli bir hata ayıklama arabelleği gösterir. İstisnayı programa geri vermesini söylersem, asla REPL'e kontrol vermez.
Ben bol aramalar yaptım ama "lein yolunda olduğundan emin olun" daha spesifik bir şey elde edemedim (Ve ben bunu yaptım, her iki makinede ...).
Attempt 2yerel makinede, bu çalışma sonucu olumlu mu? Bu başlangıç lein ritz-replve sonra emacs bağlanıyor
(/ 1 0)- bu askıda kalıyor mu? Muhtemelen sonsuzluğu değerlendirmeye çalışıyoruz; ;-)