IntelliJ Scala如何配置使::构建的列表格式化时同级元素对齐
IntelliJ 中 Scala
:: 构造列表的格式化修正方案 默认状态下IntelliJ对Scala中缀运算符的续行缩进规则会导致::拼接的列表元素出现额外缩进,误导嵌套层级判断,可以通过调整内置代码样式规则实现和Array()/List()构造方式一致的格式化效果,操作步骤如下:
- 打开IntelliJ设置面板:Windows/Linux系统使用快捷键
Ctrl+Alt+S,macOS系统使用快捷键Cmd+, - 在设置菜单中依次进入
Editor > Code Style > Scala配置项 - 切换到「Wrapping and Braces」标签页
- 在配置列表中找到「Infix expressions」分组:
- 将换行策略设置为
Wrap if long - 取消勾选「Indent child expressions relative to operator」选项
- 将换行策略设置为
- 点击「Apply」保存配置后,重新触发代码格式化即可生效。
配置完成后,::拼接的列表元素会和首个元素保持相同缩进层级,不会再出现额外缩进误导层级判断的问题,格式化效果和预期完全一致:
val sentimentExpectedSchema = StructType( StructField("metadata", StructType( StructField("type", StringType, nullable = false) :: StructField("job_run_time", LongType, nullable = false) :: StructField("version", LongType, nullable = false) :: Nil )) :: Nil )
如果需要团队统一格式化规则,可以在Scala代码样式配置页点击右上角的齿轮图标,选择「Export」将配置导出为XML文件,提交到代码仓库后所有成员导入即可使用完全一致的格式化规则,避免不同本地配置导致的格式差异。
内容的提问来源于stack exchange,提问作者YFl
相关产品推荐
相关产品推荐

