func insert()

in Sources/SwiftFormatRules/ModifierListSyntax+Convenience.swift [59:93]


  func insert(
    modifier: DeclModifierSyntax, at index: Int,
    formatTrivia: Bool = true
  ) -> ModifierListSyntax {
    guard index >= 0, index <= count else { return self }

    var newModifiers: [DeclModifierSyntax] = []
    newModifiers.append(contentsOf: self)

    let modifier = formatTrivia
      ? replaceTrivia(
        on: modifier,
        token: modifier.name,
        trailingTrivia: .spaces(1)) : modifier

    if index == 0 {
      guard formatTrivia else { return inserting(modifier, at: index) }
      guard let firstMod = first, let firstTok = firstMod.firstToken else {
        return inserting(modifier, at: index)
      }
      let formattedMod = replaceTrivia(
        on: modifier,
        token: modifier.firstToken,
        leadingTrivia: firstTok.leadingTrivia)
      newModifiers[0] = replaceTrivia(
        on: firstMod,
        token: firstTok,
        leadingTrivia: [],
        trailingTrivia: .spaces(1))
      newModifiers.insert(formattedMod, at: 0)
      return SyntaxFactory.makeModifierList(newModifiers)
    } else {
      return inserting(modifier, at: index)
    }
  }