IntelliJ IDEA 中 Twirl 模板中隐式变量的代码帮助

Posted

技术标签:

【中文标题】IntelliJ IDEA 中 Twirl 模板中隐式变量的代码帮助【英文标题】:Code assistance in IntelliJ IDEA for implicit variables in Twirl Template 【发布时间】:2015-08-17 02:37:31 【问题描述】:

我正在使用 Play!框架和 Twirl 模板引擎,使用 IntelliJ IDEA。在模板中有许多可用的隐式变量(flash、session、requestHeader)。我可以成功引用这些变量中的任何一个,并且我的应用程序将按预期编译和运行。但是,由于这些变量没有明确声明,IDEA 会显示错误(例如,无法解析符号闪存)并且不提供任何代码帮助。虽然这不是一个大问题,但如果可能的话,我想解决这个问题。

我已经搜索了很多解决方案,JetBrains blog 有一篇关于如何为 Velocity 模板执行此操作的帖子,如果有人可以帮助我为 Twirl 模板做同样的事情,我将非常感激!

杰克逊

【问题讨论】:

【参考方案1】:

我找到了解决这个问题的方法,就是在代码中引用全限定名,即。访问闪存变量使用

@play.mvc.Http.Context.Implicit.flash

这个也可以在模板顶部导入,然后在代码中直接引用@flash即可。

这不应该是必要的 - 玩!在没有显式导入它们的情况下知道这些变量,这只是为了 IDEA 的缘故。奇怪的是,我发现通过 IDEA 创建一个新项目后,它确实提供了预期的行为——我可以简单地使用 @flash 而不使用导入,IDEA 会按预期工作。但是,一旦我关闭并重新打开项目,就会出现同样的问题。

目前这是我找到的最佳解决方案,尽管我已联系 IntelliJ 支持,如果他们提供更好的解决方案,我会相应地更新我的答案。

【讨论】:

以上是关于IntelliJ IDEA 中 Twirl 模板中隐式变量的代码帮助的主要内容,如果未能解决你的问题,请参考以下文章

PLAY2.6-SCALA 模板引擎Twirl

TwirlKeys.templateImports with Play 未在 IntelliJ IDEA 模板文件中解析

如何在 Android Studio / JetBrains IntelliJ IDEA 中编辑模板?

Intellij IDEA使用总结

在 IntelliJ IDEA 中的 Freemarker 模板中格式化 HTML

分享IntelliJ IDEA 小技巧之创建类注释模板