【问题标题】:Eclipse Intellisense?Eclipse 智能感知?
【发布时间】:2011-02-25 22:52:56
【问题描述】:

如何让 Eclipse 在我键入时自动提出建议?我正在寻找 Resharper 的类似 Visual Studio Intellisense 的功能。

目前我每次都必须按CTRL+Space

【问题讨论】:

    标签: eclipse intellisense content-assist


    【解决方案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 上)是:

    1. 关闭 Eclipse。
    2. 重命名工作区目录。
    3. 启动 Eclipse。 (这会创建一个新的工作区目录。)
    4. 从旧工作区导入(带副本)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 .(!+-*/~,[{@#$%^&
    

    【讨论】:

    • 这应该是公认的答案。不过,这会导致一些滞后。