TreeSitter
Чем больше смотрю на TreeSitter, тем сильнее уверен что за ним будущее.
tree-sitter.el не нужен. На сайте проекта английским по белому написано, что если Emacs версии 29.1 или выше, то там есть встроенный TreeSitter, и надо использовать именно его.
Встроенный пакет называется treesit.el.
Что касается грамматик, то про них надо чуть подробнее рассказать.
У каждой грамматики есть не только API, но и ABI. Вот тут начинаются проблемы. Если ABI слишком новый, вы сможете скомпилировать библиотеку, но не сможете её использовать в Emacs.
Трагедия? Не совсем.
Во-первых, не надо использовать версии грамматик из ветки master или LGBTQ-френдли ветки main. Версия грамматики должна быть "прибита гвоздями" к одному из тегов. Это, в принципе, правило хорошего тона в разработке — использовать фиксированные версии зависимостей.
Во-вторых, в дауншифтинге нет ничего плохого. Ну не работает в вашей версии самая свежая релизная версия грамматики — используйте более старую!
В моём Emacs 30.1 получился такой список:
AsciiDoc: v0.3.0.
Dockerfile: v0.2.0.
JavaScript: v0.23.1.
JsDoc: v0.23.1.
JSON: v0.24.8.