diff options
author | Adriaan Moors <adriaan@lightbend.com> | 2016-10-18 10:40:12 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-18 10:40:12 -0700 |
commit | 9f7c26e8ccc809c48484921f87b52eb56b978dcf (patch) | |
tree | 4ca56630124a243ee85806adc132a829865bb594 /src/compiler/scala | |
parent | 5c3193aea0e53ff71238d419f69cd6532d9f8433 (diff) | |
parent | 12fb6fee44177742c68be6b4ef46709d0dd6db06 (diff) | |
download | scala-9f7c26e8ccc809c48484921f87b52eb56b978dcf.tar.gz scala-9f7c26e8ccc809c48484921f87b52eb56b978dcf.tar.bz2 scala-9f7c26e8ccc809c48484921f87b52eb56b978dcf.zip |
Merge pull request #5453 from som-snytt/issue/9832-2.11
SI-9832 -Xlint:help shows default
Diffstat (limited to 'src/compiler/scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/settings/MutableSettings.scala | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/compiler/scala/tools/nsc/settings/MutableSettings.scala b/src/compiler/scala/tools/nsc/settings/MutableSettings.scala index b4987e1240..11cde935f2 100644 --- a/src/compiler/scala/tools/nsc/settings/MutableSettings.scala +++ b/src/compiler/scala/tools/nsc/settings/MutableSettings.scala @@ -744,11 +744,19 @@ class MutableSettings(val errorFn: String => Unit) def isHelping: Boolean = sawHelp def help: String = { - val choiceLength = choices.map(_.length).max + 1 - val formatStr = s" %-${choiceLength}s %s" - choices.zipAll(descriptions, "", "").map { - case (arg, descr) => formatStr.format(arg, descr) - } mkString (f"$descr%n", f"%n", "") + val describe: ((String, String)) => String = { + val choiceWidth = choices.map(_.length).max + 1 + val formatStr = s" %-${choiceWidth}s %s" + locally { + case (choice, description) => formatStr.format(choice, description) + } + } + val verboseDefault = default match { + case Some("_" :: Nil) => Some("All choices are enabled by default." :: Nil) + case _ => default + } + val orelse = verboseDefault.map(_.mkString(f"%nDefault: ", ", ", f"%n")).getOrElse("") + choices.zipAll(descriptions, "", "").map(describe).mkString(f"${descr}%n", f"%n", orelse) } def clear(): Unit = { |