IntelliJのScalaプラグインでTwirlエディタがdefiningを認識しない問題

GitBucketではHTMLのレンダリングにTwirlを使っており、IntelliJScalaプラグインに付属しているTwirlエディタを便利に使用しているのですが、どういうわけかこのTwirlエディタがdefiningを認識せず、definingで定義した変数の補完が効かなかったりエディタ上でエラーとして表示されてしまうという点を不便に感じていました(Playプロジェクトじゃなから?)。

f:id:takezoe:20220117124800p:plain

ずっと諦めていたのですが、最近IntelliJの設定をあれこれ見直しているとフレームワークのPlay2の設定のところにインポートの設定があることに気づいたので、ここにdefiningを提供しているplay.twirl.api.TwirlFeatureImpots._を追加してみたところ、無事definingを認識するようになりました。

f:id:takezoe:20220117122053p:plain

巨大かつ複雑なテンプレートほどdefiningで変数を定義したくなるので、今まで結構不便だなぁと思っていたのですが、これでだいぶ快適になりました。ただ、この他にもmapでcaseを使って分解した変数を認識してくれないことがあったり(ちゃんと認識してくれるケースもある)、Twirlエディタの挙動は結構謎な感じがありますね…。