| // Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| import 'package:analyzer/dart/analysis/analysis_context.dart'; |
| import 'package:analyzer/dart/analysis/context_root.dart'; |
| import 'package:analyzer/file_system/file_system.dart'; |
| import 'package:analyzer/src/dart/analysis/context_locator.dart'; |
| import 'package:meta/meta.dart'; |
| |
| /// Determines the list of analysis contexts that can be used to analyze the |
| /// files and folders that should be analyzed given a list of included files and |
| /// folders and a list of excluded files and folders. |
| /// |
| /// Clients may not extend, implement or mix-in this class. |
| abstract class ContextLocator { |
| /// Initialize a newly created context locator. If a [resourceProvider] is |
| /// supplied, it will be used to access the file system. Otherwise the default |
| /// resource provider will be used. |
| factory ContextLocator({ResourceProvider resourceProvider}) = |
| ContextLocatorImpl; |
| |
| /// Return a list of the analysis contexts that should be used to analyze the |
| /// files that are included by the list of [includedPaths] and not excluded by |
| /// the list of [excludedPaths]. |
| /// |
| /// If an [optionsFile] is specified, then it is assumed to be the path to the |
| /// `analysis_options.yaml` (or `.analysis_options`) file that should be used |
| /// in place of the ones that would be found by looking in the directories |
| /// containing the context roots. |
| /// |
| /// If a [packagesFile] is specified, then it is assumed to be the path to the |
| /// `.packages` file that should be used in place of the one that would be |
| /// found by looking in the directories containing the context roots. |
| /// |
| /// If the [sdkPath] is specified, then it is used as the path to the root of |
| /// the SDK that should be used during analysis. |
| @deprecated |
| List<AnalysisContext> locateContexts( |
| {@required List<String> includedPaths, |
| List<String> excludedPaths: const <String>[], |
| String optionsFile: null, |
| String packagesFile: null, |
| String sdkPath: null}); |
| |
| /// Return a list of the context roots that should be used to analyze the |
| /// files that are included by the list of [includedPaths] and not excluded by |
| /// the list of [excludedPaths]. |
| /// |
| /// If an [optionsFile] is specified, then it is assumed to be the path to the |
| /// `analysis_options.yaml` (or `.analysis_options`) file that should be used |
| /// in place of the ones that would be found by looking in the directories |
| /// containing the context roots. |
| /// |
| /// If a [packagesFile] is specified, then it is assumed to be the path to the |
| /// `.packages` file that should be used in place of the one that would be |
| /// found by looking in the directories containing the context roots. |
| List<ContextRoot> locateRoots( |
| {@required List<String> includedPaths, |
| List<String> excludedPaths: null, |
| String optionsFile: null, |
| String packagesFile: null}); |
| } |