Skip to content

Commit 7276bdc

Browse files
authored
Merge pull request #51 from scalacenter/add-scala-tools
Add list of tools used for working with Scala
2 parents 5710b8e + a6d56c2 commit 7276bdc

File tree

2 files changed

+41
-1
lines changed

2 files changed

+41
-1
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Scala Improvement Proposals
22

3-
This repository contains the proposals of the Scala Improvement Process
3+
This repository contains the proposals of the Scala Improvement Process.
44

55
For more details about the Scala Improvement Process, please read the
66
[documentation](https://docs.scala-lang.org/sips).

tooling-ecosystem.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
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

Comments
 (0)