Что не так с моей настройкой lein/nrepl/emacs?

Новичок Clojure программист здесь. NREPL в Emacs не работает для меня.

  • Aquamacs 2.5 (Emacs 23.4.1)
  • nrepl.el 0.1.8
  • Leiningen 2.2.0 на Java 1.6.0_51 Java HotSpot(TM) 64-разрядная серверная виртуальная машина

Мой проект - это просто Hello World.

Запуск "lein repl" в оболочке работает, но nrepl.el не работает. Вместо того, чтобы попасть в пространство имен проекта в repl, я просто получаю уровень по умолчанию в пространстве имен "user".

Должно увидеть что-то вроде:

my$ lein repl
nREPL server started on port 57347
REPL-y 0.2.0
Clojure 1.5.1
Hello Project
my.core=> 

Но вместо этого посмотри:

; nREPL 0.1.8-preview
user> (in-ns my.core)
CompilerException java.lang.ClassNotFoundException: my.core, compiling:(NO_SOURCE_PATH:1:1)
user> 

В чистом сценарии nrepl.el я вижу, как идут два процесса Java, и они выглядят правдоподобно. Один из них имеет мой проект на -classpath и реализует реальный repl (сервер), а другой - клиентскую часть java (-D MyProjectPath -m leiningen.core.main repl:headless).

Я получаю ту же потерю, доберусь ли я туда m-x nrepl-jack-in или начиная с оболочки, а затем m-x nrepl, Я получаю ответ, который не знает мой проект.

Интересно, работает ли этот материал для кого-то, или у меня что-то установлено или настроено неправильно? Много версий "0.xxx" здесь происходит...

2 ответа

Похоже, вам не хватает кавычки перед вашим пространством имен, попробуйте следующее:

(in-ns 'my.core)

Обратите внимание на 'до моего.

NRepl всегда запускается в пространстве имен пользователя верхнего уровня. использование M-x nrepl-set-ns, или же C-c M-n в буфере Clojure, чтобы установить пространство имен NRepl для одного из буфера.

В вашем конкретном случае,

  • визит src/my/core.clj, Нажмите C-c M-j начать NRepl,
  • переключиться обратно на src/my/core.clj буфер,
  • Нажмите C-u C-c C-z установить для пространства имен NRepl значение my.core и переключиться обратно в буфер NRepl.

C-u C-c C-z это ярлык для C-c M-n с последующим C-c C-z переключиться на буфер NRepl.

Другие вопросы по тегам