Repository navigation
From code navigation to structural editing
funcfinder 1.16.0 adds declaration-level CRUD alongside the five existing analysis tools.
- Go and Rust JSON objects: read a function or type with
--read-object, change itssource, preview with--edit-object, then apply the same request with--apply. - Single-file transactions: combine replace, insert_after and remove operations in a
funcfinder.edits/v1batch. Revision, identity, overlap and final-declaration checks reject invalid transactions before writing. - Exact Go/Rust declaration spans: preserve adjacent code on shared lines; Go types include aliases, generics and grouped members.
- Guarded legacy editing: function replacement, insertion and removal for all 15 configured languages, with documented span and validation limits.
- Shared-line discovery and Go call graphs: neighboring declarations are recovered; shared-line Go declarations no longer create false calls or steal another function's genuine calls and recursion.
- Portable agent skill: bundled navigation/editing instructions cover ambiguity, stale revisions and preview/apply workflows.
Validation and scope
Run the target project's compiler and tests after editing: syntax and declaration identity do not establish type compatibility or behavior. Rust validation is structural/token-based, without full grammar checking, macro expansion or type resolution. Legacy edits in other languages retain shared-line restrictions. Accuracy/performance measurements apply to their named benchmark profiles and revisions, not to every repository.
The release archives contain the five Go tools: funcfinder, funcstats, deps, complexity and callgraph. The D port remains experimental benchmark material and is not included in these archives.
Downloads
Linux and macOS: amd64/arm64 .tar.gz archives. Windows: amd64 .zip. Each archive contains all five tools. Verify downloaded archives against checksums.txt (SHA-256).