有没有办法从repl中查看jvm / Clojure源代码?



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

(source clojure.lang.Numbers/add)

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

这取决于您使用的环境。 使用普通的 REPL 时,您非常有限。

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

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

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

最新更新