Eclipse Contentassist仅限完整缩写

时间:2016-01-05 08:56:12

标签: eclipse code-completion content-assist camelcasing abbreviation

当我想创建一个ImageObserver类型的新变量时,该行开始如下:

IO

我按 Ctrl + Space ,我得到了一些错误的建议!对于不完全匹配的缩写的建议!

Eclipse的内容辅助建议是:

  • IOException(不!完整的缩写是IOE,而不是IO!)
  • IOError(不!完全缩写也是IOE,但不是IO!)
  • IndexOutOfBoundsException(不!完全缩写是IOOBE,而不是IO!)
  • ImageObserver !完整的缩写是IO)
  • ImageOutputStream(不!完全缩写是IOS,而不是IO!)

如何摆脱所有其他非完全匹配的缩写?

2 个答案:

答案 0 :(得分:1)

即使IOExceptionIO开头,但在IOException输入时,您真的希望IO被排除在自动完成状态之外吗?

如果是这样,这听起来像是一个功能请求,但除非你准备好贡献,否则我很快就会看到它被添加。

贡献

如果您对贡献感兴趣,则需要撰写Java Completion Proposal Computer。完成后,您只能在首选项中启用您的提议者( Java / 编辑 / 内容辅助 / 高级)。

你甚至可以将你的特殊完成者绑定到它自己的键盘快捷键,这样你就可以获得"完整的缩写"仅完成。

以下是我将模板建议绑定到 Ctrl + 4 的屏幕截图,因此只需一个组合键,我就可以快速获取它们。

enter image description here

代码推荐人

我还建议阅读Code Recommenders,该项目为Eclipse添加了更为复杂的代码。

我已经提出了一个bug with Eclipse来查看是否可以在卡片上进行排序完美的Camel Case匹配。

答案 1 :(得分:1)

请记住,完成提案属于一系列类别(即许多不同的潜在匹配来源)。您的示例文本IO在逻辑上可以解释为驼峰式缩写(例如ImageObserver作为类名的开头(例如{{ 1}}),或甚至作为驼峰式案例的起始匹配(例如IOException,其缩写以ImageOutputStream开头)。

我不知道有一个工具能够透彻地知道你想要哪一个这么小的输入。默认情况下,Eclipse使用"相关性"订购完成提案,它的重量是"从"开始在驼峰式比赛之前进行比赛(在我看来是正确的)。我知道,没有公开的方式来改变加权算法。

如果这些是您在Content-Assist中根本不想看到的类或包,则可以定义类型过滤器以排除它们。在偏好设置中,转到 Java > 外观> 类型过滤器来执行此操作。但请注意,类型过滤器适用于整个工作区以及UI中的多个位置,而不仅仅是内容辅助完成建议。