Come posso far funzionare nrepl-ritz-jack-in in remoto tramite TRAMP / Emacs


299

Quello che voglio:

Ho un programma clojure su un sito remoto, chiamiamolo mccarthy. Quello che voglio fare è connettermi a nrepl-ritzdal 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 dripsul mio laptop, ma non acceso mccarthy, quindi chiaramente nrepl-ritz-jack-innon rileva che si tratta di un file remoto. nrepl-jack-inTuttavia, i vecchi regolari funzioneranno come previsto in questo caso.

Tentativo 2

Ho anche provato a iniziare un nrepl-ritzutilizzo leinsu mccarthy:

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

Dal mio laptop inoltro una porta in modo che locale si 42874connetta a 42874on 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 ...).


44
(/ 1 0)- questo si blocca? Probabilmente
sto

8
Provando Attempt 2nel tuo computer locale, funziona bene? Questo sta iniziando lein ritz-reple poi connettendosi da Emacs
Guillermo Winkler il

4
Sì, a partire dalla mia macchina locale ha funzionato bene. Sono solo le connessioni remote che hanno problemi.
MattoxBeckman,

5
Se segui questi passaggi dovrebbe funzionare: devcenter.heroku.com/articles/debugging-clojure
Avanz

6
Ho già risposto fratello. stackoverflow.com/questions/22908315/… Non è esattamente quello che stai cercando, ma ti aiuterà
prestotron

Risposte:


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.