Вызов cider-refresh show Не знаю, как сделать локализованную переменную псевдонимом

Я использую Emacs 25 и CIDER 0.18.0.

Я использую cider-connect для подключения к работающему процессу nREPL. После подключения при попытке вызвать cider-refresh отвечает "Не знаю, как сделать локализованную переменную псевдонимом".

Я пытался выполнить отладку, настроив Emacs для трассировки функции и просматривая буферы компиляции байт-кода.

Множество сообщений в сети ссылаются на использование cider-refresh, поэтому я уверен, что это должно работать.

Как я могу определить и исправить эту проблему?


person Gustav Bertram    schedule 05.09.2018    source источник


Ответы (1)


В версии CIDER 0.18.0 функция cider-rename была переименована в cider-ns-rename. Код определяет псевдоним для старой функции, который указывает на новую функцию.

В проекте, над которым я работаю, был файл .dir-locals.el (а также мой файл .emacs), содержащий код, который привязывается к старому имени функции:

((nil . ((cider-refresh-before-fn . "integrant.repl/suspend")
         (cider-refresh-after-fn . "integrant.repl/resume"))))

Поскольку они относятся к cider-refresh (теперь это псевдоним) вместо cider-ns-refresh, вызов функции завершается с ошибкой, упомянутой выше.

Изменение .dir-locals.el и .emacs для ссылки на новую функцию (например, cider-ns-refresh-before-fn) устранило проблему.

person Gustav Bertram    schedule 05.09.2018