【问题标题】:Intellij Scala class definition formattingIntellij Scala 类定义格式
【发布时间】:2015-12-03 22:07:32
【问题描述】:

如何让 Intellij 像这样格式化我的 Scala 类定义:

sealed class Traffic(
    private[this] val javaTraffic: Traffic.JavaTraffic,
    private[this] val sanitizer: Sanitizer)
  extends Serializable with Logger {

基本上每行成员声明缩进 4 个,类继承缩进 2 个。

【问题讨论】:

  • Preferences 菜单中有很多选项,在 Editor > Code Style > Scala 下。至于您特别想要哪些,我将把它留给读者作为练习......
  • @soong 我已经玩了几天这些设置,但仍然无法完全按照我想要的方式工作
  • 如果是这样的话,你可能不走运 - 可能是 scala 插件开发人员没有考虑到这种特定情况的可能性。就个人而言,我希望带有右括号的那一行一直在左边,因为带有左括号的那一行就在那里。他们可能期待同样的事情。
  • 当然你可以随意使用任何你喜欢的风格,但是Scala Style Guide,这是格式化Scala代码的事实上的标准方式,不符合你的要求。
  • @Jesper 其实我想要的正是Scala Style Guide 所建议的

标签: scala intellij-idea code-formatting


【解决方案1】:

从版本 2016.2 开始,这可以通过对 Settings > Editor > Code Style > Scala 下的默认值进行下一个更改来完成:

  1. 取消选中Method declaration parameters > Align when multiline 下的Wrapping and Braces
  2. 检查Other下的Alternate indentation for constructor args and parameter declarations并将其设置为4。

缺点是这不仅适用于构造函数参数,也适用于普通的方法声明,所以你不能让方法参数与左括号对齐。但我想我们将不得不忍受这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 2022-10-21
    • 2013-03-27
    相关资源
    最近更新 更多