Add 'doctor' support for Windows (#33872)
Moves the logic for finding vcvars64.bat to a new VisualStudio class
that encapsulates finding, and providing information about, VisualStudio
installations. Adds a validator for it, and runs it for Windows
workflows in doctor.
diff --git a/packages/flutter_tools/lib/src/base/user_messages.dart b/packages/flutter_tools/lib/src/base/user_messages.dart
index 032377f..09af158 100644
--- a/packages/flutter_tools/lib/src/base/user_messages.dart
+++ b/packages/flutter_tools/lib/src/base/user_messages.dart
@@ -215,6 +215,17 @@
String vsCodeLocation(String location) => 'VS Code at $location';
String vsCodeFlutterExtensionMissing(String url) => 'Flutter extension not installed; install from\n$url';
+ // Messages used in VisualStudioValidator
+ String visualStudioVersion(String name, String version) => '$name version $version';
+ String visualStudioLocation(String location) => 'Visual Studio at $location';
+ String visualStudioMissingComponents(String workload, List<String> components) =>
+ 'Visual Studio is missing necessary components. Please re-run the '
+ 'Visual Studio installer for the "$workload" workload, and include these components:\n'
+ ' ${components.join('\n ')}';
+ String get visualStudioMissing =>
+ 'Visual Studio not installed; this is necessary for Windows development.\n'
+ 'Download at https://visualstudio.microsoft.com/downloads/.';
+
// Messages used in FlutterCommand
String flutterElapsedTime(String name, String elapsedTime) => '"flutter $name" took $elapsedTime.';
String get flutterNoDevelopmentDevice =>