Що я хочу:
У мене на віддаленому сайті є програма clojure, давайте назвемо її mccarthy. Що я хочу зробити - це підключитись до nrepl-ritzсвого ноутбука, бажано за допомогою nrepl-ritz-jack-in. Гніздо добре працює для локальної програми, але, схоже, не підключається до віддаленої програми.
Спроба 1
C-x C-f на /mccarthy:code/program/project.clj
(require 'nrepl-ritz)
M-x nrepl-ritz-jack-in
Результат
Здається, Emacs висить. Якщо я переходжу до *nrepl-server*буфера, я бачу таке:
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)
(і тонни інших ліній теж ...)
Я використовую dripна своєму ноутбуці, але не на mccarthy, тому явно nrepl-ritz-jack-inне виявляю, що це віддалений файл. nrepl-jack-inОднак, звичайний старий буде працювати, як очікувалося, у цьому випадку.
Спроба 2
Я також спробував розпочати nrepl-ritzвикористання leinна mccarthy:
mattox@mccarthy$ lein ritz-nrepl
nREPL server started on port 42874
З мого ноутбука я вперед порт так місцеві 42874Підключається до 42874на mccarthy:
ssh -L 42874:localhost:42874 -N mccarthy
Потім від мого локального Emacs:
(require 'nrepl-ritz)
M-x nrepl
Ведучий: 127.0.0.1
Порт: 42874
Це дає мені зв’язок:
; nREPL 0.1.7-preview
user>
Тож щоб перевірити це, я біжу
M-x nrepl-ritz-threads
Це дає мені гарну таблицю ниток.
M-x nrepl-ritz-break-on-exception
user> (/ 1 0)
Результат
Це зависає, але іноді показує прихований буфер налагодження з деякими доступними перезавантаженнями. Якщо я скажу йому, щоб виняток повернувся до програми, він ніколи не повертає контроль до REPL.
Я здійснив багато пошуків, але не зміг отримати щось більш конкретне, ніж "переконайтесь, що лейн на вашому шляху" (І я це робив, на обох машинах ...).
Attempt 2у вашій локальній машині, це працює добре? Це починається, lein ritz-replа потім з'єднується з emacs
(/ 1 0)- це висить? Можливо, намагаються оцінити нескінченність ... ;-)