我该如何让PHPStorm自动导入命名空间到use语句中?

17

我在首选项中勾选了“启用命名空间范围内的自动导入”,但是当我从自动完成中选择一个类时,它仍然保留其完全限定名称而不是将其放置在use语句中。我做错了什么,如何强制phpstorm自动导入这些内容呢?


你正在进行操作的文件是否也有命名空间?这对我来说很好用。请尝试以下步骤:1)禁用所有第三方插件;2)执行“文件|无效缓存...”并重新启动(谁知道呢...)。此外,有没有可能提供一些屏幕录像(以查看确切的情况,以防您以某种不同的方式进行操作)? - LazyOne
非常尴尬的是,该文件的命名空间不正确。如果您想将此评论作为答案提交,我会选择它作为答案。 - KinsDotNet
我刚刚发现它对我不起作用,因为我启用了省电模式。所以,请检查您是否已启用它(菜单文件->省电模式),并查看禁用它是否有任何区别。 - pstryk
2个回答

25

确保您执行此操作的文件实际上具有正确的命名空间(这是 启用命名空间范围内自动导入 选项的要求)。

如果在非命名空间文件中工作... 您应该启用 启用文件范围内自动导入 选项(出于与旧代码更好的兼容性原因,默认情况下未启用)。


这里是文档链接:https://www.jetbrains.com/help/phpstorm/2016.2/auto-import.html - Aerendir
此外,“启用从全局范围自动导入”似乎强制使用“use”语句,而不是在前面加上反斜杠。 - Umur Karagöz
@UmurKaragöz 没错,因为这就是“import”的意思。在 2018.1 版本中,他们引入了更好的控制方式,现在你可以使用前置斜杠,或者依赖于回退逻辑。但这是通用的(同时涵盖文件和命名空间范围)。 - LazyOne

6
截至今天(PhpStorm 2022.1),您应该在“Editor > General > Autoimport”中选择“prefer import”选项,而不是“prefer FQN”。请参考以下截图: enter image description here

谢谢你。很奇怪,在设置中搜索“自动导入”并没有显示该配置设置的区域 :-(同时在官方的IntelliJ IDEA帮助网站上找到了这个 https://www.jetbrains.com/help/idea/creating-and-optimizing-imports.html#import-packages-instead-of-single-classes - ChrisDeDavidMindflowAU

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接