@hydranium/core 1.0.0-next.187 → 1.0.0-next.188

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 (96) hide show
  1. package/lib/documents/ast-document-manager.d.ts +26 -44
  2. package/lib/documents/ast-document-manager.d.ts.map +1 -1
  3. package/lib/documents/ast-document-manager.js +20 -50
  4. package/lib/documents/ast-document-manager.js.map +1 -1
  5. package/lib/documents/hydranium-text-documents.d.ts +87 -30
  6. package/lib/documents/hydranium-text-documents.d.ts.map +1 -1
  7. package/lib/documents/hydranium-text-documents.js +201 -37
  8. package/lib/documents/hydranium-text-documents.js.map +1 -1
  9. package/lib/documents/index.d.ts +2 -0
  10. package/lib/documents/index.d.ts.map +1 -1
  11. package/lib/documents/index.js +2 -0
  12. package/lib/documents/index.js.map +1 -1
  13. package/lib/documents/model-ledger.d.ts +47 -0
  14. package/lib/documents/model-ledger.d.ts.map +1 -0
  15. package/lib/documents/model-ledger.js +30 -0
  16. package/lib/documents/model-ledger.js.map +1 -0
  17. package/lib/documents/version-sync-service.d.ts +134 -0
  18. package/lib/documents/version-sync-service.d.ts.map +1 -0
  19. package/lib/documents/version-sync-service.js +171 -0
  20. package/lib/documents/version-sync-service.js.map +1 -0
  21. package/lib/langium/bootstrap.d.ts.map +1 -1
  22. package/lib/langium/bootstrap.js +16 -0
  23. package/lib/langium/bootstrap.js.map +1 -1
  24. package/lib/langium/document-builder/document-builder.d.ts +31 -25
  25. package/lib/langium/document-builder/document-builder.d.ts.map +1 -1
  26. package/lib/langium/document-builder/document-builder.js +43 -39
  27. package/lib/langium/document-builder/document-builder.js.map +1 -1
  28. package/lib/langium/integrity/integrity-service.d.ts.map +1 -1
  29. package/lib/langium/integrity/integrity-service.js +6 -15
  30. package/lib/langium/integrity/integrity-service.js.map +1 -1
  31. package/lib/langium/model-service/client-session.d.ts +14 -10
  32. package/lib/langium/model-service/client-session.d.ts.map +1 -1
  33. package/lib/langium/model-service/client-session.js +18 -15
  34. package/lib/langium/model-service/client-session.js.map +1 -1
  35. package/lib/langium/model-service/model-service.d.ts +91 -41
  36. package/lib/langium/model-service/model-service.d.ts.map +1 -1
  37. package/lib/langium/model-service/model-service.js +127 -50
  38. package/lib/langium/model-service/model-service.js.map +1 -1
  39. package/lib/langium/module.d.ts +6 -0
  40. package/lib/langium/module.d.ts.map +1 -1
  41. package/lib/langium/module.js +5 -1
  42. package/lib/langium/module.js.map +1 -1
  43. package/lib/langium/residency/cst-residency-service.d.ts.map +1 -1
  44. package/lib/langium/residency/cst-residency-service.js +10 -1
  45. package/lib/langium/residency/cst-residency-service.js.map +1 -1
  46. package/lib/langium/shared-services.d.ts +6 -2
  47. package/lib/langium/shared-services.d.ts.map +1 -1
  48. package/lib/langium/shared-services.js.map +1 -1
  49. package/lib/langium/transfer/transfer-encoder.d.ts +19 -10
  50. package/lib/langium/transfer/transfer-encoder.d.ts.map +1 -1
  51. package/lib/langium/transfer/transfer-encoder.js +8 -7
  52. package/lib/langium/transfer/transfer-encoder.js.map +1 -1
  53. package/lib/langium/workspace/hydranium-langium-document-factory.d.ts +31 -1
  54. package/lib/langium/workspace/hydranium-langium-document-factory.d.ts.map +1 -1
  55. package/lib/langium/workspace/hydranium-langium-document-factory.js +54 -0
  56. package/lib/langium/workspace/hydranium-langium-document-factory.js.map +1 -1
  57. package/lib/langium/workspace/langium-documents.d.ts +7 -0
  58. package/lib/langium/workspace/langium-documents.d.ts.map +1 -1
  59. package/lib/langium/workspace/langium-documents.js +10 -0
  60. package/lib/langium/workspace/langium-documents.js.map +1 -1
  61. package/lib/lsp/hydranium-document-update-handler.d.ts.map +1 -1
  62. package/lib/lsp/hydranium-document-update-handler.js +1 -0
  63. package/lib/lsp/hydranium-document-update-handler.js.map +1 -1
  64. package/lib/testing/make-test-services.d.ts +7 -0
  65. package/lib/testing/make-test-services.d.ts.map +1 -1
  66. package/lib/testing/make-test-services.js +10 -2
  67. package/lib/testing/make-test-services.js.map +1 -1
  68. package/lib/testing/stub-ast-document-manager.d.ts +3 -2
  69. package/lib/testing/stub-ast-document-manager.d.ts.map +1 -1
  70. package/lib/testing/stub-ast-document-manager.js +7 -1
  71. package/lib/testing/stub-ast-document-manager.js.map +1 -1
  72. package/lib/testing/stub-hydranium-text-documents.d.ts +2 -2
  73. package/lib/testing/stub-hydranium-text-documents.d.ts.map +1 -1
  74. package/lib/testing/stub-hydranium-text-documents.js +6 -1
  75. package/lib/testing/stub-hydranium-text-documents.js.map +1 -1
  76. package/package.json +5 -5
  77. package/src/documents/ast-document-manager.ts +45 -77
  78. package/src/documents/hydranium-text-documents.ts +225 -46
  79. package/src/documents/index.ts +2 -0
  80. package/src/documents/model-ledger.ts +66 -0
  81. package/src/documents/version-sync-service.ts +267 -0
  82. package/src/langium/bootstrap.ts +16 -0
  83. package/src/langium/document-builder/document-builder.ts +76 -37
  84. package/src/langium/integrity/integrity-service.ts +6 -15
  85. package/src/langium/model-service/client-session.ts +29 -21
  86. package/src/langium/model-service/model-service.ts +182 -64
  87. package/src/langium/module.ts +9 -1
  88. package/src/langium/residency/cst-residency-service.ts +10 -1
  89. package/src/langium/shared-services.ts +6 -2
  90. package/src/langium/transfer/transfer-encoder.ts +25 -18
  91. package/src/langium/workspace/hydranium-langium-document-factory.ts +83 -0
  92. package/src/langium/workspace/langium-documents.ts +11 -0
  93. package/src/lsp/hydranium-document-update-handler.ts +3 -0
  94. package/src/testing/make-test-services.ts +15 -2
  95. package/src/testing/stub-ast-document-manager.ts +10 -2
  96. package/src/testing/stub-hydranium-text-documents.ts +8 -3
