'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.
UPDATE There is a comment about "Tabs and Indents" here it is :
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
- Uncheck Method declaration parameters | Align when multiline
- Check other | Alternate indentation for constructor args and parameter declarations with 4 spaces
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
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 |