Publish shared FXML diagnostics and integrate IntelliJ Problems

Navigate authoritative FXML locations, withdraw stale results and preserve host Undo/Redo. Include editor ownership in native problem identity so equal diagnostics from separate owners survive independent cleanup. Qualify both hosts automatically.
This commit is contained in:
2026-11-13 16:52:50 +01:00
parent 910a8b0e85
commit 8a4f456e38
17 changed files with 883 additions and 17 deletions
@@ -74,6 +74,11 @@ public record HostServices(
public interface Navigation {
CompletionStage<Void> open(Location location);
/** Open authoritative source at an offset, rather than selecting the visual designer. */
default CompletionStage<Void> openSource(Location location) {
return open(location);
}
/** Editable attached sources whose owning project is known to the host. */
default CompletionStage<List<Location>> componentSources(String type) {
return java.util.concurrent.CompletableFuture.completedFuture(List.of());
@@ -98,6 +103,16 @@ public record HostServices(
public interface Diagnostics {
void report(Diagnostic diagnostic);
/** Replace one editor's current diagnostics, never append obsolete validation results. */
default void replace(
String owner,
de.neitzel.fxdesigner.contracts.DocumentSnapshot source,
String context,
List<Diagnostic> diagnostics) {}
/** Withdraw this editor's diagnostics without removing another editor's results. */
default void clear(String owner) {}
}
public record BuildRequest(