syntaxSpan property

SyntaxSpan syntaxSpan

Implementation

SyntaxSpan get syntaxSpan {
  final nonNullSyntaxes = syntaxes.where((s) => s != null).cast<Syntax>();
  final from = minBy<Syntax?, SyntaxPosition?>(
    nonNullSyntaxes,
    (s) => s?.syntaxSpan.from,
  );

  final to = maxBy<Syntax?, SyntaxPosition?>(
    nonNullSyntaxes,
    (s) => s?.syntaxSpan.to,
  );

  if (from != null && to != null) {
    return SyntaxSpan((builder) {
      builder
        ..from = from.syntaxSpan.from.toBuilder()
        ..to = to.syntaxSpan.to.toBuilder();
    });
  }

  return SyntaxSpan.withDefault();
}