| // 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/file_system/file_system.dart'; |
| |
| /** |
| * Information about the root directory associated with an analysis context. |
| * |
| * Clients may not extend, implement or mix-in this class. |
| */ |
| abstract class ContextRoot { |
| /** |
| * A list of the files and directories within the root directory that should |
| * not be analyzed. |
| */ |
| List<Resource> get excluded; |
| |
| /** |
| * A collection of the absolute, normalized paths of files and directories |
| * within the root directory that should not be analyzed. |
| */ |
| Iterable<String> get excludedPaths; |
| |
| /** |
| * A list of the files and directories within the root directory that should |
| * be analyzed. If all of the files in the root directory (other than those |
| * that are explicitly excluded) should be analyzed, then this list will |
| * contain the root directory. |
| */ |
| List<Resource> get included; |
| |
| /** |
| * A collection of the absolute, normalized paths of files within the root |
| * directory that should be analyzed. If all of the files in the root |
| * directory (other than those that are explicitly excluded) should be |
| * analyzed, then this collection will contain the path of the root directory. |
| */ |
| Iterable<String> get includedPaths; |
| |
| /** |
| * The analysis options file that should be used when analyzing the files |
| * within this context root, or `null` if there is no options file. |
| */ |
| File get optionsFile; |
| |
| /** |
| * The packages file that should be used when analyzing the files within this |
| * context root, or `null` if there is no options file. |
| */ |
| File get packagesFile; |
| |
| /** |
| * The resource provider used to access the file system. |
| */ |
| ResourceProvider get resourceProvider; |
| |
| /** |
| * The root directory containing the files to be analyzed. |
| */ |
| Folder get root; |
| |
| /** |
| * Return the absolute, normalized paths of all of the files that are |
| * contained in this context. These are all of the files that are included |
| * directly or indirectly by one or more of the [includedPaths] and that are |
| * not excluded by any of the [excludedPaths]. |
| * |
| * Note that the list is not filtered based on the file suffix, so non-Dart |
| * files can be returned. |
| */ |
| Iterable<String> analyzedFiles(); |
| |
| /** |
| * Return `true` if the file or directory with the given [path] will be |
| * analyzed in this context. A file (or directory) will be analyzed if it is |
| * either the same as or contained in one of the [includedPaths] and, if it is |
| * contained in one of the [includedPaths], is not the same as or contained |
| * in one of the [excludedPaths]. |
| */ |
| bool isAnalyzed(String path); |
| } |