Shared utilities, SDK discovery, Git diff integration, and AST analysis helpers for Dart CLI tools and analyzers.
!NOTEThis package provides foundational infrastructure for tools in theanalytica.dartmonorepo (such aspkg:cognitive_complexityandpkg: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.
- testing
- Testing utilities for package resolution in tests and integration suites.