# BSNC Syntax & Highlighting Расширение для Visual Studio Code, добавляющее полноценную подсветку синтаксиса, автодополнение и цветовую схему для программ ЧПУ в формате **BSNC / NC‑310**. ## ✨ Возможности - **Подсветка G/M‑кодов** Разделение кода и числовой части, поддержка слитной и раздельной записи (`G1X0Y0F500`, `S600 M3` и т.д.). - **Подсветка трёхбуквенных кодов в скобках** (`UCG`, `UAO`, `URT`, `RPT`, `ERP` и др.) с разбором аргументов по типам: числа, переменные, строки. - **Подсветка переменных E** (`E30=0`, `ZE30`) с раздельным цветом для имени и значения. - **Выделение начала и конца циклов** `(RPT,...)` и `(ERP)` — яркие цвета для мгновенного поиска в коде. - **Подсветка допустимых и недопустимых G‑кодов** Валидные коды из документации — обычный цвет, неизвестные — выделяются как ошибка. - **Подсветка комментариев** Однострочные (`; ...`) и блочные в скобках. - **Встроенная цветовая схема** Все цвета для токенов уже встроены в расширение, интерфейс VS Code не меняется. ## 📋 Поддерживаемые G‑коды | Код | Описание | |------|----------| | G00 | Быстрое позиционирование | | G01 | Линейная интерполяция | | G02 | Круговая интерполяция по часовой стрелке | | G03 | Круговая интерполяция против часовой стрелки | | G04 | Выдержка времени, заданная в кадре | | G06 | Сплайновая интерполяция | | G09 | Замедление в конце кадра | | G17 | Выбор плоскости интерполяции (оси 1 и 2) | | G18 | Выбор плоскости интерполяции (оси 3 и 1) | | G19 | Выбор плоскости интерполяции (оси 2 и 3) | | G20 | Закрытие среды программирования GTL | | G21 | Открытие среды программирования GTL | | G27 | Непрерывная обработка с замедлением на углах | | G28 | Непрерывная обработка без замедления на углах | | G29 | Позиционирование от точки к точке | | G33 | Нарезание резьбы с постоянным/переменным шагом | | G34 | Нарезание резьбы с постоянным/переменным шагом | | G35 | Синхронизированное начало движения со шпинделем | | G40 | Отмена корректировки на профиле | | G41 | Корректировка на профиле (инструмент слева) | | G42 | Корректировка на профиле (инструмент справа) | | G70 | Программирование в дюймах | | G71 | Программирование в миллиметрах | | G72 | Измерение точки с компенсацией радиуса | | G73 | Измерение параметров отверстия | | G74 | Измерение отклонения без компенсации радиуса | | G79 | Программирование относительно нуля станка | | G80 | Отмена постоянных циклов | | G81 | Цикл сверления | | G82 | Цикл растачивания | | G83 | Цикл глубокого сверления | | G84 | Цикл нарезания резьбы метчиком | | G85 | Цикл рассверливания | | G86 | Цикл развертывания | | G89 | Цикл развертывания с остановкой | | G90 | Абсолютное программирование | | G91 | Программирование по приращениям | | G93 | Подача в виде обратного времени | | G94 | Подача в мм/мин или дюйм/мин | | G95 | Подача в мм/оборот | | G96 | Скорость вращения шпинделя, м/мин | | G97 | Скорость вращения шпинделя, об/мин | > ❗ Любые другие G‑коды будут подсвечены как **ошибочные**. ## 📦 Установка 1. Скачайте `.vsix` или установите из [Visual Studio Marketplace](#) (ссылка после публикации). 2. В VS Code: `Ctrl+Shift+P` → **Extensions: Install from VSIX** → выберите файл. 3. Расширение активируется автоматически для файлов с кодом BSNC. ## 🚀 Использование - Откройте файл программы ЧПУ (с расширением или без). - Подсветка и цвета применяются автоматически. - Сниппеты: - `ucg` → `(UCG,2,X-33X33,Y-33Y33,Z-15Z0,1,-3)` - `urt` → `(URT,0)` - `rpt` → `(RPT,E0)` - Недопустимые G‑коды будут выделены красным фоном. ## ⚙️ Кастомизация Если хотите изменить цвета: 1. Откройте `settings.json`. 2. Добавьте свои правила в `editor.tokenColorCustomizations.textMateRules` — они перекроют встроенные. ## 📄 Лицензия MIT — используйте, модифицируйте и делитесь.