in Sources/SwiftSyntaxBuilder/gyb_helpers/SyntaxBuildableWrappers.py [0:0]
def generate_expr_build_syntax_node(self, var_name, format_name):
"""
Generate a Swift expression that creates a proper SwiftSyntax node of type `self.type().syntax()` from a variable named `var_name` of type `self.type().buildable()` that represents this child node.
"""
if self.type().is_token():
if self.child.requires_leading_newline:
return var_name + '.withLeadingTrivia(.newlines(1) + ' + format_name + '._makeIndent() + (' + var_name + '.leadingTrivia ?? []))'
else:
return var_name
else:
format = format_name
if self.child.is_indented:
format += '._indented()'
expr = var_name
if self.type().is_optional:
expr = expr + '?'
return expr + '.build' + self.type().base_name() + '(format: ' + format + ', leadingTrivia: nil)'