Skip to content

v0.9.10

Choose a tag to compare

@aviadshiber aviadshiber released this 18 Apr 20:17
· 44 commits to main since this release
37b310a

feat: Cross-Maven-group workspace expansion

Root cause: After expanding jdtls workspace to the initial Maven group (e.g., editorial-management/), _workspace_expanded = True permanently blocked add_module_if_new(). Files from other groups (search-engine/, related-content/) were never registered with jdtls via didChangeWorkspaceFolders — jdtls treated them as "non-project files" with no Maven classpath, permanently breaking cross-module navigation.

Fix: Replace _workspace_expanded: bool with _expanded_groups: set[str]. Each new Maven group is expanded on-demand when the user first navigates to a file in it.

Safety

  • Hard cap of 5 concurrent groups (_MAX_EXPANDED_GROUPS) prevents jdtls OOM
  • No LRU eviction — removing folders causes full re-index thrashing
  • _find_maven_group_root cached with @lru_cache to avoid per-request filesystem I/O
  • Child modules removed from workspace when their group root is added (prevents double-indexing)
  • Path matching uses Path.is_relative_to() instead of startswith() to avoid prefix false-matches

Also includes (from v0.9.9)

  • Code-16 non-project-file guard in _on_jdtls_diagnostics
  • _LIGHTWEIGHT_METHODS frozenset (documentHighlight, documentSymbol don't signal readiness)
  • Debug logging in _ensure_module_and_forward ([hot]/[cold] path, module name, null results)