view.tree — грамматика Tree‑sitter и LSP
Экспериментальный стек для языка «view.tree»:
- грамматика Tree‑sitter (подпроект
tree-sitter-viewtree ),
- подсветка синтаксиса (TextMate + Tree‑sitter queries в
highlights/ ),
- минимальный LSP‑сервер на TypeScript (
server/ ),
- заготовка клиента VS Code (
vscode/ ).
Быстрый старт
- Требования: Node.js 18+, npm, CLI
tree-sitter .
- Установка зависимостей: в корне
npm i .
- (Опционально) генерация грамматики:
npm run gen .
- Сборка LSP:
npm run build (артефакты в out/ ).
Полезные скрипты
npm run start : запускает Tree‑sitter playground (c --wasm билдом).
npm run tree : доступ к CLI Tree‑sitter в подпроекте.
npm run gen : генерирует парсер и ставит зависимости грамматики.
npm run build : собирает TypeScript‑сервер в out/ .
npm run start-server : запускает сервер напрямую (node out/server/index.js ).
npm run watch-server : watch‑сборка сервера.
Структура
tree-sitter-viewtree/ : грамматика (grammar.js ), сгенерированные файлы, example.view.tree .
highlights/ : подсветка — TextMate (tmLanguage.json ) и Tree‑sitter (highlights.scm ).
server/ : минимальный LSP (инициализация, completion, semantic tokens, заглушки под diagnostics).
vscode/ : подключение клиента VS Code к LSP.
out/ : результат сборки TypeScript.
Язык (кратко)
- Файлы: расширение
.view.tree .
- Компоненты:
$Name $Base с вложенностью по таб‑отступам.
- Свойства:
key , key <= $Type , key <=> otherProp , литералы (number , true/false , null , строки \… ).
- Списки/словари:
/ $Type , * , спец‑строка ^ .
Пример: tree-sitter-viewtree/example.view.tree .
VS Code (dev)
Соберите сервер (npm run build ) и запустите Extension Host VS Code на этой папке. Клиент настраивает язык view.tree и подключает LSP.
| |