// 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 get excluded; /// A collection of the absolute, normalized paths of files and directories /// within the root directory that should not be analyzed. Iterable 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 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 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 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); }