vscode-kclang-support
Плагин добавляет поддержку языка KCLang в VS Code для написания правил валидации и автовычислений форм Kontur.
Установка
Найти vscode-kclang-support (publisher: Forms) в маркетплейсе VS Code и нажать Install.
При каждом запуске плагин проверяет актуальность language server (KCLang.LanguageServer.dll) на NuGet-репозитории Kontur и при необходимости скачивает новую версию. Прогресс виден в Output → KcLang Plugin Log.
Поддерживаемые форматы
| Формат |
Возможности |
.kclang |
Полная поддержка: IntelliSense, автодополнение, проверка, CodeLens, все команды |
.flang |
Только подсветка синтаксиса и форматирование документа |
.flang — отдельный формат (FLang), не KCLang. Автодополнение, проверка путей, генерация описаний, LLM и прочие возможности работают только для .kclang-файлов.
IntelliSense
| Функция |
Как вызвать |
| Подсветка синтаксиса |
Автоматически |
| Автодополнение |
Ctrl+Space, или после @, /, % |
| Подсказки сигнатуры функций |
Ctrl+Shift+Space |
| Всплывающая документация |
Навести курсор на функцию или путь |
| Проверка путей и имён функций |
В реальном времени |
| Проверка синтаксиса |
В реальном времени, ошибки в Problems |
| Сниппеты |
if, check, in |
| Форматирование |
Alt+Shift+F или F1 → Format Document |
| Folding |
Автоматически по блокам |
| Sticky scroll |
Автоматически (до 10 строк, по блокам folding) |
CodeLens — кнопки над правилами
Над каждым контролем появляются кнопки прямо в редакторе:
| Кнопка |
Действие |
Playground |
Открыть контроль в интерактивном плейграунде |
Generate description |
Сгенерировать with description для правила |
Generate success description |
Сгенерировать with successDescription |
Create test |
Создать тест-кейс для контроля |
Show tests |
Навигация по существующим тест-кейсам |
Команды
Вызвать через F1 (Command Palette) и начать вводить название:
| Команда |
Описание |
Generate description |
Описание для правила под курсором |
Generate success description |
Описание успеха для правила под курсором |
Generate all descriptions |
Описания для всех правил в файле |
Generate all success descriptions |
Описания успеха для всех правил; результат открывается в новом документе |
Generate all id |
Сгенерировать with id для всех правил без id |
Generate controls with LLM from commented lines |
По выделенным аналитическим комментариям сгенерировать KCLang-правила через LLM |
Generate sugar json file for current project |
Экспортировать проект в sugar JSON (файл открывается автоматически) |
Generate grouping view |
Визуализировать логику группировки ошибок |
Горячие клавиши
| Клавиша |
Действие |
Alt+Q |
Генерация KCLang по выделенным аналитическим комментариям (LLM) |
Alt+Shift+F |
Форматирование документа |
Ctrl+Space |
Автодополнение |
Ctrl+Shift+Space |
Подсказка сигнатуры |
Разработка
cd flash.controls/vscode-kclang-extension
npm install
npm run compile # однократная сборка TypeScript
npm run watch # режим слежения
Конфигурации запуска (.vscode/launch.json):
- Launch Extension — стандартный запуск, language server скачивается с NuGet
- Debug Extension LSP — использует локальный
KCLang.LanguageServer.dll из KCLang.LanguageServer/bin/
- Launch Tests — запуск тестов расширения
Для отладки с локальным сервером — задать переменную окружения VSCODE_KCLANG_DEBUG_SERVER_PATH на путь к DLL, тогда скачивание с NuGet пропускается.
Архитектура
vscode-kclang-extension/ ← TypeScript, LSP Client
src/extension.ts ← старт плагина, создание LSP-клиента
src/handlerCommands.ts ← регистрация команд
KCLang.LanguageServer/ ← C#/.NET, LSP Server
(скачивается с NuGet при первом запуске,
или задаётся через VSCODE_KCLANG_DEBUG_SERVER_PATH)