Skip to content

Releases: kreuzberg-dev/tree-sitter-language-pack

v1.8.0-rc.2

26 Apr 10:03
25def1e

Choose a tag to compare

v1.8.0-rc.2 Pre-release
Pre-release

Release candidate 2 for 1.8.0. Tests publish workflow.

v1.8.0-rc.1

26 Apr 06:51
251a02b

Choose a tag to compare

v1.8.0-rc.1 Pre-release
Pre-release

Release candidate for publish workflow validation

v1.7.0

23 Apr 12:46
v1.7.0
db5a3a2

Choose a tag to compare

What's Changed

  • fix(go): move package root from packages/go/v1/ to packages/go/ by @kh3rld in #97
  • fix(deps): bump rustls-webpki to patch RUSTSEC-2026-0098 and RUSTSEC-2026-0099 by @kh3rld in #99
  • docs: regenerate READMEs for 1.6.1 version bump by @rynewang in #101
  • build: compile bundled grammars with -fno-strict-aliasing by @rynewang in #100
  • Fix Go language-pack bindings and docs by @pboling in #102
  • feat: migrate to alef polyglot binding generator by @Goldziher in #105

New Contributors

Full Changelog: v1.6.0...v1.7.0

v1.6.2

18 Apr 06:51
6bb9761

Choose a tag to compare

What's Changed

  • fix(go): move package root from packages/go/v1/ to packages/go/ by @kh3rld in #97
  • fix(deps): bump rustls-webpki to patch RUSTSEC-2026-0098 and RUSTSEC-2026-0099 by @kh3rld in #99
  • docs: regenerate READMEs for 1.6.1 version bump by @rynewang in #101
  • build: compile bundled grammars with -fno-strict-aliasing by @rynewang in #100

New Contributors

Full Changelog: v1.6.0...v1.6.2

v1.6.1

17 Apr 12:47
635fda7

Choose a tag to compare

