1c-syntax / vsc-language-1c-bsl

Syntax definition rules for 1C:Enterprise 8 in VSC
https://marketplace.visualstudio.com/items?itemName=xDrivenDevelopment.language-1c-bsl
MIT License
134 stars 35 forks source link

Миграция на tml на json для bsl #276

Closed IgorKilipenko closed 11 months ago

IgorKilipenko commented 11 months ago

Предлагаю выполнить миграцию на json и добавить подсветку переменных внутри блоков функций / процедур.

Пример: Было Стало
Screenshot from 2023-12-23 02-06-42 Screenshot from 2023-12-23 01-41-56
nixel2007 commented 11 months ago

Доработка грамматик производится в репозитории 1c-syntax/1c-syntax. Оттуда yaml файл конвертируется в plist или cson в зависимости от редактора. Какая цель в выполнении миграции?

nixel2007 commented 11 months ago

Подсветка переменных и функций - штука интересная, надо будет посмотреть подробнее.

IgorKilipenko commented 11 months ago

Какая цель в выполнении миграции?

Т.к. объекты js / json имеют лучшую совместимость. Мне кажется генерировать tml файл луче программно из объектов js (если посмотреть tml файл для ts - он точно генерируется программно). Можно создать класс типа TmlDocument который будет состоять из связанных js объектов и генерировать конечный tml.json файл. Ну и сам вендор (vscode) использует для своих расширений json формат).

nixel2007 commented 11 months ago

Так tml не генерируется из объектов. Он разрабатывается напрямую в yaml, но покрыт юнит тестами под atom/sublime text

IgorKilipenko commented 11 months ago

Но в этом и проблема! чтобы разработать достаточно гибкую схему подсветки придется использовать много уровней вложенности - например tml для js очень сложно разрабатывать вручную, а если создавать схему через js объекты регулярные выражения можно существенно упростить и связи регулировать легче.

nixel2007 commented 11 months ago

Гибкая и умная подсветка будет разрабатываться в рамках BSL Language Server, нет смысла её тащить в плагин :)