Как горячая перезагрузка пространства имен в файле save в Leiningen REPL

При использовании leilingen REPL существует ли способ сделать файл или ns автоматически перезагружать в repl для сохранения файла. В настоящее время я перезагружаю ns, введя следующее в repl - (use 'sample.ns :reload-all).

Однако могу ли я перезагрузить его автоматически при сохранении файла?

Ответ 1

Clojure-Watch библиотека делает то, что вам нужно. Он наблюдает файл и выполняет некоторые действия. В вашем случае действие будет состоять в том, чтобы перезагрузить пространство имен из этого файла. Кроме того, для запуска наблюдателя требуется написать начальный код.

Этот путь для меня немного сложнее. Обычный REPL, запущенный непосредственно с Lein, не является эффективным способом разработки. Вам лучше использовать некоторый Clojure -дружественный редактор, такой как Emacs или Lightable.

Ответ 2

Большинство основных редакторов поддерживают пользовательские привязки горячих клавиш и имеют плагин Clojure, который позволяет вам подключаться к активному REPL по сети (через "nREPL" ). Лично я использую vim и поэтому использую vim-fireplace для этой цели.

Это означает, что у вас может быть специальная горячая клавиша для перезагрузки любого файла, который вы редактируете, когда вы его редактируете. Оттуда, обычно тривиально добавлять пользовательский крюк для сохранения, который выполняет перезагрузку.