Что я хочу:
У меня есть программа clojure на удаленном сайте, назовем ее mccarthy
. Я хочу подключиться к nrepl-ritz
со своего ноутбука, желательно с помощью nrepl-ritz-jack-in
. Гнездо работает нормально для локальной программы, но, похоже, не подключается к удаленной программе.
Попытка 1
C-x C-f на /mccarthy:code/program/project.clj
(require 'nrepl-ritz)
М-х 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)
М-х nrepl
Хост: 127.0.0.1
Порт: 42874
Это дает мне связь:
; nREPL 0.1.7-preview
user>
Итак, чтобы проверить это, я бегу
М-х nrepl-ritz-threads
Это дает мне красивую таблицу потоков.
М-х nrepl-ritz-break-on-exception
user> (/ 1 0)
Результат
Это зависает, но иногда показывает скрытый буфер отладки с некоторыми доступными перезапусками. Если я скажу ему передать исключение обратно в программу, он никогда не вернет управление REPL.
Я провел много поисков, но не смог найти ничего более конкретного, чем «убедитесь, что lein находится на вашем пути» (и я сделал это на обеих машинах ...).
(/ 1 0)
- это зависает? Наверное, пытаюсь оценить бесконечность ... ;-) - person firefrorefiddle   schedule 11.03.2013Attempt 2
на локальном компьютере, работает нормально? Это запускаетсяlein ritz-repl
, а затем подключается из emacs - person guilespi   schedule 23.10.2013