Tree-sitter
https://tree-sitter.github.io/tree-sitter/syntax-highlighting
https://github.com/tree-sitter/tree-sitter/tree/master/highlight
Atom のSyntax hightlightしても使用されている技術
Zedでも採用予定らしい。
EmacsやVimでもパッケージとして輸入できるし、vscodeでも使われいるっぽい?
Emacs 29.2からtree-sitter supportがデフォルトで入った。
https://www.soum.co.jp/misc/vim-advanced/6/
1 Tree-sitter とは?
https://tree-sitter.github.io/tree-sitter/
Tree-sitter は Atom のシンタックスハイライトとしても使用されている技術であり、最近になって neovim にも Tree-sitter によるシンタックスハイライトが導入されました。
https://github.blog/2018-10-31-atoms-new-parsing-system/
https://github.com/neovim/neovim/pull/11113
従来、テキストエディタの汎用的なシンタックスハイライトには正規表現が使われることが多くありました。しかし正規表現は記述が難しい上に遅い、表現が限られるので正確なパースができないといった問題点が存在していました。詳しくは 以前のSOUM/miscを参照してください。
Tree-sitter はシンタックスハイライトに特化していて、ソースファイルが更新されたときに即座に結果を返すことができ高速です。これは漸進的分析(Incremental Parsing)といい、テキストエディタで使用することが意図された解析パーサーだからだそうです。
基本的にEmacsやVimのSyntax hightlightは正規表現の塊だから遅い。
EmacsだととくにOrg modeとか顕著な気がする。