'Intellij code style setting for wrapping on multi line function arguments

The Spark code style requires four character indentation for multi parameter methods. So: the following code -as presently formatted by IJ - is incorrect:

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

It should apparently be:

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

Where is this setting in the IJ code style? Screenshot shows what I was able to find.

enter image description here

UPDATE There is a comment about "Tabs and Indents" here it is :

enter image description here

Another Update: @yole has provided a helpful answer. However, I am still left with 2 spaces instead of 4 on the continuation.

For reference, here is the correct/required indentation within Spark. Notice the continuation on method declarations is 4 spaces.

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

However the continuation on method invocations is only two:

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


Solution 1:[1]

There is two option that you have to change

  1. Uncheck Method declaration parameters | Align when multiline

enter image description here

  1. Check other | Alternate indentation for constructor args and parameter declarations with 4 spaces

enter image description here

Solution 2:[2]

Uncheck "Method declaration parameters | Align when multiline" and enable "Use normal indent for parameters".

Solution 3:[3]

In 2017, Check all the Settings/Editor/CodeStyle/Java/Wrapping and Braces options, where the line name is Allign when multiline. For me, it was checked at Chained Method calls, and that made these long indents. Just uncheck them.

Solution 4:[4]

enable "other | Alternate indentation for constructor args and parameter declarations with 4 spaces" help me out finally

Solution 5:[5]

This is that worked for me:

  • Enable "Align when multiline"
  • Enable "Use normal indent for parameters"
  • All other options "Method declaration parameters" are disabled

enter image description here

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 yole
Solution 3 zborha
Solution 4 huali
Solution 5 Donald Duck