This project is an effort to improve the integration between language server/editors and build tools. This effort is led by the Scala Center and JetBrains, together with the help of other tooling developers in the Scala ecosystem and beyond.
Even though the protocol currently focuses on Scala developer tools, it's designed to be language-agnostic.
You can read the specification here.
The specification text, docs and support libraries for some of the supported languages are automatically generated from the smithy model.
If you'd like to contribute to the protocol, please check out our CONTRIBUTING doc.
Current Maintainers
- Adrien Piquerez (Scala Center) - @adpi2
- Andrzej Głuszak (JetBrains) - @agluszak
- Justin Kaeser (JetBrains) - @jastice
- Marcin Abramowicz (JetBrains) - @abrams27
- Łukasz Wawrzyk (VirtusLab) - @lukaszwawrzyk
Former Maintainers
- Chris Kipp (ex-Lunatech) - @ckipp01
- Jorge Vicente Cantero (ex-Scala Center) - @jvican
- Ólafur Páll Geirsson (ex-Scala Center) - @olafurpg
- Tomasz Pasternak (JetBrains/VirtusLab) - @tpasternak
- Add unstable
run/printStdout
,run/printStderr
andrun/readStdin
notifications - Add an optional
originId
field toTaskStartParams
,TaskProgressParams
andTaskFinishParams
and deprecate it inCompileReport
andTestReport
to support BSP clients that need to distinguish between multiple reports for the same target.- Migration: Use the
originId
field inTaskFinishParams
instead ofCompileReport
/TestReport
to identify the report.
- Migration: Use the
- Add optional support for environment variables and working directory parameters in
buildTarget/run
andbuildTarget/test
requests. Mark arguments and environment variables lists in ScalaMainClass and ScalaTestSuites deprecated as they are replaced by the parameters in the base request. - Add
cargo
(Rust build tool) protocol extension - Update diagnostic-related structures to match LSP 3.17
- Add
Rust
protocol extension - Add
buildToolParams
to compile/test/run requests - Add an optional
data
field toSourceItem