Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(410)

Side by Side Diff: lib/src/formatter_options.dart

Issue 968053004: Allow command-line API to pass in selection to preserve. Fix #194. (Closed) Base URL: https://github.com/dart-lang/dart_style.git@master
Patch Set: Update version Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « bin/format.dart ('k') | lib/src/io.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library dart_style.src.formatter_options; 5 library dart_style.src.formatter_options;
6 6
7 import 'dart:convert'; 7 import 'dart:convert';
8 import 'dart:io'; 8 import 'dart:io';
9 9
10 import 'source_code.dart';
11
10 /// Global options that affect how the formatter produces and uses its outputs. 12 /// Global options that affect how the formatter produces and uses its outputs.
11 class FormatterOptions { 13 class FormatterOptions {
12 /// The [OutputReporter] used to show the formatting results. 14 /// The [OutputReporter] used to show the formatting results.
13 final OutputReporter reporter; 15 final OutputReporter reporter;
14 16
15 /// The number of columns that formatted output should be constrained to fit 17 /// The number of columns that formatted output should be constrained to fit
16 /// within. 18 /// within.
17 final int pageWidth; 19 final int pageWidth;
18 20
19 /// Whether symlinks should be traversed when formatting a directory. 21 /// Whether symlinks should be traversed when formatting a directory.
(...skipping 25 matching lines...) Expand all
45 /// Describe the symlink at [path] that wasn't followed. 47 /// Describe the symlink at [path] that wasn't followed.
46 void showSkippedLink(String path) {} 48 void showSkippedLink(String path) {}
47 49
48 /// Describe the hidden file at [path] that wasn't processed. 50 /// Describe the hidden file at [path] that wasn't processed.
49 void showHiddenFile(String path) {} 51 void showHiddenFile(String path) {}
50 52
51 /// Describe the processed file at [path] whose formatted result is [output]. 53 /// Describe the processed file at [path] whose formatted result is [output].
52 /// 54 ///
53 /// If the contents of the file are the same as the formatted output, 55 /// If the contents of the file are the same as the formatted output,
54 /// [changed] will be false. 56 /// [changed] will be false.
55 void showFile(File file, String label, String output, {bool changed}); 57 void showFile(File file, String label, SourceCode output, {bool changed});
56 } 58 }
57 59
58 /// Prints only the names of files whose contents are different from their 60 /// Prints only the names of files whose contents are different from their
59 /// formatted version. 61 /// formatted version.
60 class _DryRunReporter extends OutputReporter { 62 class _DryRunReporter extends OutputReporter {
61 void showFile(File file, String label, String output, {bool changed}) { 63 void showFile(File file, String label, SourceCode output, {bool changed}) {
62 // Only show the changed files. 64 // Only show the changed files.
63 if (changed) print(label); 65 if (changed) print(label);
64 } 66 }
65 } 67 }
66 68
67 /// Prints the formatted results of each file to stdout. 69 /// Prints the formatted results of each file to stdout.
68 class _PrintReporter extends OutputReporter { 70 class _PrintReporter extends OutputReporter {
69 void showDirectory(String path) { 71 void showDirectory(String path) {
70 print("Formatting directory $path:"); 72 print("Formatting directory $path:");
71 } 73 }
72 74
73 void showSkippedLink(String path) { 75 void showSkippedLink(String path) {
74 print("Skipping link $path"); 76 print("Skipping link $path");
75 } 77 }
76 78
77 void showHiddenFile(String path) { 79 void showHiddenFile(String path) {
78 print("Skipping hidden file $path"); 80 print("Skipping hidden file $path");
79 } 81 }
80 82
81 void showFile(File file, String label, String output, {bool changed}) { 83 void showFile(File file, String label, SourceCode output, {bool changed}) {
82 // Don't add an extra newline. 84 // Don't add an extra newline.
83 stdout.write(output); 85 stdout.write(output.text);
84 } 86 }
85 } 87 }
86 88
87 /// Prints the formatted result and selection info of each file to stdout as a 89 /// Prints the formatted result and selection info of each file to stdout as a
88 /// JSON map. 90 /// JSON map.
89 class _PrintJsonReporter extends OutputReporter { 91 class _PrintJsonReporter extends OutputReporter {
90 void showFile(File file, String label, String output, {bool changed}) { 92 void showFile(File file, String label, SourceCode output, {bool changed}) {
91 // TODO(rnystrom): Put an empty selection in here to remain compatible with 93 // TODO(rnystrom): Put an empty selection in here to remain compatible with
92 // the old formatter. Since there's no way to pass a selection on the 94 // the old formatter. Since there's no way to pass a selection on the
93 // command line, this will never be used, which is why it's hard-coded to 95 // command line, this will never be used, which is why it's hard-coded to
94 // -1, -1. If we add support for passing in a selection, put the real 96 // -1, -1. If we add support for passing in a selection, put the real
95 // result here. 97 // result here.
96 print(JSON.encode({ 98 print(JSON.encode({
97 "path": label, 99 "path": label,
98 "source": output, 100 "source": output.text,
99 "selection": {"offset": -1, "length": -1} 101 "selection": {
102 "offset": output.selectionStart != null ? output.selectionStart : -1,
103 "length": output.selectionLength != null ? output.selectionLength : -1
104 }
100 })); 105 }));
101 } 106 }
102 } 107 }
103 108
104 /// Overwrites each file with its formatted result. 109 /// Overwrites each file with its formatted result.
105 class _OverwriteReporter extends _PrintReporter { 110 class _OverwriteReporter extends _PrintReporter {
106 void showFile(File file, String label, String output, {bool changed}) { 111 void showFile(File file, String label, SourceCode output, {bool changed}) {
107 if (changed) { 112 if (changed) {
108 file.writeAsStringSync(output); 113 file.writeAsStringSync(output.text);
109 print("Formatted $label"); 114 print("Formatted $label");
110 } else { 115 } else {
111 print("Unchanged $label"); 116 print("Unchanged $label");
112 } 117 }
113 } 118 }
114 } 119 }
OLDNEW
« no previous file with comments | « bin/format.dart ('k') | lib/src/io.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698