当我输入一个左括号('(')?时,如何让Eclipse不要填写自动完成?

问题描述 投票:7回答:4

因此,在Eclipse Luna上,我经常遇到我正在键入方法名称的情况,但是第一个自动完成建议不是我要查找的方法,而是前缀等效但更长的东西,如下例所示:

在这个例子中,我只想要element(String name)方法,所以我不是点击Return,而是输入(。结果非常令人讨厌,是这样的:

这显然不是我想要的。当我点击开括号(()时,有没有办法阻止Eclipse执行自动完成?

这些是我的内容辅助设置(很明显,我在这个eclipse安装中根本没有安装代码推荐器):

eclipse autocomplete key-bindings
4个回答
3
投票

对此的破解是改变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测试,它的工作原理。在编写(时,您仍然可以完成代码,但是将使用提案列表中提供的较短选项完成。如果你想使用另一种方法,你可以继续写一些字母,最短的选项会消除提案,因为它与你写的不符。


3
投票

在Eclipse 4.11(2019-03)中,可能更早,答案是在首选项→Java→编辑器→内容辅助→禁用插入触发器,但“输入”除外。在我检查了那个盒子后,编辑变得不那么烦人了。

我不知道为什么Eclipse默认不这样做。谁输入map.put(并希望自动完成map.compute()


1
投票

您正在与之抗争的功能是新的“智能代码完成”,它根据平均使用次数来命令方法。不要问我从哪里得到数据。另见:http://www.eclipse.org/recommenders/manual/#intelligent-code-completion

要禁用该功能,请转到首选项页面代码推荐器|完成并取消选中“启用智能代码完成”。


0
投票

我想你的问题是子串匹配。

转到窗口 - >首选项 - > Java->编辑器>内容辅助。

在排序提案部分中,取消选中显示子字符串匹配。

我发现相关性更有用,然后按字母顺序排列。我通常检查隐藏的隐藏提议在调用目标中不可见,并且也隐藏了已弃用的引用。

我希望它有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.