Files
sdk/pkg/analyzer/lib/dart/analysis/context_root.dart
T
Danny Tuppeny 6d763b4565 [analyzer] Include analyzed context in include_file_not_found errors
May fix https://github.com/Dart-Code/Dart-Code/issues/3259.

Change-Id: I4a81acd9186efacc90584c756fc9aef224378c65
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/202964
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-06-09 17:59:07 +00:00

66 lines
2.8 KiB
Dart

// 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';
import 'package:analyzer/src/workspace/workspace.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 packages 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 workspace that contains this context root.
Workspace get workspace;
/// 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);
}