tree-sitter-scala
Scala grammar for tree-sitter
0.26.2
4.1M downloads/mo
#4985 most downloaded on crates.io
tree-sitter/tree-sitter-scala
What this package is like to depend on
Last release 15 days ago
08 Aug 2026
Release timing varies
gaps range from 5 weeks to 9 months
Some releases are documented
notes for 9 of 16 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
16 releases · first in 2023
5 releases in the last 12 months
see the full history below
Release timeline
16 releases · Jun 2023 to Aug 2026Releases
latest 16-
0.26.208 Aug 2026Release notes
Open source →NOTE: Download
tree-sitter-scala.tar.gzfor the complete source code.🐛 bug fixes
- fix: Rework constructor annotations by @susliko in #533
- fix: Fixes
applied_constructor_typeandearly defsby @iigaz in #544 - fix: Fixes indented block as the body of
catch caseby @exoego in #549 - fix: Accepts braced-body members indented shallower than their siblings by @exoego in #550
- fix: Fixes self types with empty bodies, empty-bodied lambdas, enum self types by @exoego in #551
- fix: Keeps soft keyword
inlineusable as an identifier in expressions by @exoego in #555 - fix: Restricts
endmarker names to alphanumeric identifiers by @exoego in #557 - fix: Accepts Unicode
⇒as=>and←as<-by @exoego in #561 - fix: Allows empty statements before a statement in blocks by @exoego in #564
- fix: Accepts
doand bare indented bodies after parenthesized for enumerators by @exoego in #567 - fix: Fixes ascription to function types and ascribed match expressions by @exoego in #568
- fix: Captures patterns and free escapes inside interpolated strings by @exoego in #569
- fix: Fixes soft keyword
extensionand Scala 3 keywords in import paths by @exoego in #573 - fix: Bare
$identifier called with arguments by @exoego in #574 - fix: Annotation arguments and multiple argument lists in extends clauses by @exoego in #575
- fix: Adds bounds check before memcpy in
array.hby @anupamme in #577 - fix: Automatic semicolon lookahead over comments and closing keywords by @exoego in #578
- fix: Fixes braceless
matchwith cases at the same indentation by @exoego in #580 - fix: Keeps an internal comma from closing an indented block by @exoego in #581
- fix: Continues a line that ends in a colon or a symbolic operator by @exoego in #584
- fix: Parses a lambda parameter with a bare function type by @exoego in #593
- fix: Fixes rest-of-block lambdas and comma-closed templates in indented blocks by @exoego in #601
- fix: Ends an operator where a comment begins by @exoego in #631
- fix: Keeps a
//>comment plain when no using directive follows by @exoego in #636 - fix: Ends a statement before a leading operator with no operand by @exoego in #637
- fix: Annotates a literal type and every annotation of an ascription by @exoego in #641
- fix: Ends an indented argument at the comma before the next one by @exoego in #642
- fix: Takes the type arguments of an extractor pattern by @exoego in #644
🚀 updates
- feat: Wildcard in self type by @susliko in #521
- feat: Varargs as a standalone rule by @susliko in #524
- feat: Lazy repeated parameter types by @susliko in #527
- feat: Trailing comma in
$.indented_casesby @susliko in #528 - feat: Allow
$.indented_blockin$.assignment_expressionby @susliko in #529 - feat: Braced block in
$.with_template_bodyby @susliko in #530 - feat: Colon argument with arguments in parenthesis on the same line by @susliko in #534
- feat: Reserved keywords by @iigaz in #537
- feat: Method values (
f _) as simple expressions by @exoego in #556 - feat: Scala 2 script header
#!...!#by @exoego in #558 - feat:
forSomeexistential types by @exoego in #559 - feat: Quoted keyword literals
'null/'true/'falseby @exoego in #563 - feat: Reads
|after a definition type annotation as a union type by @exoego in #565 - feat: Unicode math symbols as single-character type operators by @exoego in #572
- perf: Lex block comments in the external scanner by @exoego in #576
- feat: Start a colon argument with a context function lambda by @exoego in #586
- feat: Bind an indented block to a for comprehension enumerator by @exoego in #589
- feat: Lex floating point literals with digit separators by @exoego in #588
- perf: Inline small hidden rules to shrink parser.c by @exoego in #591
- feat: Attach end markers to the construct they close by @exoego in #596
- perf: Shrink
parser.cfrom 29.4 MB to 18.3 MB with a control-tail gate by @exoego in #600 - feat: Infix operator precedence and associativity per SLS 6.12.3 by @exoego in #603
- feat: XML literals and XML patterns by @exoego in #606
- perf: Cuts parse time by a third by @exoego in #607
- feat: Binary integer literals by @exoego in #608
- feat: A type with more than one refinement by @exoego in #609
- feat: Type bindings in a quote type block by @exoego in #610
- feat: Allows a semicolon after a match type case by @exoego in #613
- feat:
erasedmodifier by @exoego in #614 - feat: Given import selector outside braces by @exoego in #616
- perf: Lex the
erasedmodifier in the scanner, cutparser.cby 1 MB by @exoego in #618 - feat: Takes a refinement as an intersection operand by @exoego in #619
- feat: Named type arguments by @exoego in #621
- feat: Scala 3.6 given syntax by @exoego in #623
- perf: Reads the soft modifiers in the scanner, shrink
parser.cby 2.76 MiB by @exoego in #627 - feat: Capture checking syntax by @exoego in #629
behind the scenes
- Bump cargo lock file by @eed3si9n in #523
- Update CMakeLists.txt by @eed3si9n in #531
- ci: track parser size by @susliko in #535
- test: Unskip subclass-with-multiline-params test, fixed on master by @exoego in #548
- chore: Reserve
_colon_eoland_operator_eolexternal tokens by @exoego in #582 - chore: Reserve the floating point separators external token by @exoego in #585
- test: Update expected values for Dotty and Lila modules by @eed3si9n in #590
- chore: Reserve the end keyword external token by @exoego in #597
- chore: Reserve the XML tag start external token by @exoego in #604
- ci: Measure the Dotty test suite and drop non-Scala inputs by @exoego in #611
- chore: Reserve the erased modifier external token by @exoego in #615
- chore: Drop two unnecessary conflicts by @exoego in #620
- chore: Reserve the soft modifier external tokens by @exoego in #625
- chore: Reserve the using directive start external token by @exoego in #638
- 0.26.2 by @eed3si9n in #646
new contributors
- @iigaz made their first contribution in #537
- @exoego made their first contribution in #548
- @anupamme made their first contribution in #577
Full Changelog: v0.26.0...v0.26.2
-
0.26.018 Apr 2026Release notes
Open source →NOTE: Download
tree-sitter-scala.tar.gzfor the complete source code.updates
Full Changelog: v0.25.1...v0.26.0
-
0.25.118 Apr 2026Release notes
Open source →NOTE: Download
tree-sitter-scala.tar.gzfor the complete source code.updates
- feat: Leading infix operators by @susliko in #493
- feat: Supports typed lambda argument for Scala 2 by @susliko in #496
- feat: Supports access modifiers for enums by @susliko in #497
- feat: Supports lambdas in braces with block bodies by @susliko in #501
- feat: Supports
extendsclause with multiple argument lists by @susliko in #502 - feat: Aliased imports without package prefix by @susliko in #515
- feat: Supports dot-syntax for match expressions by @susliko in #514 + #516
bug fixes
- fix: Match types with braced syntax by @susliko in #494
- fix: issue outdents before commas by @susliko in #499
- fix: higher precedence for match-clause guards by @susliko in #504
- fix: suppress automatic semicolon only when infix operator is actually followed by an operand by @susliko in #508
behind the scenes
- Bump to 0.25.1 by @eed3si9n in #518
- Fixes examples filename typo by @TheBugYouCantFix in #509
new contributors
- @TheBugYouCantFix made their first contribution in #509
Full Changelog: v0.25.0...v0.25.1
-
0.25.012 Mar 2026Release notes
Open source →NOTE: Download
tree-sitter-scala.tar.gzfor the complete source code.updates
behind the scenes
- ci: Bump sync process to 0.25 by @eed3si9n in #489
- chore: generate and sync latest changes by @github-actions[bot] in #490
- Bump the version number to 0.25.0 by @eed3si9n in #491
Full Changelog: v0.24.1...v0.25.0
-
0.24.112 Mar 2026Release notes
Open source →NOTE: Download
tree-sitter-scala.tar.gzfor the complete source code.updates
- feat:
intosoft modifier by @susliko in #475 - feat: applied constructor types by @susliko in #474
- feat:
trackedsoft modifier by @susliko in #473 - feat: given with type parameters in Scala 3.4+ syntax by @hamidr in #479
- feat: anonymous
usingparameters in Scala 3 by @hamidr in #480
behind the scenes
- Update GitHub Actions / skip node binding test by @eed3si9n in #481
- ci: Bump create-pull-request action by @eed3si9n in #482
- chore: generate and sync latest changes by @github-actions[bot] in #483
- test: Update lila expectation by @eed3si9n in #484
- Pin tree-sitter/workflows by @eed3si9n in #485
- Bump to 0.24.1 by @eed3si9n in #486
- Pin the workflow back to 6a7388cecfbc00765d032b2fca8f8abbe092ae8d by @eed3si9n in #487
new contributors
Full Changelog: v0.24.0...v0.24.1
- feat:
-
0.24.008 Jun 2025Release notes
Open source →updates
- deps: Update tree-sitter to 0.24.7 by @eed3si9n in #455
- fix: Fix nested packages by @streichsbaer + @eed3si9n in #470
- feat: Support for string escape sequences by @jonshea in #459
- feat: Add tags.scm queries by @susliko in #461
behind the scene
- Add
-pending.txttests by @jonshea in #463 - Include
LICENSEfile by @michel-slm in #453 - Update CONTRIBUTING.md by @jonshea in #456
- build(deps-dev): bump tar-fs from 2.1.1 to 2.1.2 by @dependabot in #464
- build(deps-dev): bump tar-fs from 2.1.2 to 2.1.3 by @dependabot in #468
- ci: Update version to 0.24.0 by @eed3si9n in #472
new contributors
- @michel-slm made their first contribution in #453
- @jonshea made their first contribution in #456
Full Changelog: v0.23.4...v0.24.0
-
0.23.427 Dec 2024Release notes
Open source →updates
- SIP-47 Clause Interleaving support by @eed3si9n in #439
- SIP-58 Named tuples support by @eed3si9n in #446
- SIP-64 support by @eed3si9n in #442
- Polymorphic function type and lambda expression by @eed3si9n in #444
behind the scene
- test: Add test for SIP-62 for by @eed3si9n in #443
- ci: Reinstate prettier to fix the sync job by @eed3si9n in #435
- ci: Generate in all oses by @eed3si9n in #437
- ci: Update to 0.23.4 by @eed3si9n in #450
NOTE: Download
tree-sitter-scala.tar.xzfor the complete source code.
Full Changelog: v0.23.3...v0.23.4 -
0.23.311 Nov 2024 -
0.23.212 Sep 2024Release notes
Open source →updates
- tree-sitter-scala 0.23.2 updates to tree-sitter 0.23.0.
behind the scene
- test: Nvim indents by @susliko in #378
- build: Add the package lock file by @eed3si9n in #413
- build: node-gyp-build 4.8.1 by @eed3si9n in #414
- build: Bump prebuildify by @eed3si9n in #415
- build: Fix check_complexity by @sideeffffect in #416
- build: Run cron action only on the tree-sitter repo by @eed3si9n in #419 / #420
- build: update bindings by @amaanq in #422
- build: Fix build by @eed3si9n in #424 / #425
- chore: Bump to 0.23.2 by @eed3si9n in #428
Full Changelog: v0.22.2...v0.23.2
-
0.22.108 Aug 2024Nothing published for this version
-
0.22.023 Jun 2024Nothing published for this version
-
0.21.013 Mar 2024Nothing published for this version
-
0.20.310 Mar 2024Nothing published for this version
-
0.20.220 Aug 2023Nothing published for this version
-
0.20.110 Jun 2023Nothing published for this version
-
0.20.006 Jun 2023Nothing published for this version