Skip to content

Commit bf7df23

Browse files
authored
Remove superfluous periods from pub --help subcommand descriptions. (#106925)
* Remove periods from pub --help command descriptions * Add trailing period consistently * Remove added period from PackagesInteractiveGetCommand description * Verify line ending for first line of command description * Update _allowedTrailingPatterns to validate that lines end with only one period, bang, or colon
1 parent 2a58bb7 commit bf7df23

File tree

2 files changed

+16
-12
lines changed

2 files changed

+16
-12
lines changed

packages/flutter_tools/lib/src/commands/packages.dart

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,17 @@ class PackagesCommand extends FlutterCommand {
2525
addSubcommand(PackagesInteractiveGetCommand('add', 'Add a dependency to pubspec.yaml.'));
2626
addSubcommand(PackagesInteractiveGetCommand('remove', 'Removes a dependency from the current package.'));
2727
addSubcommand(PackagesTestCommand());
28-
addSubcommand(PackagesForwardCommand('publish', 'Publish the current package to pub.dartlang.org', requiresPubspec: true));
29-
addSubcommand(PackagesForwardCommand('downgrade', 'Downgrade packages in a Flutter project', requiresPubspec: true));
30-
addSubcommand(PackagesForwardCommand('deps', 'Print package dependencies')); // path to package can be specified with --directory argument
31-
addSubcommand(PackagesForwardCommand('run', 'Run an executable from a package', requiresPubspec: true));
32-
addSubcommand(PackagesForwardCommand('cache', 'Work with the Pub system cache'));
33-
addSubcommand(PackagesForwardCommand('version', 'Print Pub version'));
34-
addSubcommand(PackagesForwardCommand('uploader', 'Manage uploaders for a package on pub.dev'));
28+
addSubcommand(PackagesForwardCommand('publish', 'Publish the current package to pub.dartlang.org.', requiresPubspec: true));
29+
addSubcommand(PackagesForwardCommand('downgrade', 'Downgrade packages in a Flutter project.', requiresPubspec: true));
30+
addSubcommand(PackagesForwardCommand('deps', 'Print package dependencies.')); // path to package can be specified with --directory argument
31+
addSubcommand(PackagesForwardCommand('run', 'Run an executable from a package.', requiresPubspec: true));
32+
addSubcommand(PackagesForwardCommand('cache', 'Work with the Pub system cache.'));
33+
addSubcommand(PackagesForwardCommand('version', 'Print Pub version.'));
34+
addSubcommand(PackagesForwardCommand('uploader', 'Manage uploaders for a package on pub.dev.'));
3535
addSubcommand(PackagesForwardCommand('login', 'Log into pub.dev.'));
3636
addSubcommand(PackagesForwardCommand('logout', 'Log out of pub.dev.'));
37-
addSubcommand(PackagesForwardCommand('global', 'Work with Pub global packages'));
38-
addSubcommand(PackagesForwardCommand('outdated', 'Analyze dependencies to find which ones can be upgraded', requiresPubspec: true));
37+
addSubcommand(PackagesForwardCommand('global', 'Work with Pub global packages.'));
38+
addSubcommand(PackagesForwardCommand('outdated', 'Analyze dependencies to find which ones can be upgraded.', requiresPubspec: true));
3939
addSubcommand(PackagesForwardCommand('token', 'Manage authentication tokens for hosted pub repositories.'));
4040
addSubcommand(PackagesPassthroughCommand());
4141
}
@@ -233,7 +233,7 @@ class PackagesForwardCommand extends FlutterCommand {
233233

234234
@override
235235
String get description {
236-
return '$_description.\n'
236+
return '$_description\n'
237237
'This runs the "pub" tool in a Flutter context.';
238238
}
239239

@@ -290,7 +290,7 @@ class PackagesInteractiveGetCommand extends FlutterCommand {
290290

291291
@override
292292
String get description {
293-
return '$_description.\n'
293+
return '$_description\n'
294294
'This runs the "pub" tool in a Flutter context.';
295295
}
296296

packages/flutter_tools/test/general.shard/args_test.dart

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,10 @@ void verifyCommandRunner(CommandRunner<Object> runner) {
8585
void verifyCommand(Command<Object> runner) {
8686
expect(runner.argParser, isNotNull, reason: 'command ${runner.name} has no argParser');
8787
verifyOptions(runner.name, runner.argParser.options.values);
88+
89+
final String firstDescriptionLine = runner.description.split('\n').first;
90+
expect(firstDescriptionLine, matches(_allowedTrailingPatterns), reason: "command ${runner.name}'s description does not end with the expected single period that a full sentence should end with");
91+
8892
if (runner.hidden == false && runner.parent == null) {
8993
expect(
9094
runner.category,
@@ -107,7 +111,7 @@ final RegExp _bannedArgumentNamePattern = RegExp(r'-uri$');
107111

108112
// Patterns for help messages.
109113
final RegExp _bannedLeadingPatterns = RegExp(r'^[-a-z]', multiLine: true);
110-
final RegExp _allowedTrailingPatterns = RegExp(r'([^ ][.!:]\)?|: https?://[^ ]+[^.]|^)$');
114+
final RegExp _allowedTrailingPatterns = RegExp(r'([^ ]([^.^!^:][.!:])\)?|: https?://[^ ]+[^.]|^)$');
111115
final RegExp _bannedQuotePatterns = RegExp(r" '|' |'\.|\('|'\)|`");
112116
final RegExp _bannedArgumentReferencePatterns = RegExp(r'[^"=]--[^ ]');
113117
final RegExp _questionablePatterns = RegExp(r'[a-z]\.[A-Z]');

0 commit comments

Comments
 (0)