summaryrefslogtreecommitdiff
path: root/src/compiler/scala
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan@lightbend.com>2016-10-18 10:40:12 -0700
committerGitHub <noreply@github.com>2016-10-18 10:40:12 -0700
commit9f7c26e8ccc809c48484921f87b52eb56b978dcf (patch)
tree4ca56630124a243ee85806adc132a829865bb594 /src/compiler/scala
parent5c3193aea0e53ff71238d419f69cd6532d9f8433 (diff)
parent12fb6fee44177742c68be6b4ef46709d0dd6db06 (diff)
downloadscala-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.scala18
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 = {