Help verbose show hidden options (#5979)

* show hidden flags when showing verbose help
* flutter -v show verbose help
diff --git a/packages/flutter_tools/lib/src/commands/analyze.dart b/packages/flutter_tools/lib/src/commands/analyze.dart
index ff2dd8f..3f27e93 100644
--- a/packages/flutter_tools/lib/src/commands/analyze.dart
+++ b/packages/flutter_tools/lib/src/commands/analyze.dart
@@ -23,7 +23,7 @@
 typedef bool FileFilter(FileSystemEntity entity);
 
 class AnalyzeCommand extends FlutterCommand {
-  AnalyzeCommand() {
+  AnalyzeCommand({bool verboseHelp: false}) {
     argParser.addFlag('flutter-repo', help: 'Include all the examples and tests from the Flutter repository.', defaultsTo: false);
     argParser.addFlag('current-directory', help: 'Include all the Dart files in the current directory, if any.', defaultsTo: true);
     argParser.addFlag('current-package', help: 'Include the lib/main.dart file from the current directory, if any.', defaultsTo: true);
@@ -32,10 +32,10 @@
     argParser.addFlag('congratulate', help: 'Show output even when there are no errors, warnings, hints, or lints.', defaultsTo: true);
     argParser.addFlag('watch', help: 'Run analysis continuously, watching the filesystem for changes.', negatable: false);
     argParser.addOption('write', valueHelp: 'file', help: 'Also output the results to a file. This is useful with --watch if you want a file to always contain the latest results.');
-    argParser.addOption('dart-sdk', valueHelp: 'path-to-sdk', help: 'The path to the Dart SDK.', hide: true);
+    argParser.addOption('dart-sdk', valueHelp: 'path-to-sdk', help: 'The path to the Dart SDK.', hide: !verboseHelp);
 
     // Hidden option to enable a benchmarking mode.
-    argParser.addFlag('benchmark', negatable: false, hide: true);
+    argParser.addFlag('benchmark', negatable: false, hide: !verboseHelp);
 
     usesPubOption();
   }
diff --git a/packages/flutter_tools/lib/src/commands/build.dart b/packages/flutter_tools/lib/src/commands/build.dart
index 7351349..ace05fd 100644
--- a/packages/flutter_tools/lib/src/commands/build.dart
+++ b/packages/flutter_tools/lib/src/commands/build.dart
@@ -17,12 +17,12 @@
 import 'build_ios.dart';
 
 class BuildCommand extends FlutterCommand {
-  BuildCommand() {
+  BuildCommand({bool verboseHelp: false}) {
     addSubcommand(new BuildApkCommand());
     addSubcommand(new BuildAotCommand());
     addSubcommand(new BuildCleanCommand());
     addSubcommand(new BuildIOSCommand());
-    addSubcommand(new BuildFlxCommand());
+    addSubcommand(new BuildFlxCommand(verboseHelp: verboseHelp));
   }
 
   @override
diff --git a/packages/flutter_tools/lib/src/commands/build_flx.dart b/packages/flutter_tools/lib/src/commands/build_flx.dart
index 4000ee6..73b56be 100644
--- a/packages/flutter_tools/lib/src/commands/build_flx.dart
+++ b/packages/flutter_tools/lib/src/commands/build_flx.dart
@@ -10,12 +10,12 @@
 import 'build.dart';
 
 class BuildFlxCommand extends BuildSubCommand {
-  BuildFlxCommand() {
+  BuildFlxCommand({bool verboseHelp: false}) {
     usesTargetOption();
     argParser.addFlag('precompiled', negatable: false);
     // This option is still referenced by the iOS build scripts. We should
     // remove it once we've updated those build scripts.
-    argParser.addOption('asset-base', help: 'Ignored. Will be removed.', hide: true);
+    argParser.addOption('asset-base', help: 'Ignored. Will be removed.', hide: !verboseHelp);
     argParser.addOption('manifest', defaultsTo: defaultManifestPath);
     argParser.addOption('private-key', defaultsTo: defaultPrivateKeyPath);
     argParser.addOption('output-file', abbr: 'o', defaultsTo: defaultFlxOutputPath);
diff --git a/packages/flutter_tools/lib/src/commands/run.dart b/packages/flutter_tools/lib/src/commands/run.dart
index 0a878ac..c44a61b 100644
--- a/packages/flutter_tools/lib/src/commands/run.dart
+++ b/packages/flutter_tools/lib/src/commands/run.dart
@@ -45,7 +45,7 @@
   @override
   final String description = 'Run your Flutter app on an attached device.';
 
-  RunCommand() {
+  RunCommand({bool verboseHelp: false}) {
     argParser.addFlag('full-restart',
         defaultsTo: true,
         help: 'Stop any currently running application process before running the app.');
@@ -59,7 +59,7 @@
         defaultsTo: true,
         help: 'If necessary, build the app before running.');
     argParser.addOption('use-application-binary',
-        hide: true,
+        hide: !verboseHelp,
         help: 'Specify a pre-built application binary to use when running.');
     usesPubOption();
 
@@ -80,7 +80,7 @@
     // application, measure the startup time and the app restart time, write the
     // results out to 'refresh_benchmark.json', and exit. This flag is intended
     // for use in generating automated flutter benchmarks.
-    argParser.addFlag('benchmark', negatable: false, hide: true);
+    argParser.addFlag('benchmark', negatable: false, hide: !verboseHelp);
   }
 
   Device device;