vscode_validator.dart 1.14 KB
Newer Older
Ian Hickson's avatar
Ian Hickson committed
1
// Copyright 2014 The Flutter Authors. All rights reserved.
2 3 4 5 6
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'dart:async';

7
import '../base/user_messages.dart';
8 9
import '../base/version.dart';
import '../doctor.dart';
10
import '../globals.dart' as globals;
11 12 13
import 'vscode.dart';

class VsCodeValidator extends DoctorValidator {
14 15
  VsCodeValidator(this._vsCode) : super(_vsCode.productName);

16 17 18 19
  final VsCode _vsCode;

  static Iterable<DoctorValidator> get installedValidators {
    return VsCode
20
        .allInstalled(globals.fs, globals.platform)
21
        .map<DoctorValidator>((VsCode vsCode) => VsCodeValidator(vsCode));
22 23 24 25 26 27
  }

  @override
  Future<ValidationResult> validate() async {
    final String vsCodeVersionText = _vsCode.version == Version.unknown
        ? null
28
        : userMessages.vsCodeVersion(_vsCode.version.toString());
29 30 31 32 33 34 35

    final ValidationType validationType = _vsCode.isValid
        ? ValidationType.installed
        : ValidationType.partial;

    return ValidationResult(
      validationType,
36
      _vsCode.validationMessages.toList(),
37 38
      statusInfo: vsCodeVersionText,
    );
39 40
  }
}