format method

Future<void> format({
  1. bool fix = false,
})

Check or fix format

Implementation

Future<void> format({bool fix = false}) async {
  if (isWorkspaceRoot) {
    return;
  }
  filteredDartDirs ??= await filterTopLevelDartDirs(path);
  var filteredDartDirsArg = filteredDartDirs!.join(' ');

  if (fix || !options.noFormat) {
    // Previous version were using dart_style, we now use dart format
    // Even for flutter we use `dart format`, before flutter 3.7 `flutter format` was alloed

    // Needed otherwise formatter is stuck
    if (filteredDartDirsArg.isEmpty) {
      filteredDartDirsArg = '.';
    }
    try {
      if (fix) {
        await runScript('''
          # Format
          dart format $filteredDartDirsArg
  ''');
      } else {
        await runScript('''
          # Check Formatting
          dart format --set-exit-if-changed $filteredDartDirsArg
  ''');
      }
    } catch (e) {
      // Sometimes we allow formatting errors...

      // if (supportsNnbdExperiment) {
      //  stderr.writeln('Error in dartfmt during nnbd experiment, ok...');
      //} else {
      //

      // but in general no!
      rethrow;
    }
  }
}