我正在使用Emacs 25和CIDER 0.18.0。
我正在使用cider-connect
附加到正在运行的nREPL进程。连接后,尝试调用cider-refresh
时,它的响应是“不知道如何使局部变量成为别名”。
我尝试通过设置Emacs来跟踪功能以及查看字节码编译缓冲区来进行调试。
网络上的大量帖子是指使用cider-refresh
,因此我确信它应该可以使用。
如何识别并解决此问题?
答案 0 :(得分:2)
在CIDER 0.18.0版中,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
以引用新功能(例如➜ (venv:evernote) evernote_bear_project git:(master) ✗ tree
.
├── README.md
├── bear2evernote
│ ├── static
│ └── templates
├── config
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── manage.py
├── sample
│ ├── EDAMTest.py <--- This here imports from `util.files`
│ └── enlogo.png
└── util
├── __init__.py
├── files.py
└── test_files.py
)解决了该问题。