fix: no multi empty line when a variable finish by a multi line description

This commit is contained in:
egarette@silique.fr 2025-05-14 22:08:24 +02:00
parent 919775ba27
commit d52401b5a7
3 changed files with 48 additions and 10 deletions

View file

@ -256,9 +256,9 @@ class RougailOutputFormatter:
path_len -= 1
column = path_len * 2 + len(name) + add_column
if self.remaining:
description = family["description"] + "\n\n"
description = family["description"].strip() + "\n\n"
else:
description = family["description"]
description = family["description"].strip()
ret.yaml_add_eol_comment(description, name, column=column)
else:
self.add_space(family)
@ -354,7 +354,7 @@ class RougailOutputFormatter:
ret[name] = default
add_column += len(str(default)) + 1
if "description" in variable:
description = variable["description"]
description = variable["description"].strip()
if self.remaining and (not multi or not default):
description += "\n\n"
path_len = path.count(".")
@ -383,11 +383,11 @@ class RougailOutputFormatter:
return typ, parent, param
param = list(obj)[-1]
if isinstance(obj[param], ScalarString):
typ, parent, param = _get_last_obj(obj[param], obj, param, "map")
if isinstance(parent[param], ScalarString):
enter = "\n"
else:
enter = "\n\n"
typ, parent, param = _get_last_obj(obj[param], obj, param, "map")
if typ == "seq":
func = parent.yaml_key_comment_extend
else:
@ -430,9 +430,9 @@ class RougailOutputFormatter:
jinja["return_type"] = value.return_type
if value.description:
if "\n" in value.description:
jinja["description"] = LiteralScalarString(value.description)
jinja["description"] = LiteralScalarString(value.description.strip())
else:
jinja["description"] = value.description
jinja["description"] = value.description.strip()
if value.params:
jinja["params"] = self.object_to_yaml(
"params", type_, value.params, multi, object_path
@ -471,9 +471,9 @@ class RougailOutputFormatter:
del variable["type"]
if value.description:
if "\n" in value.description:
variable["description"] = LiteralScalarString(value.description)
variable["description"] = LiteralScalarString(value.description.strip())
else:
variable["description"] = value.description
variable["description"] = value.description.strip()
return variable
elif isinstance(value, Param):
param_attributes = self.get_attributes(
@ -503,7 +503,7 @@ class RougailOutputFormatter:
elif type_ == "port" and isinstance(value, str) and value.isnumeric():
return int(value)
elif key == "help" and "\n" in value:
return LiteralScalarString(value)
return LiteralScalarString(value.strip())
return value
def calc_variable_path(self, object_path, variable_path):

View file

@ -0,0 +1,18 @@
%YAML 1.2
---
version: 1.1
var1: # a first variable
var2:
description: a second variable
default:
variable: _.var1
description: |-
value
of
a
variable!
var3: # a new variable
...

View file

@ -0,0 +1,20 @@
%YAML 1.2
---
version: 1.1
leadership:
description: a leadership
type: leadership
leader:
description: a leader
test:
- val1
- val2
default:
- value_1
- value_2
- value_3
follower: # a follower
...