diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2016-02-08 19:48:38 +1000 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2016-02-09 13:50:24 +1000 |
commit | db0577c840425e699197c409b09674d5ce2039ac (patch) | |
tree | 98293157ac514fc87818b5daf1dc0e514638b581 /build.sbt | |
parent | 504ac0d635d36e94dc6241a43cfba88b36c9a889 (diff) | |
download | scala-db0577c840425e699197c409b09674d5ce2039ac.tar.gz scala-db0577c840425e699197c409b09674d5ce2039ac.tar.bz2 scala-db0577c840425e699197c409b09674d5ce2039ac.zip |
Add SBT tab completion for scala{,c,doc}
Also refactor the partest parser to use the improved tab
completion for test paths.
Diffstat (limited to 'build.sbt')
-rw-r--r-- | build.sbt | 25 |
1 files changed, 18 insertions, 7 deletions
@@ -831,13 +831,24 @@ def generateServiceProviderResources(services: (String, String)*): Setting[_] = buildDirectory in ThisBuild := (baseDirectory in ThisBuild).value / "build-sbt" -// TODO custom argument parsers for these to autocomplete compiler options and paths -addCommandAlias("scalac", "compiler/compile:runMain scala.tools.nsc.Main -usejavacp") -addCommandAlias("scala", "repl-jline-embedded/compile:runMain scala.tools.nsc.MainGenericRunner -usejavacp") -addCommandAlias("scaladoc", "scaladoc/compile:runMain scala.tools.nsc.ScalaDoc -usejavacp") -addCommandAlias("scalap", "scalap/compile:runMain scala.tools.scalap.Main -usejavacp") - // Add tab completion to partest commands += Command("partest")(_ => PartestUtil.partestParser((baseDirectory in ThisBuild).value, (baseDirectory in ThisBuild).value / "test")) { (state, parsed) => - ("test/it:testOnly -- " + parsed):: state + ("test/it:testOnly -- " + parsed) :: state +} + +// Add tab completion to scalac et al. +commands ++= { + val commands = + List(("scalac", "compiler", "scala.tools.nsc.Main"), + ("scala", "repl-jline-embedded", "scala.tools.nsc.MainGenericRunner"), + ("scaladoc", "scaladoc", "scala.tools.nsc.ScalaDoc")) + + commands.map { + case (entryPoint, projectRef, mainClassName) => + Command(entryPoint)(_ => ScalaOptionParser.scalaParser(entryPoint, (baseDirectory in ThisBuild).value)) { (state, parsedOptions) => + (projectRef + "/runMain " + mainClassName + " -usejavacp " + parsedOptions) :: state + } + } } + +addCommandAlias("scalap", "scalap/compile:runMain scala.tools.scalap.Main -usejavacp") |