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

5 6
import 'package:process/process.dart';

7 8
import '../base/file_system.dart';
import '../base/platform.dart';
9
import '../doctor_validator.dart';
10 11 12
import 'vscode.dart';

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

15 16
  final VsCode _vsCode;

17
  static Iterable<DoctorValidator> installedValidators(FileSystem fileSystem, Platform platform, ProcessManager processManager) {
18
    return VsCode
19
        .allInstalled(fileSystem, platform, processManager)
20
        .map<DoctorValidator>((VsCode vsCode) => VsCodeValidator(vsCode));
21 22 23 24
  }

  @override
  Future<ValidationResult> validate() async {
25 26 27 28
    final List<ValidationMessage> validationMessages =
      List<ValidationMessage>.from(_vsCode.validationMessages);

    final String vsCodeVersionText = _vsCode.version == null
29 30
        ? 'version unknown'
        : 'version ${_vsCode.version}';
31

32 33 34 35
    if (_vsCode.version == null) {
      validationMessages.add(const ValidationMessage.error('Unable to determine VS Code version.'));
    }

36
    return ValidationResult(
37
      ValidationType.success,
38
      validationMessages,
39 40
      statusInfo: vsCodeVersionText,
    );
41 42
  }
}