请在 2024 Clojure状态调查! 中分享您的想法。

欢迎!请查看 关于 页面,了解该工作的更多信息。

0
文档

使用Cider时,C-c C-d C-d 会显示指定函数的文档。在文档的底部应该有一个 "也见" 部分,列出相关函数(例如 "doseq" 指向 "for")。但不知为何,这部分消失了。我是不是不小心关闭了它?我该如何将其找回?

顺便问一下,那些“相关函数”信息是从哪里来的?它并没有在文档字符串中写出来...

2 答案

+1

被选中
 
最佳答案

执行 M-x cider-version 会显示我现在运行的是版本 0.24.0。我的Cider设置相当简单,所以 C-c C-d C-d 会运行 cider-doc。将光标放在例如 doseq 上,然后执行此命令将会弹出一个包含以下内容的缓冲区

clojure.core/doseq
[seq-exprs & body] 
Macro
Added in 1.0
  Repeatedly executes body (presumably for side-effects) with
  bindings and filtering as provided by "for".  Does not retain
  the head of the sequence. Returns nil.

clojure.core/doseq is defined in jar:file:<snipped>/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/core.clj.

 Also see: doall dorun for dotimes run! 

[back]

所以好消息是,您并没有疯!

我对实现进行了一些研究,发现 cider-doc 函数依赖于来自 cider/cider-nrepl 的功能,该功能又依赖于来自 cider/orchard 的功能,后者再次从 ClojureDocs 中提取 see-also 信息。

造成崩溃的原因非常多,但最有可能的是 CIDER 开发者不小心打破了某些东西。

检查您使用的 cider 版本,以及 cider/cider-nreplnrepl/nrepl 的版本。如果这些中的任何一个版本是 -SNAPSHOT,尝试回退到一个稳定的版本,看看是否能够解决这个问题。为了参考,我使用的是 CIDER 0.24.0 和 cider-jack-in,因此在我的机器上会自动拉取 cider/cider-nrepl 0.24.0 和 nrepl/nrepl 0.6.0。

Clojurians Slack 上的 #cider 频道有许多乐于助人的人,如果无法将 CIDER 恢复到所需状态,他们可能会帮助您调试此问题。


编辑
在对 cider/orchard 的一些修改后,我发现:由于我在的中国,netlify(cider 下载信息所在的地方)不稳定。我可能在上次操作的时候损坏了本地缓存,cider 无法从 ClojureDocs 中检索信息。我的“修复”是使用 VPN 手动下载信息并更新本地缓存。
0

尝试 C-c C-d C-c,它会显示 clojuredocs.org 的文档。

我认为 Cider 的常规文档中从来没有过“相关条目”,因为就像你说的,它只是使用了 doc 字符串。

尽管如此,它曾经与 Grimoire 集成,也许它从那里拉取了相关函数。不过,那个网站现在已经消失了。

现在它已增加了对 clojuredocs.org 文档的支持,并且这些文档有一个“相关条目”部分,这是用户投稿的。

...