Fixed

  • Go: move package root from packages/go/v1/ to packages/go/ so the Go module proxy can resolve go.mod at the correct path (#97)
  • Go: fix CGO SRCDIR-relative include/lib paths (one fewer ../ after directory restructure)
  • Remove features = ["all"] from e2e Rust test Cargo.toml — use download feature for runtime parser fetching
  • Remove 305 lang-* features to unblock crates.io publish (300 feature limit)
  • Regenerate READMEs for v1.6.0, fix Windows query cache test flake
  • Bump rustls-webpki to patch RUSTSEC-2026-0098 and RUSTSEC-2026-0099 (#99)
  • Fix MIME type inference in core build by embedding language_definitions.json in crate

Changed

  • Update dependencies across Python, Node.js, PHP, and Rust lockfiles
  • Replace feature group docs with download/TSLP_LANGUAGES documentation in READMEs

v1.6.0

14 Apr 08:44
e0ccfad

Choose a tag to compare

What's New

Performance: Parser & Query Caching

  • Thread-local parser cacheparse_string() now reuses parsers across calls for the same language, avoiding the cost of creating a new parser every time
  • Two-level compiled query cacherun_query() caches compiled tree-sitter queries in both a thread-local cache (fast, no locking) and a global shared cache (cross-thread reuse)
  • Cached parsers in extraction & intelligenceCompiledExtraction::extract() and intel::parse_source() now use the thread-local parser cache
  • Pre-computed capture names in CompiledExtraction — avoids rebuilding capture name vectors on every extraction call
  • QueryCursor reuse across patterns within a single extract_from_tree() call

Bug Fixes

  • compiled_query() now propagates Error::LockPoisoned instead of silently ignoring poisoned RwLock
  • QueryCursor byte-range no longer leaks between patterns when reusing the cursor in extract_from_tree()
  • Replaced std::collections::HashMap with ahash::AHashMap in parser cache for consistency
  • Redundant get_language() call removed from parse_string() hot path — only called on cache miss
  • Fixed stale crate-local language_definitions.json (frozen at 248 languages) causing missing extension mappings for 58 newer languages
  • Resolved 4 duplicate extension conflicts: .gd (gap/gdscript), .conf (hocon/nginx), .sv/.svh (verilog/systemverilog)
  • build.rs now prefers sources/language_definitions.json over the crate-local copy to prevent future staleness

Go Symbol Extraction

  • Go type_spec declarations (structs, interfaces, type aliases) are now extracted as symbols with correct SymbolKind

Documentation

  • New dedicated "Download Parsers" section in the quickstart guide covering:
    • CLI, Python, Node.js, and Rust download APIs
    • Language groups (web, systems, scripting, data, jvm, functional)
    • Docker and CI pre-download examples
    • Configuration file (language-pack.toml) setup
    • Cache location and override options

Full Changelog: v1.5.0...v1.6.0

v1.5.0

08 Apr 13:30
63e2f61

Choose a tag to compare

What's New

Added

  • 57 new permissively-licensed grammars — 305 languages total
    • abl, c3, cel, cfml, chuck, cst, dhall, elvish, gap, gdshader, glimmer, gnuplot, gotmpl, gowork, gpg, hjson, hocon, hoon, htmldjango, jai, javadoc, json5, kcl, mlir, nasm, norg_meta, ocamllex, openscad, phpdoc, poe_filter, prql, rasi, razor, rbs, roc, rtf, slang, smalltalk, sml, snakemake, souffle, sourcepawn, sql_bigquery, stan, superhtml, sway, systemverilog, tact, tera, typespec, typoscript, vhs, vrl, wgsl_bevy, x86asm, ziggy, ziggy_schema
  • CI license validation job — blocks PRs that introduce non-permissive (GPL/AGPL/LGPL/MPL) grammars

Fixed

  • less grammar: regenerated parser from ABI 11 to ABI 14 (was incompatible with tree-sitter 0.26)
  • corn smoke fixture: replaced invalid snippet with valid corn syntax

Full Changelog: v1.4.2...v1.5.0

v1.4.2

08 Apr 08:19
1224410

Choose a tag to compare

Fixes

  • Publish ts-pack-cli to crates.iocargo install ts-pack-cli now works (#87)
  • Fix installation docs — corrected package name in README, CLI README, and installation guide
  • Remove non-existent install.sh reference from documentation

Install the CLI

cargo install ts-pack-cli

or via Homebrew:

brew install kreuzberg-dev/tap/ts-pack

v1.4.1

31 Mar 15:40
c0bd60e

Choose a tag to compare

What's Changed

Fixed

  • Include language_definitions.json in the published crate so build.rs can find extension mappings, ambiguity data, and C symbol overrides when installed from crates.io

Changed

  • Updated dependencies across all language ecosystems

Full Changelog: v1.4.0...v1.4.1

v1.4.0

29 Mar 15:51
v1.4.0
d324213

Choose a tag to compare

What's New

Added

  • detect_language_from_extension and detect_language_from_path exposed across all language bindings (Python, Node.js, Ruby, Go, Java, Elixir, PHP, C#, WASM, C FFI)
  • Java binding: added detectLanguage, detectLanguageFromContent, extensionAmbiguity, getHighlightsQuery, getInjectionsQuery, getLocalsQuery, extract, validateExtraction, toSexp, errorCount
  • Node.js: added missing TypeScript declarations for detectLanguage, detectLanguageFromExtension, detectLanguageFromPath
  • E2E test fixtures for language detection functions

Fixed

  • detect_language exposed in Python public API (#85)
  • PHP extension name corrected to ts-pack-php (hyphens)
  • C# DetectLanguageFromContent missing error check
  • TypeScript documentation snippets use ESM imports

Changed

  • All language snippet READMEs and documentation updated
  • Removed automated grammar updates workflow
  • README generation templates updated with new API functions
  • Java README template uses proper camelCase API names

Full Changelog: v1.3.3...v1.4.0