mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-10 13:33:21 +03:00
refactor(validate): свести Report-* к общему эталону вывода
interface-validate, subsystem-validate и xdto-validate отличались от остальных шести валидаторов только стилем: инлайн-сигнатура вместо param-блока и однострочный if. Приведены к эталону cf-validate. form-validate и mxl-validate оставлены отдельным вариантом с обоснованием: они пишут через Write-Host, а не через буферизованный Out-Line. Буферизация нужна для -OutFile (тот же отчёт в файл), которого у этих двух навыков нет; для модели-потребителя stdout одинаков — на успешном прогоне обе ветки дают одну строку. Семьи Report-OK/Error/Warn переведены из храповика в реестр с эталоном. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
fadda6a287
commit
f2216745e6
@@ -1,4 +1,4 @@
|
||||
# interface-validate v1.1 — Validate 1C CommandInterface.xml structure
|
||||
# interface-validate v1.2 — Validate 1C CommandInterface.xml structure (+Report-*: общий эталон вывода валидаторов)
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
param(
|
||||
[Parameter(Mandatory)][Alias('Path')][string]$CIPath,
|
||||
@@ -55,12 +55,16 @@ function Report-OK([string]$msg) {
|
||||
$script:okCount++
|
||||
if ($Detailed) { Out-Line "[OK] $msg" }
|
||||
}
|
||||
function Report-Error([string]$msg) {
|
||||
function Report-Error {
|
||||
param([string]$msg)
|
||||
$script:errors++
|
||||
Out-Line "[ERROR] $msg"
|
||||
if ($script:errors -ge $MaxErrors) { $script:stopped = $true }
|
||||
if ($script:errors -ge $MaxErrors) {
|
||||
$script:stopped = $true
|
||||
}
|
||||
}
|
||||
function Report-Warn([string]$msg) {
|
||||
function Report-Warn {
|
||||
param([string]$msg)
|
||||
$script:warnings++
|
||||
Out-Line "[WARN] $msg"
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# interface-validate v1.1 — Validate 1C CommandInterface.xml structure
|
||||
# interface-validate v1.2 — Validate 1C CommandInterface.xml structure (+Report-*: общий эталон вывода валидаторов)
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
"""Validates CommandInterface.xml sections, command references, order, duplicates."""
|
||||
import sys, os, argparse, re
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# subsystem-validate v1.2 — Validate 1C subsystem XML structure
|
||||
# subsystem-validate v1.3 — Validate 1C subsystem XML structure (+Report-*: общий эталон вывода валидаторов)
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
param(
|
||||
[Parameter(Mandatory)][Alias('Path')][string]$SubsystemPath,
|
||||
@@ -52,12 +52,16 @@ function Report-OK([string]$msg) {
|
||||
$script:okCount++
|
||||
if ($Detailed) { Out-Line "[OK] $msg" }
|
||||
}
|
||||
function Report-Error([string]$msg) {
|
||||
function Report-Error {
|
||||
param([string]$msg)
|
||||
$script:errors++
|
||||
Out-Line "[ERROR] $msg"
|
||||
if ($script:errors -ge $MaxErrors) { $script:stopped = $true }
|
||||
if ($script:errors -ge $MaxErrors) {
|
||||
$script:stopped = $true
|
||||
}
|
||||
}
|
||||
function Report-Warn([string]$msg) {
|
||||
function Report-Warn {
|
||||
param([string]$msg)
|
||||
$script:warnings++
|
||||
Out-Line "[WARN] $msg"
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# subsystem-validate v1.2 — Validate 1C subsystem XML structure
|
||||
# subsystem-validate v1.3 — Validate 1C subsystem XML structure (+Report-*: общий эталон вывода валидаторов)
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
"""Validates subsystem XML file structure, properties, content items, child objects."""
|
||||
import sys, os, argparse, re
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# xdto-validate v1.1 — Validate a 1C XDTO package
|
||||
# xdto-validate v1.2 — Validate a 1C XDTO package (+Report-*: общий эталон вывода валидаторов)
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
@@ -47,12 +47,16 @@ function Report-OK([string]$msg) {
|
||||
$script:okCount++
|
||||
if ($Detailed) { Out-Line "[OK] $msg" }
|
||||
}
|
||||
function Report-Error([string]$msg) {
|
||||
function Report-Error {
|
||||
param([string]$msg)
|
||||
$script:errors++
|
||||
Out-Line "[ERROR] $msg"
|
||||
if ($script:errors -ge $MaxErrors) { $script:stopped = $true }
|
||||
if ($script:errors -ge $MaxErrors) {
|
||||
$script:stopped = $true
|
||||
}
|
||||
}
|
||||
function Report-Warn([string]$msg) {
|
||||
function Report-Warn {
|
||||
param([string]$msg)
|
||||
$script:warnings++
|
||||
Out-Line "[WARN] $msg"
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# xdto-validate v1.1 — Validate a 1C XDTO package (Python port)
|
||||
# xdto-validate v1.2 — Validate a 1C XDTO package (Python port) (+Report-*: общий эталон вывода валидаторов)
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
import argparse
|
||||
import os
|
||||
|
||||
@@ -111,6 +111,40 @@ const FAMILIES = [
|
||||
],
|
||||
},
|
||||
|
||||
// ─── Отчёт валидаторов ───────────────────────────────────────────────────
|
||||
// Два варианта по способу вывода: буферизованный Out-Line копит отчёт в $script:output, что даёт
|
||||
// -OutFile (та же выдача в файл) и вставку заголовка в начало; потоковый Write-Host этого не умеет.
|
||||
// Для модели-потребителя stdout одинаков: на успешном прогоне обе ветки дают одну строку.
|
||||
{
|
||||
name: 'validate: report_error', py: null, ps1: 'Report-Error',
|
||||
variants: [
|
||||
{ id: 'buffered', authority: 'cf-validate',
|
||||
consumers: ['cfe-validate', 'epf-validate', 'interface-validate', 'meta-validate',
|
||||
'role-validate', 'skd-validate', 'subsystem-validate', 'xdto-validate'] },
|
||||
{ id: 'streamed', authority: 'form-validate', consumers: ['mxl-validate'],
|
||||
why: 'потоковый вывод вместо буферизованного — эти навыки не поддерживают -OutFile' },
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'validate: report_warn', py: null, ps1: 'Report-Warn',
|
||||
variants: [
|
||||
{ id: 'buffered', authority: 'cf-validate',
|
||||
consumers: ['cfe-validate', 'epf-validate', 'interface-validate', 'meta-validate',
|
||||
'role-validate', 'skd-validate', 'subsystem-validate', 'xdto-validate'] },
|
||||
{ id: 'streamed', authority: 'form-validate', consumers: ['mxl-validate'],
|
||||
why: 'потоковый вывод вместо буферизованного — эти навыки не поддерживают -OutFile' },
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'validate: report_ok', py: null, ps1: 'Report-OK',
|
||||
variants: [
|
||||
{ id: 'buffered', authority: 'cf-validate',
|
||||
consumers: ['cfe-validate', 'epf-validate', 'meta-validate', 'role-validate', 'skd-validate'] },
|
||||
{ id: 'streamed', authority: 'form-validate', consumers: ['mxl-validate'],
|
||||
why: 'потоковый вывод вместо буферизованного — эти навыки не поддерживают -OutFile' },
|
||||
],
|
||||
},
|
||||
|
||||
// ─── Прощающий ввод: разбор строки типа ──────────────────────────────────
|
||||
{
|
||||
name: 'resolve_type_str', py: 'resolve_type_str', ps1: 'Resolve-TypeStr',
|
||||
@@ -229,9 +263,6 @@ const FAMILIES = [
|
||||
const DRIFTED = [
|
||||
{ name: 'emit_mltext', py: 'emit_mltext', ps1: 'Emit-MLText', maxVariants: { py: 5, ps1: 5 } },
|
||||
{ name: 'get_ml_text', py: 'get_ml_text', ps1: 'Get-MLText', maxVariants: { py: 7, ps1: 6 } },
|
||||
{ name: 'validate: report_error', py: null, ps1: 'Report-Error', maxVariants: { ps1: 3 } },
|
||||
{ name: 'validate: report_warn', py: null, ps1: 'Report-Warn', maxVariants: { ps1: 3 } },
|
||||
{ name: 'validate: report_ok', py: null, ps1: 'Report-OK', maxVariants: { ps1: 3 } },
|
||||
{ name: 'import_fragment', py: 'import_fragment', ps1: 'Import-Fragment', maxVariants: { py: 5, ps1: 4 } },
|
||||
{ name: 'get_child_indent', py: 'get_child_indent', ps1: 'Get-ChildIndent', maxVariants: { py: 4, ps1: 3 } },
|
||||
{ name: 'write_xml_file', py: 'write_xml_file', ps1: null, maxVariants: { py: 3 } },
|
||||
|
||||
Reference in New Issue
Block a user