请在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-string。

尽管如此,它曾经与 Grimoire 集成,也许它曾经从那里获取相关函数。但是,该网站现在已不存在。

现在它已经添加了对 clojuredocs.org 文档的支持,这些文档中包含用户贡献的“也看到”部分。

...