无法通过 Leiningen 插件在项目中获取可检测符号

Cannot get instrumentable syms in project via Leiningen plugin

我正在尝试基于 clojure.spec.alpha 编写一个 leiningen 插件。除其他事项外,我想获得项目中已指定的所有功能。这是通过在 clojure.spec.test.alpha 中调用 instrumentable-syms 来完成的。我的插件中有一个函数可以执行此操作,但是当 运行 在另一个项目的上下文中(通过 eval-in-project)时,可检测符号列表为空。我怀疑这是因为在使用插件的项目中对 fdef 的调用(通常是源文件中的顶级形式并注册规范)未被评估,因此在调用时未被拾取instrumentable-syms.

我的问题是,如何确保这些调用得到评估,以便我的插件可以找到项目中的所有规范函数。

尝试做一些事情来加载相关的命名空间,从而使您的程序 "to life",也许如果您有一个像 src/orgname/project/core.clj 这样的文件,那么您可以尝试调用:

(load "orgname/project/core")

来自项目中的代码块 运行。