tree-sitter-scala
Scala grammar for tree-sitter
What it is and what it does
tree-sitter-scala is a language grammar binding that plugs into the tree-sitter parsing framework to analyze Scala code. It parses both Scala 2 and Scala 3 syntax into an abstract syntax tree, enabling tools to inspect, transform, or analyze Scala source without running a compiler. The package is a precompiled Python binding to a Rust-based grammar, distributed as platform-specific wheels.
You use it by importing the language binding and integrating it with tree-sitter's parsing infrastructure. It has no runtime dependencies and is actively maintained by the tree-sitter project. The medium install friction reflects the need for a matching precompiled wheel; once installed, it integrates cleanly into any Python code analysis pipeline.
Use it for:
- Build a Scala linter or code formatter that needs to inspect and traverse the syntax tree.
- Extract code metrics or perform static analysis on Scala projects without invoking the Scala compiler.
- Implement incremental parsing for a Scala IDE or editor plugin that updates the tree as code changes.
- Generate documentation or visualizations from Scala source by walking the parsed tree structure.
- Migrate or refactor Scala codebases by pattern-matching on tree nodes and rewriting subtrees.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides a tree-sitter grammar for parsing Scala 2 and Scala 3 source code, enabling incremental syntax analysis and code structure extraction.
Yes, if you need to parse and analyze Scala code programmatically. The package is actively maintained, has no runtime dependencies, carries a permissive MIT license, and is backed by the mature tree-sitter ecosystem. Medium install friction is acceptable for a compiled grammar binding. Install only if your target platform has a precompiled wheel available.
Install
tree-sitter-scala on PyPI
pip
pip install tree-sitter-scalauv
uv add tree-sitter-scalapoetry
poetry add tree-sitter-scalaInstalling tree-sitter-scala
Before you install
Medium install friction due to compiled wheel distribution across multiple platforms (macOS, Linux, Windows, ARM). Package is actively maintained with a release 6 days old and no runtime dependencies, making it straightforward once the wheel is available for your platform.
License in practice
MIT license is permissive; you can use, modify, and distribute this package freely in commercial and open-source projects with minimal restrictions.
Quickstart
pip install tree-sitter-scala
from tree_sitter_scala import language
Requires Python 3.9 or later; the package is distributed as precompiled wheels, so installation may fail on unsupported architectures or Python versions without a matching wheel.
Verify before relying
- Whether the grammar covers all Scala 2 and Scala 3 syntax features or has known gaps.
- Performance characteristics for large Scala codebases or real-time parsing scenarios.
- Integration examples or documentation beyond the GitHub repository.
- How to use the language binding with external parsing frameworks.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 6 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,732,236/month — #3,608 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: tree_sitter_scala-0.26.2-cp39-abi3-macosx_10_9_x86_64.whl; tree_sitter_scala-0.26.2-cp39-abi3-macosx_11_0_arm64.whl; tree_sitter_scala-0.26.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; tree_sitter_scala-0.26.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; tree_sitter_scala-0.26.2-cp39-abi3-musllinux_1_2_x86_64.whl; tree_sitter_scala-0.26.2-cp39-abi3-win_amd64.whl; tree_sitter_scala-0.26.2-cp39-abi3-win_arm64.whl
Keywords: incremental, parsing, tree-sitter, scala
Tags
More Linguistic packages
Detects and normalizes text encoding from…
permissive · top 100 on PyPI
tiktokentiktoken is a fast BPE tokenizer that converts…
permissive · top 1,000 on PyPI
chardetDetects character encoding and language in byte…
permissive · top 1,000 on PyPI
text-unidecodeConverts Unicode text to ASCII by…
copyleft · top 1,000 on PyPI
larkLark is a parsing library that builds abstract…
permissive · top 1,000 on PyPI
tree-sitterPython bindings to the tree-sitter parsing…
permissive · top 1,000 on PyPI
tree-sitter-goProvides a Go language grammar for tree-sitter,…
permissive · top 5,000 on PyPI
tree-sitter-pythonProvides a Python grammar for tree-sitter,…
permissive · top 5,000 on PyPI
tree-sitter-javaProvides a Java language grammar for…
permissive · top 5,000 on PyPI
tree-sitter-kotlinProvides a Kotlin language grammar for…
permissive · top 5,000 on PyPI
tree-sitter-jsonProvides a JSON grammar parser for tree-sitter,…
permissive · top 5,000 on PyPI
tree-sitter-htmlProvides an HTML grammar for tree-sitter,…
permissive · top 5,000 on PyPI
tree-sitter-rubyProvides a Ruby language grammar for…
permissive · top 5,000 on PyPI
tree-sitter-zigProvides a tree-sitter grammar for parsing Zig…
permissive · top 5,000 on PyPI
tree-sitter-juliaProvides incremental parsing of Julia source…
permissive · top 5,000 on PyPI
tree-sitter-typescriptProvides TypeScript and TSX language grammars…
permissive · top 5,000 on PyPI