• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2018 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5import 'dart:async';
6
7import '../base/user_messages.dart';
8import '../base/version.dart';
9import '../doctor.dart';
10import 'vscode.dart';
11
12class VsCodeValidator extends DoctorValidator {
13  VsCodeValidator(this._vsCode) : super(_vsCode.productName);
14
15  final VsCode _vsCode;
16
17  static Iterable<DoctorValidator> get installedValidators {
18    return VsCode
19        .allInstalled()
20        .map<DoctorValidator>((VsCode vsCode) => VsCodeValidator(vsCode));
21  }
22
23  @override
24  Future<ValidationResult> validate() async {
25    final String vsCodeVersionText = _vsCode.version == Version.unknown
26        ? null
27        : userMessages.vsCodeVersion(_vsCode.version.toString());
28
29    final ValidationType validationType = _vsCode.isValid
30        ? ValidationType.installed
31        : ValidationType.partial;
32
33    return ValidationResult(
34      validationType,
35      _vsCode.validationMessages,
36      statusInfo: vsCodeVersionText,
37    );
38  }
39}
40