scala-ide / scalariform

Scala source code formatter
http://scala-ide.github.com/scalariform/
MIT License
527 stars 148 forks source link

AlignArguments when first argument is a literal number #282

Open udalrich opened 5 years ago

udalrich commented 5 years ago

With alignParameters as false, my code formats as

            Importance(10000,
            goal,
                strategy1, strategy2, strategy3, strategy4,
                decCommodityInd, decMoodInd,
                decCurLeaderOpinionInd, incAltLeaderOpinionInd)

With alignParameters as true, it formats as

            Importance(10000,
            goal,
            strategy1, strategy2, strategy3, strategy4,
            decCommodityInd, decMoodInd,
            decCurLeaderOpinionInd, incAltLeaderOpinionInd)

If I replace the constant with a variable, it behaves reasonably.

           // true
            val numIter = 10000
            Importance(numIter,
                       goal,
                       strategy1, strategy2, strategy3, strategy4,
                       decCommodityInd, decMoodInd,
                       decCurLeaderOpinionInd, incAltLeaderOpinionInd)
           // false
            val numIter = 10000
            Importance(numIter,
                goal,
                strategy1, strategy2, strategy3, strategy4,
                decCommodityInd, decMoodInd,
                decCurLeaderOpinionInd, incAltLeaderOpinionInd)

My configuration (through sbt) is

import scalariform.formatter.preferences._

ThisBuild / scalariformPreferences := scalariformPreferences.value.
    setPreference(AlignArguments, true).
    setPreference(AlignParameters, true).
    setPreference(DoubleIndentConstructorArguments, true).
    setPreference(DoubleIndentMethodDeclaration, true).
    setPreference(FirstArgumentOnNewline, Prevent).
    setPreference(IndentLocalDefs, true).
    setPreference(IndentSpaces, 4)