Сервер валидации
Бинари сервера валидации не входят в VSIX. При каждом запуске расширение проверяет актуальность
сервера в NuGet-репозитории Контура (пакет forms.vscodeextension), при необходимости скачивает
новую версию и кэширует её в globalStorage. Что это значит на практике:
- при первом запуске нужен доступ к сети Контура — иначе расширение не стартует и покажет ошибку;
- если сеть недоступна, но сервер уже скачивался раньше, используется версия из кэша,
а в углу появляется предупреждение;
- прежняя версия удаляется только после того, как новая скачана, распакована и проверена на полноту
состава: неполный пакет или обрыв связи не оставят вас без валидации;
- прогресс и диагностика — в Output → FORMS AIO.
Чтобы запустить расширение с локально собранным сервером (без похода в Nexus), выставьте переменную
окружения VSCODE_FORMS_AIO_LOCAL_SERVER_PATH с путём до bin/Forms.VSCodeExtension.dll — так работает
конфигурация [PROD] Launch Client (local server) в .vscode/launch.json и интеграционные тесты.
Быстрый старт
- Для того чтобы провалидировать файл, достаточно открыть его или сохранить
- Доступные на данный момент валидации:
- FlashPropsValidRule
- CandyFarmNoDuplicatedFileNames
- CandyFarmValidConverterFileNameRule
- FreezeCalendarValidCalendarRule
- KrecPdfPrintValidRule
- Pdf417TemplatesWithFlagsValidRule
- CandyFarmValidXsltRule
- ValidFop11FormatsFlagRule
- ValidFop11TemplatePathFlagRule
- ValidExcelFormatsFlagRule
- ValidExcelTemplatePathFlagRule
- ValidFop11BigFormatsFlagRule
- ValidFop11BigTemplatePathFlagRule
- ValidBunshoTemplatePathFlagRule
- ValidBunshoFormatsFlagRule
- ClassificationFlagNameAndValueRule,
- ClassificationConfigValidationRule
- PicklistResourcesMainValidationRule
- PicklistResourcesDuplicateGidValidationRule
- PicklistBookingValidationRule
- ClassificationFormPrefixValidationRule
- UniquePrintTechnologyValidationRule
- SprinterTemplatesWithFlagValidationRule
- FlagCheckersInClassificationValidationRule
- FlagEditorsInClassificationValidationRule
- ResourceTypeValidationRule
- PatchingFlagsValidationRule
- Список доступных валидаций будет расширятся
Буквы-чужаки (гомоглифы)
Проверка смешения кириллицы и латиницы (буквы-двойники, гомоглифы). Работает
целиком на стороне клиента, в любых открытых файлах (XML, XSLT, XSD, YAML и т. д.),
и не зависит от воркспейса extern.forms.
- Слово режется на под-слова по camelCase/PascalCase (граница — переход строчная→заглавная)
и по словам из словаря; легитимные склейки (
trimmedГод, ДокPDF, НДСPDF) не помечаются.
- В каждом под-слове меньшинство букв считается «чужаком» (при равенстве — латиница);
под-слово целиком в одном алфавите не трогается.
- Словарь законных слов-аббревиатур (
IP, PDF, GUID, URL, XML, …) дополняется настройкой
EFAIO.homoglyph.extraKnownTokens.
- Регулярки не проверяются: значения атрибутов
pattern="…" и аргументы regex-функций
regexMatch('…').
- Буквы-чужаки подсвечиваются фоном (по умолчанию полупрозрачным красным) и подчёркиванием.
- Если у буквы-чужака есть двойник — предлагается Quick Fix (лампочка /
Ctrl+.).
- Команда «Буквы-чужаки: исправить все гомоглифы в файле» правит сразу весь файл:
её можно вызвать кнопкой ✨ в правом верхнем углу редактора или из палитры команд.
Источник этих диагностик — forms-aio-homoglyph (отдельно от диагностик
языкового сервера).
Настройки
| Параметр |
По умолчанию |
Описание |
EFAIO.homoglyph.enable |
true |
Включить/выключить проверку. |
EFAIO.homoglyph.severity |
error |
Уровень в Problems: error, warning, information, hint. |
EFAIO.homoglyph.backgroundColor |
rgba(255, 0, 0, 0.3) |
Цвет фоновой подсветки (любой CSS-цвет). По умолчанию полупрозрачный красный — читаемо на любой теме. Пустая строка = выключить фон. |
EFAIO.homoglyph.languages |
[] |
Где проверять. Каждая запись — languageId ("xml", "xsl"), расширение файла ("gfv", ".gfv") или глоб пути ("*.xslt", "**/templates/**"), например ["xml", "gfv", "*.xslt"]. Пустой список = все файлы. |
EFAIO.homoglyph.ignore |
[] |
Точные слова-исключения (легитимные смешанные токены). |
EFAIO.homoglyph.extraKnownTokens |
[] |
Доп. законные слова-аббревиатуры в дополнение к встроенным (IP, PDF, GUID, URL, URI, XML, XSD, XSLT, HTML, JSON, ID, GFV). |
| |