• chainreaction's avatar
    feat: редактор DRAKON-схем и генерация кода в VS Code
    · 271bebeb
    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.
    271bebeb
Этот проект лицензирован в соответствии с The Unlicense