【问题标题】:Cannot get instrumentable syms in project via Leiningen plugin无法通过 Leiningen 插件在项目中获取可检测的符号
【发布时间】:2019-12-08 16:59:41
【问题描述】:

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

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

【问题讨论】:

    标签: plugins clojure specifications leiningen


    【解决方案1】:

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

    (load "orgname/project/core")
    

    从项目中运行的代码块中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-23
      • 2021-07-23
      • 1970-01-01
      相关资源
      最近更新 更多