Skip to content

Commit be21cdc

Browse files
olehermanseclaude
andcommitted
cfengine format: Made sure trailing commas are always added when multilining
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Signed-off-by: Ole Herman Schumacher Elgesem <ole@northern.tech>
1 parent b8a080d commit be21cdc

File tree

3 files changed

+7
-4
lines changed

3 files changed

+7
-4
lines changed

src/cfengine_cli/format.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,9 @@ def split_generic_list(middle: list[Node], indent: int, line_length: int) -> lis
188188
lines = split_generic_value(element, indent, line_length)
189189
elements.append(" " * indent + lines[0])
190190
elements.extend(lines[1:])
191+
# Always add a trailing comma on multi-line lists
192+
if elements and not elements[-1].endswith(","):
193+
elements[-1] = elements[-1] + ","
191194
return elements
192195

193196

tests/format/003_wrapping.input.cf

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ slist => {
2626
};
2727
"variable_name"
2828
slist => {
29-
"one","two","three","four","five","six","seven","eight","ten","eleven",
29+
"one","two","three","four","five","six","seven","eight","ten","eleven"
3030
};
3131
}
3232

@@ -39,7 +39,7 @@ vars:
3939
"one", "two", "three", "four", "five", "six", "seven", "eight"
4040
);
4141
"variable_name" string => concat(
42-
"one","two","three","four","five","six","seven","eight","nine","ten",
42+
"one","two","three","four","five","six","seven","eight","nine","ten"
4343
);
4444
}
4545

@@ -61,6 +61,6 @@ concat("two", "three", "four", "five", "six", "seven", "eight", "nine", ""),
6161
);
6262
"variable_name" string => concat(
6363
"one",
64-
concat("two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", ),
64+
concat("two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"),
6565
);
6666
}

tests/unit/test_format.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ def test_stringify_single_line_node_with_children():
301301
def test_split_generic_list_basic():
302302
nodes = [_leaf("string", '"a"'), _leaf(","), _leaf("string", '"b"')]
303303
result = split_generic_list(nodes, 4, 80)
304-
assert result == [' "a",', ' "b"']
304+
assert result == [' "a",', ' "b",']
305305

306306

307307
def test_maybe_split_generic_list_fits():

0 commit comments

Comments
 (0)