因此,在Eclipse Luna上,我经常遇到我正在键入方法名称的情况,但是第一个自动完成建议不是我要查找的方法,而是前缀等效但更长的东西,如下例所示:
在这个例子中,我只想要element(String name)
方法,所以我不是点击Return,而是输入(
。结果非常令人讨厌,是这样的:
这显然不是我想要的。当我点击开括号((
)时,有没有办法阻止Eclipse执行自动完成?
这些是我的内容辅助设置(很明显,我在这个eclipse安装中根本没有安装代码推荐器):
对此的破解是改变Eclipse对提案进行排序的方式。
您可以转到Preferences
菜单,然后转到要编辑排序的部分。然后去de Editor
部分和Content Assist
。例如,对于Java编辑器,它将是Preferences > Java > Editor > Content Assist
。
你会在窗口中间或多或少地看到一个名为Sorting and filtering
的部分。里面有一个名为Sort proposals
的选项,你可以从by relevance
改为alphabetically
。保存关闭。
有了这个,你将按字母顺序获得提案列表顺序,element()
将在element
开始的其他方法之前。
编辑:在Ubuntu 14.04中运行的Eclipse Luna测试,它的工作原理。在编写(
时,您仍然可以完成代码,但是将使用提案列表中提供的较短选项完成。如果你想使用另一种方法,你可以继续写一些字母,最短的选项会消除提案,因为它与你写的不符。
在Eclipse 4.11(2019-03)中,可能更早,答案是在首选项→Java→编辑器→内容辅助→禁用插入触发器,但“输入”除外。在我检查了那个盒子后,编辑变得不那么烦人了。
我不知道为什么Eclipse默认不这样做。谁输入map.put(
并希望自动完成map.compute()
?
您正在与之抗争的功能是新的“智能代码完成”,它根据平均使用次数来命令方法。不要问我从哪里得到数据。另见:http://www.eclipse.org/recommenders/manual/#intelligent-code-completion
要禁用该功能,请转到首选项页面代码推荐器|完成并取消选中“启用智能代码完成”。
我想你的问题是子串匹配。
转到窗口 - >首选项 - > Java->编辑器>内容辅助。
在排序提案部分中,取消选中显示子字符串匹配。
我发现相关性更有用,然后按字母顺序排列。我通常检查隐藏的隐藏提议在调用目标中不可见,并且也隐藏了已弃用的引用。
我希望它有所帮助。