tree-sitter has been amazingly successful at getting developer tools to work together.
Neovim has a bunch of people contributing to parsers when they notice highlighting issues. That benefits the whole ecosystem: semgrep, difftastic, even Emacs!
miniblog.
Related Posts
It's amazingly awkward to print a syntactic diff correctly. Even the lines before and after the changes may not line up, if whitespace has changed!
Difftastic now inserts blank lines to help things line up. I'm reasonably happy with the result here.
Difftastic update: I've rewritten the tree diffing logic to use Dijkstra's algorithm similar to Autochrome.
It works amazingly well! Note how it recognises both parent and children unchanged nodes in the lisp example. You can even see me refactoring Rust to use if-let.
The npm ecosystem is amazingly broad and deep. I can grab a utility library for choosing a random item from an array, or a part-of-speech tagger for analysing text!




