def generate_expr_build_syntax_node()

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)'