@hydranium/core 1.0.0-next.269 → 1.0.0-next.270

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 (31) hide show
  1. package/lib/documents/dirty-state-tracker.d.ts +7 -0
  2. package/lib/documents/dirty-state-tracker.d.ts.map +1 -1
  3. package/lib/documents/dirty-state-tracker.js +3 -0
  4. package/lib/documents/dirty-state-tracker.js.map +1 -1
  5. package/lib/documents/document-release-handler.d.ts +43 -18
  6. package/lib/documents/document-release-handler.d.ts.map +1 -1
  7. package/lib/documents/document-release-handler.js +74 -35
  8. package/lib/documents/document-release-handler.js.map +1 -1
  9. package/lib/documents/hydranium-text-documents.d.ts +3 -1
  10. package/lib/documents/hydranium-text-documents.d.ts.map +1 -1
  11. package/lib/documents/hydranium-text-documents.js +22 -8
  12. package/lib/documents/hydranium-text-documents.js.map +1 -1
  13. package/lib/langium/workspace/file-system-provider.d.ts +16 -4
  14. package/lib/langium/workspace/file-system-provider.d.ts.map +1 -1
  15. package/lib/langium/workspace/file-system-provider.js +8 -4
  16. package/lib/langium/workspace/file-system-provider.js.map +1 -1
  17. package/lib/node/node-file-system-provider.d.ts +9 -2
  18. package/lib/node/node-file-system-provider.d.ts.map +1 -1
  19. package/lib/node/node-file-system-provider.js +29 -3
  20. package/lib/node/node-file-system-provider.js.map +1 -1
  21. package/lib/node/rename-over-open-readers.d.ts +7 -0
  22. package/lib/node/rename-over-open-readers.d.ts.map +1 -1
  23. package/lib/node/rename-over-open-readers.js +12 -2
  24. package/lib/node/rename-over-open-readers.js.map +1 -1
  25. package/package.json +5 -5
  26. package/src/documents/dirty-state-tracker.ts +10 -0
  27. package/src/documents/document-release-handler.ts +81 -36
  28. package/src/documents/hydranium-text-documents.ts +21 -9
  29. package/src/langium/workspace/file-system-provider.ts +20 -4
  30. package/src/node/node-file-system-provider.ts +30 -3
  31. package/src/node/rename-over-open-readers.ts +13 -2
