~~ lineWidth: 40 ~~
== should format ==
const t = tag`testing`;
const u = tag `testing`;

[expect]
const t = tag`testing`;
const u = tag`testing`;

== should format with type parameters ==
const t = tag<T, U> `testing`;
// trailing comma not allowed by TS here :(
const u = tag<Testitttnnngg, ThisOutttttt> `testing`;

[expect]
const t = tag<T, U>`testing`;
// trailing comma not allowed by TS here :(
const u = tag<
    Testitttnnngg,
    ThisOutttttt
>`testing`;

== should move the template literal to the next line when exceeding the width when has type args ==
const t = tag<Testing, Other> `testing this out`;

[expect]
const t = tag<
    Testing,
    Other
>`testing this out`;

== should not newline if the tagged template tag is below the indent width ==
tag `ttttttttttttttttttttttttttttttttttt`;

[expect]
tag`ttttttttttttttttttttttttttttttttttt`;

== should handle block comments between the tag and tpl on the same line ==
tag /* 1 */ `testing`
tag /* 1 */
`testing`

[expect]
tag /* 1 */`testing`;
tag /* 1 */`testing`;

== should handle line comments between the tag and tpl ==
tag // 1
// 2
/* 3 */ `testing` // 4

[expect]
tag // 1
    // 2
    /* 3 */ `testing`; // 4
