@hydranium/core 1.0.0-next.140 → 1.0.0-next.148

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/lib/documents/hydranium-text-documents.d.ts.map +1 -1
  2. package/lib/documents/hydranium-text-documents.js +3 -13
  3. package/lib/documents/hydranium-text-documents.js.map +1 -1
  4. package/lib/langium/document-builder/document-builder.d.ts +140 -13
  5. package/lib/langium/document-builder/document-builder.d.ts.map +1 -1
  6. package/lib/langium/document-builder/document-builder.js +218 -24
  7. package/lib/langium/document-builder/document-builder.js.map +1 -1
  8. package/lib/langium/model-service/model-service.d.ts +25 -28
  9. package/lib/langium/model-service/model-service.d.ts.map +1 -1
  10. package/lib/langium/model-service/model-service.js +25 -30
  11. package/lib/langium/model-service/model-service.js.map +1 -1
  12. package/lib/langium/module.d.ts +5 -6
  13. package/lib/langium/module.d.ts.map +1 -1
  14. package/lib/langium/module.js.map +1 -1
  15. package/lib/langium/workspace/hydranium-workspace-lock.d.ts +13 -0
  16. package/lib/langium/workspace/hydranium-workspace-lock.d.ts.map +1 -1
  17. package/lib/langium/workspace/hydranium-workspace-lock.js +18 -0
  18. package/lib/langium/workspace/hydranium-workspace-lock.js.map +1 -1
  19. package/lib/lsp/hydranium-document-update-handler.d.ts +24 -21
  20. package/lib/lsp/hydranium-document-update-handler.d.ts.map +1 -1
  21. package/lib/lsp/hydranium-document-update-handler.js +27 -28
  22. package/lib/lsp/hydranium-document-update-handler.js.map +1 -1
  23. package/lib/testing/make-test-services.d.ts.map +1 -1
  24. package/lib/testing/make-test-services.js +3 -2
  25. package/lib/testing/make-test-services.js.map +1 -1
  26. package/lib/testing/stub-document-builder.d.ts +12 -6
  27. package/lib/testing/stub-document-builder.d.ts.map +1 -1
  28. package/lib/testing/stub-document-builder.js +9 -1
  29. package/lib/testing/stub-document-builder.js.map +1 -1
  30. package/package.json +5 -5
  31. package/src/documents/hydranium-text-documents.ts +3 -12
  32. package/src/langium/document-builder/document-builder.ts +253 -28
  33. package/src/langium/model-service/model-service.ts +34 -41
  34. package/src/langium/module.ts +5 -6
  35. package/src/langium/workspace/hydranium-workspace-lock.ts +21 -0
  36. package/src/lsp/hydranium-document-update-handler.ts +28 -31
  37. package/src/testing/make-test-services.ts +3 -2
  38. package/src/testing/stub-document-builder.ts +16 -6
