Eclipse 智能感知?
Posted
技术标签:
【中文标题】Eclipse 智能感知?【英文标题】:Eclipse Intellisense? 【发布时间】:2011-02-25 22:52:56 【问题描述】:如何让 Eclipse 在我键入时自动提出建议?我正在寻找 Resharper 的类似 Visual Studio Intellisense 的功能。
目前我每次都必须按CTRL+Space。
【问题讨论】:
【参考方案1】:您不必按 CTRL * space 但可能延迟太大或您不喜欢触发器(默认为“.”)。前往
窗口 -> 首选项 -> Java/编辑器/内容辅助
并根据自己的喜好更改自动激活下的设置。
如果这不适用于 Windows 用户,请查看 this answer。
【讨论】:
用户 Kevin Rossi 试图编辑指出这一点(这确实是一条评论):“这不适用于 Eclipse Juno C/C++ 发行版” Eclipse 中的每个编辑器都可能有自己的自动激活触发器——激活相同的字符在任何语言中都没有意义。 在 Mac 中是ADT -> Preferences -> Java/Editor/Content Assist
【参考方案2】:
通过将“Java 的自动完成触发器”设置为
,我已经更接近于类似 VisualStudio 的行为了.(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
并将延迟设置为 0。
现在我想了解如何在按下时自动完成方法名称(就像 VS 的 Intellisense 所做的那样。
【讨论】:
这是哪个版本的eclipse? “Java 的自动激活触发器”文本框只允许我输入 4 个字符。 这很好用。好多了,因为它现在实际上会显示局部变量和所有内容。谢谢! @HappyCoder4U 这可能无济于事,但我使用的是 eclipse 3.7M5。 你是天才 :) 但是对于非 Java 语言没有这样的设置 :( 太棒了。谢谢!在 Mac (3.6.1) 上使用 Eclipse,参数名称是“Java 的自动激活触发器” 一切正常,但现在我得到了一些非常恼人的行为:假设我想输入“private int counter;”我从私有开始,自动完成功能开始提供一些建议(首先是 PrivateCredentialPermission)。当我输入 private 并按“空格”时,将插入 PrivateCredentialPermission。有什么办法吗?【参考方案3】:如果即使您已启用 Code Assist 也无法正常工作,则 Eclipse 的配置文件可能已损坏。一个对我有用的解决方案(在 Eclipse 3.5.2 上)是:
-
关闭 Eclipse。
重命名工作区目录。
启动 Eclipse。 (这会创建一个新的工作区目录。)
从旧工作区导入(带副本)Java 项目。
【讨论】:
也为我修复了它 不错的解决方案,它对我真的很有帮助,我的 Eclipse 在 (.) 之后无法显示智能感知,我不得不使用 ctrl+space 3 次来显示它,谢谢你的好解决方案:- )【参考方案4】:托尼是一个纯粹的天才。然而,为了实现更好的自动完成,请尝试将触发器设置为:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz =.(!+-*/~,[@#$%^&
(特别按使用顺序排列,以获得更快的性能:)
【讨论】:
此方法引入了一些错误。例如,如果我输入=
,它会立即提出一些建议。如果我按空格,=
,它会自动插入第一个匹配项。
检查 Java 提案、Java 类型提案和 Java 非类型提案并将它们按顺序移到顶部,对我有用。
有关空间问题的一些解决方案,请参阅此堆栈溢出问题:***.com/questions/14297735/…
除句号外,所有特殊字符都会使 Intellisense 行为变得古怪。基本上,如果您在输入字符后不希望它进行智能感知,那么您就不希望它出现在此列表中。【参考方案5】:
我曾经遇到过同样的问题,然后我搜索并找到了这个,它对我有用:
我没有选中一些框,所以我再次检查了它们,然后它起作用了。去吧
Windows > 首选项 > Java > 编辑器 > 内容辅助 > 高级
并选中您想要的复选框。
【讨论】:
您也可以按优先级排列提案。如果是显示与你的标识符相关的方法和属性,把 Java Proposals (Task Specific) 先放【参考方案6】:d3dave 的回答很酷。然而 theGreenGarbage 提到了一个我也觉得很烦人的问题。所以这里有一个在“=”符号后和输入空格时不会立即提示的内容:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.(!+-*/~,[@#$%^&
我所做的只是从数组中删除空格和 '=' 字符 :)
或者,如果您在输入空格时需要建议,但不是在“=”符号之后:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz .(!+-*/~,[@#$%^&
【讨论】:
这应该是公认的答案。不过,这会导致一些滞后。以上是关于Eclipse 智能感知?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Eclipse IDE for Java 中启用自动完成(智能感知)[重复]