Рабочий процесс для взлома библиотек Clojure с использованием swank-clojure - PullRequest
4 голосов
/ 13 января 2012

Есть ли типичный рабочий процесс для взлома библиотек Clojure?

Скажем, у меня есть мое приложение "Foo", которое опирается на стороннюю библиотеку "Bar", которая была получена из репозитория и включена в проект Foo через lein deps.

Тогда, скажи, что я хочу взломать библиотеку "Бар", поэтому я клонирую ее из github.

Теперь я хотел бы взломать мой локальный клон "Bar", одновременно работая над приложением "Foo", которое зависит от него. Я хотел бы, чтобы все исходные файлы для "Bar" открывались в Emacs вместе со всеми исходными файлами в "Foo", используя один экземпляр swank.

Есть ли простой способ сделать это?

Я хочу изменить мою среду , а не проект. Поэтому я не хочу редактировать project.clj для "Foo", чтобы выполнить это.

Требуется ли для этого установка classpath перед запуском lein swank, или есть лучший способ?

1 Ответ

5 голосов
/ 13 января 2012

Создайте каталог checkouts в своем проекте Foo и создайте символическую ссылку на ваш клон проекта Bar внутри этого каталога.

Процитируйте Leiningen FAQ :

Q : Я хочу взламывать два проекта параллельно, но раздражает переключение между ними.
A : Если вы создаете каталог с именем checkouts в вашемroot проекта и символическая ссылка на некоторые другие корни проекта, Leiningen позволит вам параллельно их взламывать.Это означает, что изменения в зависимости будут видны в основном проекте без необходимости проходить весь цикл install / switch-projects / deps / restart-repl, а копия в извлечениях будет иметь приоритет над зависимостью, объявленной в project.clj.Обратите внимание, что это не замена для перечисления проекта в: зависимости;это просто дополняет это для удобства.

...