[英]IntelliJ Code Completion not working for new Java classes
IntelliJ IDEA
13 开始在我的本地设置中表现出非常奇怪的行为。
即,在添加到现有项目的任何新Java
类中, Code Completion
不起作用。 因此,在新类中声明任何类型的对象变量,然后键入该变量的名称,后跟点 (.) 后,不会出现对应对象的任何方法的建议。
例如,声明后
File f = new File("/home");
打字f.
不会显示File
类中所有方法的列表,以从中选择一个。 事实上,在输入点 (.) 时,不会出现任何建议,并且在 IDE 窗口的左下方(在状态栏中)会显示消息“需要标识符。需要标识符”。 被陈列。 有时,会提出一长串来自不相关组件或库的完全不相关的方法。
奇怪的是,如果上述声明发生在任何现有类中, Code Completion
按预期工作。
在机器重启、IDE 重启、项目重新导入、关闭/重新打开或重建的多种组合后,此行为仍然存在。
有任何想法吗?
确保在文件 -> 项目结构 -> 模块中标记所有源目录。
确保您在运行 IntelliJ 时未处于省电模式(文件 [菜单] -> 省电模式是否选中)。 如果启用了省电模式,IntelliJ 将不会运行后台任务,包括代码完成。
对于追随者,帮助我的一件事(自动完成仅显示强制转换字段 instanceof 等)是我打开了一个没有正确链接到其子模块的 Maven 模块(它有一个注释掉的子模块部分),所以 IntelliJ 只是显示maven java 文件基本上是“文本”文件,在项目窗格的图标中带有一个小“j”。 修复根 maven pom.xml 文件以将子目录包含为模块,瞧,它们再次被视为真正的 java 文件,哇!
我正在使用 IntelliJ Ultimate 2017.1,我遇到了类似的问题。 Maven 项目,试图使用 selenium API,但智能感知并没有为我弹出相关方法。
这是我解决问题的方法:
右键单击您的项目 src 文件夹
选择Mark Directory As
然后选择Sources Root
我遇到了同样的问题,这是因为我没有将文件夹标记为源根目录。
右键单击您的 src 目录并将目录标记为> Sources Root。
剪切根文件夹中的文件夹 .idea 和文件 *.iml 并粘贴到项目之外的其他位置。 当您重新打开项目时,自动导入将再次神奇地工作。
您的问题可能有两个原因
右键项目 -> 添加框架支持 -> 选择 Maven -> 点击 OK
唯一对我有用的是杀死 IntelliJ(在 Ubuntu 上)并重新启动它。
这不是 IntelliJ 13,而是更新的 2017.1.1 社区版本。 在此处添加此答案,以便其他人从根源于 Gradle 配置的原因中受益。
现在,在我的情况下,自动完成、生成覆盖方法和其他功能也不起作用。 我发现在我的项目设置中,我有多个 gradle 模块的配置。 当我清理其余模块并保留该项目所需的唯一一个(除了测试)时,所有行为都恢复正常。
同样在 Gradle 项目的这种情况下,请记住将所有 sourceSet 根文件夹标记为 Source 文件夹。
编辑:如果您不想为每个 sourceSet 创建多个配置并且您正在导入 gradle 模块,则在导入屏幕上,您还应该禁用为每个 sourceSet 创建模块标志。 没有这个,我不得不在导入模块后删除多个模块。
我在为 eclipse-che 客户端扩展编码时遇到了这个问题。 Eclipse che 模块都是 maven 类型的。 我的客户端扩展项目是一个独立的模块,可以独立于父项目进行编译。 当我将相同的结构导入 Intellij 时,我的客户端扩展项目没有给出建议。 在我将客户端扩展项目包含到父模块(将它添加到 pom.xml)之后,建议开始出现。
我有一个 groovy 项目,其中 jdk 以某种方式未设置为依赖项,因此 jdk 类不会自动完成。
使固定:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.