tree-sitter-scala
raw JSON → 0.26.0 verified Sat May 09 auth: no python
Scala grammar for tree-sitter, providing incremental parsing, syntax tree queries, and syntax highlighting for Scala 2 and Scala 3. The current version is 0.26.0, which requires tree-sitter >=0.26.8 and Python >=3.9. The library is actively maintained with regular releases.
pip install tree-sitter-scala Common errors
error ModuleNotFoundError: No module named 'tree_sitter' ↓
cause The base tree-sitter library is not installed.
fix
Run: pip install tree-sitter
error ImportError: cannot import name 'Language' from 'tree_sitter' ↓
cause Old tree-sitter version (<0.26) does not expose Language directly.
fix
Upgrade tree-sitter: pip install --upgrade tree-sitter
error tree_sitter.binding.LanguageError: Unknown language 'scala' ↓
cause Using Language('scala') without the proper grammar binding or with an outdated tree-sitter version.
fix
Use from tree_sitter_scala import language and then language()
Warnings
breaking Version 0.26.0 requires tree-sitter >=0.26.8. Older tree-sitter versions will cause import errors. ↓
fix Upgrade tree-sitter to 0.26.8 or later: pip install --upgrade tree-sitter
gotcha The Python package is named 'tree-sitter-scala' on PyPI, but the import module is 'tree_sitter_scala' (underscores, not hyphens). ↓
fix Always use from tree_sitter_scala import ...
deprecated The old method of obtaining language via Language('scala') from tree_sitter is deprecated and may be removed. ↓
fix Use from tree_sitter_scala import language and then language()
Imports
- Language wrong
from tree_sitter import Languagecorrectfrom tree_sitter_scala import Language - language
from tree_sitter_scala import language
Quickstart
from tree_sitter import Language, Parser
from tree_sitter_scala import language
# Get the Scala language object
SCALA_LANGUAGE = language()
# Initialize a parser with the Scala language
parser = Parser()
parser.set_language(SCALA_LANGUAGE)
# Parse some Scala code
tree = parser.parse(bytes("object Hello extends App { println(\"Hello, world!\") }", "utf8"))
print(tree.root_node.sexp())