Eclipse 内容辅助自动为变量附加类型

Posted

技术标签:

【中文标题】Eclipse 内容辅助自动为变量附加类型【英文标题】:Eclipse content assist auto appends type for variable 【发布时间】:2012-09-08 04:08:18 【问题描述】:

我刚开始使用 Juno 几天,内容辅助机制似乎与之前的行为有所不同。

例如,如果我尝试声明一个变量

Boolean isVisible

Juno 的内容助手会给你一个带有变量名的下拉列表

isVisibleBoolean

作为提示。

而且非常烦人的是,无论我输入什么(; 或 SPACE),“isVisibleBoolean”都会被选中。

有人知道如何禁用自动变量类型附加功能吗?

非常感谢。

我目前使用的是 Mac OS X 10.8.1,还没有在 windows 中测试过。

【问题讨论】:

不确定Juno,在Luna,可以取消勾选Window->Preference->Java->Editor->Content Assist->Insert single proposals automatically 感谢您的回答,我已经从 eclipse 转到了 intelliJ,:D 【参考方案1】:

这在 Eclipse 2018-12 中仍然是一个问题,并且似乎只有在您将 Auto activation triggers for Java 设置更改为例如._abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,即使不按 Ctrl+Space (Windows),也会(几乎)始终弹出 Content Assist。

在 Eclipse 2018-12 中添加了一个新设置,使其不那么烦人(在 bug report 下面的 cmets 中提到):

Window - Preferences - Java - Editor - Content Assist 中勾选Disable insertion triggers except 'Enter' 框。

启用此设置后,Content Assist 仍会触发(取决于其他设置),但您必须按 Enter 才能接受建议。

【讨论】:

【参考方案2】:

不是一个完美的解决方案:

Window->Preference->Java->Editor->Content Assist->Java 的自动激活触发器:.ABCDEFGHIJKLMNOPQRSTUVWXYZ

通过这种方式,只会弹出类和类型的提案。

只是一个建议,选择权在你。

【讨论】:

不错的主意(假设我们使用 TitleCase 来做事——我大部分情况下是这样,这违反了标准,但在这种情况下这很有帮助)——第二个选项是进入同一个菜单并取消选中“自动插入单个提案”——看起来这也让问题消失了。【参考方案3】:

根据Eclipse Bug 412992 的讨论,检查您的内容辅助自动激活设置: Window->Preferences->Java->Editor->Content Assist

例如,如果字符 a-z 被列为“Java 的自动激活触发器”,您可以删除它们,并且当您点击 ' ' 或 ';' 时,类型名称不会自动附加到新的变量名称中。您可以根据可用选项确定适合您风格的最佳配置/折衷方案。

【讨论】:

这有点糟糕——就像默认设置很糟糕,而且它们不能被配置为不糟糕——但是有几个选项可以让它们变得更糟糕——@Daniel 下面的回答建议只放“。”并在其中设置大写字符,这是一个很好的开始 - 或者在 Luna 中 - 内容辅助菜单中有一个选项“自动插入单个提案”,看起来如果您取消选中此选项,问题也会消失。【参考方案4】:

似乎不可能。 查看 Eclipse 错误 378588 的答案:https://bugs.eclipse.org/bugs/show_bug.cgi?id=378588

【讨论】:

【参考方案5】:

您看到的是对象类型的名称完成。这通常是有道理的,例如在List book 之后按Ctrl-Space 将完成List bookList。对于原始类型,这没有完成,所以int count 在按下 Ctrl-Space 时不会得到任何完成。通过将变量声明为原始布尔值,这将是(不是很好)解决您的问题的方法。

我真正推荐的解决方案是改变你编写变量声明的风格。对于您的示例,请改写 isVisible = false,让编辑器抱怨缺少类型声明,点击 Ctrl-1 (从您的光标可能放置的位置),输入

【讨论】:

嗨 Bananeweizen,谢谢你的帮助,我在那里做了一个例子,你可能已经使用 Hibernate 很长时间了,在这种情况下你想做类似@Id @GeneratedValue(strategy = XXX) 长编号。然后 eclipse 会给你 Long idLong,这对于代码的可读性来说非常有意义,但真的不是我们想要的,是吗?对于建议,我认为这肯定会奏效,但对每个领域都这样做是缓慢且不必要的。

以上是关于Eclipse 内容辅助自动为变量附加类型的主要内容,如果未能解决你的问题,请参考以下文章

如何告诉 Eclipse 自动显示内容辅助?

Eclipse 内容辅助

eclipse 或 Myeclipse Debug“显示”视图不显示代码辅助

Eclipse JavaScript 编辑器:js 文件的内容辅助,自动完成

Eclipse 上的内容辅助

Eclipse 内容辅助错误