Java Support in Maguyva: Code Intelligence for Enterprise Repositories
Useful when the repo is full of Spring services, internal frameworks, and code that has survived several organizational eras.
Extensions
.java
Maguyva parses Kotlin with AST, symbol, and graph support, so AI agents can follow classes, extension functions, and coroutines across Android and JVM code.
Kotlin is concise because it hides wiring. apply, let, also, run, and with change what this and it mean. Extension functions attach behaviour to types defined elsewhere. Coroutines move work across launch, async, and withContext. An agent that reads one file at a time sees the calls but not the receivers behind them.
Maguyva resolves more of that structure at index time, so an agent can ask who calls a function and get the real answer.
Maguyva covers .kt and .kts. Functions, classes, objects, and companion objects are extracted, and function signatures record extension receivers, parameter names, defaults, and vararg parameters.
Call relationships keep class-qualified names, so OrderRepository.save stays distinct from another save. Receiver typing follows this inside apply and run, it inside let and also, and the argument of with, so calls inside scope functions resolve to the right type. Coroutine builders and Flow operators (launch, async, withContext, coroutineScope, supervisorScope, flow, emit, delay, Channel) are kept in the graph on purpose.
The graph also records inheritance, interface implementation, overrides, instantiation, annotations, type references, reads and writes, and exception throw and catch edges.
CheckoutUseCase.invoke, and from which view models?” (find_symbol, then dependency_search incoming)SyncWorker to the network client.” (get_task_context)PaymentGateway?” (dependency_search)listOf, map, filter, and println 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. For mixed codebases, read the Java guide too.
Best fit
Agent workflows
Engine details
Useful MCP entry points
Use it for a class, use case, or extension function when you need the definition and references.
Use incoming traversal on a repository or interface to see callers and implementers before an API change.
Use it for prompts like “trace the sync flow from `SyncWorker` to the network client.”
Related guides
Useful when the repo is full of Spring services, internal frameworks, and code that has survived several organizational eras.
Extensions
.java
In Swift, behaviour lives in protocols and extensions. An agent needs to see both.
Extensions
.swift