用于包装多行函数参数的 Intellij 代码样式设置

Intellij code style setting for wrapping on multi line function arguments

Spark 代码风格要求多参数方法有四个字符缩进。所以:以下代码 - 目前由 IJ 格式化 - 是不正确的:

def generateCirclesRdd(sc: SparkContext,
                       nCircles: Int = 3,
                       nTotalPoints: Int = 30,
                       outerRadius: Double): RDD[(Long, Long, Double)] = {

显然应该是:

def generateCirclesRdd(sc: SparkContext,
    nCircles: Int = 3,
    nTotalPoints: Int = 30,
    outerRadius: Double): RDD[(Long, Long, Double)] = {

这个设置在IJ代码风格的什么地方?屏幕截图显示了我能够找到的内容。

更新 这里有一条关于 "Tabs and Indents" 的评论:

另一个更新:@yole 提供了一个有用的答案。但是,我仍然剩下 2 个空格而不是 4 个空格。

作为参考,这里是 Spark 中的 correct/required 缩进。注意方法声明的延续是 4 个空格。

  def train(
      data: RDD[Vector],
      k: Int,
      maxIterations: Int,
      runs: Int,
      initializationMode: String,
      seed: Long): KMeansModel = {

但是方法 invocations 的延续只有两个:

    new KMeans().setK(k)
      .setMaxIterations(maxIterations)
      .setRuns(runs)
      .setInitializationMode(initializationMode)
      .setSeed(seed)
      .run(data)

取消选中 "Method declaration parameters | Align when multiline" 并启用 "Use normal indent for parameters"。

启用"other | Alternate indentation for constructor args and parameter declarations with 4 spaces"终于帮我解决了

2017年,勾选所有Settings/Editor/CodeStyle/Java/Wrapping和Braces选项,多行时行名是Allign。对我来说,它是在链式方法调用时检查的,这造成了这些长缩进。只需取消选中它们即可。

您必须更改两个选项

  1. 取消选中方法声明参数 | multiline
  2. 时对齐

  1. 勾选其他 |构造函数参数和参数声明的替代缩进有 4 个空格

这对我有用:

  • 启用"Align when multiline"
  • 启用"Use normal indent for parameters"
  • 所有其他选项 "Method declaration parameters" 已禁用