func mapToCodeBlock()

in SwiftEvolve/Sources/SwiftEvolve/SyntaxConstructionExtensions.swift [66:94]


  func mapToCodeBlock(
    outerLeadingTrivia: Trivia = [.spaces(1)],
    innerLeadingTrivia: Trivia = [.newlines(1)],
    statementLeadingTrivia: Trivia = [.spaces(2)],
    statementTrailingTrivia: Trivia = [.newlines(1)],
    innerTrailingTrivia: Trivia = [],
    outerTrailingTrivia: Trivia = [.newlines(1)],
    _ transform: (Element) throws -> Syntax
  ) rethrows -> CodeBlockSyntax {
    let stmts = try map {
      SyntaxFactory.makeCodeBlockItem(
        item: try transform($0).replacingTriviaWith(
          leading: statementLeadingTrivia, trailing: statementTrailingTrivia
        ),
        semicolon: nil,
        errorTokens: nil
      )
    }
    
    return SyntaxFactory.makeCodeBlock(
      leftBrace: SyntaxFactory.makeLeftBraceToken(
        leadingTrivia: outerLeadingTrivia, trailingTrivia: innerLeadingTrivia
      ),
      statements: SyntaxFactory.makeCodeBlockItemList(stmts),
      rightBrace: SyntaxFactory.makeRightBraceToken(
        leadingTrivia: innerTrailingTrivia, trailingTrivia: outerTrailingTrivia
      )
    )
  }