fix(java): stop Show Usages waiting seconds on the configuration index after a change

After any Java change, the configuration index was rebuilt from scratch on the next Show
Usages, resolving every dependency's Spring metadata (thousands of Spring Boot properties)
to library members again, and Show Usages waited for it: 15-20 seconds in a Spring Boot +
MyBatis project.

- The Java extension (1.8.0) keeps each dependency JAR's metadata entries across rebuilds
  until the JAR's timestamp/size or the project's classpath changes.
- Show Usages shows the Java usages as soon as they are found and adds the configuration
  ones when the index takes longer.

Closes #1898
This commit is contained in:
l0ng-ai committed 2026-11-07 22:35:10 +08:00
1 parent f96ca468a8
commit c0717358df
9 files changed
+131 -7

No files matched your search

+7 -1
View File
@@ -78,7 +78,13 @@ changes; a fingerprint of working copies with unsaved changes covers edits befor
they are saved. Opening or closing an editor, reconciling, building, and non-Java
resource changes (configuration files are parsed by the client; metadata files are
checked by timestamp) keep it. This is **snapshot invalidation**, not a fully
incremental Java semantic index.
incremental Java semantic index. A rebuild reuses each dependency JAR's metadata
associations (up to 100,000 in all) while the JAR's timestamp and size and the project's
classpath are unchanged: resolving a Spring Boot JAR's thousands of properties to library
members takes seconds, and a source change cannot affect them.
Find Usages shows the Java usages as soon as they are found, then adds the configuration
ones when a rebuild of the snapshot takes longer.
In YAML/properties, ⌘/Ctrl-hover underlines the whole key, hyphens and dots
included, and doesn't open the documentation popup. Hover and Go to Definition share