mirror of https://github.com/sbt/sbt.git
It was reported in https://github.com/sbt/sbt/issues/4808 that compared to 1.2.8, sbt 1.3.0-RC2 will truncate the command args of an input task that contains semicolons. This is actually intentional, but not completely robust. For sbt >= 1.3.0, we are making ';' syntactically meaningful. This means that it always represents a command separator _unless_ it is inside of a quoted string. To enforce this, the multi parser will effectively split the input on ';', it will then validate that each command that it extracted is valid. If not, it throws an exception. If the input is not a multi command, then parsing fails with a normal failure. I removed the multi command from the state's defined commands and reworked State.combinedParser to explicitly first try multi parsing and fall back to the regular combined parser if it is a regular command. If the multi parser throws an uncaught exception, parsing fails even if the regular parser could have successfully parsed the command. The reason is so that we do not ever allow the user to evaluate, say 'run a;b'. Otherwise the behavior would be inconsitent when the user runs 'compile; run a;b' |
||
|---|---|---|
| .github/ISSUE_TEMPLATE | ||
| core-macros/src/main/scala/sbt/internal/util/appmacro | ||
| internal | ||
| launch | ||
| licenses | ||
| main | ||
| main-actions/src | ||
| main-command/src | ||
| main-settings/src | ||
| notes | ||
| project | ||
| protocol/src/main | ||
| run | ||
| sbt/src | ||
| scripted-plugin/src/main/scala/sbt | ||
| scripted-sbt-old/src/main/scala/sbt/test | ||
| scripted-sbt-redux | ||
| src/main/conscript | ||
| tasks | ||
| tasks-standard | ||
| testing | ||
| vscode-sbt-scala | ||
| zinc-lm-integration/src | ||
| .appveyor.yml | ||
| .gitattributes | ||
| .gitignore | ||
| .java-version | ||
| .mailmap | ||
| .sbtopts | ||
| .scalafmt.conf | ||
| .travis.yml | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| NOTICE | ||
| PROFILING.md | ||
| README.md | ||
| SUPPORT.md | ||
| build.sbt | ||
| reset.sh | ||
| sbt-allsources.sh | ||
| server.md | ||
README.md
sbt
sbt is a build tool for Scala, Java, and more.
For general documentation, see http://www.scala-sbt.org/.
sbt 1.x
This is the 1.x series of sbt. The source code of sbt is split across several GitHub repositories, including this one.
- sbt/io hosts
sbt.iomodule. - sbt/util hosts a collection of internally used modules.
- sbt/librarymanagement hosts
sbt.librarymanagementmodule that wraps Ivy. - sbt/zinc hosts Zinc, an incremental compiler for Scala.
- sbt/sbt, this repository hosts modules that implements the build tool.
Other links
- Setup: Describes getting started with the latest binary release.
- FAQ: Explains how to get help and more.
- sbt/sbt-zero-seven: hosts sbt 0.7.7 and earlier versions
Issues and Pull Requests
Please read CONTRIBUTING carefully before opening a GitHub Issue.
The short version: try searching or asking on StackOverflow.
license
See LICENSE.