IntelliJ IDEA
13已开始在我的本地设置中展示一种非常奇怪的行为。
即,在添加到现有项目的任何新Java
类中,Code Completion
不起作用。因此,在新类中声明任何类型的对象变量,然后键入该变量的名称,然后输入点(。)之后,对相应对象的任何方法都没有建议。
例如,在声明
之后File f = new File("/home");
键入f.
不会显示File
类中所有方法的列表,从中选择一个。事实上,当键入点(。)时,没有任何建议出现在IDE窗口的左下角(在状态栏中),消息"标识符是预期的。预期的标识符。"被展示。有时,会提出一系列完全不相关的方法,这些方法来自不相关的组件或库。
奇怪的是,如果上述声明发生在任何现有的类中,Code Completion
按预期工作。
在机器重启,IDE重启,项目重新导入,关闭/重新打开或重建的许多组合之后,此行为仍然存在。
有什么想法吗?
答案 0 :(得分:21)
确保在File - >中标记所有源目录。项目结构 - >模块。
答案 1 :(得分:20)
确保在运行IntelliJ时未处于省电模式(选中文件[菜单] - >省电模式)。如果启用了省电模式,IntelliJ将无法运行background tasks, including code completion。
答案 2 :(得分:12)
对于粉丝来说,有一件事对我有帮助(自动完成只显示演员 领域 的instanceof 是因为我打开了一个maven模块,它没有正确链接到它的子节点(它有一个注释掉的子模块部分),所以IntelliJ只显示maven java文件基本上是“文本”文件,带有一个小的“j”在项目窗格中的图标中。修复根maven pom.xml文件以包含子目录作为模块和瞧,它们再次被视为真正的java文件,woot!
答案 3 :(得分:8)
我正在使用IntelliJ Ultimate 2017.1,我遇到了类似的问题。 Maven项目,试图使用selenium API,但intellisense没有为我提供相对的方法。
以下是我解决问题的方法:
右键单击项目src文件夹
选择Mark Directory As
然后选择Sources Root
答案 4 :(得分:4)
答案 5 :(得分:2)
您的问题可能有两个原因
答案 6 :(得分:2)
右键点击项目 - >添加框架支持 - >选择Maven - >单击“确定”
答案 7 :(得分:2)
对我来说唯一有用的就是杀掉IntelliJ(在Ubuntu上)并再次启动它。
答案 8 :(得分:2)
在根文件夹中剪切文件夹.idea和文件* .iml,然后将其他地方粘贴到项目之外。当你重新打开项目时,自动导入将再次神奇地工作。
答案 9 :(得分:2)
我遇到了同样的问题,这是因为我没有将文件夹标记为来源root。
右键单击您的src目录并将目录标记为>来源根源。
答案 10 :(得分:1)
我在为eclipse-che客户端扩展编码时遇到了这个问题。 Eclipse che模块都是maven类型。我的客户端扩展项目是一个独立的模块,可以独立于父项目进行编译。当我向Intellij导入相同的结构时,我的客户端扩展项目没有给出建议。在将客户端扩展项目包含到父模块(将其添加到pom.xml)后,建议开始显示。
答案 11 :(得分:1)
从设置>编辑器>常规>自动导入> Java>从导入和完成中排除
中删除您的包我遇到过这个问题。这篇文章的解决方案都没有奏效,但我能够修复它,因为我不小心将我的项目包放在“从导入和完成中排除”设置中。
答案 12 :(得分:1)
我有一个groovy项目,其中某种方式jdk没有设置为依赖项,因此jdk类不会自动完成。
修复:
答案 13 :(得分:1)
这不是IntelliJ 13,而是2017.1.1社区版本。在这里添加这个答案,以便其他人从一个源于Gradle配置的原因中受益。
现在,在我的情况下,自动完成,生成覆盖方法和其他功能也无法正常工作。我想到的是,在我的项目设置中,我有多个gradle模块配置。当我清理剩下的模块并保留了该项目所需的唯一一个(除了测试之外)时,所有行为都恢复正常。
同样在Gradle项目的情况下,请记住在Source文件夹中标记所有sourceSet根文件夹。
编辑:如果您不想为每个sourceSet创建多个配置,并且要导入gradle模块,则在导入屏幕上还应禁用为每个sourceSet标志创建模块。没有这个,我在导入模块后必须删除多个模块。
答案 14 :(得分:1)
我有类似的问题,这个主题没有任何帮助。
所以最后我做了它,我清除了IntelliJ的缓存并重启。
档案>无效缓存/重新启动..> Invalidate Cache and Restart
(按钮)
答案 15 :(得分:0)