C++ Support in Maguyva: Class and Call Graphs at Scale
C++ hides the real call target behind namespaces, overloads, and virtual dispatch. The graph helps an agent find it.
Extensions
.c, .c++, .cc, .cpp, +6 more
Maguyva parses Swift with AST, symbol, and graph support, so AI agents can follow protocols, extensions, initializers, and observers in iOS and macOS code.
Swift spreads one type across many places. A struct is declared in one file, gains behaviour from extensions in three others, and conforms to protocols defined in a package. State changes hide in computed properties and willSet / didSet observers. An agent reading files one at a time misses most of that.
Maguyva indexes the structure, so an agent can see a type’s members, conformances, and callers together.
Maguyva covers .swift. Callable symbols include functions, init and deinit, subscripts, computed getters and setters, and willSet / didSet observers, so state-changing code is searchable as symbols rather than buried in property bodies.
Members declared inside structs, enums, protocols, and extensions are qualified by their owning type (for example CartStore.add), and members added in an extension are attributed to the extended type. Definition names have generic parameters, protocol conformance lists, and ? / ! suffixes stripped, so lookups use the plain name. Calls keep self. and class qualification, and trailing closures count toward call arity.
The graph records calls, protocol conformance, inheritance, overrides, instantiation, attributes, type references, reads and writes, and throw edges.
PaymentProvider, and where is each one created?” (dependency_search)CartStore.add, and from which views?” (find_symbol, then dependency_search incoming)get_task_context).swift source is mapped. Storyboard and XIB files are not in the extension list, so Interface Builder connections are outside the graph.print, debugPrint, NSLog, and assertions are filtered from relationships, so they are not graph edges. Use text_pattern_search for them.Connect a repository with the quickstart, then check the support matrix on the compatibility page. If you ship the same product on Android, read the Kotlin guide.
Best fit
Agent workflows
Engine details
Useful MCP entry points
Use it for a type, protocol, or method name when you need the definition and references.
Use it on a protocol to find conforming types, or incoming on a method to find callers.
Use it for prompts like “explain how a push notification reaches the inbox screen.”
Related guides
C++ hides the real call target behind namespaces, overloads, and virtual dispatch. The graph helps an agent find it.
Extensions
.c, .c++, .cc, .cpp, +6 more
Kotlin hides a lot of wiring in receivers and lambdas. The graph puts it back.
Extensions
.kt, .kts