İ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 ...)
drip
Dizüstü bilgisayarımda kullanıyorum , ancak mccarthy
açık nrepl-ritz-jack-in
değil , bu yüzden uzak bir dosya olduğunu algılamıyor. nrepl-jack-in
Bununla birlikte, normal yaşlılar bu durumda beklendiği gibi çalışacaktır.
Deneme 2
Ben de bir başlangıç çalıştı nrepl-ritz
kullanarak lein
üzerinde mccarthy
:
mattox@mccarthy$ lein ritz-nrepl
nREPL server started on port 42874
Benim laptop itibaren bir port nedenle yerel iletmek 42874
eriş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 2
yerel makinede, bu çalışma sonucu olumlu mu? Bu başlangıç lein ritz-repl
ve sonra emacs bağlanıyor
(/ 1 0)
- bu askıda kalıyor mu? Muhtemelen sonsuzluğu değerlendirmeye çalışıyoruz; ;-)