Quello che voglio:
Ho un programma clojure su un sito remoto, chiamiamolo mccarthy
. Quello che voglio fare è connettermi a nrepl-ritz
dal mio laptop, preferibilmente usando nrepl-ritz-jack-in
. La presa funziona bene per un programma locale, ma non sembra connettersi a un programma remoto.
Tentativo 1
C-x C-f sopra /mccarthy:code/program/project.clj
(require 'nrepl-ritz)
M-x nrepl-ritz-jack-in
Risultato
Emacs sembra bloccarsi. Se vado al *nrepl-server*
buffer, vedo questo:
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)
(e tonnellate di altre linee, anche ...)
Sto usando drip
sul mio laptop, ma non acceso mccarthy
, quindi chiaramente nrepl-ritz-jack-in
non rileva che si tratta di un file remoto. nrepl-jack-in
Tuttavia, i vecchi regolari funzioneranno come previsto in questo caso.
Tentativo 2
Ho anche provato a iniziare un nrepl-ritz
utilizzo lein
su mccarthy
:
mattox@mccarthy$ lein ritz-nrepl
nREPL server started on port 42874
Dal mio laptop inoltro una porta in modo che locale si 42874
connetta a 42874
on mccarthy
:
ssh -L 42874:localhost:42874 -N mccarthy
Quindi, dal mio Emacs locale:
(require 'nrepl-ritz)
M-x nrepl
Ospite: 127.0.0.1
Porta: 42874
Questo mi dà una connessione:
; nREPL 0.1.7-preview
user>
Quindi per provarlo, corro
M-x nrepl-ritz-threads
Mi dà un bel tavolo di discussioni.
M-x nrepl-ritz-break-on-exception
user> (/ 1 0)
Risultato
Ciò si blocca, ma a volte mostra un buffer di debug nascosto con alcuni riavvii disponibili. Se gli dico di restituire l'eccezione al programma, non restituisce mai il controllo al REPL.
Ho fatto molte ricerche ma non sono stato in grado di ottenere qualcosa di più specifico di "assicurati che lein sia sul tuo percorso" (E l'ho fatto su entrambe le macchine ...).
Attempt 2
nel tuo computer locale, funziona bene? Questo sta iniziando lein ritz-repl
e poi connettendosi da Emacs
(/ 1 0)
- questo si blocca? Probabilmente