Eclipse:Java的全文自动完成?

时间:2011-04-22 13:24:50

标签: java eclipse

我可以为Java @ Eclipse提供全文自动完成功能吗?让我们来证明:

最后一段代码:

getVariants().add(new Variant(MediaType.TEXT_XML));

我现在如何编码:

  

getv时[Ctrl +空格] .A [确定]新   V [ctrl + space,向下箭头,   输入] M [Ctrl + Space,Enter]。 text_x

基本上,当我提供字母“TEXT_X”时,Eclipse会完成单词“TEXT_XML”。

我想如何编码:

  

getv时[Ctrl +空格] .A [确定]新   V [ctrl + space,向下箭头,   输入] M [Ctrl + Space,Enter]。 xml

并且Eclipse应该意识到我的意思是“TEXT_XML”(全文自动完成)。

3 个答案:

答案 0 :(得分:3)

据我所知,无法在Eclipse首选项视图中启用全文代码完成。这也困扰了我一段时间。我做了很多挖掘,我很确定没有简单的方法来实现这个目标。

然而, 有两种方法可以实现所需的,但我认为这两种方法都可以解决这个小问题。

  1. JDT Java完成提案计算机有一个Eclipse插件扩展点 - reference page 可以找到实现此扩展点的示例项目in this repository。 这很方便,但仍然有很多样板和繁琐的编码。

  2. 您可以更改内部org.eclipse.jdt.internal.codeassist.CompletionEngine类中的findKeywords方法并编译自己的JDT分支。但出于这么多原因,这是令人沮丧的。首先,这个级别是一个12000线的怪物并且很难跳入。当然,如果你只是攻击了一个kludge,这几乎没有机会成为官方贡献,所以你需要担心关于每次日食的发布。

  3. 此外,未来可能会有一种非常奇怪的方式。虽然这可能会超出您的要求。

    查看Code Recommenders project。这个blog有一个outline of the project objectives 它没有特别提到全文自动完成,但我认为它的匹配算法甚至超出了它。

    修改:在正确的SO精神中,我会及时更新此答案:

    显然,该功能现在已在Code Recommenders插件中实现。请参阅此blog post和此forum thread。我很惊讶它只花了10个位置。对我而言,延伸点似乎更复杂。

答案 1 :(得分:2)

如果您的MediaType类不包含大量可访问的字段/方法,则可以使用

getv[ctrl+space].a[Enter]new V[ctrl+space, down arrow, Enter]M[Ctrl+Space, Enter].[Ctrl+Space, down arrow, Enter]

您可能需要多次按向下箭头,但要选择所需的字段。

答案 2 :(得分:0)

是的,您可以使用模板。 (窗口 - >首选项 - > Java - >编辑器 - >模板)

基本用法是将名称设置为您要键入的内容,并将模式设置为您想要显示的内容。

在我的测试中,我将名称设置为xml,将上下文设置为Java,将模式设置为TEXT_XML并启用自动插入。然后当我输入你的例子时,我能够遵循像......这样的模式。

getv[ctrl+space].a[enter]new V[ctrl+space, down arrow, Enter]M[ctrl+Space, Enter].xml[ctrl+space]

并且由于自动插入已启用 poof 已插入TEXT_XML。

模板具有比这更多的功能,我用于此答案的一个来源是Effective Eclipse

我希望这有帮助!