有可能在Clojure REPL中有u good uu tab补全吗?

有可能在Clojure REPL中有u good uu tab补全吗?,clojure,read-eval-print-loop,tab-completion,Clojure,Read Eval Print Loop,Tab Completion,好的制表符补全意味着使用反射或任何东西(不需要在某个地方预先定义补全列表)动态生成,并且知道在特定的地方可以和不能遵循什么 就像在(.x)中,我会得到x的方法列表,在(println)中,我会得到局部和全局定义列表,在(Math/中,我会得到数学函数列表 例如,我喜欢Tab在ghci(Haskell)或ipython中的工作方式。这当然是可能的,而且一些工具正朝着这个方向发展。clojure的最新版本包括“开发模式”选项,使构建此类工具更容易;例如,它关闭本地清除以帮助调试,其目的是最终能够导出

好的制表符补全意味着使用反射或任何东西(不需要在某个地方预先定义补全列表)动态生成,并且知道在特定的地方可以和不能遵循什么

就像在
(.x)
中,我会得到x的方法列表,在
(println)
中,我会得到局部和全局定义列表,在
(Math/
中,我会得到数学函数列表


例如,我喜欢Tab在ghci(Haskell)或ipython中的工作方式。

这当然是可能的,而且一些工具正朝着这个方向发展。clojure的最新版本包括“开发模式”选项,使构建此类工具更容易;例如,它关闭本地清除以帮助调试,其目的是最终能够导出有关编译过程的更多信息,供IDE和相关工具使用。这被广泛认为是改善Clojure生态系统的一个领域,从我的观察中也可以看出注意:有几个非常聪明的人正在研究它。

请看一看比默认REPL更好的REPL。它涵盖了您提到的三个用例中的两个,而不包括Java实例方法完成


如果您使用v2+,它是由
lein REPL
命令调用的默认REPL。

当前Eclipse的beta版逆时针REPL极大地改进了代码完成,并涵盖了所有情况,包括Java完成。当然,除了不是独立的命令行REPL。Clojure是一种动态语言这是对类型上的补全的限制,在Haskell这样的强类型语言中,这要容易得多。

我使用Emacs作为Slime和的编辑器,并在Emacs中为Repl提供了所有这些功能:Java类和字段的自动补全,Clojure函数的自动补全和文档。不幸的是如果您不使用Emacs作为编辑器/IDE,这将不起作用。

看起来这件事做得或多或少很好。它受到启发,看起来像IPython,并提供了选项卡完成功能(不完整,提到的3个案例中有2个)并且有助于在控制台中开发Clojure。虽然不是很稳定。

所以要在控制台REPL中使用它,我基本上只需等待更多?“…极大地提高了代码完成”->所以我希望它最终也会出现在命令行中;“在Haskell这样的强类型语言中更容易一些。”->我提到ipython就是因为这个。CCW的REPL是一个NREPL客户端,但NREPL用于执行代码并返回其输出,而不是代码条目。CCW使用的完成代码与Eclipse和其他CCW代码紧密相连,因此我认为它不会很快被合并到其他NREPL客户端中。以前也有人问过同样的问题: