| Index: lib/src/formatter_options.dart
|
| diff --git a/lib/src/formatter_options.dart b/lib/src/formatter_options.dart
|
| index 396e10a99d02e2bb2d7eedf60410c5596005e89f..3869e8a43637943b4cd652920788e5141641b70f 100644
|
| --- a/lib/src/formatter_options.dart
|
| +++ b/lib/src/formatter_options.dart
|
| @@ -7,6 +7,8 @@ library dart_style.src.formatter_options;
|
| import 'dart:convert';
|
| import 'dart:io';
|
|
|
| +import 'source_code.dart';
|
| +
|
| /// Global options that affect how the formatter produces and uses its outputs.
|
| class FormatterOptions {
|
| /// The [OutputReporter] used to show the formatting results.
|
| @@ -52,13 +54,13 @@ abstract class OutputReporter {
|
| ///
|
| /// If the contents of the file are the same as the formatted output,
|
| /// [changed] will be false.
|
| - void showFile(File file, String label, String output, {bool changed});
|
| + void showFile(File file, String label, SourceCode output, {bool changed});
|
| }
|
|
|
| /// Prints only the names of files whose contents are different from their
|
| /// formatted version.
|
| class _DryRunReporter extends OutputReporter {
|
| - void showFile(File file, String label, String output, {bool changed}) {
|
| + void showFile(File file, String label, SourceCode output, {bool changed}) {
|
| // Only show the changed files.
|
| if (changed) print(label);
|
| }
|
| @@ -78,16 +80,16 @@ class _PrintReporter extends OutputReporter {
|
| print("Skipping hidden file $path");
|
| }
|
|
|
| - void showFile(File file, String label, String output, {bool changed}) {
|
| + void showFile(File file, String label, SourceCode output, {bool changed}) {
|
| // Don't add an extra newline.
|
| - stdout.write(output);
|
| + stdout.write(output.text);
|
| }
|
| }
|
|
|
| /// Prints the formatted result and selection info of each file to stdout as a
|
| /// JSON map.
|
| class _PrintJsonReporter extends OutputReporter {
|
| - void showFile(File file, String label, String output, {bool changed}) {
|
| + void showFile(File file, String label, SourceCode output, {bool changed}) {
|
| // TODO(rnystrom): Put an empty selection in here to remain compatible with
|
| // the old formatter. Since there's no way to pass a selection on the
|
| // command line, this will never be used, which is why it's hard-coded to
|
| @@ -95,17 +97,20 @@ class _PrintJsonReporter extends OutputReporter {
|
| // result here.
|
| print(JSON.encode({
|
| "path": label,
|
| - "source": output,
|
| - "selection": {"offset": -1, "length": -1}
|
| + "source": output.text,
|
| + "selection": {
|
| + "offset": output.selectionStart != null ? output.selectionStart : -1,
|
| + "length": output.selectionLength != null ? output.selectionLength : -1
|
| + }
|
| }));
|
| }
|
| }
|
|
|
| /// Overwrites each file with its formatted result.
|
| class _OverwriteReporter extends _PrintReporter {
|
| - void showFile(File file, String label, String output, {bool changed}) {
|
| + void showFile(File file, String label, SourceCode output, {bool changed}) {
|
| if (changed) {
|
| - file.writeAsStringSync(output);
|
| + file.writeAsStringSync(output.text);
|
| print("Formatted $label");
|
| } else {
|
| print("Unchanged $label");
|
|
|