我正在运行racket
作为repl(使用xrepl),我可以使用,doc
查看一些相关文档(几乎非常棒),但它会启动用于查看文档的Web浏览器。我希望能够在repl中看到正确的文档,类似于在其他repl(R,Clojure,ipython,pry等)中呈现的文档。这可能吗?
例如,在Clojure的lein repl
中,可以做到:
user=> (doc map)
-------------------------
clojure.core/map
([f coll] [f c1 c2] [f c1 c2 c3] [f c1 c2 c3 & colls])
Returns a lazy sequence consisting of the result of applying ...
能够在clojure中看到源((source map)
)也很棒,但我还没有看到任何有关此内容的提示。
我碰巧使用的是Vim(使用slime / tmux),因此任何基于Vim的解决方案都可以使用,可能与其 K 内置帮助有关。
答案 0 :(得分:2)
鉴于Racket文档的性质,我不确定这是否实用。
帮助可交付成果是HTML。
与Clojure(或Emacs Lisp)不同,Racket在函数定义源中没有doc字符串。
球拍文档没有类似于doc字符串的第一行应该是摘要(在命令列表或REPL中使用的短版本)的约定。< / p>
您可以尝试使用xrepl的,desc <id>
命令。 Starting in Racket 6.1.1,如果函数安装了文档,它将打印“蓝盒子”的渲染 - 带有合同和/或类型的函数签名。在许多情况下,这就是你所需要的,比如慢慢记忆。但是没有描述该项目的文字。如果没有为函数安装帮助,它将不会尝试根据函数的定义源显示任何内容。
因此,例如在Emacs的racket-mode中,有一个racket-describe
命令,它不会启动浏览器 - 但它会显示使用shr
的完整HTML帮助(如果有的话)一个单独的Emacs缓冲区。如果没有帮助,它会尝试查找源并提取合同/类型和签名以向您显示。但同样,该来源中没有文档字符串,更不用说在REPL中整齐地显示单行摘要。
有使用Racket的vim粉丝;我所知道的是在Emacs中使用邪恶模式并感觉它是两个世界中最好的。但是,我感谢您使用多种语言的当前工作流程,因此我不建议将其作为您的解决方案。
答案 1 :(得分:0)
我把VROD放在一起,这个解决方案将参考文档解析为Vim可以使用的东西。这基本上可以从clojure的doc
内置帮助中获得,但通过Vim的K
- 帮助。它还有一些突出显示并显示示例。
(它也可以自动完成功能。)