snapshot method

CockpitSnapshot snapshot({
  1. CockpitSnapshotOptions options = const CockpitSnapshotOptions(),
})

Implementation

CockpitSnapshot snapshot({
  CockpitSnapshotOptions options = const CockpitSnapshotOptions(),
}) {
  var visibleTargets = _registry.visibleTargets;
  var diagnosticOptions = options;
  final query = options.query?.trim();
  if (query != null &&
      query.isNotEmpty &&
      CockpitSelector.isExplicit(query)) {
    visibleTargets = _registry.matchingVisibleTargets(
      CockpitSelector.parse(query),
    );
    diagnosticOptions = options.copyWith(clearQuery: true);
  }
  var snapshot = _diagnosticBuilder
      .build(
        routeName: _registry.routeName,
        visibleTargets: visibleTargets,
        options: diagnosticOptions,
      )
      .snapshot;
  final treeOptions = options.tree;
  final rootContext = _boundaryKey.currentContext;
  if (treeOptions != null && rootContext is Element) {
    snapshot = snapshot.copyWith(
      tree: _widgetTreeBuilder.build(
        root: rootContext,
        route: _registry.routeName,
        targets: visibleTargets,
        options: treeOptions,
      ),
    );
  }
  if (!options.includeRebuildActivity || widget.rebuildTracker == null) {
    return snapshot.copyWith(focus: cockpitBuildFocusSnapshot());
  }
  return snapshot.copyWith(
    focus: cockpitBuildFocusSnapshot(),
    rebuild: widget.rebuildTracker!.snapshot(
      maxEntries: options.maxRebuildEntries,
    ),
  );
}