Tree-sitter
Генератор парсеров и библиотека разбора, созданные для редакторов. Написана Максом Брансфельдом в GitHub, опубликована в 2018 году. Строит настоящее синтаксическое дерево кода, а не гадает регулярками.
Два свойства делают её пригодной для редактора, где другие парсеры не годятся. Она инкрементальна: при вводе символа перестраивается только затронутая часть дерева, поэтому даже в больших файлах разбор укладывается в кадр. И она устойчива к ошибкам: недописанный код — нормальное состояние в редакторе, и парсер всё равно выдаёт полезное дерево. Грамматики пишутся на JavaScript-DSL и компилируются в C. Используется для подсветки, которая понимает, чем на самом деле является имя, для структурного выделения, навигации по коду и расстановки отступов — в просмотре кода на GitHub, Neovim, Helix, Zed и Emacs 29.