@@ -223,7 +223,8 @@ class GenerateLocalizationsCommand extends FlutterCommand {
223223
224224 @override
225225 Future <FlutterCommandResult > runCommand () async {
226- List <String > outputFileList;
226+ final List <String > outputFileList;
227+ File ? untranslatedMessagesFile;
227228
228229 bool format = boolArg ('format' ) ?? false ;
229230
@@ -238,19 +239,21 @@ class GenerateLocalizationsCommand extends FlutterCommand {
238239 'To use the command line arguments, delete the l10n.yaml file in the '
239240 'Flutter project.\n\n '
240241 );
241- outputFileList = generateLocalizations (
242+ final LocalizationsGenerator generator = generateLocalizations (
242243 logger: _logger,
243244 options: options,
244245 projectDir: _fileSystem.currentDirectory,
245246 fileSystem: _fileSystem,
246- ).outputFileList;
247+ );
248+ outputFileList = generator.outputFileList;
249+ untranslatedMessagesFile = generator.untranslatedMessagesFile;
247250 format = format || options.format;
248251 } else {
249252 final String inputPathString = stringArgDeprecated ('arb-dir' )! ; // Has default value, cannot be null.
250253 final String ? outputPathString = stringArgDeprecated ('output-dir' );
251254 final String outputFileString = stringArgDeprecated ('output-localization-file' )! ; // Has default value, cannot be null.
252255 final String templateArbFileName = stringArgDeprecated ('template-arb-file' )! ; // Has default value, cannot be null.
253- final String ? untranslatedMessagesFile = stringArgDeprecated ('untranslated-messages-file' );
256+ final String ? untranslatedMessagesFilePath = stringArgDeprecated ('untranslated-messages-file' );
254257 final String classNameString = stringArgDeprecated ('output-class' )! ; // Has default value, cannot be null.
255258 final List <String > preferredSupportedLocales = stringsArg ('preferred-supported-locales' );
256259 final String ? headerString = stringArgDeprecated ('header' );
@@ -267,7 +270,7 @@ class GenerateLocalizationsCommand extends FlutterCommand {
267270 precacheLanguageAndRegionTags ();
268271
269272 try {
270- outputFileList = ( LocalizationsGenerator (
273+ final LocalizationsGenerator generator = LocalizationsGenerator (
271274 fileSystem: _fileSystem,
272275 inputPathString: inputPathString,
273276 outputPathString: outputPathString,
@@ -282,15 +285,16 @@ class GenerateLocalizationsCommand extends FlutterCommand {
282285 useSyntheticPackage: useSyntheticPackage,
283286 projectPathString: projectPathString,
284287 areResourceAttributesRequired: areResourceAttributesRequired,
285- untranslatedMessagesFile: untranslatedMessagesFile ,
288+ untranslatedMessagesFile: untranslatedMessagesFilePath ,
286289 usesNullableGetter: usesNullableGetter,
287290 useEscaping: useEscaping,
288291 logger: _logger,
289292 suppressWarnings: suppressWarnings,
290293 )
291294 ..loadResources ()
292- ..writeOutputFiles ())
293- .outputFileList;
295+ ..writeOutputFiles ();
296+ outputFileList = generator.outputFileList;
297+ untranslatedMessagesFile = generator.untranslatedMessagesFile;
294298 } on L10nException catch (e) {
295299 throwToolExit (e.message);
296300 }
@@ -301,8 +305,16 @@ class GenerateLocalizationsCommand extends FlutterCommand {
301305 if (outputFileList.isEmpty) {
302306 return FlutterCommandResult .success ();
303307 }
308+ final List <String > formatFileList = outputFileList.toList ();
309+ if (untranslatedMessagesFile != null ) {
310+ // Don't format the messages file using `dart format`.
311+ formatFileList.remove (untranslatedMessagesFile.absolute.path);
312+ }
313+ if (formatFileList.isEmpty) {
314+ return FlutterCommandResult .success ();
315+ }
304316 final String dartBinary = _artifacts.getArtifactPath (Artifact .engineDartBinary);
305- final List <String > command = < String > [dartBinary, 'format' , ...outputFileList ];
317+ final List <String > command = < String > [dartBinary, 'format' , ...formatFileList ];
306318 final ProcessResult result = await _processManager.run (command);
307319 if (result.exitCode != 0 ) {
308320 throwToolExit ('Formatting failed: $result ' , exitCode: result.exitCode);
0 commit comments