@@ -13,6 +13,7 @@ import { DefaultDocumentBuilder, DocumentState, MultiMap, OperationCancelled, Ur
13
13
  // restating it.
14
14
  import { CancellationToken, Diagnostic, Disposable } from 'vscode-languageserver-protocol';
15
15
  import { CST_REHYDRATION_RESET_STATE, isCstShed } from '../residency/cst-residency-service.js';
16
+ import { HydraniumWorkspaceLock } from '../workspace/hydranium-workspace-lock.js';
16
17
  import { BuildSession } from './build-session.js';
17
18
  import { labelPhaseListener } from './labeled-phase-listener.js';
18
19
  /** Document states a phase-reached line is emitted for by default — every built phase. */
@@ -54,6 +55,8 @@ const MAX_STALLED_REQUEUES = 3;
54
55
  * non-validating build from suppressing validation, and a
55
56
  * {@link shouldRelink} that never judges a document unaffected on an index
56
57
  * that does not describe it.
58
+ * - **Shared locked builds** ({@link scheduleUpdate}): build requests that
59
+ * coincide share one locked build instead of cancelling each other.
57
60
  * - **URI handling** (always on): directory-aware flattening and cascade
58
61
  * deletes in {@link update}, plus the CST-rehydration and cross-document
59
62
  * refresh resets in {@link resetToState}.
@@ -96,8 +99,10 @@ export class HydraniumDocumentBuilder extends DefaultDocumentBuilder {
96
99
  uriPolicy;
97
100
  clock;
98
101
  messageRenderer;
99
- /** The lock a re-queued build takes; see {@link requeueOrphaned}. */
102
+ /** The lock {@link scheduleUpdate} builds under. */
100
103
  workspaceLock;
104
+ /** The latest write {@link scheduleUpdate} queued, until it ends; see {@link ScheduledUpdate}. */
105
+ scheduledUpdate;
101
106
  /** Narrower handle on the same registry as the inherited `serviceRegistry`, for {@link ExtendedServiceRegistry.registrations}. */
102
107
  languageRegistry;
103
108
  languageFileExtensions = [];
@@ -126,6 +131,17 @@ export class HydraniumDocumentBuilder extends DefaultDocumentBuilder {
126
131
  lastCancelledTraceId;
127
132
  /** Registered through {@link onDocumentPhaseDelivered}, by phase. */
128
133
  documentPhaseDeliveredListeners = new MultiMap();
134
+ /**
135
+ * Called with `false` by {@link buildDocuments} once a build has run every
136
+ * phase, and with `true` by {@link checkWaitsOnceDrained} after a build that
137
+ * threw; see {@link awaitDocumentState}. A listener runs synchronously,
138
+ * inside the build or inside that check's lock read. A throw fails the
139
+ * finished build; in the read it skips the listeners after it and surfaces
140
+ * only as an unhandled rejection.
141
+ */
142
+ buildEndedListeners = new Set();
143
+ /** Set while the lock read {@link checkWaitsOnceDrained} queued has not run. */
144
+ drainCheckQueued = false;
129
145
  constructor(services, options = {}) {
130
146
  super(services);
131
147
  this.languageRegistry = services.ServiceRegistry;
@@ -223,10 +239,15 @@ export class HydraniumDocumentBuilder extends DefaultDocumentBuilder {
223
239
  *
224
240
  * Replacing Langium's rejection with a wait makes the wait's liveness this
225
241
  * class's responsibility: a listener can only fire if some build is still
226
- * going to reach `state`. Both re-queue sites below exist for that, and they
227
- * differ only in when the orphaning is observed — {@link isOrphaned} at
228
- * registration time, the `onBuildPhase` branch for a build cancelled after
229
- * the wait was already armed. Re-queuing stops after
242
+ * going to reach `state`. So the wait re-queues the document whenever
243
+ * {@link isOrphaned} holds: once when it is armed, and again after every
244
+ * build that completes (see {@link buildDocuments}). The second check is
245
+ * the one a wait armed during a build needs, since only the build's end
246
+ * shows whether it left the document behind; Langium's `onBuildPhase` for
247
+ * `Validated` cannot serve, as it stays silent for a build that validates
248
+ * nothing, such as the workspace's initial one. A build that throws is
249
+ * checked once the lock drains instead (see {@link checkWaitsOnceDrained}):
250
+ * whatever cancelled it may build nothing. Re-queuing stops after
230
251
  * {@link MAX_STALLED_REQUEUES} builds that fail to advance the document, so a
231
252
  * document the builder will never carry to `state` degrades to a pending wait
232
253
  * plus a warning rather than an endless build loop.
@@ -293,16 +314,20 @@ export class HydraniumDocumentBuilder extends DefaultDocumentBuilder {
293
314
  }
294
315
  }, 'awaitDocumentState.skipsValidation'))
295
316
  : Disposable.create(() => undefined);
296
- const buildDisposable = this.onBuildPhase(DocumentState.Validated, () => {
317
+ const buildEnded = (drained) => {
297
318
  if (document.state >= state || (state === DocumentState.Validated && this.skipsValidation(document))) {
298
319
  cleanup();
299
320
  resolve(uri);
300
321
  }
301
- else {
302
- // Orphaned by a cancelled build — re-queue so the next build catches it up.
303
- requeue('cancelled build');
322
+ else if (drained ? this.activeSession === undefined : this.isOrphaned(document, state)) {
323
+ // No build is left to carry the document to `state`. Either
324
+ // check fails only while an unlocked build still runs; that
325
+ // build carries the document or ends here too.
326
+ requeue(drained ? 'build ended early' : 'build ended short of the target');
304
327
  }
305
- });
328
+ };
329
+ this.buildEndedListeners.add(buildEnded);
330
+ const buildDisposable = Disposable.create(() => this.buildEndedListeners.delete(buildEnded));
306
331
  const cancelDisposable = cancelToken.onCancellationRequested(() => {
307
332
  cleanup();
308
333
  reject(OperationCancelled);
@@ -314,9 +339,9 @@ export class HydraniumDocumentBuilder extends DefaultDocumentBuilder {
314
339
  cancelDisposable.dispose();
315
340
  };
316
341
  // Orphaned BEFORE the wait was armed: the build that would have
317
- // advanced this document has already finished, so neither listener
318
- // above can ever fire. Re-queue now — the listeners are registered, so
319
- // the resulting build resolves this wait.
342
+ // advanced this document has already finished, so none of these
343
+ // listeners fires until some other build runs. Re-queue now — the listeners are
344
+ // registered, so the resulting build resolves this wait.
320
345
  if (this.isOrphaned(document, state)) {
321
346
  requeue('quiescent builder');
322
347
  }
@@ -353,7 +378,9 @@ export class HydraniumDocumentBuilder extends DefaultDocumentBuilder {
353
378
  * `currentState` still advances to `Validated` (the validation phase runs
354
379
  * over an empty document list). Any first read that wants diagnostics — a
355
380
  * one-shot data-head read, a CLI query, `ModelService.validated` — lands
356
- * here.
381
+ * here. A read that arrives while that build still runs finds `currentState`
382
+ * below `state`, so this holds for it only once the build has ended, which
383
+ * is why {@link awaitDocumentState} asks again then.
357
384
  */
358
385
  isOrphaned(document, state) {
359
386
  return document.state < state && this.currentState >= state;
@@ -365,13 +392,16 @@ export class HydraniumDocumentBuilder extends DefaultDocumentBuilder {
365
392
  * logged rather than swallowed — it leaves the waiter pending until its own
366
393
  * cancellation token fires, which is worth a line in the log.
367
394
  *
368
- * The build is an ordinary {@link WorkspaceLock} write, entered from a read.
369
- * The read waits until no write runs or is queued, so the build neither runs
370
- * beside a locked one nor cancels the build a re-queue is fired from. Unlocked,
371
- * it runs beside a locked build that cannot cancel it: both validate the same
372
- * version and deliver it twice. Taking the write directly, without the read,
373
- * cancels the running build and skips the rest of its build-phase listeners.
374
- * The read must not await the write, which queues behind that read.
395
+ * The build is a {@link scheduleUpdate}, entered from a {@link WorkspaceLock}
396
+ * read. The read waits until no write runs or is queued, so the build neither
397
+ * runs beside a locked one nor cancels the build a re-queue is fired from.
398
+ * Unlocked, it runs beside a locked build that cannot cancel it: both
399
+ * validate the same version and deliver it twice. Taking the write directly,
400
+ * without the read, cancels the running build and skips the rest of its
401
+ * build-phase listeners. The read must not await the write, which queues
402
+ * behind that read. A build scheduled in the gap between the read batch
403
+ * starting and this action running is still queued, so the re-queue merges
404
+ * into it rather than cancelling it.
375
405
  *
376
406
  * A write that ran while the read waited may have carried the document to
377
407
  * `state` already, and a second build would deliver that version again; the
@@ -384,15 +414,178 @@ export class HydraniumDocumentBuilder extends DefaultDocumentBuilder {
384
414
  if (document.state >= state) {
385
415
  return;
386
416
  }
387
- this.workspaceLock
388
- .write(token => this.update([document.uri], [], token))
389
- .catch((err) => {
417
+ this.scheduleUpdate([document.uri], []).catch((err) => {
390
418
  if (!isOperationCancelled(err)) {
391
419
  tracer.error(`Re-queue build failed: ${err instanceof Error ? err.message : String(err)}`);
392
420
  }
393
421
  });
394
422
  });
395
423
  }
424
+ // ============================================================
425
+ // Scheduled updates — one locked build for requests that coincide
426
+ // ============================================================
427
+ /**
428
+ * Build `changed` and `deleted` under the {@link WorkspaceLock}, as
429
+ * `workspaceLock.write(token => update(changed, deleted, token))` would,
430
+ * except where the build this method queued last already carries the
431
+ * request. The promise settles when the build that carries the request
432
+ * ends, completed or cancelled, as the lock's own promise does.
433
+ *
434
+ * Without it, requests that coincide cancel each other: each lock write
435
+ * cancels the one before it, after Langium's `update` has already reset the
436
+ * documents, scanned the workspace for relinking and called every
437
+ * `onUpdate` listener.
438
+ *
439
+ * - **Queued, not yet running:** the request merges into it, so nothing is
440
+ * cancelled. The later of a change and a deletion of one URI wins, so
441
+ * each URI reaches `update` in one list only: a file deleted and written
442
+ * again before the build starts is a change.
443
+ * - **Running:** the request joins it only when {@link canJoinRunningUpdate}
444
+ * holds, which keeps an edit made while it runs cancelling it.
445
+ * - **Otherwise,** or when anything else has cancelled that write since it
446
+ * was queued, a new write, which cancels the running build as any lock
447
+ * write does.
448
+ *
449
+ * `reason` is staged through {@link markNextReason} when the write runs. The
450
+ * latest reason of a merged request wins, as it does in the update
451
+ * handler's own debounced burst; a joining request's reason is dropped, since
452
+ * the build it joins has already started. A request without one leaves a
453
+ * reason staged by the caller in place.
454
+ *
455
+ * A caller that must run code of its own inside the write action takes the
456
+ * lock itself, and forgoes the sharing. A lock that is not a
457
+ * {@link HydraniumWorkspaceLock} cannot report a cancelled queued write, so
458
+ * every request then takes its own write.
459
+ */
460
+ scheduleUpdate(changed, deleted, reason) {
461
+ const lock = this.workspaceLock;
462
+ if (!(lock instanceof HydraniumWorkspaceLock)) {
463
+ return lock.write(token => {
464
+ if (reason !== undefined) {
465
+ this.markNextReason(reason);
466
+ }
467
+ return this.update(changed, deleted, token);
468
+ });
469
+ }
470
+ const scheduled = this.scheduledUpdate;
471
+ if (scheduled && scheduled.cancellations === lock.writeCancellations) {
472
+ if (!scheduled.takenVersions) {
473
+ for (const uri of changed) {
474
+ scheduled.changed.set(uri.toString(), uri);
475
+ scheduled.deleted.delete(uri.toString());
476
+ }
477
+ for (const uri of deleted) {
478
+ scheduled.deleted.set(uri.toString(), uri);
479
+ scheduled.changed.delete(uri.toString());
480
+ }
481
+ scheduled.reason = reason ?? scheduled.reason;
482
+ return scheduled.promise;
483
+ }
484
+ if (this.canJoinRunningUpdate(scheduled, changed, deleted)) {
485
+ return scheduled.promise;
486
+ }
487
+ }
488
+ // The action runs on a later tick, by which time `request` is assigned.
489
+ const promise = lock.write(token => this.runScheduledUpdate(request, token));
490
+ const request = {
491
+ changed: new Map(changed.map(uri => [uri.toString(), uri])),
492
+ deleted: new Map(deleted.map(uri => [uri.toString(), uri])),
493
+ reason,
494
+ cancellations: lock.writeCancellations,
495
+ promise
496
+ };
497
+ this.scheduledUpdate = request;
498
+ return promise;
499
+ }
500
+ /**
501
+ * Whether a request for `changed` and `deleted` is carried by the running
502
+ * `scheduled` build, whose write nothing has cancelled: the request deletes
503
+ * nothing, and each changed URI is one the build took, held by the text
504
+ * store at the version it had when the build started.
505
+ *
506
+ * Each condition keeps a request from joining a build that would miss its
507
+ * change. Text that moved since the start may be newer than what the build
508
+ * parsed; a URI the text store does not hold is read from its file, which
509
+ * may have changed after the build read it; and a deletion may concern a
510
+ * document the build has already built. A joined request is also absent
511
+ * from the running `update`'s `onUpdate` call, which reported the store as
512
+ * it was when the build started; at an unchanged version that is the store
513
+ * the request sees.
514
+ */
515
+ canJoinRunningUpdate(scheduled, changed, deleted) {
516
+ const taken = scheduled.takenVersions;
517
+ if (!taken || deleted.length > 0) {
518
+ return false;
519
+ }
520
+ return changed.every(uri => taken.has(uri.toString()) && taken.get(uri.toString()) === this.textDocuments?.get(uri)?.version);
521
+ }
522
+ /**
523
+ * The write action of a {@link scheduleUpdate}: freeze the request, record
524
+ * what it takes, stage its reason and run `update`. Releases
525
+ * {@link scheduledUpdate} inside the lock, whatever throws, so a request
526
+ * arriving after the build ends starts a write of its own rather than
527
+ * joining a build that is over.
528
+ */
529
+ async runScheduledUpdate(request, token) {
530
+ try {
531
+ const taken = new Map();
532
+ for (const [key, uri] of request.changed) {
533
+ const version = this.textDocuments?.get(uri)?.version;
534
+ if (version !== undefined) {
535
+ taken.set(key, version);
536
+ }
537
+ }
538
+ request.takenVersions = taken;
539
+ if (request.reason !== undefined) {
540
+ this.markNextReason(request.reason);
541
+ }
542
+ await this.update([...request.changed.values()], [...request.deleted.values()], token);
543
+ }
544
+ finally {
545
+ if (this.scheduledUpdate === request) {
546
+ this.scheduledUpdate = undefined;
547
+ }
548
+ }
549
+ }
550
+ /**
551
+ * Tell the {@link buildEndedListeners} once every phase has run, which is
552
+ * the one point where a build that skipped a waited-on document can be seen
553
+ * to have ended. Langium's `onBuildPhase` for `Validated` is not: it stays
554
+ * silent when no document reached that phase, which is every build that
555
+ * validates nothing, the workspace's initial one among them.
556
+ *
557
+ * A build that throws, whether cancelled or failed, tells none of them
558
+ * here: `currentState` is then below `Validated`, so {@link isOrphaned}
559
+ * could hold for no wait. {@link checkWaitsOnceDrained} tells them instead.
560
+ */
561
+ async buildDocuments(documents, options, cancelToken) {
562
+ await super.buildDocuments(documents, options, cancelToken);
563
+ for (const listener of [...this.buildEndedListeners]) {
564
+ listener(false);
565
+ }
566
+ }
567
+ /**
568
+ * After a build that threw, tell the {@link buildEndedListeners}, with
569
+ * `drained` set, from a {@link WorkspaceLock} read: it runs once no write
570
+ * runs or is queued, so no locked build is left that could still carry a
571
+ * waited-on document. A cancelled build is usually followed by its
572
+ * canceller's, but a write that builds nothing, such as a last-close revert
573
+ * that finds its document reopened, leaves a wait armed during the build
574
+ * with nothing to resolve it, and so does a build that fails. One read
575
+ * serves every build that throws before it runs.
576
+ */
577
+ checkWaitsOnceDrained() {
578
+ if (this.drainCheckQueued) {
579
+ return;
580
+ }
581
+ this.drainCheckQueued = true;
582
+ void this.workspaceLock.read(() => {
583
+ this.drainCheckQueued = false;
584
+ for (const listener of [...this.buildEndedListeners]) {
585
+ listener(true);
586
+ }
587
+ });
588
+ }
396
589
  /**
397
590
  * Don't let a cancelled non-validating build suppress validation forever.
398
591
  *
@@ -730,6 +923,7 @@ export class HydraniumDocumentBuilder extends DefaultDocumentBuilder {
730
923
  if (isOperationCancelled(err)) {
731
924
  session.cancelled = true;
732
925
  }
926
+ this.checkWaitsOnceDrained();
733
927
  throw err;
734
928
  }
735
929
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"document-builder.js","sourceRoot":"","sources":["../../../src/langium/document-builder/document-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document-builder.js","sourceRoot":"","sources":["../../../src/langium/document-builder/document-builder.ts"],"names":[],"mappings":"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"}
@@ -38,17 +38,17 @@ export declare const MODEL_UPDATE_EDIT: import("@hydranium/protocol").MessageDef
38
38
  */
39
39
  export interface ModelServiceOptions extends LogNameOptions {
40
40
  /**
41
- * Serialise the facade's own build under the workspace WRITE lock, the way
42
- * Langium's `DefaultDocumentUpdateHandler` dispatches its build. Default
43
- * `true`.
41
+ * Serialise the facade's own build under the workspace WRITE lock, through
42
+ * `HydraniumDocumentBuilder.scheduleUpdate` as the LSP update handler
43
+ * builds. Default `true`.
44
44
  *
45
45
  * **Why it defaults on.** Unlocked, the facade's build races the LSP bridge's
46
46
  * build of the same URI — both are legitimate (the bridge exists only under a
47
47
  * `Connection`, so the facade stands in for it headless), but nothing
48
48
  * serialises them, so both run a full validation pass and Langium appends the
49
49
  * second onto the first. Every diagnostic is then duplicated, and the
50
- * duplication compounds per rebuild. Serialised, Langium elides the second
51
- * build entirely, so the redundant work goes too.
50
+ * duplication compounds per rebuild. Serialised, the second request shares
51
+ * the first build where it carries both, so the redundant work goes too.
52
52
  *
53
53
  * **What `false` costs.** The facade's build is then unserialised and can run
54
54
  * concurrently with the bridge's build of the same URI, so the affected
@@ -144,10 +144,10 @@ export interface ModelServiceOptions extends LogNameOptions {
144
144
  * implementing the URI gate at each callsite.
145
145
  *
146
146
  * **Two families, and the distinction matters more than the names suggest.**
147
- * `waitFor*` is a pure wait — it never triggers a build, so a caller waiting on
148
- * a document no build has touched waits until something else builds it.
149
- * `ensureDocumentState` and the phase shorthands over it *dispatch*: warm
150
- * documents are awaited, cold ones are built.
147
+ * `waitFor*` requests no build of its own: a wait on a URI with no document
148
+ * rejects, and one on a document no build will carry is re-queued by the
149
+ * builder's wait. `ensureDocumentState` and the phase shorthands over it
150
+ * *dispatch*: warm documents are awaited, cold ones are built.
151
151
  *
152
152
  * **Diagnostics are typed `never` below `Validated`.** Validation is the last
153
153
  * phase, so at any earlier landmark the array either is not yet computed or
@@ -307,8 +307,7 @@ TTransfer extends TransferElement = TransferElement> implements ModelService<TAs
307
307
  /**
308
308
  * Wait for the document at `uri` to reach `state`. Pure wait — does
309
309
  * not trigger a build. If `uri` is not yet in the document registry
310
- * the call will hang until something else drives it through the
311
- * pipeline; for the cold-start case use {@link rebuild} instead.
310
+ * the call rejects; for the cold-start case use {@link rebuild} instead.
312
311
  *
313
312
  * Wrapped in a debug-level timing log via {@link Tracer.time} so
314
313
  * slow per-URI waits surface in build telemetry; the URI is
@@ -348,24 +347,23 @@ TTransfer extends TransferElement = TransferElement> implements ModelService<TAs
348
347
  * Force a fresh build of the document at `uri` and wait for it to
349
348
  * reach `state` (or the integrity-settled landmark
350
349
  * {@link IntegrityService.SettledState} if omitted).
351
- * Always triggers `DocumentBuilder.update([uri], [])` regardless of
352
- * whether the document is already in the registry — call this when
353
- * you want to re-process from scratch.
350
+ * Always builds the document, whether or not it is already in the
351
+ * registry, in a build of its own or in one already scheduled that carries
352
+ * it — call this when you want to re-process from scratch.
354
353
  *
355
- * The facade is responsible for firing `DocumentBuilder.update`
356
- * directly because Langium's `DefaultDocumentUpdateHandler.didChangeContent`
354
+ * The facade is responsible for requesting the build itself because Langium's `DefaultDocumentUpdateHandler.didChangeContent`
357
355
  * (the standard text-document → builder bridge) only runs under an
358
356
  * LSP `Connection`. Running headless the bridge never fires; the
359
357
  * facade stands in for it on its own update path.
360
358
  *
361
359
  * Coexistence with an LSP head running on the same `DocumentBuilder` is
362
- * fine, but not because the builder merges the two: Langium does NOT
363
- * coalesce concurrent builds of the same URI. The LSP head fires `update`
364
- * from the LSP-driven event and the facade fires it from its own RPC-driven
365
- * event — both legitimate — so this method takes the workspace WRITE lock,
366
- * the same one Langium's own text-change bridge builds under, to serialise
367
- * them. Two unserialised builds of one URI each run a full validation pass
368
- * and Langium appends the second set onto the first, duplicating every
360
+ * fine: the LSP head builds from the LSP-driven event and the facade from
361
+ * its own RPC-driven event — both legitimate — and both go through
362
+ * `HydraniumDocumentBuilder.scheduleUpdate`, which serialises them under
363
+ * the workspace WRITE lock and lets the second share the first's build
364
+ * where that build carries it. Langium alone does not coalesce concurrent
365
+ * builds of one URI: two unserialised builds each run a full validation
366
+ * pass and Langium appends the second set onto the first, duplicating every
369
367
  * diagnostic. Opt out via
370
368
  * {@link ModelServiceOptions.serializeBuilds} — see there for the
371
369
  * non-reentrancy hazard that is the reason the opt-out exists.
@@ -376,9 +374,8 @@ TTransfer extends TransferElement = TransferElement> implements ModelService<TAs
376
374
  * base's request start a build of its own, so the write is built and
377
375
  * delivered twice.
378
376
  *
379
- * Returns an empty `{ root, diagnostics }` envelope when the document
380
- * cannot be loaded; adopters that want to throw override this method
381
- * on their subclass.
377
+ * Rejects when the build leaves no document for `uri`, as for a URI with
378
+ * neither a file nor text: the wait after it has nothing to wait on.
382
379
  *
383
380
  * Consumers wanting "give me this doc at state X, building only if
384
381
  * needed" — use the per-state methods ({@link parsed} / {@link linked}
@@ -387,8 +384,8 @@ TTransfer extends TransferElement = TransferElement> implements ModelService<TAs
387
384
  rebuild(uri: string, state?: DocumentState, cancelToken?: CancellationToken): Promise<AstDocument<TAst, TDiagnostic>>;
388
385
  /**
389
386
  * Internal build core operating on an already-{@link CanonicalUri canonical}
390
- * URI — the build counterpart to {@link waitForDocumentStateCanonical}. Drives
391
- * `DocumentBuilder.update` then waits via the canonical wait core, so the
387
+ * URI — the build counterpart to {@link waitForDocumentStateCanonical}.
388
+ * Requests the build, then waits via the canonical wait core, so the
392
389
  * identity is resolved once at the public door and neither sink re-runs the
393
390
  * `realpath`. (`DocumentBuilder.update` still resolves each URI internally for
394
391
  * directory flattening — that is the build's own existence-aware resolution,
@@ -1 +1 @@
1
- {"version":3,"file":"model-service.d.ts","sourceRoot":"","sources":["../../../src/langium/model-service/model-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-service.d.ts","sourceRoot":"","sources":["../../../src/langium/model-service/model-service.ts"],"names":[],"mappings":"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"}