良好的标签补全意味着动态生成,使用反射或其他方式(不需要预定义的补全列表),并且知道特定位置可以和不能跟随什么。
就像在 (.<TAB> x)
中,我会得到x的方法列表,在 (println <TAB>)
中,我会得到本地和全局定义的列表,在 (Math/<TAB>
中,我会得到数学函数的列表...
例如,我喜欢 ghci(Haskell)或 ipython 中 Tab 的工作方式。
良好的标签补全意味着动态生成,使用反射或其他方式(不需要预定义的补全列表),并且知道特定位置可以和不能跟随什么。
就像在 (.<TAB> x)
中,我会得到x的方法列表,在 (println <TAB>)
中,我会得到本地和全局定义的列表,在 (Math/<TAB>
中,我会得到数学函数的列表...
例如,我喜欢 ghci(Haskell)或 ipython 中 Tab 的工作方式。
当然可以,而且有几个工具正在朝这个方向发展。Clojure的最新版本包括一个“开发模式”选项,使构建此类工具更加容易;例如,它关闭本地清除以帮助调试,并且意图最终能够导出有关编译过程的更多信息,供IDE和相关工具使用。这被广泛认为是改进Clojure生态系统的一个领域,从我的观察中,有几个非常聪明的人正在致力于此。
我使用Emacs作为编辑器,配合Slime和Emacs auto-complete,并且已经在Emacs中为Repl启用了所有这些功能:Java类和字段的自动完成,Clojure函数的自动完成以及文档。不幸的是,如果您没有使用Emacs作为编辑器/IDE,则无法使用这些功能。