停止空格键按键以在Eclipse中触发自动完成

dav*_*wil 84 java eclipse

在Eclipse Oxygen中,我通过转向启用了针对Java的intellisense风格的建议

Window -> Preferences -> Java/Editor/Content Assist
Run Code Online (Sandbox Code Playgroud)

并设置以下内容

Auto activation delay (ms) -> 0
Auto activation triggers for Java -> .(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
Run Code Online (Sandbox Code Playgroud)

source = Eclipse Intellisense?

除了一个烦人的问题外,这种方法效果非常好.当我点击时spacebar,输入的令牌会自动填充建议列表顶部的任何内容.很公平,除了有时我会键入一个具有完全合法匹配的类/变量名称,但这不会显示为最重要的建议.所以当我自然而然地命中spacebarEclipse时,插入一些完全错误

键入EGCookie我会点击spacebar并获得CookieMonster.

这似乎是一个错误,并且经常发生烦人的事情,但即便如此,我也不想spacebar一般触发自动完成.我可能想要输入尚未声明的变量名称或类似的名称.我想使用自动完成作为辅助工具,但我的自然输入应始终优先于它.

我想停止spacebar触发自动完成,并且要么回退使用enter,要么更好地仍然custom使用普通键入时未使用的键触发自动完成.这有可能吗?

我玩过内容辅助中的所有设置都无济于事.谷歌搜索问题只会返回一系列关于禁用自动完成功能的结果.

UPDATE

这个问题出现在Eclipse的最后6个版本中 - 氧气 [4.7] 霓虹灯 [4.6] 火星 [4.5] Luna [4.4] 开普勒 [4.3]和朱诺 [4.2]

在接受的答案和各种评论中讨论的问题跟踪器上的线程似乎表明此问题已得到承认.

如果有任何Eclipse开发人员正在阅读,我只能说,请考虑修复此问题的好处.

当然,接受的答案中的插件和bug线程中链接的其他插件修复了它.但是,面对这个问题的其他人有多少人知道它或者会费心去寻找和安装它?

自动完成功能是您希望在任何现代IDE中直观且完美地开箱即用的功能.这是IntelliJ IDEA中的情况,因此它目前是一个非常有说服力的理由来切换......

Pas*_*ius 26

问题跟踪器上有一个解决方案.在eclipse/dropins文件夹中复制jar.在下一次重启时,空格将被标记为自动完成触发器.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=348857

  • 看起来很棒但是..它在Eclipse Juno中对我不起作用 - 行为没有变化,空格键仍然激活自动完成.这在开普勒适合你吗?用于切换bug线程中提到的工具的工具栏按钮/菜单项在哪里? (2认同)

Pyv*_*ves 11

Eclipse 2018-12已经为此进行了修补!

Bug 348857的补丁最近被合并到Eclipse项目中,并作为Eclipse 2018-12的一部分发布。您可以在此处下载该版本。

现在,您有了一个新选项来禁用除之外的所有插入触发器enter,这将防止spacebar引起自动补全。

只需转到首选项...- > Java- > 编辑器 -> Content Assist(或Windows- > 首选项 -> Java- > 编辑器 -> Content Assist在Windows上),然后选择禁用除“ Enter”外的插入触发器,如屏幕截图如下: 禁用插入触发首选项


小智 7

使用Eclipse版的SDK版本

1.open Plug-ins查看并找到org.eclipse.jface.text,右键单击,选择import作为Source Project.导入后,您可以在工作区中找到它.

2.在src/org/eclipse/jface/text/contentassist/CompletionProposalPopup.java中

char[] triggers = t.getTriggerCharacter();
if(contains(triggers,key))
Run Code Online (Sandbox Code Playgroud)

改成

if(key!='='&&key!=0x20&&contains(triggers,key))
Run Code Online (Sandbox Code Playgroud)

3.Export org.eclipse.jface.text

右键单击org.eclipse.jface.text的项目文件夹,选择export - > Deployable plugins and fragments,然后选择目标选择存档文件,完成.将eclipse/plugins中的那个替换为您生成的那个.

  • 对于那些想知道如何打开这个视图的人,请转到"窗口" - >"显示视图" - >"其他...",然后在过滤器文本框中输入"plug",然后从框中选择"Plug-ins"在下面按"确定". (2认同)