У меня есть проект leiningen. В одном из исходных файлов clojure я определил несколько записей. Мой рабочий процесс обычно заключается в запуске emacs и подключении к REPL «lein swank». Подключившись к REPL, я переключаюсь в соответствующее пространство имен и C-c C-k для файла, чтобы начать работать с REPL и кодом в файле. Однако, если я внесу изменения в записи в этом файле и нажму C-c C-k, REPL не подхватит изменения.
Таким образом, каждый раз, когда мне нужно внести изменения в запись, я должен остановить процесс lein swank, перезапустить его и снова подключиться к нему из emacs. Это очень быстро устаревает. Что мне не хватает? Я пробовал C-c C-l вместо C-c C-k, но это не работает. Я пытался удалить каталог class в корне проекта, но это тоже не помогло.
Буду признателен за любые идеи или рекомендации.
Кроме того, я всегда работаю в пространстве имен, где определены записи.
Редактировать: я фактически меняю реализацию протокола в derecord. Как только я изменю его и скомпилирую с помощью C-c C-k и создам новую запись в REPL, REPL по-прежнему будет использовать старую реализацию протокола.
C-c C-c
для компиляции отдельных форм верхнего уровня. Кстати, естьC-c ~
для переключения пакета и каталога REPL на текущий файл и точку. - person Svante   schedule 24.03.2011