PhpStorm IDE错误后缺少符号/细枝的模板设置页
我只是尝试为PhpStorm配置我的细枝设置,以获得模板文件的自动完成和快速跳转。然而,我似乎输入了一个错误的路径,它关闭了设置页面并生成了一个致命错误 以下是PhpStorm stacktrace:PhpStorm IDE错误后缺少符号/细枝的模板设置页,php,symfony,twig,phpstorm,Php,Symfony,Twig,Phpstorm,我只是尝试为PhpStorm配置我的细枝设置,以获得模板文件的自动完成和快速跳转。然而,我似乎输入了一个错误的路径,它关闭了设置页面并生成了一个致命错误 以下是PhpStorm stacktrace: java.lang.IllegalArgumentException: Argument for @NotNull parameter 'path' of fr/adrienbrault/idea/symfony2plugin/templating/path/TwigPath.<init&g
java.lang.IllegalArgumentException: Argument for @NotNull parameter 'path' of fr/adrienbrault/idea/symfony2plugin/templating/path/TwigPath.<init> must not be null
at fr.adrienbrault.idea.symfony2plugin.templating.path.TwigPath.$$$reportNull$$$0(TwigPath.java)
at fr.adrienbrault.idea.symfony2plugin.templating.path.TwigPath.<init>(TwigPath.java)
at fr.adrienbrault.idea.symfony2plugin.templating.util.TwigUtil.getTwigNamespaces(TwigUtil.java:1337)
at fr.adrienbrault.idea.symfony2plugin.templating.util.TwigUtil.getTemplateNamesForFile(TwigUtil.java:1242)
at fr.adrienbrault.idea.symfony2plugin.templating.util.TwigUtil.getTemplatesExtendingFile(TwigUtil.java:2180)
at fr.adrienbrault.idea.symfony2plugin.templating.util.TwigUtil.getTemplatesExtendingFile(TwigUtil.java:2168)
at fr.adrienbrault.idea.symfony2plugin.twig.loader.FileImplementsLazyLoader.getFiles(FileImplementsLazyLoader.java:35)
at fr.adrienbrault.idea.symfony2plugin.twig.utils.TwigBlockUtil.hasBlockImplementations(TwigBlockUtil.java:66)
at fr.adrienbrault.idea.symfony2plugin.templating.TwigLineMarkerProvider.attachBlockImplements(TwigLineMarkerProvider.java:197)
at fr.adrienbrault.idea.symfony2plugin.templating.TwigLineMarkerProvider.collectSlowLineMarkers(TwigLineMarkerProvider.java:80)
at com.intellij.codeInsight.daemon.impl.LineMarkersPass.a(LineMarkersPass.java:197)
at com.intellij.codeInsight.daemon.impl.LineMarkersPass.a(LineMarkersPass.java:96)
at com.intellij.codeInsight.daemon.impl.Divider.divideInsideAndOutsideInOneRoot(Divider.java:80)
at com.intellij.codeInsight.daemon.impl.LineMarkersPass.doCollectInformation(LineMarkersPass.java:91)
at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:69)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.e(PassExecutorService.java:423)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1161)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.d(PassExecutorService.java:416)
at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:580)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:525)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:85)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.a(PassExecutorService.java:415)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.b(PassExecutorService.java:391)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:147)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:222)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:389)
at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:161)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
java.lang.IllegalArgumentException:fr/adrienbrault/idea/symfony2plugin/templating/path/TwigPath的@NotNull参数“path”的参数。不能为空
位于fr.adrienbrault.idea.symfony2plugin.templating.path.TwigPath.$$$$reportNull$$$$0(TwigPath.java)
位于fr.adrienbrault.idea.symfony2plugin.templating.path.TwigPath.(TwigPath.java)
位于fr.adrienbrault.idea.symfony2plugin.templating.util.TwigUtil.getTwigNamespaces(TwigUtil.java:1337)
位于fr.adrienbrault.idea.symfony2plugin.templating.util.TwigUtil.getTemplateNamesForFile(TwigUtil.java:1242)
位于fr.adrienbrault.idea.symfony2plugin.templating.util.TwigUtil.getTemplatesExtendingFile(TwigUtil.java:2180)
位于fr.adrienbrault.idea.symfony2plugin.templating.util.TwigUtil.getTemplatesExtendingFile(TwigUtil.java:2168)
位于fr.adrienbrault.idea.symfony2plugin.twig.loader.FileImplementsLazyLoader.getFiles(FileImplementsLazyLoader.java:35)
位于fr.adrienbrault.idea.symfony2plugin.twig.utils.TwigBlockUtil.hasBlockImplementations(TwigBlockUtil.java:66)
位于fr.adrienbrault.idea.symfony2plugin.templating.TwigLineMarkerProvider.attachBlockImplements(TwigLineMarkerProvider.java:197)
位于fr.adrienbrault.idea.symfony2plugin.templating.TwigLineMarkerProvider.collectSlowLineMarkers(TwigLineMarkerProvider.java:80)
位于com.intellij.codeInsight.daemon.impl.LineMarkersPass.a(LineMarkersPass.java:197)
位于com.intellij.codeInsight.daemon.impl.LineMarkersPass.a(LineMarkersPass.java:96)
在com.intellij.codeInsight.daemon.impl.Divider.divideInsideAndOutsideInOneRoot上(Divider.java:80)
在com.intellij.codeInsight.daemon.impl.LineMarkersPass.docollectioninformation(LineMarkersPass.java:91)
在com.intellij.codelhighlighting.TextEditorHighlightingPass.collectInformation上(TextEditorHighlightingPass.java:69)
在com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.e(PassExecutorService.java:423)
位于com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1161)
在com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.d(PassExecutorService.java:416)
位于com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:580)
位于com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:525)
位于com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:85)
在com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.a(PassExecutorService.java:415)
在com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.b(PassExecutorService.java:391)
位于com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:147)
位于com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:222)
在com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:389)
在com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:161)上
位于java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
位于java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
位于java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
在java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)处
这就是设置页面的外观:
如何重置设置页面?我已经卸载了Symfony插件(添加/删除设置页面),但没有任何效果,重新安装时仍然有空页面 这个解决方案对我有效:
- 在操作系统文件资源管理器中打开project.idea目录
- 找到symfony2.xml文件
- 将文件重命名为类似symfony2_bkup.xml的名称
- 重新安装插件
- 重新启动PHPStorm
- 允许提示启用自动配置
- 进入“设置>语言和框架>PHP>Symfony>细枝/模板”
- 现在应该可以了李>
- 如果您有以前的设置,请将它们从备份xml文件复制到已生成的新文件中
<option name="twigNamespaces">
<list>
<twig_namespace custom="true" namespace="MyCompany" namespaceType="ADD_PATH" />
</list>
</option>
然后需要添加路径属性,如下所示:
<option name="twigNamespaces">
<list>
<twig_namespace custom="true" namespace="MyCompany" namespaceType="ADD_PATH" path="path/to/custom/views" />
</list>
</option>
保存xml文件更改后,请确保重新启动PHPStorm 禁用symfony插件时会出现什么错误?禁用symfony插件时不会出现错误-这是因为只有symfony插件才能显示设置页面。就像我说的,重新安装后设置页面再次被破坏。嗯,首先尝试禁用所有自定义插件。这在99%的情况下都会有所帮助。否则,请尝试清除.PhpStorm2018.3目录,看我是否有相同的问题。我试图禁用所有自定义插件,但没有帮助。虽然“projects/A”和“projects/B”目录中有-2 Symfony projecst,但我有非标准的目录结构。@TomášVotruba感谢您的评论,在此期间我没有解决问题。如果有,请告诉我!我没有尝试的是一个完整的重新安装,我想避免。。