mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-20 17:25:52 +03:00
feat(cfe-patch-method,cfe-diff,cfe-validate): распознавание английских ключевых слов BSL
Платформа принимает встроенный язык в двух написаниях, а навыки читали только русское: в расширении на английском перехватчики и блоки правок не находились, и отчёт выглядел чистым. -Check молчал, cfe-diff не показывал вставки, счётчик контролируемых методов в cfe-validate давал ноль. Пары ключевых слов сверены по таблицам строк платформы (backbas.dll, bsl.dll), а не по памяти. Разбор стал двуязычным везде, где навык читает модуль: аннотации, объявления и Конец*, Знач, директивы контекста, препроцессор в цепочке обрамления, поиск региона при переиспользовании. Маркеры правок распознаются по началу строки, а не сравнением целой строки, — заодно перестал теряться хвостовой комментарий (#Вставка // старая логика). Эмиссия подчиняется одному правилу: отдаём тем языком, который прочитали. Генерация берёт язык метода-источника, -Actualize — язык переписываемого перехватчика, чтобы актуализация не превращала чужие Procedure и #Insert в русские. Комментарии и вывод в консоль остаются русскими. Таблица ключевых слов и разбор аннотаций скопированы в три навыка и заведены семьями в реестре анти-дрейфа: разъехавшаяся пара слов дала бы ровно тот же тихий ложно-чистый отчёт. Проверено платформой: расширение с &ChangeAndValidate принимается (/CheckCanApplyConfigurationExtensions), после дрейфа оригинала отвергается, после -Actualize принимается снова. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
e2c7f38518
commit
1b2c9388e8
@@ -149,6 +149,30 @@ const FAMILIES = [
|
||||
],
|
||||
},
|
||||
|
||||
// ─── Встроенный язык 1С в двух написаниях ────────────────────────────────
|
||||
// Платформа принимает и русские, и английские ключевые слова, поэтому разбор модуля обязан
|
||||
// читать оба написания. Таблица пар — данные, но живёт функцией: гард видит только функции,
|
||||
// а разъехавшаяся пара слов даёт ровно тот тихий ложно-чистый отчёт, из-за которого всё это
|
||||
// и делалось (ишью #97).
|
||||
{
|
||||
name: 'BSL: таблица ключевых слов', py: 'bsl_keywords', ps1: 'Get-BslKeywords',
|
||||
variants: [
|
||||
{ id: 'base', authority: 'cfe-patch-method', consumers: ['cfe-diff', 'cfe-validate'] },
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'BSL: вид маркера правки', py: 'bsl_marker_kind', ps1: 'Get-BslMarkerKind',
|
||||
variants: [
|
||||
{ id: 'base', authority: 'cfe-patch-method', consumers: ['cfe-diff'] },
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'BSL: разбор аннотаций перехвата', py: 'get_interceptors', ps1: 'Get-Interceptors',
|
||||
variants: [
|
||||
{ id: 'base', authority: 'cfe-patch-method', consumers: ['cfe-diff'] },
|
||||
],
|
||||
},
|
||||
|
||||
// ─── Запись файла в каноне выгрузки ──────────────────────────────────────
|
||||
{
|
||||
name: 'write_xml_file', py: 'write_xml_file', ps1: 'Write-XmlFile',
|
||||
|
||||
Reference in New Issue
Block a user