// 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); }