我经常听说Eclipse的代码完成和编码辅助功能与其他编辑器相比有多好,这就提出了一个问题,是否可以将这些部分从Eclipse代码库中分离出来。
如果这部分与一个API分开,通过它可以告诉它需要知道的事情(项目的文件在哪里,包含的路径是什么,等等),那么它可以返回必要的信息(光标符号的帮助,可能的补全等),任何编辑器(emacs, vim等)都可以使用它。
为什么还没有完成?这些代码辅助部分是否与Eclipse内部捆绑得太紧,无法轻易分离?知道Eclipe内部工作原理的人能解释一下吗?
编辑:这是一个工作设置与SharpDevelop为c#, emacs是UI和信息来自SharpDevelop模块。请看本页的截图。Eclipse的完成支持可以类似地支持emacs和其他编辑器。
eclim项目试图通过直接与eclipse接口来解决这个问题。因此,至少需要一个无头运行的eclipse。虽然eclim的重点是vim集成,但也有其他编辑器的插件(emacs, textmate等)。eclim和编辑器之间的通信是通过服务器接口进行的。
也许不是你要看的东西,但我觉得值得一看:
http://www.eclim.org/内容辅助使用Java项目的内部模型——没有这个模型,内容辅助就不能工作(那么有效)。
我不确定它与Eclipse内部集成得有多紧密,但我知道它使用了Eclipse Resources API(文件系统处理)和其他特性,如Eclipse扩展(无需修改代码即可添加新的补全提供程序)。
总之,我相信将这个完成引擎移植到其他编辑器中,上面提到的编辑器将失去它们相对于Eclipse的简单性(在某些情况下是相对的),因此它可能不会提供前面提到的编辑器的更小的占用空间——所以我认为,为其他编辑器有效地提供这样的引擎是不可实现的。