mirror of https://github.com/sbt/sbt.git
This commit makes it possible for the sbt server to render the same ui to multiple clients. The network client ui should look nearly identical to the console ui except for the log messages about the experimental client. The way that it works is that it associates a ui thread with each terminal. Whenever a command starts or completes, callbacks are invoked on the various channels to update their ui state. For example, if there are two clients and one of them runs compile, then the prompt is changed from AskUser to Running for the terminal that initiated the command while the other client remains in the AskUser state. Whenever the client changes uses ui states, the existing thread is terminated if it is running and a new thread is begun. The UITask formalizes this process. It is based on the AskUser class from older versions of sbt. In fact, there is an AskUserTask which is very similar. It uses jline to read input from the terminal (which could be a network terminal). When it gets a line, it submits it to the CommandExchange and exits. Once the next command is run (which may or may not be the command it submitted), the ui state will be reset. The debug, info, warn and error commands should work with the multi client ui. When run, they set the log level globally, not just for the client that set the level. |
||
|---|---|---|
| .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 | ||
| server-test/src | ||
| src/main/conscript | ||
| tasks | ||
| tasks-standard | ||
| testing | ||
| util-cache | ||
| util-tracking | ||
| vscode-sbt-scala | ||
| zinc-lm-integration/src | ||
| .appveyor.yml | ||
| .gitattributes | ||
| .gitignore | ||
| .java-version | ||
| .mailmap | ||
| .scalafmt.conf | ||
| .travis.yml | ||
| CONTRIBUTING.md | ||
| DEVELOPING.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 https://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/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.