Upstream Parsers

Difftastic uses the following tree-sitter parsers:

LanguageGit Repository
Bashtree-sitter/tree-sitter-bash
Ctree-sitter/tree-sitter-c
C++tree-sitter/tree-sitter-cpp
C#tree-sitter/tree-sitter-c-sharp
Clojuresogaiu/tree-sitter-clojure
Common LisptheHamsta/tree-sitter-commonlisp
CSStree-sitter/tree-sitter-css
DartUserNobody14/tree-sitter-dart
Elixirelixir-lang/tree-sitter-elixir
Emacs Lispwilfred/tree-sitter-elisp
Gotree-sitter/tree-sitter-go
Haskelltree-sitter/tree-sitter-haskell
Janetsogaiu/tree-sitter-janet-simple
Javatree-sitter/tree-sitter-java
JavaScript, JSXtree-sitter/tree-sitter-javascript
JSONtree-sitter/tree-sitter-json
Luanvim-treesitter/tree-sitter-lua
Nixcstrahan/tree-sitter-nix
OCamltree-sitter/tree-sitter-ocaml
PHPtree-sitter/tree-sitter-php
Pythontree-sitter/tree-sitter-python
Rubytree-sitter/tree-sitter-ruby
Rusttree-sitter/tree-sitter-rust (forked)
Scalatree-sitter/tree-sitter-scala
TypeScript, TSXtree-sitter/tree-sitter-typescript

Updating a parser

To update a parser, pull commits from the upstream git repository. For example, the following command will update the Java parser:

$ git subtree pull --prefix=vendor/tree-sitter-java git@github.com:tree-sitter/tree-sitter-java.git master

To see when each parser was last updated, use the following shell command:

$ for d in $(git log | grep git-subtree-dir | tr -d ' ' | cut -d ":" -f2 | sort); do echo "$d"; git log --pretty="  %cs" -n 1 $d; done