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

Side by Side Diff: bin/format.dart

Issue 1470263004: Add "-i" to command line to specify leading indent. (Closed) Base URL: https://github.com/dart-lang/dart_style.git@master
Patch Set: Created 5 years 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 | « no previous file | lib/src/formatter_options.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) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 import 'dart:convert'; 5 import 'dart:convert';
6 import 'dart:io'; 6 import 'dart:io';
7 7
8 import 'package:args/args.dart'; 8 import 'package:args/args.dart';
9 9
10 import 'package:dart_style/src/dart_formatter.dart'; 10 import 'package:dart_style/src/dart_formatter.dart';
11 import 'package:dart_style/src/formatter_exception.dart'; 11 import 'package:dart_style/src/formatter_exception.dart';
12 import 'package:dart_style/src/formatter_options.dart'; 12 import 'package:dart_style/src/formatter_options.dart';
13 import 'package:dart_style/src/io.dart'; 13 import 'package:dart_style/src/io.dart';
14 import 'package:dart_style/src/source_code.dart'; 14 import 'package:dart_style/src/source_code.dart';
15 15
16 // Note: The following line of code is modified by tool/grind.dart. 16 // Note: The following line of code is modified by tool/grind.dart.
17 const version = "0.2.0+1"; 17 const version = "0.2.0+1";
18 18
19 void main(List<String> args) { 19 void main(List<String> args) {
20 var parser = new ArgParser(allowTrailingOptions: true); 20 var parser = new ArgParser(allowTrailingOptions: true);
21 21
22 parser.addFlag("help", 22 parser.addFlag("help",
23 abbr: "h", negatable: false, help: "Shows usage information."); 23 abbr: "h", negatable: false, help: "Shows usage information.");
24 parser.addFlag("version", 24 parser.addFlag("version",
25 negatable: false, help: "Shows version information."); 25 negatable: false, help: "Shows version information.");
26 parser.addOption("line-length", 26 parser.addOption("line-length",
27 abbr: "l", help: "Wrap lines longer than this.", defaultsTo: "80"); 27 abbr: "l", help: "Wrap lines longer than this.", defaultsTo: "80");
28 parser.addOption("indent",
29 abbr: "i", help: "Spaces of leading indentation.", defaultsTo: "0");
28 parser.addOption("preserve", 30 parser.addOption("preserve",
29 help: 'Selection to preserve, formatted as "start:length".'); 31 help: 'Selection to preserve, formatted as "start:length".');
30 parser.addFlag("dry-run", 32 parser.addFlag("dry-run",
31 abbr: "n", 33 abbr: "n",
32 negatable: false, 34 negatable: false,
33 help: "Show which files would be modified but make no changes."); 35 help: "Show which files would be modified but make no changes.");
34 parser.addFlag("overwrite", 36 parser.addFlag("overwrite",
35 abbr: "w", 37 abbr: "w",
36 negatable: false, 38 negatable: false,
37 help: "Overwrite input files with formatted output."); 39 help: "Overwrite input files with formatted output.");
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 reporter = OutputReporter.overwrite; 113 reporter = OutputReporter.overwrite;
112 } else if (argResults["machine"]) { 114 } else if (argResults["machine"]) {
113 reporter = OutputReporter.printJson; 115 reporter = OutputReporter.printJson;
114 } 116 }
115 117
116 if (argResults["profile"]) { 118 if (argResults["profile"]) {
117 reporter = new ProfileReporter(reporter); 119 reporter = new ProfileReporter(reporter);
118 } 120 }
119 121
120 var pageWidth; 122 var pageWidth;
121
122 try { 123 try {
123 pageWidth = int.parse(argResults["line-length"]); 124 pageWidth = int.parse(argResults["line-length"]);
124 } on FormatException catch (_) { 125 } on FormatException catch (_) {
125 usageError( 126 usageError(
126 parser, 127 parser,
127 '--line-length must be an integer, was ' 128 '--line-length must be an integer, was '
128 '"${argResults['line-length']}".'); 129 '"${argResults['line-length']}".');
129 } 130 }
130 131
132 var indent;
133
134 try {
135 indent = int.parse(argResults["indent"]);
136 if (indent < 0 || indent.toInt() != indent) throw new FormatException();
137 } on FormatException catch (_) {
138 usageError(
139 parser,
140 '--indent must be a non-negative integer, was '
141 '"${argResults['indent']}".');
142 }
143
131 var followLinks = argResults["follow-links"]; 144 var followLinks = argResults["follow-links"];
132 145
133 var options = new FormatterOptions(reporter, 146 var options = new FormatterOptions(reporter,
134 pageWidth: pageWidth, followLinks: followLinks); 147 indent: indent, pageWidth: pageWidth, followLinks: followLinks);
135 148
136 if (argResults.rest.isEmpty) { 149 if (argResults.rest.isEmpty) {
137 formatStdin(options, selection); 150 formatStdin(options, selection);
138 } else { 151 } else {
139 formatPaths(options, argResults.rest); 152 formatPaths(options, argResults.rest);
140 } 153 }
141 154
142 if (argResults["profile"]) { 155 if (argResults["profile"]) {
143 (reporter as ProfileReporter).showProfile(); 156 (reporter as ProfileReporter).showProfile();
144 } 157 }
(...skipping 16 matching lines...) Expand all
161 var selectionStart = 0; 174 var selectionStart = 0;
162 var selectionLength = 0; 175 var selectionLength = 0;
163 176
164 if (selection != null) { 177 if (selection != null) {
165 selectionStart = selection[0]; 178 selectionStart = selection[0];
166 selectionLength = selection[1]; 179 selectionLength = selection[1];
167 } 180 }
168 181
169 var input = new StringBuffer(); 182 var input = new StringBuffer();
170 stdin.transform(new Utf8Decoder()).listen(input.write, onDone: () { 183 stdin.transform(new Utf8Decoder()).listen(input.write, onDone: () {
171 var formatter = new DartFormatter(pageWidth: options.pageWidth); 184 var formatter =
185 new DartFormatter(indent: options.indent, pageWidth: options.pageWidth);
172 try { 186 try {
173 options.reporter.beforeFile(null, "<stdin>"); 187 options.reporter.beforeFile(null, "<stdin>");
174 var source = new SourceCode(input.toString(), 188 var source = new SourceCode(input.toString(),
175 uri: "stdin", 189 uri: "stdin",
176 selectionStart: selectionStart, 190 selectionStart: selectionStart,
177 selectionLength: selectionLength); 191 selectionLength: selectionLength);
178 var output = formatter.formatSource(source); 192 var output = formatter.formatSource(source);
179 options.reporter 193 options.reporter
180 .afterFile(null, "<stdin>", output, changed: source != output); 194 .afterFile(null, "<stdin>", output, changed: source != output);
181 return true; 195 return true;
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 output = stdout; 243 output = stdout;
230 } 244 }
231 245
232 output.write("""$message 246 output.write("""$message
233 247
234 Usage: dartfmt [-n|-w] [files or directories...] 248 Usage: dartfmt [-n|-w] [files or directories...]
235 249
236 ${parser.usage} 250 ${parser.usage}
237 """); 251 """);
238 } 252 }
OLDNEW
« no previous file with comments | « no previous file | lib/src/formatter_options.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698