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

17

我刚开始使用Juno几天,发现内容辅助机制与以前不同。

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

Boolean isVisible

Juno的内容辅助将为您提供一个带有变量名称的下拉列表

isVisibleBoolean

提示信息。

非常烦人的是,无论我输入什么(; 或 空格),"isVisibleBoolean"都会被选中。

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

非常感谢。

我目前使用的是Mac OS X 10.8.1,尚未在Windows上进行测试。


1
不确定Juno,但在Luna中,你可以取消选择Window->Preference->Java->Editor->Content Assist->Insert single proposals automatically. - BrainSlugs83
谢谢你的回答,我已经从Eclipse转到IntelliJ了,:D - hjbolide
5个回答

7
根据讨论 Eclipse Bug 412992,请检查您的 Content Assist 自动激活设置: 窗口->首选项->Java->编辑器->Content Assist
例如,如果字符 a-z 被列为“Java 的自动激活触发器”,您可以将其移除,这样在按下 ' ' 或 ';' 后类型名称就不会自动附加到新变量名上。根据可用选项,您需要确定最佳配置及权衡措施以适合您的编码风格。

2
这有点糟糕——就好像默认设置很糟糕,而且无法配置为不糟糕——但是有几个选项可以让它们变得稍微好一些——@ Daniel在下面的回答中建议只在里面放入“.”和大写字符,这是一个相当不错的开始——或者在Luna中——在内容辅助菜单中有一个选项“自动插入单个提案”,如果取消勾选,问题也会消失。 - BrainSlugs83

3

2
这仍然是Eclipse 2018-12中存在的问题,只有当您将“Java自动激活触发器”设置更改为例如“._abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ”,才会出现这种情况,这将使内容辅助(几乎)总是弹出,即使没有按下 Ctrl + Space (Windows)。
在Eclipse 2018-12中添加了一个新设置,使其稍微不那么烦人(在错误报告下面的评论中提到):
在“窗口 - 首选项 - Java - 编辑器 - 内容辅助”中勾选“除'Enter'以外的禁用插入触发器”框。
启用此设置后,内容辅助仍将触发(取决于其他设置),但您必须按 Enter 接受建议。

1

并非完美的解决方案:

Window->Preference->Java->Editor->Content Assist->Auto activation Triggers for Java: .ABCDEFGHIJKLMNOPQRSTUVWXYZ

这样做,只有类和类型会弹出建议。

仅仅是一个建议,选择权在你手中。


1
不是一个坏主意(假设我们对事物使用TitleCase - 在大多数情况下我是这样做的,这与标准相违背,但在这种情况下非常有帮助) - 第二个选项是进入同一菜单并取消选中“自动插入单个建议” - 看起来这也可以解决问题。 - BrainSlugs83

-2

你在那里看到的是对象类型的名称补全。这通常是有意义的,例如在输入List book后按下Ctrl-Space将自动补全为List bookList。对于原始类型,不会进行补全,因此在按下Ctrl-Space时,int count不会得到任何补全。这将是一个(不是很好的)解决方案,通过将变量声明为原始布尔值来解决您的问题。

我真正推荐的解决方案是改变您编写变量声明的风格。对于您的示例,请使用isVisible = false代替,并让编辑器提示缺少的类型声明,然后按下Ctrl-1(无论光标放在哪里),再按下Enter


1
嗨Bananeweizen,感谢您的帮助,我正在制作一个示例,您可能已经使用Hibernate很长时间了,在这种情况下,您想要做类似@Id @GeneratedValue(strategy = XXX)Long id的事情。然后eclipse会给你Long idLong,这对于代码的可读性非常合理,但实际上并不是我们想要的,对吧?至于建议,我认为那肯定可以工作,但对于每个字段都这样做太慢且没必要。 - hjbolide

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接