Scala 3.3 fewerBraces经IDEA格式化后无法编译问题咨询
IDEA Scala插件格式化Scala 3 fewerBraces代码的缩进问题
问题定性
这是IDEA Scala插件的Bug,并非操作失误。Scala 3.3及以上版本中,fewerBraces是标准特性,原代码Foo(42): """hi""" :: Nil的写法完全合法,但格式化后插件错误地将:: Nil缩进一级,导致编译器把它解析为"""hi"""的子表达式,而非与Foo(42): """hi"""同级的List拼接操作,最终引发编译错误。
临时解决办法
可以通过格式化开关临时跳过该段代码的自动格式化:
class Foo(i: Int)(s: String) // @formatter:off val fooList: List[Foo] = Foo(42): """hi""" :: Nil // @formatter:on
Bug处理进展
已向官方提交Bug报告,问题描述为:使用fewerBraces语法时,List或Seq相关代码出现错误缩进,官方Issue编号为SCL-21539,后续可关注官方的修复进度。
内容的提问来源于stack exchange,提问作者Marcus
相关产品推荐
相关产品推荐

