Skip to content

Latest commit

 

History

History
43 lines (36 loc) · 2.44 KB

File metadata and controls

43 lines (36 loc) · 2.44 KB

Implementation Status

Completed

Tier 1 — Instant commands

  • classpath.py — Maven classpath resolution cached in target/java-nav/classpath.txt
  • classpath.py — Per-JAR dependency source extraction (finds -sources.jar in ~/.m2/, extracts only what's needed)
  • classpath.pyfind_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 --deps and --test, multi-module aware, helpful "no matches" message with hints
  • deps — jdeps wrapper with --package, searches submodule target/classes/ too

Tier 2 — Bytecode scanning

  • ClassGraph scanner JAR (tools/classgraph-scanner/src/java_nav/jars/classgraph-scanner.jar)
  • impls — find all implementations of an interface
  • subtypes — find all subclasses

Tier 3 — LSP semantic queries (jdtls via multilspy)

  • 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)

Infrastructure

  • install-skill — writes .claude/skills/java-nav/SKILL.md with 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)

Not yet implemented

  • Gradle support (currently Maven-only)
  • Inner class support for source (Foo.BarFoo.java)
  • typeHierarchy via LSP (multilspy doesn't expose; ClassGraph covers most cases)
  • Deep multi-module (only scans one level of submodules)
  • PyPI publishing