调用 cider-refresh 显示 "Don't know how to make a localized variable an alias"
Calling cider-refresh shows "Don't know how to make a localized variable an alias"
我正在使用 Emacs 25 和 CIDER 0.18.0。
我正在使用 cider-connect
附加到 运行 nREPL 进程。连接后,当尝试调用 cider-refresh
时,它会响应 "Don't know how to make a localized variable an alias"。
我尝试通过设置 Emacs 来跟踪函数并查看字节码编译缓冲区来进行调试。
网络上的大量帖子都提到了使用 cider-refresh
,所以我相当确定它应该有效。
如何识别并解决此问题?
在 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
)解决了问题。
我正在使用 Emacs 25 和 CIDER 0.18.0。
我正在使用 cider-connect
附加到 运行 nREPL 进程。连接后,当尝试调用 cider-refresh
时,它会响应 "Don't know how to make a localized variable an alias"。
我尝试通过设置 Emacs 来跟踪函数并查看字节码编译缓冲区来进行调试。
网络上的大量帖子都提到了使用 cider-refresh
,所以我相当确定它应该有效。
如何识别并解决此问题?
在 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
)解决了问题。