Eclipse Intellisense?


Answers:


78

您不必按CTRL*,space但是可能延迟太大或您不喜欢触发器(默认为“。”)。去

窗口->首选项-> Java /编辑器/内容辅助

并将“ 自动激活”下的设置更改为您喜欢的设置。

如果这不适用于Windows用户,请参阅此答案


1
用户Kevin Rossi试图进行编辑以指出这一点(这确实是一条评论):“这不适用于Eclipse Juno C / C ++发行版”
DenysSéguret2012年

Eclipse中的每个编辑器都可能有自己的自动激活触发器-在相同的字符上进行激活在任何一种语言中都没有意义。
nitind

在Mac中是ADT -> Preferences -> Java/Editor/Content Assist
Adil Malik

169

通过将“ Java自动完成触发器”设置为

.(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

并将延迟设置为0。

现在,我想了解如何在按下时使其成为自动完成方法的名称,就像VS的Intellisense一样。


1
这是哪个版本的Eclipse?“用于Java的自动激活触发器”文本框仅允许输入4个字符。
Zesty,

3
这很好。更好,因为它实际上将显示局部变量以及现在的所有内容。谢谢!@ HappyCoder4U这可能无济于事,但我使用的是Eclipse 3.7M5。

2
您是个天才:)对于非Java语言,没有这样的设置:(
Ivan

1
太棒了 谢谢!在Mac(3.6.1)上使用Eclipse时,参数名称为“ Java的自动激活触发器”
ninjaPixel 2011年

4
一切正常,但是现在我得到一些非常令人讨厌的行为:假设我想输入“ private int counter”;我从private开始,自动完成功能有一些建议(第一个建议是PrivateCredentialPermission)。完成键入private并按“空格”后,将插入PrivateCredentialPermission。可以解决吗?
VM4 2013年

41

托尼是一个纯粹的天才。但是,要获得更好的自动完成功能,请尝试将触发器设置为此:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz =.(!+-*/~,[{@#$%^&

(按使用顺序进行了特定排列,以提高性能:)


2
此方法引入了一些错误。例如,如果我输入=,它将立即提示一些内容。如果按空格键= ,它将自动插入第一个匹配项。
theGreenCabbage 2014年

检查Java提案,Java类型提案和Java非类型提案并按顺序将它们移到最上面,这对我有用。
Shailendra Singh Rajawat 2014年

看到这个堆栈溢出问题的一些解决空间的问题:stackoverflow.com/questions/14297735/...
威廉·达顿

除句点外,所有特殊字符都将使Intellisense行为变得混乱。基本上,如果您在键入字符后永远不想让它进行Intellisense,则不需要在此列表中。
安德鲁(Andrew)

6

如果即使您已经启用了代码辅助功能,它也无法正常工作,则Eclipse的配置文件可能已损坏。一个对我有用的解决方案(在Eclipse 3.5.2上)是:

  1. 关闭Eclipse。
  2. 重命名工作空间目录。
  3. 启动Eclipse。(这将创建一个新的工作空间目录。)
  4. 从旧的工作区导入(带副本)Java项目。

也为我修复了该问题
Kenci 2015年

好的解决方案,对我真的很有帮助,我的Eclipse在(。)之后无法显示intellisense,我不得不使用ctrl + space 3次来展示它,谢谢您的出色解决方案:-)
Muhammad

3

我曾经遇到过同样的问题,然后我搜索并找到了这个问题,它对我有用:

我有一些未选中的框,所以我再次检查了一下,然后它起作用了。只是去

Windows>首选项> Java>编辑器> Content Assist>高级

并选中所需的框。


3

d3dave的答案很酷。但是,绿色垃圾提到了一个问题,我也觉得很烦。因此,这是一个不会立即在'='符号后以及键入空格时建议的内容:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.(!+-*/~,[{@#$%^&

我所做的只是从数组中删除空格和'='字符:)

或者,如果您在键入空格时需要建议,但不要在'='符号后输入:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz .(!+-*/~,[{@#$%^&

这应该是公认的答案。但是,这会导致一些滞后。
尼尔·乔杜里
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.