a2055fbb82
- Moved existing summary logic to the new package Change-Id: I47d032f5a253cfa32d9b685d9ff18bb08f534177 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/499440 Commit-Queue: Vijay Menon <vsm@google.com> Auto-Submit: Kevin Moore <kevmoo@google.com> Reviewed-by: Vijay Menon <vsm@google.com>
54 lines
2.1 KiB
Dart
54 lines
2.1 KiB
Dart
// Copyright (c) 2026, 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/analysis_context.dart';
|
|
import 'package:analyzer/dart/element/element.dart';
|
|
|
|
/// Clients of the API summary tool may extend this class to customize its
|
|
/// behavior.
|
|
///
|
|
/// Clients should not *implement* this class, however, because additional
|
|
/// methods may be added in the future.
|
|
base class ApiSummaryCustomizer {
|
|
/// The top level elements exported by the libraries in [publicApiLibraries].
|
|
///
|
|
/// This value is set by the tool before [initialScanComplete] is called.
|
|
late final Set<Element> topLevelPublicElements;
|
|
|
|
/// The analysis context for the package being summarized.
|
|
///
|
|
/// This value is set by the tool before [setupComplete] is called.
|
|
set analysisContext(AnalysisContext analysisContext) {}
|
|
|
|
/// The name of the package whose API is being summarized.
|
|
///
|
|
/// This value is set by the tool before [setupComplete] is called.
|
|
set packageName(String value) {}
|
|
|
|
/// The libraries that comprise the package's public API.
|
|
///
|
|
/// This value is set by the tool before [initialScanComplete] is called.
|
|
set publicApiLibraries(Iterable<LibraryElement> value) {}
|
|
|
|
/// Called after [publicApiLibraries] and [topLevelPublicElements] have been
|
|
/// set, but before any analysis has been performed.
|
|
///
|
|
/// Further analysis won't be performed until the returned Future completes.
|
|
Future<void> initialScanComplete() async {}
|
|
|
|
/// Called after [packageName] and [analysisContext] have been set, but before
|
|
/// any analysis has been performed.
|
|
///
|
|
/// The initial scan won't be performed until the returned Future completes.
|
|
Future<void> setupComplete() async {}
|
|
|
|
/// Called after [initialScanComplete] to determine if details about an
|
|
/// element should be shown in the API summary.
|
|
///
|
|
/// The default behavior is to show details about elements in
|
|
/// [topLevelPublicElements].
|
|
bool shouldShowDetails(Element element) =>
|
|
topLevelPublicElements.contains(element);
|
|
}
|