-
chainreaction создал
Первый рабочий срез расширения: собственный редактор *.drakon и превращение схемы в код. Ядро @drakon/core (платформо-независимое, без импорта vscode): - модель диаграммы, валидация, parse/serialize канонического JSON виджета; - применение батчей правок к модели (applyEdit/applyEdits); - языко-независимый IR: обход DRAKON-графа с CASE-цепочками, обратное ребро как цикл, структурные узлы без собственного оператора; - реестры генераторов и парсеров: новый язык — модуль и одна строка регистрации. Адаптер VS Code: - CustomTextEditorProvider для *.drakon на движке DrakonWidget 1.5.7 (vendored, Unlicense); - webview: рендер, колбеки правок, EditSender, мост postMessage; - TextDocument как единственный источник правды, синхронизация модели; - команды «Сгенерировать код» (JavaScript, псевдокод) и «Показать диаграмму из кода»; - настройки: целевой язык, имя функции, только чтение, тема. Вендоренный движок включён в индекс побайтово: в .gitattributes для него гасятся и text, и eol (иначе core.autocrlf=true переписывает CRLF, и SHA-256 свежего клона расходится с задокументированным в media/README.md). Тесты на нативном node --test: модель, правки, round-trip JSON, генераторы JavaScript и псевдокода — 55 тестов. Второй генератор работает как перекрёстная проверка: он поймал потерю оператора заголовка цикла, которую JavaScript-генератор маскировал совпадением по тексту. CI на hub.mos.ru (.gitlab-ci.yml): npm run check на push и merge request.
Этот проект лицензирован в соответствии с The Unlicense