|
| 1 | +# Scala Tooling Ecosystem |
| 2 | + |
| 3 | +This file lists tools that are used to work with Scala (other than the compiler |
| 4 | +itself), and that may be impacted by changes to the language. As stated in the |
| 5 | +[Scala Improvement Process Specification](https://docs.scala-lang.org/sips/process-specification.html), |
| 6 | +whenever a proposal reaches the implementation stage, the Committee notifies the |
| 7 | +impacted tools that they should implement support for it. |
| 8 | + |
| 9 | +## Tools Impacted by Changes in the Grammar |
| 10 | + |
| 11 | +- [Scalameta parser][Scalameta] |
| 12 | +- [Scalafmt]: depends on the Scalameta parser, and it needs to add specific |
| 13 | + support for each new syntactic feature |
| 14 | +- [Scalafix]: depends on the Scalameta parser |
| 15 | +- [VS Code Scala syntax]: also used by GitHub to provide syntax highlighting |
| 16 | + (see https://github.com/github/linguist/tree/master/vendor) |
| 17 | +- [Metals]: depends on all of the above to provide various functionalities |
| 18 | + (syntax errors as-you-type, formatting, refactors, syntax highlighting) |
| 19 | +- [IntelliJ]: maintains its own parser |
| 20 | +- [Pygments]: used by Python-based website generators like MkDocs |
| 21 | +- [Highlight.js]: used by the Scala website |
| 22 | +- [Prism.js]: used for example by website generators like Docusaurus (which is |
| 23 | + used by many OSS Scala projects) |
| 24 | +- [tree-sitter] |
| 25 | + |
| 26 | +## Tools Impacted by Other (Non-Syntactical) Changes |
| 27 | + |
| 28 | +- [Metals] |
| 29 | +- [IntelliJ] |
| 30 | + |
| 31 | +[Metals]: https://github.com/scalameta/metals |
| 32 | +[IntelliJ]: https://github.com/JetBrains/intellij-scala |
| 33 | +[Scalameta]: https://github.com/scalameta/scalameta |
| 34 | +[Scalafmt]: https://github.com/scalameta/scalafmt |
| 35 | +[Scalafix]: https://github.com/scalacenter/scalafix |
| 36 | +[VS Code Scala syntax]: https://github.com/scala/vscode-scala-syntax |
| 37 | +[Pygments]: https://github.com/pygments/pygments |
| 38 | +[Highlight.js]: https://github.com/highlightjs/highlight.js/blob/main/src/languages/scala.js |
| 39 | +[Prism.js]: https://github.com/PrismJS/prism/blob/master/components/prism-scala.js |
| 40 | +[tree-sitter]: https://github.com/tree-sitter/tree-sitter-scala |
0 commit comments