-
classpath.py— Maven classpath resolution cached intarget/java-nav/classpath.txt -
classpath.py— Per-JAR dependency source extraction (finds-sources.jarin~/.m2/, extracts only what's needed) -
classpath.py—find_source_roots()auto-discovers source dirs in multi-module Maven projects -
api— javap wrapper (-public/-protected/-private), clear error on class not found -
source— locate source from project or deps, line ranges (-l), javap fallback when no source JAR -
grep— ripgrep/grep with--depsand--test, multi-module aware, helpful "no matches" message with hints -
deps— jdeps wrapper with--package, searches submoduletarget/classes/too
- ClassGraph scanner JAR (
tools/classgraph-scanner/→src/java_nav/jars/classgraph-scanner.jar) -
impls— find all implementations of an interface -
subtypes— find all subclasses
-
lsp start/stop/status— persistent jdtls daemon with PID+port file management -
refs— find all references, text-based input (Class.method), resolves to position internally -
def— go to definition, shows source context around definition -
find— semantic workspace symbol search (classes, interfaces, enums) -
symbols— document symbols with line numbers and kinds - On-demand mode (no daemon, ~5-15s per query) + daemon mode (<200ms per query)
-
install-skill— writes.claude/skills/java-nav/SKILL.mdwith strict agent rules - Playground test fixture (Repository × 2 impls, AbstractProcessor × 2 subtypes, UserService + Guava)
- spring-petclinic integration tests (12 tests via git submodule)
- LSP integration tests (8 tests against playground)
- ruff lint + format (E, W, F, I, UP, B, SIM)
- pytest with integration marker separation (26 unit + 20 integration)
- Agent-friendly error messages on all commands (no silent failures)
- Multi-module Maven support (grep, source, deps)
- Gradle support (currently Maven-only)
- Inner class support for
source(Foo.Bar→Foo.java) - typeHierarchy via LSP (multilspy doesn't expose; ClassGraph covers most cases)
- Deep multi-module (only scans one level of submodules)
- PyPI publishing