@@ -21,7 +21,7 @@ import { NormalizedTextDocuments } from '@hydranium/langium/lsp';
21
21
  import { UriUtils } from '@hydranium/langium';
22
22
  import { Emitter, OptionalVersionedTextDocumentIdentifier, TextDocumentContentChangeEvent as ContentChange, TextDocumentEdit, TextDocumentSyncKind } from 'vscode-languageserver';
23
23
  import { TextDocument } from 'vscode-languageserver-textdocument';
24
- import { asLanguageClientUri, DisposableCollection, textHash } from '@hydranium/protocol';
24
+ import { asLanguageClientUri, DisposableCollection, textHash, STALE_VERSION, UNRECORDED_VERSION } from '@hydranium/protocol';
25
25
  import { HYDRANIUM_BUILD_REASONS } from '../langium/document-builder/document-builder.js';
26
26
  import { isConnectionGoneError } from '../util/connection-liveness.js';
27
27
  import { LANGUAGE_CLIENT_ID } from './client-ids.js';
@@ -69,10 +69,12 @@ function isFileNotFound(err, target) {
69
69
  * - A SERVER-OWNED shared version sequence: per-URI, monotonic across
70
70
  * close/reopen cycles, advancing exactly when the synced content changes.
71
71
  * Client-declared version ids (Monaco's buffer numbering) feed only a
72
- * per-client staleness guard and never leak into the shared sequence —
72
+ * per-client staleness guard and never leak into a running sequence —
73
73
  * the two are different things (an editor's edit-operation counter vs the
74
74
  * document's content-revision number), and splicing them lets versions drift
75
- * silently past based-on gate holders.
75
+ * silently past base-version gate holders. A URI with no sequence, and no
76
+ * root that records a version, starts at its opener's declared id: no version
77
+ * was handed out for it.
76
78
  * - Version-author history so each edit is attributable to its originating client.
77
79
  * - The revert to disk once no client has a document open, for every head
78
80
  * ({@link revertToDisk}), deferred by
@@ -103,20 +105,33 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
103
105
  __sessions = new ClientSessionRegistry();
104
106
  /**
105
107
  * Per-URI shared-version continuity across close/reopen cycles
106
- * ({@link VersionSequence}), written at last-client close and consulted by
107
- * the next first-client open. DELIBERATELY outside {@link DocumentTrackingRecord}:
108
- * that record is deleted on last close, while the version sequence must
108
+ * ({@link VersionSequence}), kept for every document a build or a client
109
+ * gave the store, and consulted by the next first-client open. A URI
110
+ * with none, and no root that records a version, starts at its opener's
111
+ * declared version.
112
+ * DELIBERATELY outside {@link DocumentTrackingRecord}: that record is deleted on last close, while the version sequence must
109
113
  * survive it — the shared version is a server-owned, monotonic,
110
114
  * advances-iff-content-changes counter that never resets while the server
111
- * lives. That invariant is what makes an optimistic based-on gate
115
+ * lives. That invariant is what makes an optimistic base-version gate
112
116
  * sound: "version unchanged ⇔ content unchanged", with no false conflicts
113
117
  * from close/reopen version resets and no false passes from a reopened
114
118
  * sequence coincidentally landing on a stale writer's number.
115
119
  *
116
- * Never pruned: two small values per URI ever touched — bounded by
117
- * workspace size, not by activity.
120
+ * Never pruned, not even when the file is deleted: a recreated file
121
+ * restarting at `0` would let a write based on the deleted text pass. Two
122
+ * small values per URI ever built, however often it changes.
118
123
  */
119
124
  __versionSequences = new Map();
125
+ /**
126
+ * Released documents last announced dirty. Their clean flip waits for the
127
+ * revert, so it carries the reverted text's version; a first open before the
128
+ * revert takes the entry over, and its own dirty answer decides the flip.
129
+ * Each release enters a token of its own, so the revert of an earlier
130
+ * release cannot announce a later one clean before that one's revert.
131
+ */
132
+ __releasedDirty = new Map();
133
+ /** Per held document, the {@link textHash} of its text at the version it was taken. */
134
+ __textHashes = new WeakMap();
120
135
  /**
121
136
  * Texts pushed to the LSP textual language client via
122
137
  * {@link applyEditToLanguageClient} whose echoes have not come back yet
@@ -317,7 +332,7 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
317
332
  return;
318
333
  }
319
334
  // The SHARED version advances iff the content actually changes — the
320
- // invariant optimistic based-on gates rely on. The new text is
335
+ // invariant optimistic base-version gates rely on. The new text is
321
336
  // only known after applying the (possibly incremental) changes, so
322
337
  // apply at a tentative +1 and roll the version back on an identical
323
338
  // result (an empty-changes update only re-stamps the version).
@@ -368,7 +383,7 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
368
383
  * A content-identical write still fires the change event (rebuild): the
369
384
  * authored write's server-side rebuild is correctness-bearing, it just
370
385
  * mints no new version — nothing observable changed, so watchers'
371
- * based-on versions stay valid.
386
+ * base versions stay valid.
372
387
  *
373
388
  * Returns the resulting shared version. Throws when the document is not
374
389
  * open — callers (`AstDocumentManager.update`) open first.
@@ -500,16 +515,15 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
500
515
  // here at release, not on every change.
501
516
  this.__versionSequences.set(uri, {
502
517
  version: syncedDocument.version,
503
- contentHash: textHash(syncedDocument.getText())
518
+ contentHash: this.heldTextHash(syncedDocument)
504
519
  });
505
- const wasDirty = this.__documents.get(uri)?.dirty === true;
520
+ if (this.__documents.get(uri)?.dirty === true) {
521
+ this.__releasedDirty.set(uri, {});
522
+ }
506
523
  this.__syncedDocuments.delete(uri);
507
524
  // One delete clears every per-URI axis (version history + any staged
508
525
  // pending content) so a future open with the same URI starts fresh.
509
526
  this.__documents.delete(uri);
510
- if (wasDirty) {
511
- this.dirtyChangedEmitter.fire(Object.freeze({ uri, dirty: false }));
512
- }
513
527
  this.lastOpenClosedEmitter.fire(Object.freeze({ uri }));
514
528
  }
515
529
  /**
@@ -533,21 +547,71 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
533
547
  * document meanwhile would have its text rebuilt over, or the document
534
548
  * removed. A document some client has open again, or that waits out a new
535
549
  * grace, is left to that client.
550
+ *
551
+ * A document released dirty is announced clean, so a watcher is never left
552
+ * holding it dirty: once the revert has parsed the file, even if it is then
553
+ * cancelled, or else once the build it requests in its place has parsed it,
554
+ * as the announcement names the store's text. One the revert or that build
555
+ * removed, or that build failed, is announced without text. A reopen before
556
+ * that takes the announcement over.
536
557
  */
537
558
  async revertToDisk(uri) {
538
559
  const workspace = this.services.workspace;
539
560
  const target = UriUtils.toUri(uri);
540
561
  const reopened = () => this.isOpenInAnyClient(uri) || this.__syncedDocuments.has(uri);
562
+ const releasedDirty = this.__releasedDirty.get(uri);
563
+ const owesFlip = () => releasedDirty !== undefined && this.__releasedDirty.get(uri) === releasedDirty;
564
+ const announceClean = (withText = true) => {
565
+ if (owesFlip()) {
566
+ this.__releasedDirty.delete(uri);
567
+ // The sequence of a removed document still names the discarded text.
568
+ const text = !withText || workspace.LangiumDocuments.getDocument(target) === undefined ? undefined : this.textState(uri);
569
+ this.dirtyChangedEmitter.fire(Object.freeze(text ? { uri, text } : { uri }));
570
+ }
571
+ };
572
+ let parsedFromFile = false;
573
+ let parses;
574
+ let onDisk;
575
+ let cancelled = false;
576
+ let stopWaiting;
577
+ // Without it, a revert stopped short leaves the root on the released text.
578
+ const buildInstead = () => {
579
+ void workspace.VersionSyncService.requestRecoveryBuild(target, {
580
+ deleted: onDisk === false,
581
+ reason: HYDRANIUM_BUILD_REASONS.didClose,
582
+ // The update handler dropped the change it held back at the release.
583
+ ignoreDeferred: true,
584
+ stillNeeded: () => !reopened()
585
+ }).then(built => {
586
+ if (!built) {
587
+ this.tracer.with(uri).error('Build after a revert that stopped short failed; the store keeps the released text');
588
+ // No parse or removal is coming.
589
+ stopWaiting?.();
590
+ announceClean(false);
591
+ }
592
+ });
593
+ };
541
594
  try {
542
595
  // Read before the lock: every build and read waits while the lock is
543
596
  // held, and this read waits on the file's save I/O.
544
- const onDisk = await workspace.FileSystemTaskQueue.enqueue(uri, () => workspace.FileSystemProvider.exists(target));
597
+ onDisk = await workspace.FileSystemTaskQueue.enqueue(uri, () => workspace.FileSystemProvider.exists(target));
545
598
  await workspace.WorkspaceManager?.ready;
599
+ // Queuing the write cancels the running build, even when it then reverts nothing.
600
+ if (reopened()) {
601
+ return;
602
+ }
546
603
  await workspace.WorkspaceLock.write(async (token) => {
547
604
  if (reopened()) {
548
605
  return;
549
606
  }
607
+ // Observed rather than awaited: a build cancelled after its parse
608
+ // returns early, and the build it yields to does not parse again.
609
+ parses = workspace.VersionSyncService.onDidRecordModel(document => {
610
+ parsedFromFile ||= this.documentKey(document.uri.toString()) === uri;
611
+ });
550
612
  workspace.DocumentBuilder.markNextReason(HYDRANIUM_BUILD_REASONS.didClose);
613
+ // Cleared once the build ends: a cancelled one throws, and the lock resolves.
614
+ cancelled = true;
551
615
  try {
552
616
  await (onDisk
553
617
  ? workspace.DocumentBuilder.update([target], [], token)
@@ -562,7 +626,12 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
562
626
  workspace.DocumentBuilder.markNextReason(HYDRANIUM_BUILD_REASONS.didClose);
563
627
  await workspace.DocumentBuilder.update([], [target], token);
564
628
  }
629
+ cancelled = false;
565
630
  });
631
+ // Cancelled before its parse: the write that cancelled it may build nothing.
632
+ if (cancelled && !parsedFromFile && !reopened() && workspace.LangiumDocuments.getDocument(target) !== undefined) {
633
+ buildInstead();
634
+ }
566
635
  }
567
636
  catch (err) {
568
637
  // A revert that finishes after the LSP peer went away fails its
@@ -574,6 +643,40 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
574
643
  }
575
644
  const detail = err instanceof Error ? (err.stack ?? err.message) : String(err);
576
645
  this.tracer.with(uri).error(`Revert on last close dropped. ${detail}`);
646
+ // The update handler drops a change still debounced at release, so
647
+ // without this build the root stays behind the store's version. A
648
+ // document known to have no file is removed, as the revert would have.
649
+ if (!reopened()) {
650
+ buildInstead();
651
+ }
652
+ }
653
+ finally {
654
+ parses?.dispose();
655
+ if (parsedFromFile || workspace.LangiumDocuments.getDocument(target) === undefined) {
656
+ announceClean();
657
+ }
658
+ else if (owesFlip()) {
659
+ // Cancelled before its parse or failed, the revert left the released
660
+ // text in the store: announced now, the clean flip would name it.
661
+ stopWaiting = () => {
662
+ parsed.dispose();
663
+ deleted.dispose();
664
+ };
665
+ const done = () => {
666
+ stopWaiting?.();
667
+ announceClean();
668
+ };
669
+ const parsed = workspace.VersionSyncService.onDidRecordModel(document => {
670
+ if (this.documentKey(document.uri.toString()) === uri) {
671
+ done();
672
+ }
673
+ });
674
+ const deleted = workspace.DocumentBuilder.onUpdate((_changed, deletedUris) => {
675
+ if (deletedUris.some(deletedUri => this.documentKey(deletedUri.toString()) === uri)) {
676
+ done();
677
+ }
678
+ });
679
+ }
577
680
  }
578
681
  }
579
682
  notifyWillSaveTextDocument(event) {
@@ -700,12 +803,15 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
700
803
  const source = pendingText ? ', source=pending' : '';
701
804
  // The SHARED version is server-assigned: continue the persisted
702
805
  // sequence — same version when the content is unchanged since the
703
- // last close (so watchers' based-on versions stay valid), one
806
+ // last close (so watchers' base versions stay valid), one
704
807
  // step when it changed (so no stale pointer can coincidentally pass
705
- // the optimistic gate). Only a first-ever open adopts the client's
706
- // declared id as the sequence seed.
808
+ // the optimistic gate). An open with no sequence yet seeds it from the built root.
707
809
  const sequence = this.__versionSequences.get(uri);
708
- const version = sequence === undefined ? td.version : sequence.contentHash === textHash(text) ? sequence.version : sequence.version + 1;
810
+ const version = sequence === undefined
811
+ ? this.firstOpenVersion(uri, text, td.version)
812
+ : sequence.contentHash === textHash(text)
813
+ ? sequence.version
814
+ : sequence.version + 1;
709
815
  this.log(uri, `Open document: Version ${version} by ${this.formatClientId(clientId)} [first client${source}]`);
710
816
  document = this.configuration.create(uri, td.languageId, version, text);
711
817
  this.__syncedDocuments.set(uri, document);
@@ -714,6 +820,9 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
714
820
  // it from the file, and an editor opened its buffer from there. An
715
821
  // editor that opens a buffer it never saved is taken as clean.
716
822
  record.diskBaseline = td.text;
823
+ if (this.__releasedDirty.delete(uri)) {
824
+ record.dirty = true;
825
+ }
717
826
  this.refreshDirty(uri);
718
827
  if (clientId === LANGUAGE_CLIENT_ID) {
719
828
  // Baseline the shadow to what Monaco just opened so the next outbound
@@ -787,6 +896,25 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
787
896
  this.logClientJoined(key, clientId, document.version, existingClients);
788
897
  return true;
789
898
  }
899
+ /**
900
+ * The built root's recorded version, one on when `text` differs from the root's;
901
+ * `declared` when the root records no store version. Seeded from `declared`, a write based
902
+ * on the root passes the gate over other text, and the same text looks newer than its model.
903
+ * A built root has no sequence only under a `LangiumDocuments` that does not reconcile at registration.
904
+ */
905
+ firstOpenVersion(uri, text, declared) {
906
+ const built = this.services.workspace.LangiumDocuments.getDocument(UriUtils.toUri(uri));
907
+ if (built === undefined) {
908
+ return declared;
909
+ }
910
+ const ledger = this.services.workspace.ModelLedger;
911
+ const root = built.parseResult.value;
912
+ const recorded = ledger.versionOf(root);
913
+ if (recorded === UNRECORDED_VERSION || recorded === STALE_VERSION) {
914
+ return declared;
915
+ }
916
+ return (ledger.textOf(root) ?? built.textDocument.getText()) === text ? recorded : recorded + 1;
917
+ }
790
918
  logClientJoined(uri, clientId, version, existingClients) {
791
919
  this.log(uri, `Attach client: ${this.formatClientId(clientId)} joined existing document (version ${version}, ` +
792
920
  `now open in: ${[...existingClients, clientId].map(id => this.formatClientId(id)).join(', ')})`);
@@ -858,42 +986,73 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
858
986
  }
859
987
  /**
860
988
  * Current SHARED version of the document at `uri`: the open document's
861
- * version, else where the persisted sequence left off at last close, else
862
- * `0` for a URI this store has never seen. The shared sequence is
989
+ * version, else where its persisted sequence left off, else `0` for a URI
990
+ * this store has never seen. The shared sequence is
863
991
  * server-owned and monotonic across close/reopen cycles, and advances
864
992
  * exactly when the synced content changes — which is what makes it a sound
865
- * optimistic-concurrency token (based-on gates): version unchanged ⇔
993
+ * optimistic-concurrency token (base-version gates): version unchanged ⇔
866
994
  * content unchanged.
867
995
  */
868
996
  version(uri) {
869
997
  return this.get(uri)?.version ?? this.__versionSequences.get(this.documentKey(uri))?.version ?? 0;
870
998
  }
999
+ /**
1000
+ * The text the store holds for `uri`: an open document's, or for a closed
1001
+ * one, the clean text its version sequence left off at, which for a deleted
1002
+ * document is its last text. `undefined` for a URI no build and no client
1003
+ * gave the store.
1004
+ */
1005
+ textState(uri) {
1006
+ const document = this.get(uri);
1007
+ if (document) {
1008
+ return { version: document.version, hash: this.heldTextHash(document), dirty: this.isDirty(uri) };
1009
+ }
1010
+ const sequence = this.__versionSequences.get(this.documentKey(uri));
1011
+ return sequence && { version: sequence.version, hash: sequence.contentHash, dirty: false };
1012
+ }
1013
+ /**
1014
+ * {@link textHash} of `document`'s text, taken once per version: the store
1015
+ * moves a document's version with every change of its text.
1016
+ */
1017
+ heldTextHash(document) {
1018
+ const taken = this.__textHashes.get(document);
1019
+ if (taken?.version === document.version) {
1020
+ return taken.hash;
1021
+ }
1022
+ const hash = textHash(document.getText());
1023
+ this.__textHashes.set(document, { version: document.version, hash });
1024
+ return hash;
1025
+ }
871
1026
  /**
872
1027
  * Reconcile the persisted version sequence with content that reached the
873
1028
  * build OUTSIDE the store's write paths — a closed document rebuilt from
874
1029
  * disk (last-close revert) or replaced by a watched-file change. Steps the
875
1030
  * sequence iff `text` differs from the sequence's last-known content and
876
1031
  * returns the resulting sequence version so the caller can re-stamp the
877
- * rebuilt document (see the `AstDocumentManager` Parsed-phase listener) —
1032
+ * rebuilt document (`VersionSyncService.modelProduced`) —
878
1033
  * keeping the "version advances iff content changes" invariant for
879
1034
  * documents no client currently holds.
880
1035
  *
881
- * Returns `undefined` — and does nothing — when the document is open (the
882
- * store's own content is authoritative; external transitions never reach
883
- * the Langium factory for open documents) or was never tracked (no gate
884
- * holder can hold a version pointer for it, and the early exit keeps
885
- * workspace-wide builds from hashing every untouched document).
1036
+ * For an open document, its version when it holds `text`, since a build
1037
+ * that read the file while the document was closed can finish after an
1038
+ * open; else `undefined`, and the caller has to build the document again.
1039
+ *
1040
+ * A document without a sequence starts one at `0` with `text`: snapshots
1041
+ * hand out versions for documents no client opened, so an uncounted change
1042
+ * would let a write based on the old text pass the gate.
886
1043
  */
887
1044
  reconcileExternalContent(uri, text) {
888
1045
  const key = this.documentKey(uri);
889
- if (this.__syncedDocuments.has(key)) {
890
- return undefined;
1046
+ const open = this.__syncedDocuments.get(key);
1047
+ if (open !== undefined) {
1048
+ return open.getText() === text ? open.version : undefined;
891
1049
  }
1050
+ const hash = textHash(text);
892
1051
  const sequence = this.__versionSequences.get(key);
893
1052
  if (sequence === undefined) {
894
- return undefined;
1053
+ this.__versionSequences.set(key, { version: 0, contentHash: hash });
1054
+ return 0;
895
1055
  }
896
- const hash = textHash(text);
897
1056
  if (hash === sequence.contentHash) {
898
1057
  return sequence.version;
899
1058
  }
@@ -926,7 +1085,7 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
926
1085
  *
927
1086
  * A changed text is a new version authored by {@link INTEGRITY_CLIENT_ID}.
928
1087
  * Kept at the old version, the repair is invisible to every reader keyed on
929
- * versions: a write based on the unrepaired version passes the based-on gate
1088
+ * versions: a write based on the unrepaired version passes the base-version gate
930
1089
  * and replaces the repair, and an echo filter credits the repair to the
931
1090
  * client whose edit it corrected. No change event is fired: the repair
932
1091
  * rides the build already under way, and an event would re-enter it.
@@ -1050,7 +1209,12 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
1050
1209
  isDirty(uri) {
1051
1210
  return this.__documents.get(this.documentKey(uri))?.dirty ?? false;
1052
1211
  }
1053
- /** Fires each time the answer of {@link isDirty} changes, the release of a dirty document included. */
1212
+ /**
1213
+ * Fires each time the answer of {@link isDirty} changes. A dirty document's
1214
+ * release fires once a parse of the file reaches the store, at that text's
1215
+ * version, or without text once its revert removed the document or could
1216
+ * not rebuild it, though {@link isDirty} answers clean from the release on.
1217
+ */
1054
1218
  get onDidChangeDirty() {
1055
1219
  return this.dirtyChangedEmitter.event;
1056
1220
  }
@@ -1097,7 +1261,7 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
1097
1261
  const dirty = document.getText() !== record.diskBaseline;
1098
1262
  if (dirty !== (record.dirty ?? false)) {
1099
1263
  record.dirty = dirty;
1100
- this.dirtyChangedEmitter.fire(Object.freeze({ uri, dirty }));
1264
+ this.dirtyChangedEmitter.fire(Object.freeze({ uri, text: { version: document.version, hash: this.heldTextHash(document), dirty } }));
1101
1265
  }
1102
1266
  }
1103
1267
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"hydranium-text-documents.js","sourceRoot":"","sources":["../../src/documents/hydranium-text-documents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hydranium-text-documents.js","sourceRoot":"","sources":["../../src/documents/hydranium-text-documents.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,8 @@ export * from './client-session-errors.js';
11
11
  export * from './client-session-registry.js';
12
12
  export * from './language-client-text-shadow.js';
13
13
  export * from './hydranium-text-documents.js';
14
+ export * from './model-ledger.js';
15
+ export * from './version-sync-service.js';
14
16
  export * from './ast-document-manager.js';
15
17
  export * from './self-save-registry.js';
16
18
  export * from './file-system-task-queue.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/documents/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/documents/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC"}
@@ -11,6 +11,8 @@ export * from './client-session-errors.js';
11
11
  export * from './client-session-registry.js';
12
12
  export * from './language-client-text-shadow.js';
13
13
  export * from './hydranium-text-documents.js';
14
+ export * from './model-ledger.js';
15
+ export * from './version-sync-service.js';
14
16
  export * from './ast-document-manager.js';
15
17
  export * from './self-save-registry.js';
16
18
  export * from './file-system-task-queue.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/documents/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/documents/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC"}