Как использовать пространство имен проекта в SLIME REPL - PullRequest
1 голос
/ 14 января 2012

Я установил lein с плагином swank, Emacs, SLIME и clojure-mode, и создал новый проект, используя lein new.Я назвал проект clojure-test.Затем я открываю clojure_test / src / clojure_test / core.clj в Emacs, и, находясь в этом файле, вызываю M-x clojure-jack-in.Это открывает окно SLIME, которое работает нормально;Я могу загрузить код, используя C-c C-l, переключиться в пространство имен моего проекта, используя C-c M-p, и использовать зависимости, которые я добавил в проект.

Проблема возникает, когда из пространства имен "user" япопытаться использовать пространство имен для самого проекта.Вызов (use 'clojure-test) внутри SLIME из пространства имен «user» приводит к следующей ошибке:

Could not locate clojure_test__init.class or clojure_test.clj on classpath:
[Thrown class java.io.FileNotFoundException]
  1. Почему Clojure выполняет поиск этих файлов?Пространство имен, очевидно, уже загружено, так как я могу переключиться на него через C-c M-p, но по какой-то причине Clojure считает, что эти конкретные файлы важны для использования пространства имен.

  2. Как мне настроить мой проект, чтобы я мог использовать базовое пространство имен из SLIME?Поскольку лейн должен позаботиться об этом, какую информацию я не предоставляю, которая ему нужна?

1 Ответ

2 голосов
/ 14 января 2012

Пространство имен «clojure-test» должно быть в ./src/clojure_test.clj (./src по умолчанию находится в пути к классам, если вы не изменили его в файле project.clj)

Вы положилиэто в src/clojure_test/core.clj (вместо него должен быть ns clojure-test.core)?

См. документацию для libs по адресу http://clojure.org/libs

...