playframework / twirl

Twirl is Play's default template engine
Apache License 2.0
549 stars 108 forks source link

can not use using/given in twirl templates #839

Open Tasselmi opened 1 month ago

Tasselmi commented 1 month ago

Play Version

3.0.5

API

scala 3.3.3

Operating System

ubuntu 20.04

JDK

17.0.9

Library Dependencies

twirl default version with play framework

Expected Behavior

  1. we can use given/using in scala3 , it is very import tools to replace implict
  2. twirl supports scala3
  3. so we can use given/using in twirl

Actual Behavior

  1. can not identify using keyword in a template file, when it is used as function parameters

Reproducible Test Case

on top of a template, we define the input parameters like this:
@(tagList: Seq[TagCloud], bottomFlag: Boolean = false)(using siteConfig: play.api.Configuration)

error log:
/app/views/index.scala.html:6:66: By-name parameter type => play.twirl.api.HtmlFormat.Appendable not allowed here.
mkurz commented 1 month ago

The @(....)(using some_name: some_type) syntax is currently just not support by twirl - the parser does not understand the using keyword yet.. Are you keen to provide a PR for that? I could guide you if you need help.