blob: 6c3728f3ac3eabfb052ea8310256b11f381cde2d [file] [log] [blame]
// 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/context_root.dart';
import 'package:analyzer/dart/analysis/session.dart';
import 'package:analyzer/src/generated/engine.dart' hide AnalysisResult;
/// A representation of a body of code and the context in which the code is to
/// be analyzed.
///
/// The body of code is represented as a collection of files and directories, as
/// defined by the list of included paths. If the list of included paths
/// contains one or more directories, then zero or more files or directories
/// within the included directories can be excluded from analysis, as defined by
/// the list of excluded paths.
///
/// Clients may not extend, implement or mix-in this class.
abstract class AnalysisContext {
/// The analysis options used to control the way the code is analyzed.
AnalysisOptions get analysisOptions;
/// Return the context root from which this context was created.
ContextRoot get contextRoot;
/// Return the currently active analysis session.
AnalysisSession get currentSession;
/// A list of the absolute, normalized paths of files and directories that
/// will not be analyzed.
///
/// Deprecated: Use `contextRoot.excludedPaths`.
@deprecated
List<String> get excludedPaths;
/// A list of the absolute, normalized paths of files and directories that
/// will be analyzed. If a path in the list represents a file, then that file
/// will be analyzed, even if it is in the list of [excludedPaths]. If path in
/// the list represents a directory, then all of the files contained in that
/// directory, either directly or indirectly, and that are not explicitly
/// excluded by the list of [excludedPaths] will be analyzed.
///
/// Deprecated: Use `contextRoot.includedPaths`.
@deprecated
List<String> get includedPaths;
/// 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].
///
/// Deprecated: Use `contextRoot.analyzedFiles`.
@deprecated
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].
///
/// Deprecated: Use `contextRoot.isAnalyzed`.
@deprecated
bool isAnalyzed(String path);
}