@@ -52,6 +52,12 @@ export interface DirtyStateTracker {
52
52
  refreshDirty(key: CanonicalUri, document: TextDocument): void;
53
53
  /** The file behind `key` holds `text`, `undefined` for none. A no-op for a document not tracked. */
54
54
  setDiskBaseline(key: CanonicalUri, document: TextDocument, text: string | undefined): void;
55
+ /**
56
+ * Whether `key` has a baseline: `false` for none, which a document created
57
+ * from a session's text starts with and a reload that finds no file sets,
58
+ * and for a document not tracked. A first open takes the opener's text.
59
+ */
60
+ hasDiskBaseline(key: CanonicalUri): boolean;
55
61
  /**
56
62
  * The store released `key`. Answers the clean announcement a document
57
63
  * released dirty now owes; `undefined` for one released clean.
@@ -74,6 +80,7 @@ export declare class DefaultDirtyStateTracker implements DirtyStateTracker {
74
80
  track(key: CanonicalUri, document: TextDocument, diskText: string | undefined): void;
75
81
  refreshDirty(key: CanonicalUri, document: TextDocument): void;
76
82
  setDiskBaseline(key: CanonicalUri, document: TextDocument, text: string | undefined): void;
83
+ hasDiskBaseline(key: CanonicalUri): boolean;
77
84
  release(key: CanonicalUri): CleanAnnouncement | undefined;
78
85
  }
79
86
  //# sourceMappingURL=dirty-state-tracker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dirty-state-tracker.d.ts","sourceRoot":"","sources":["../../src/documents/dirty-state-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,8GAA8G;AAC9G,MAAM,WAAW,yBAAyB;IACvC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC/B,6DAA6D;IAC7D,MAAM,IAAI,OAAO,CAAC;IAClB,iEAAiE;IACjE,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;CACnC;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5D,0CAA0C;IAC1C,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC;IACpC;;;;OAIG;IACH,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACrF,iFAAiF;IACjF,YAAY,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAC9D,oGAAoG;IACpG,eAAe,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAC3F;;;OAGG;IACH,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,iBAAiB,GAAG,SAAS,CAAC;CAC5D;AAED,qBAAa,wBAAyB,YAAW,iBAAiB;IAOnD,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU;IANrD,SAAS,CAAC,QAAQ,CAAC,MAAM;kBAAqC,MAAM,GAAG,SAAS;eAAS,OAAO;OAAM;IACtG,0EAA0E;IAC1E,SAAS,CAAC,QAAQ,CAAC,SAAS,4BAAmC;IAC/D,SAAS,CAAC,QAAQ,CAAC,mBAAmB,qCAA4C;IAElF,+DAA+D;IAC/D,YAA+B,UAAU,EAAE,UAAU,EAAI;IAEzD,IAAI,gBAAgB,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAEvD;IAED,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAElC;IAED,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAGnF;IAED,YAAY,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI,CAY5D;IAED,eAAe,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAOzF;IAED,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,iBAAiB,GAAG,SAAS,CAkBxD;CACH"}
1
+ {"version":3,"file":"dirty-state-tracker.d.ts","sourceRoot":"","sources":["../../src/documents/dirty-state-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,8GAA8G;AAC9G,MAAM,WAAW,yBAAyB;IACvC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC/B,6DAA6D;IAC7D,MAAM,IAAI,OAAO,CAAC;IAClB,iEAAiE;IACjE,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;CACnC;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5D,0CAA0C;IAC1C,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC;IACpC;;;;OAIG;IACH,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACrF,iFAAiF;IACjF,YAAY,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAC9D,oGAAoG;IACpG,eAAe,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAC3F;;;;OAIG;IACH,eAAe,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC;IAC5C;;;OAGG;IACH,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,iBAAiB,GAAG,SAAS,CAAC;CAC5D;AAED,qBAAa,wBAAyB,YAAW,iBAAiB;IAOnD,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU;IANrD,SAAS,CAAC,QAAQ,CAAC,MAAM;kBAAqC,MAAM,GAAG,SAAS;eAAS,OAAO;OAAM;IACtG,0EAA0E;IAC1E,SAAS,CAAC,QAAQ,CAAC,SAAS,4BAAmC;IAC/D,SAAS,CAAC,QAAQ,CAAC,mBAAmB,qCAA4C;IAElF,+DAA+D;IAC/D,YAA+B,UAAU,EAAE,UAAU,EAAI;IAEzD,IAAI,gBAAgB,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAEvD;IAED,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAElC;IAED,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAGnF;IAED,YAAY,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI,CAY5D;IAED,eAAe,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAOzF;IAED,eAAe,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAE1C;IAED,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,iBAAiB,GAAG,SAAS,CAkBxD;CACH"}
@@ -46,6 +46,9 @@ export class DefaultDirtyStateTracker {
46
46
  state.baseline = text;
47
47
  this.refreshDirty(key, document);
48
48
  }
49
+ hasDiskBaseline(key) {
50
+ return this.states.get(key)?.baseline !== undefined;
51
+ }
49
52
  release(key) {
50
53
  const dirty = this.states.get(key)?.dirty;
51
54
  this.states.delete(key);
@@ -1 +1 @@
1
- {"version":3,"file":"dirty-state-tracker.js","sourceRoot":"","sources":["../../src/documents/dirty-state-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dirty-state-tracker.js","sourceRoot":"","sources":["../../src/documents/dirty-state-tracker.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,13 @@ import { type ServerSharedServices } from '../langium/module.js';
17
17
  */
18
18
  export interface ReleasedDocument {
19
19
  readonly uri: CanonicalUri;
20
+ /**
21
+ * Whether the store last knew a file behind the document: `false` for one
22
+ * created from a session's text and never saved, or whose file a reload
23
+ * found gone; any other open counts as on disk. Unlike the queries, a
24
+ * snapshot taken at the release, since the store forgets it there.
25
+ */
26
+ readonly wasOnDisk: boolean;
20
27
  /** Whether `uri` names this document, under the store's own keying. */
21
28
  isFor(uri: string): boolean;
22
29
  /**
@@ -106,20 +113,22 @@ export type DocumentReleaseOutcome =
106
113
  /**
107
114
  * Rebuilds a released document from the file system provider, so the build
108
115
  * stops carrying the unsaved text of its last client. Override
109
- * `decideRelease` or `applyReleaseDecision` to change the policy and keep the
110
- * locking and the wait for the build.
116
+ * `decideRelease`, `redecideRelease` or `applyReleaseDecision` to change the
117
+ * policy and keep the locking and the wait for the build.
111
118
  *
112
- * The provider decides, for every scheme, by `exists`: a document it can
113
- * serve is rebuilt from its text, and any other — an editor's `untitled:`
114
- * buffer, a file never saved, or one deleted meanwhile — is removed
115
- * from the workspace. A `virtual:` document survives, since the framework's
116
- * provider for that scheme serves it from the index, whatever provider the
117
- * host passes as `context.fileSystemProvider`; an edited one therefore keeps
118
- * its last client's text, and keeping it read-only is the client's job.
119
+ * The provider decides, for every scheme, by `exists`, with a miss confirmed
120
+ * by `existsSettled`: a document it can serve is rebuilt from its text, and
121
+ * any other — an editor's `untitled:` buffer, a file never saved, or one
122
+ * deleted meanwhile — is removed from the workspace. A `virtual:` document
123
+ * survives, since the framework's provider for that scheme serves it from the
124
+ * index, whatever provider the host passes as `context.fileSystemProvider`;
125
+ * an edited one therefore keeps its last client's text, and keeping it
126
+ * read-only is the client's job.
119
127
  *
120
128
  * The answer is read in the document's disk queue, so the rebuild follows
121
129
  * any save still queued rather than reverting past it; a file that goes
122
- * after that read is removed when its rebuild finds none.
130
+ * after that read is removed when its rebuild finds none and the provider
131
+ * confirms it gone.
123
132
  *
124
133
  * Whether the document is still released is checked again inside the write
125
134
  * lock, as its holder: checked only before waiting for the lock, a client that
@@ -140,9 +149,13 @@ export declare class DefaultDocumentReleaseHandler implements DocumentReleaseHan
140
149
  didReleaseDocument(released: ReleasedDocument): Promise<void>;
141
150
  /**
142
151
  * Decide, then carry the decision out under the write lock unless a client
143
- * holds the document again. Answers how that went; a parse of the document
144
- * seen meanwhile counts even when the build was cancelled after it, since
145
- * the build it yields to does not parse again.
152
+ * holds the document again. A rebuild that finds no file is redecided by
153
+ * {@link redecideRelease} within the same lock section: the build has
154
+ * already reset the document, so a build let in meanwhile would read the
155
+ * missing file and fail. Its answer is carried out unless a client
156
+ * reclaimed the document meanwhile. Answers how that went; a parse of the
157
+ * document seen meanwhile counts even when the build was cancelled after
158
+ * it, since the build it yields to does not parse again.
146
159
  */
147
160
  protected runRelease(released: ReleasedDocument, target: URI): Promise<DocumentReleaseOutcome>;
148
161
  /**
@@ -153,14 +166,26 @@ export declare class DefaultDocumentReleaseHandler implements DocumentReleaseHan
153
166
  /**
154
167
  * The policy: rebuild a document the file system provider can serve, and
155
168
  * remove any other. Read in the document's disk queue, so it follows any
156
- * save still queued rather than deciding past it.
169
+ * save still queued rather than deciding past it. A miss is settled outside
170
+ * the queue, so waiting it out holds up no write to the file, and only for
171
+ * a document the store knew on disk: one with no file has none to replace.
157
172
  */
158
173
  protected decideRelease(released: ReleasedDocument, target: URI): Promise<DocumentReleaseDecision>;
159
174
  /**
160
- * Carry `decision` out under the write lock; a file gone since the decision
161
- * is removed instead. An override must rebuild or remove the document:
162
- * release settlement waits for its parse or removal, and one that does
163
- * neither is followed by a recovery build that rebuilds it.
175
+ * The policy for a rebuild that found no file, the `misses`-th of this
176
+ * release: what to carry out instead. Runs inside the release's write, so
177
+ * every build waits on it. The default settles the first miss through the
178
+ * provider's `existsSettled`, rebuilding again when the file is back, and
179
+ * removes the document on any later one. An override answering `rebuild`
180
+ * on every miss rebuilds for as long as the file stays missing.
181
+ */
182
+ protected redecideRelease(_released: ReleasedDocument, target: URI, misses: number): Promise<DocumentReleaseDecision>;
183
+ /**
184
+ * Carry `decision` out under the write lock. A rebuild that finds no file
185
+ * rejects with that error, and {@link redecideRelease} answers what to
186
+ * carry out instead. An override must rebuild or remove the document: release settlement
187
+ * waits for its parse or removal, and one that does neither is followed by a
188
+ * recovery build that rebuilds it.
164
189
  */
165
190
  protected applyReleaseDecision(target: URI, decision: DocumentReleaseDecision, token: CancellationToken): Promise<void>;
166
191
  /** The build in place of a release that stopped short; rejects with its error when it was given up. */
@@ -1 +1 @@
1
- {"version":3,"file":"document-release-handler.d.ts","sourceRoot":"","sources":["../../src/documents/document-release-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document-release-handler.d.ts","sourceRoot":"","sources":["../../src/documents/document-release-handler.ts"],"names":[],"mappings":"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"}
@@ -34,20 +34,22 @@ export function isDocumentReleaseSkippedError(error) {
34
34
  /**
35
35
  * Rebuilds a released document from the file system provider, so the build
36
36
  * stops carrying the unsaved text of its last client. Override
37
- * `decideRelease` or `applyReleaseDecision` to change the policy and keep the
38
- * locking and the wait for the build.
37
+ * `decideRelease`, `redecideRelease` or `applyReleaseDecision` to change the
38
+ * policy and keep the locking and the wait for the build.
39
39
  *
40
- * The provider decides, for every scheme, by `exists`: a document it can
41
- * serve is rebuilt from its text, and any other — an editor's `untitled:`
42
- * buffer, a file never saved, or one deleted meanwhile — is removed
43
- * from the workspace. A `virtual:` document survives, since the framework's
44
- * provider for that scheme serves it from the index, whatever provider the
45
- * host passes as `context.fileSystemProvider`; an edited one therefore keeps
46
- * its last client's text, and keeping it read-only is the client's job.
40
+ * The provider decides, for every scheme, by `exists`, with a miss confirmed
41
+ * by `existsSettled`: a document it can serve is rebuilt from its text, and
42
+ * any other — an editor's `untitled:` buffer, a file never saved, or one
43
+ * deleted meanwhile — is removed from the workspace. A `virtual:` document
44
+ * survives, since the framework's provider for that scheme serves it from the
45
+ * index, whatever provider the host passes as `context.fileSystemProvider`;
46
+ * an edited one therefore keeps its last client's text, and keeping it
47
+ * read-only is the client's job.
47
48
  *
48
49
  * The answer is read in the document's disk queue, so the rebuild follows
49
50
  * any save still queued rather than reverting past it; a file that goes
50
- * after that read is removed when its rebuild finds none.
51
+ * after that read is removed when its rebuild finds none and the provider
52
+ * confirms it gone.
51
53
  *
52
54
  * Whether the document is still released is checked again inside the write
53
55
  * lock, as its holder: checked only before waiting for the lock, a client that
@@ -109,9 +111,13 @@ export class DefaultDocumentReleaseHandler {
109
111
  }
110
112
  /**
111
113
  * Decide, then carry the decision out under the write lock unless a client
112
- * holds the document again. Answers how that went; a parse of the document
113
- * seen meanwhile counts even when the build was cancelled after it, since
114
- * the build it yields to does not parse again.
114
+ * holds the document again. A rebuild that finds no file is redecided by
115
+ * {@link redecideRelease} within the same lock section: the build has
116
+ * already reset the document, so a build let in meanwhile would read the
117
+ * missing file and fail. Its answer is carried out unless a client
118
+ * reclaimed the document meanwhile. Answers how that went; a parse of the
119
+ * document seen meanwhile counts even when the build was cancelled after
120
+ * it, since the build it yields to does not parse again.
115
121
  */
116
122
  async runRelease(released, target) {
117
123
  const workspace = this.services.workspace;
@@ -139,7 +145,27 @@ export class DefaultDocumentReleaseHandler {
139
145
  parsed ||= released.isFor(document.uri.toString());
140
146
  });
141
147
  progress = 'building';
142
- await this.applyReleaseDecision(target, decided, token);
148
+ let applied = decided;
149
+ for (let misses = 1;; misses++) {
150
+ try {
151
+ await this.applyReleaseDecision(target, applied, token);
152
+ break;
153
+ }
154
+ catch (err) {
155
+ if (applied !== 'rebuild' || !isFileNotFound(err, target)) {
156
+ throw err;
157
+ }
158
+ applied = await this.redecideRelease(released, target, misses);
159
+ if (released.isReclaimed()) {
160
+ progress = 'reclaimed';
161
+ return;
162
+ }
163
+ decision = applied;
164
+ this.tracer
165
+ .with(released.uri)
166
+ .debug(`Revert found no file; ${applied === 'rebuild' ? 'rebuilding again' : 'removing the document instead'}`);
167
+ }
168
+ }
143
169
  progress = 'built';
144
170
  });
145
171
  // A cancelled build throws inside the write, and the lock resolves.
@@ -147,12 +173,12 @@ export class DefaultDocumentReleaseHandler {
147
173
  return { kind: 'reclaimed' };
148
174
  }
149
175
  if (progress === 'queued') {
150
- return { kind: 'discarded', decision: decided };
176
+ return { kind: 'discarded', decision };
151
177
  }
152
178
  if (progress === 'building') {
153
- return { kind: 'cancelled', decision: decided, parsed };
179
+ return { kind: 'cancelled', decision, parsed };
154
180
  }
155
- return { kind: 'completed', decision: decided, parsed };
181
+ return { kind: 'completed', decision, parsed };
156
182
  }
157
183
  catch (error) {
158
184
  // A revert that finishes after the LSP peer went away fails its
@@ -182,32 +208,45 @@ export class DefaultDocumentReleaseHandler {
182
208
  /**
183
209
  * The policy: rebuild a document the file system provider can serve, and
184
210
  * remove any other. Read in the document's disk queue, so it follows any
185
- * save still queued rather than deciding past it.
211
+ * save still queued rather than deciding past it. A miss is settled outside
212
+ * the queue, so waiting it out holds up no write to the file, and only for
213
+ * a document the store knew on disk: one with no file has none to replace.
186
214
  */
187
- decideRelease(released, target) {
215
+ async decideRelease(released, target) {
188
216
  const workspace = this.services.workspace;
189
- return workspace.FileSystemTaskQueue.enqueue(released.uri, async () => (await workspace.FileSystemProvider.exists(target)) ? 'rebuild' : 'remove');
217
+ const fileSystem = workspace.FileSystemProvider;
218
+ const served = await workspace.FileSystemTaskQueue.enqueue(released.uri, () => fileSystem.exists(target));
219
+ if (served || !released.wasOnDisk) {
220
+ return served ? 'rebuild' : 'remove';
221
+ }
222
+ return ((await fileSystem.existsSettled?.(target)) ?? false) ? 'rebuild' : 'remove';
223
+ }
224
+ /**
225
+ * The policy for a rebuild that found no file, the `misses`-th of this
226
+ * release: what to carry out instead. Runs inside the release's write, so
227
+ * every build waits on it. The default settles the first miss through the
228
+ * provider's `existsSettled`, rebuilding again when the file is back, and
229
+ * removes the document on any later one. An override answering `rebuild`
230
+ * on every miss rebuilds for as long as the file stays missing.
231
+ */
232
+ async redecideRelease(_released, target, misses) {
233
+ if (misses > 1) {
234
+ return 'remove';
235
+ }
236
+ const fileSystem = this.services.workspace.FileSystemProvider;
237
+ return (await (fileSystem.existsSettled?.(target) ?? fileSystem.exists(target))) ? 'rebuild' : 'remove';
190
238
  }
191
239
  /**
192
- * Carry `decision` out under the write lock; a file gone since the decision
193
- * is removed instead. An override must rebuild or remove the document:
194
- * release settlement waits for its parse or removal, and one that does
195
- * neither is followed by a recovery build that rebuilds it.
240
+ * Carry `decision` out under the write lock. A rebuild that finds no file
241
+ * rejects with that error, and {@link redecideRelease} answers what to
242
+ * carry out instead. An override must rebuild or remove the document: release settlement
243
+ * waits for its parse or removal, and one that does neither is followed by a
244
+ * recovery build that rebuilds it.
196
245
  */
197
246
  async applyReleaseDecision(target, decision, token) {
198
247
  const builder = this.services.workspace.DocumentBuilder;
199
248
  builder.markNextReason(HYDRANIUM_BUILD_REASONS.didRelease);
200
- try {
201
- await (decision === 'rebuild' ? builder.update([target], [], token) : builder.update([], [target], token));
202
- }
203
- catch (err) {
204
- if (decision !== 'rebuild' || !isFileNotFound(err, target)) {
205
- throw err;
206
- }
207
- this.tracer.with(target.toString()).debug('Revert found no file; removing the document instead');
208
- builder.markNextReason(HYDRANIUM_BUILD_REASONS.didRelease);
209
- await builder.update([], [target], token);
210
- }
249
+ await (decision === 'rebuild' ? builder.update([target], [], token) : builder.update([], [target], token));
211
250
  }
212
251
  /** The build in place of a release that stopped short; rejects with its error when it was given up. */
213
252
  requestRecoveryBuild(released, target, deleted) {
@@ -1 +1 @@
1
- {"version":3,"file":"document-release-handler.js","sourceRoot":"","sources":["../../src/documents/document-release-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document-release-handler.js","sourceRoot":"","sources":["../../src/documents/document-release-handler.ts"],"names":[],"mappings":"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"}
@@ -460,7 +460,9 @@ export declare class HydraniumTextDocuments<T extends TextDocument = TextDocumen
460
460
  /**
461
461
  * Read the file behind `uri` through its disk queue and take it as the
462
462
  * baseline. A file that cannot be read counts as none, the side that
463
- * leaves the document dirty.
463
+ * leaves the document dirty, once `existsSettled` confirms it gone: a file
464
+ * it finds is read again. That wait runs outside the queue, so it holds up
465
+ * no write to the file.
464
466
  */
465
467
  reloadDiskBaseline(uri: DocumentUri): Promise<void>;
466
468
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"hydranium-text-documents.d.ts","sourceRoot":"","sources":["../../src/documents/hydranium-text-documents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hydranium-text-documents.d.ts","sourceRoot":"","sources":["../../src/documents/hydranium-text-documents.ts"],"names":[],"mappings":"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"}
@@ -406,6 +406,8 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
406
406
  // reopening client's declared id.
407
407
  this.textLedger.record(uri, syncedDocument);
408
408
  this.textLedger.clearAuthors(uri);
409
+ // Before the tracker's release, which forgets whether a file was behind it.
410
+ const released = this.toReleasedDocument(uri);
409
411
  const cleanAnnouncement = this.dirtyStateTracker.release(uri);
410
412
  this.__syncedDocuments.delete(uri);
411
413
  this.__openedVersions.delete(uri);
@@ -414,7 +416,7 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
414
416
  this.__pendingContent.delete(uri);
415
417
  this.documentReleaseScheduler.clearLosses(uri);
416
418
  this.documentReleasedEmitter.fire(Object.freeze({ uri }));
417
- this.handOverRelease(this.toReleasedDocument(uri), cleanAnnouncement);
419
+ this.handOverRelease(released, cleanAnnouncement);
418
420
  }
419
421
  /**
420
422
  * Call the `DocumentReleaseHandler` slot, and announce a document released
@@ -463,6 +465,7 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
463
465
  toReleasedDocument(uri) {
464
466
  return {
465
467
  uri,
468
+ wasOnDisk: this.dirtyStateTracker.hasDiskBaseline(uri),
466
469
  isFor: other => this.documentKey(other) === uri,
467
470
  isReclaimed: () => this.isOpenInAnyClient(uri) || this.__syncedDocuments.has(uri)
468
471
  };
@@ -952,19 +955,30 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
952
955
  /**
953
956
  * Read the file behind `uri` through its disk queue and take it as the
954
957
  * baseline. A file that cannot be read counts as none, the side that
955
- * leaves the document dirty.
958
+ * leaves the document dirty, once `existsSettled` confirms it gone: a file
959
+ * it finds is read again. That wait runs outside the queue, so it holds up
960
+ * no write to the file.
956
961
  */
957
962
  async reloadDiskBaseline(uri) {
958
963
  const key = this.documentKey(uri);
959
964
  if (!this.__syncedDocuments.has(key)) {
960
965
  return;
961
966
  }
962
- let onDisk;
963
- try {
964
- onDisk = await this.services.workspace.FileSystemTaskQueue.enqueue(key, () => this.services.workspace.FileSystemProvider.readFile(UriUtils.toUri(key)));
965
- }
966
- catch (err) {
967
- this.tracer.with(key).debug(`Disk baseline: the file cannot be read. ${describeError(err)}`);
967
+ const workspace = this.services.workspace;
968
+ const fileSystem = workspace.FileSystemProvider;
969
+ const target = UriUtils.toUri(key);
970
+ const read = async () => {
971
+ try {
972
+ return await workspace.FileSystemTaskQueue.enqueue(key, () => fileSystem.readFile(target));
973
+ }
974
+ catch (err) {
975
+ this.tracer.with(key).debug(`Disk baseline: the file cannot be read. ${describeError(err)}`);
976
+ return undefined;
977
+ }
978
+ };
979
+ let onDisk = await read();
980
+ if (onDisk === undefined && (await (fileSystem.existsSettled?.(target) ?? fileSystem.exists(target)))) {
981
+ onDisk = await read();
968
982
  }
969
983
  this.setDiskBaseline(key, onDisk);
970
984
  }