From bf7df23350c616e6462527af72bc9c412d2147dc Mon Sep 17 00:00:00 2001 From: Bryan Oltman Date: Mon, 11 Jul 2022 13:06:31 -0400 Subject: [PATCH] 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 --- .../lib/src/commands/packages.dart | 22 +++++++++---------- .../test/general.shard/args_test.dart | 6 ++++- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/packages/flutter_tools/lib/src/commands/packages.dart b/packages/flutter_tools/lib/src/commands/packages.dart index 88689f44893..18bd0aed4c6 100644 --- a/packages/flutter_tools/lib/src/commands/packages.dart +++ b/packages/flutter_tools/lib/src/commands/packages.dart @@ -25,17 +25,17 @@ class PackagesCommand extends FlutterCommand { addSubcommand(PackagesInteractiveGetCommand('add', 'Add a dependency to pubspec.yaml.')); addSubcommand(PackagesInteractiveGetCommand('remove', 'Removes a dependency from the current package.')); addSubcommand(PackagesTestCommand()); - addSubcommand(PackagesForwardCommand('publish', 'Publish the current package to pub.dartlang.org', requiresPubspec: true)); - addSubcommand(PackagesForwardCommand('downgrade', 'Downgrade packages in a Flutter project', requiresPubspec: true)); - addSubcommand(PackagesForwardCommand('deps', 'Print package dependencies')); // path to package can be specified with --directory argument - addSubcommand(PackagesForwardCommand('run', 'Run an executable from a package', requiresPubspec: true)); - addSubcommand(PackagesForwardCommand('cache', 'Work with the Pub system cache')); - addSubcommand(PackagesForwardCommand('version', 'Print Pub version')); - addSubcommand(PackagesForwardCommand('uploader', 'Manage uploaders for a package on pub.dev')); + addSubcommand(PackagesForwardCommand('publish', 'Publish the current package to pub.dartlang.org.', requiresPubspec: true)); + addSubcommand(PackagesForwardCommand('downgrade', 'Downgrade packages in a Flutter project.', requiresPubspec: true)); + addSubcommand(PackagesForwardCommand('deps', 'Print package dependencies.')); // path to package can be specified with --directory argument + addSubcommand(PackagesForwardCommand('run', 'Run an executable from a package.', requiresPubspec: true)); + addSubcommand(PackagesForwardCommand('cache', 'Work with the Pub system cache.')); + addSubcommand(PackagesForwardCommand('version', 'Print Pub version.')); + addSubcommand(PackagesForwardCommand('uploader', 'Manage uploaders for a package on pub.dev.')); addSubcommand(PackagesForwardCommand('login', 'Log into pub.dev.')); addSubcommand(PackagesForwardCommand('logout', 'Log out of pub.dev.')); - addSubcommand(PackagesForwardCommand('global', 'Work with Pub global packages')); - addSubcommand(PackagesForwardCommand('outdated', 'Analyze dependencies to find which ones can be upgraded', requiresPubspec: true)); + addSubcommand(PackagesForwardCommand('global', 'Work with Pub global packages.')); + addSubcommand(PackagesForwardCommand('outdated', 'Analyze dependencies to find which ones can be upgraded.', requiresPubspec: true)); addSubcommand(PackagesForwardCommand('token', 'Manage authentication tokens for hosted pub repositories.')); addSubcommand(PackagesPassthroughCommand()); } @@ -233,7 +233,7 @@ class PackagesForwardCommand extends FlutterCommand { @override String get description { - return '$_description.\n' + return '$_description\n' 'This runs the "pub" tool in a Flutter context.'; } @@ -290,7 +290,7 @@ class PackagesInteractiveGetCommand extends FlutterCommand { @override String get description { - return '$_description.\n' + return '$_description\n' 'This runs the "pub" tool in a Flutter context.'; } diff --git a/packages/flutter_tools/test/general.shard/args_test.dart b/packages/flutter_tools/test/general.shard/args_test.dart index 46e5b39f985..0240fe8369c 100644 --- a/packages/flutter_tools/test/general.shard/args_test.dart +++ b/packages/flutter_tools/test/general.shard/args_test.dart @@ -85,6 +85,10 @@ void verifyCommandRunner(CommandRunner runner) { void verifyCommand(Command runner) { expect(runner.argParser, isNotNull, reason: 'command ${runner.name} has no argParser'); verifyOptions(runner.name, runner.argParser.options.values); + + final String firstDescriptionLine = runner.description.split('\n').first; + 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"); + if (runner.hidden == false && runner.parent == null) { expect( runner.category, @@ -107,7 +111,7 @@ final RegExp _bannedArgumentNamePattern = RegExp(r'-uri$'); // Patterns for help messages. final RegExp _bannedLeadingPatterns = RegExp(r'^[-a-z]', multiLine: true); -final RegExp _allowedTrailingPatterns = RegExp(r'([^ ][.!:]\)?|: https?://[^ ]+[^.]|^)$'); +final RegExp _allowedTrailingPatterns = RegExp(r'([^ ]([^.^!^:][.!:])\)?|: https?://[^ ]+[^.]|^)$'); final RegExp _bannedQuotePatterns = RegExp(r" '|' |'\.|\('|'\)|`"); final RegExp _bannedArgumentReferencePatterns = RegExp(r'[^"=]--[^ ]'); final RegExp _questionablePatterns = RegExp(r'[a-z]\.[A-Z]');