All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Unified package registry - Merged
IndexRegistryandWorkspaceRegistryintoPackageRegistry - Simplified package discovery - Replaced
detectWorkspace()withdiscoverPackages()that recursively finds allpubspec.yamlfiles - Removed deprecated APIs:
IndexRegistrytypedef (usePackageRegistry)WorkspaceInfo,WorkspaceType,MelosConfigclassesdetectWorkspace(),detectWorkspaceSync()functionsfromProjectIndex(),withIndexes()factory constructorsunloadAll()method
- Added
PackageRegistry.forTesting()factory for unit tests - Added
LocalPackageIndex.forTesting()constructor for tests without real indexer
- Fixed duplicate search results in
findqueries for mono repos - Fixed
refsqueries returning 0 results due to symbol kind comparison bug - Made mono repo indexing resilient to packages missing
package_config.json
- Applied 48 lint fixes (trailing commas, conditional assignments)
- Synced version between
pubspec.yamlandversion.dart
- Incremental SCIP indexing with file watching and hash-based change detection
- Index caching for ~35x faster startup times (300ms vs 10s)
- Query DSL for semantic code navigation
- Signature extraction using the Dart analyzer for accurate signatures
- Cross-package queries via pre-indexed SDK/packages with PackageRegistry
def <symbol>- Find symbol definitionsrefs <symbol>- Find all references to a symbolsig <symbol>- Get signature (declaration without body)members <symbol>- Get class/mixin/extension membersimpls <symbol>- Find implementations of a class/interfacesupertypes <symbol>- Get supertypes of a classsubtypes <symbol>- Get subtypes/implementationshierarchy <symbol>- Full type hierarchy (super + sub)source <symbol>- Get source code for a symbolfind <pattern>- Search symbols by patternwhich <symbol>- Disambiguate multiple matchesgrep <pattern>- Search in source code (full grep feature parity)calls <symbol>- What does this symbol call?callers <symbol>- What calls this symbol?imports <file>- File import analysisexports <path>- File/directory export analysisdeps <symbol>- Symbol dependenciesfiles- List indexed filesstats- Index statistics
- Glob patterns with OR:
Auth*,*Service,Scip*|*Index - Regex patterns:
/TODO|FIXME/,/error/i - Fuzzy matching:
~authentcate(typo-tolerant) - Qualified names:
MyClass.method
-i- Case insensitive-v- Invert match (non-matching lines)-w- Word boundary (whole words only)-l- List files with matches-L- List files without matches-c- Count matches per file-o- Show only matched text-F- Fixed strings (literal, no regex)-M- Multiline matching-D- Search external dependencies (with--with-deps)-C:n,-A:n,-B:n- Context lines-m:n- Max matches per file--include:glob,--exclude:glob- File filtering
- Chain queries:
find Auth* | refs - Multi-stage:
find Auth* kind:class | members | source - Direct symbol passing (preserves full symbol identity)
- CLI tool with interactive mode (
-i) and watch mode (-w) - MCP server support via
DartContextSupportmixin - External analyzer adapter for embedding in existing analysis infrastructure
index-flutter [path]- Pre-index Flutter SDK packages (flutter, flutter_test, etc.)index-sdk <path>- Pre-index the Dart SDK for cross-package queriesindex-deps- Pre-index all pub dependencies from pubspec.locklist-indexes- List available pre-computed SDK/package indexes--with-depsflag - Enable cross-package queries using pre-indexed dependencies
dart_query- Query codebase with DSLdart_index_flutter- Index Flutter SDK packagesdart_index_deps- Index pub dependencies from pubspec.lockdart_refresh- Refresh project index and reload dependenciesdart_status- Show index status (files, symbols, loaded packages, workspace info)bin/mcp_server.dart- Ready-to-use MCP server for Cursor integration
- Package discovery - Recursively finds all
pubspec.yamlfiles in any directory - Cross-package queries - Query symbols across local packages
- Unified file watching - Single watcher at root for all packages
- Package registry - Central location for local and external package indexes
list-packages [path]- List discovered packages in a directory
CachePaths- Centralized cache path management- Global cache at
~/.dart_context/mirrors pub-cache structure - Support for hosted, git, and path dependencies
package_config.jsonparsing for accurate dependency resolution
- Initial indexing: ~10-15s for 85 files
- Cached startup: ~300ms
- Incremental updates: ~100-200ms per file
- Query execution: <10ms
- Cache size: ~2.5MB for 85 files
- Documentation extraction (
doc <symbol>) - Dead code detection (
unused) - Interactive REPL with result references
- Code metrics and complexity analysis