【问题标题】:Is there a way to look into jvm/Clojure source code from repl?有没有办法从 repl 中查看 jvm/Clojure 源代码?
【发布时间】:2019-08-13 21:43:13
【问题描述】:

由于 Clojure 的某些部分是用 Java 编写的,有没有办法从 repl 中查看源代码的这些部分?我正在寻找这样的东西:

(source clojure.lang.Numbers/add)

因为这部分是用Java实现的 source 打印 Source not found 并返回 nil

【问题讨论】:

  • 如果您使用像 IntelliJ 这样的 IDE,您可以轻松地ctrl+b 访问 Java 源代码。无论如何,这可能比在 REPL 中运行命令更容易使用和更有帮助。
  • javadoc 并不能完全满足您的需求,但它可能会帮助您走上正确的道路。

标签: clojure read-eval-print-loop


【解决方案1】:

这取决于您使用的环境。 使用纯 REPL,您的能力非常有限。

两个最流行的 IDE 是 Cursive 和 Emacs Cider。

正如@Carcigenicate 已经指出的那样,Cursive 具有出色的 Java 支持,并允许您轻松跳转到 clojure Java 源代码(或任何其他 3rd 方库源代码 - 如果源代码已发布)。 它还允许您非常轻松地调试 Clojure 编译器本身。

Emacs Cider 对 Java 有一些支持。 开箱即用,您可以跳转到 JDK 源代码(有一些注意事项,请参阅 https://github.com/clojure-emacs/cider/issues/2687)。 对于其他工件(例如 clojure.lang 本身或其他 3rd 方 java 库),您应该能够跳转到源代码,只要您将相应的 source jar 添加到:resource-paths(假设这里是基于 leiningen 的项目)。 有关 Cider 支持的更多信息,请参见此处。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多