Ce que je veux:
J'ai un programme de fermeture sur un site distant, appelons-le mccarthy . Ce que je veux faire, c'est me connecter à un nrepl-ritzordinateur portable, de préférence en utilisant nrepl-ritz-jack-in. La prise jack fonctionne bien pour un programme local, mais ne semble pas se connecter à un programme distant.
Tentative 1
C-x C-f sur /mccarthy:code/program/project.clj
(require 'nrepl-ritz)
M-x nrepl-ritz-jack-in
Résultat
Emacs semble se bloquer. Si je vais dans le *nrepl-server*tampon, je vois ceci:
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)
(et des tonnes d'autres lignes aussi ...)
J'utilise dripsur mon ordinateur portable, mais pas sur mccarthy, donc nrepl-ritz-jack-inne détecte clairement pas qu'il s'agit d'un fichier distant. Regular oldnrepl-jack-in standard fonctionnera comme prévu dans ce cas, cependant.
Tentative 2
J'ai également essayé de démarrer une nrepl-ritzutilisation leinsur mccarthy:
mattox@mccarthy$ lein ritz-nrepl
nREPL server started on port 42874
De mon ordinateur portable , je transmets un port si locaux se 42874connecte à 42874le mccarthy:
ssh -L 42874:localhost:42874 -N mccarthy
Ensuite, de mes Emacs locaux:
(require 'nrepl-ritz)
M-x nrepl
Hôte: 127.0.0.1
Port: 42874
Cela me donne une connexion:
; nREPL 0.1.7-preview
user>
Donc pour le tester, je cours
M-x nrepl-ritz-threads
Cela me donne une belle table de fils.
M-x nrepl-ritz-break-on-exception
user> (/ 1 0)
Résultat
Cela se bloque, mais affiche parfois un tampon de débogage caché avec des redémarrages disponibles. Si je lui dis de renvoyer l'exception au programme, il ne redonne jamais le contrôle au REPL.
J'ai fait beaucoup de recherches mais je n'ai pas pu obtenir quelque chose de plus précis que "assurez-vous que lein est sur votre chemin" (et je l'ai fait, sur les deux machines ...).
Attempt 2dans votre machine locale, ça marche bien? Cela commence lein ritz-replet se connecte ensuite depuis emacs
(/ 1 0)- ça se bloque? J'essaie probablement d'évaluer l'infini ... ;-)