2024 年 Clojure 状态调查 中分享您的观点!

欢迎!请参阅 关于 页面以了解更多此网站的工作信息。

+1 投票
编译器

你好
我克隆了这个项目 https://github.com/unclebob/Euler,并使用 VScode 打开。我添加了 Calva,现在正在教程中进展到一半。我知道 "未解析的符号" 的意思,但在 Clojure 项目中不知如何修复,尤其是这个项目本来是能运行的。我知道作者使用了 Intellij,并且我认为是 Ultimate 版本。我有了社区版本(我知道有 eval,如果没有其他选项,我会使用它。我只是想知道如何自己解决问题)。我能够运行 Calva 自带的启动教程,但编译器错误仍然存在。

2 个答案

+1 投票

你好,我并不是 Calva 专家,但你可能认为这些(交互式)讨论论坛是一个找到帮助解决问题的人的好地方。

https://calva.io/#have-questions-and-feedback-need-help

+1 投票

问题是,当使用:refer :all时,clj-kondo无法静态地看到哪些变量被引进,除非将依赖项一起进行lint。在Calva中,如果您在根目录下打开项目,其中包含了deps.ednproject.clj,这会自动发生,clojure-lsp会计算classpath,并使用clj-kondo在classpath上lint所有依赖项。之后,通过refer :all引进的变量会被正确解析。

在根目录下打开这个特定项目时,不会有这种效果,因为没有deps.ednproject.clj。在e1目录下打开项目是可行的。

非常感谢。我会试试这个。
项目完成索引后,您可能需要编辑文件,例如在某处插入空格以重新触发lint检查。
...