From 3ca0752df8713ebb4f42a146e46dce14580d1715 Mon Sep 17 00:00:00 2001 From: Repinoid Date: Mon, 21 Sep 2026 20:26:41 +0300 Subject: [PATCH] =?UTF-8?q?fix(docs-generator):=20=D1=81=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=BA=D0=BE=D0=B2=D1=8B=D0=B5=20=D0=B4=D0=B5=D1=84=D0=BE=D0=BB?= =?UTF-8?q?=D1=82=D1=8B=20=D0=B2=20=D0=BA=D0=B0=D0=B2=D1=8B=D1=87=D0=BA?= =?UTF-8?q?=D0=B0=D1=85=20(default=2081.22.46.22=20=D0=BB=D0=BE=D0=BC?= =?UTF-8?q?=D0=B0=D0=BB=20HCL-=D0=BF=D0=B0=D1=80=D1=81=D0=B5=D1=80:=20Inva?= =?UTF-8?q?lid=20number=20literal)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TOOLS/docs-generator/internal/writers/writers.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/TOOLS/docs-generator/internal/writers/writers.go b/TOOLS/docs-generator/internal/writers/writers.go index 744e525..5dc21a6 100644 --- a/TOOLS/docs-generator/internal/writers/writers.go +++ b/TOOLS/docs-generator/internal/writers/writers.go @@ -769,6 +769,14 @@ func formatParamOrBlock(p types.ParamSpec, indent string, requiredOnly bool) str func sampleValue(p types.ParamSpec) string { if hasDefault(p.Default) { + // ВАЖНО: тип атрибута в схеме важнее «вида» значения в YAML. + // YAML-парсер отдаёт `default: 81.22.46.22` как float64, и formatLiteral + // печатает его без кавычек — а HCL не может распарсить такой литерал: + // Error: Invalid number literal (Failed to recognize the value of this number literal) + // Для строковых параметров значение обязано быть в кавычках. + if isStringParam(p) { + return strconv.Quote(fmt.Sprintf("%v", p.Default)) + } return formatLiteral(p.Default) } if len(p.ValueList) > 0 { @@ -786,6 +794,11 @@ func sampleValue(p types.ParamSpec) string { return "\"TODO\"" } +// isStringParam — параметр является строкой по схеме (data_type: string / varchar). +func isStringParam(p types.ParamSpec) bool { + return strings.Contains(strings.ToLower(firstType(p)), "string") +} + func formatLiteral(value interface{}) string { switch v := value.(type) { case bool: