Shared utilities, SDK discovery, Git diff integration, and AST analysis helpers for Dart CLI tools and analyzers.
Note
This package provides foundational infrastructure for tools in the
analytica.dart monorepo (such as
pkg:cognitive_complexity and
pkg:undead). APIs are primarily tailored for internal tool composition and
may evolve with tool requirements.
✨ Features
- SDK & Tool Discovery (
package:analytica/sdk_discovery.dart):- Resolves Dart SDK and Flutter SDK installation roots deterministically.
- Locates
dart/flutterexecutables across system paths, Flutter caches, and AOT snapshot runtimes. - Discovers
.dart_tool/package_config.jsonacross parent directories and Pub Workspaces.
- AST & Analysis Utilities (
package:analytica/analyzer.dart):AnalysisContextHelper: Lightweight setup forpackage:analyzeranalysis contexts.CommentDirectiveParser: Parses file-level and declaration-level ignore directives.AstHelpers: Traversal utilities for enclosing declarations and token spans.WildcardPattern: Zero-dependency glob-like pattern matcher (*,?).
- Git Integration (
package:analytica/git.dart):GitDiffService: Executesgit diffagainst base refs.DiffParser: Parses unified diffs into structured file/hunk models.AstLineMapper: Maps AST declaration node line ranges to modified diff lines.
- CLI & CI Utilities (
package:analytica/cli.dart,package:analytica/analytica.dart):- Standardized console formatting, color utilities, and error handling.
- GitHub Actions workflow command integration (error/warning annotations).
⚡ Usage
SDK Discovery
import 'package:analytica/sdk_discovery.dart';
void main() {
final sdkPath = findSdkPath();
final dartExec = findDartExecutable(sdkPath: sdkPath);
print('Dart SDK: $sdkPath');
print('Dart Binary: $dartExec');
}
Git Diff Parsing & AST Mapping
import 'package:analytica/git.dart';
void main() async {
final diffs = await GitDiffService().getParsedDiff('origin/main');
for (final fileDiff in diffs) {
print('Modified file: ${fileDiff.path}');
print('Changed ranges: ${fileDiff.addedOrModifiedLineRanges}');
}
}
Libraries
- analytica
- Core infrastructure and shared utilities for the Analytica tooling ecosystem.
- analyzer
- Static analysis and AST inspection utilities for Dart code tools.
- cli
- Common CLI arguments, formatting, and GitHub Actions utilities.
- git
- Git operations, unified diff parsing, and AST line mapping utilities.
- sdk_discovery
- SDK discovery utilities for Dart tools and AOT executables.