@hydranium/data-server 1.0.0-next.429 → 1.0.0-next.434
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.
- package/lib/data-server.d.ts +72 -9
- package/lib/data-server.d.ts.map +1 -1
- package/lib/data-server.js +199 -36
- package/lib/data-server.js.map +1 -1
- package/package.json +7 -7
- package/src/data-server.ts +227 -38
package/lib/data-server.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* SPDX-License-Identifier: MIT
|
|
8
8
|
********************************************************************************/
|
|
9
|
-
import { DisposableCollection, type BaseVersionGate, ReferenceSource, type CloseModelArgs, type HydraniumMessageData, type HydraniumResponseError, type CanonicalUri, type Disposable, type ElementSource, type FindNextNameArgs, type LatencyCollector, type LatencyReport, type
|
|
9
|
+
import { DisposableCollection, type BaseVersionGate, ReferenceSource, type CloseModelArgs, type HydraniumMessageData, type HydraniumResponseError, type CanonicalUri, type Disposable, type ElementSource, type FindNextNameArgs, type LatencyCollector, type LatencyReport, type OpenModelDocumentArgs, type Project, type ReferenceCandidate, type ReferenceContext, type ReferenceRequest, type ReferenceTarget, type ModelVersion, type TextState, type Tracer, type TransferDiagnostic, TransferDocument, type TransferCreatedDocument, type TransferSavedDocument, type TransferWatchedDocument, type TransferWrittenDocument, type TransferElement, STALE_BASE_VERSION_SAVE, STALE_BASE_VERSION_UPDATE } from '@hydranium/protocol';
|
|
10
10
|
import { type DataClientProtocol, type DataServerDiagnosticsProtocol, type DataServerProtocol, type DumpServerStateArgs, type StartProfilingArgs, type StopProfilingArgs, type WriteServerHeapSnapshotArgs, type CloseSessionArgs, type CreatedSession, type CreateModelDocumentArgs, type CreateSessionArgs, type GetModelDocumentArgs, type GetProjectForUriArgs, type TransferDeleteDocumentArgs, type TransferPersistDocumentArgs, type TransferSaveDocumentArgs, type WatchModelDocumentArgs, type TransferUpdateDocumentArgs, type TransferUpdateDocumentsArgs } from '@hydranium/protocol/data';
|
|
11
11
|
/**
|
|
12
12
|
* Raised when a profiling command arrives with no capture running.
|
|
@@ -297,11 +297,26 @@ export declare class DataServer<TTransfer extends TransferElement, TDiagnostic e
|
|
|
297
297
|
*/
|
|
298
298
|
protected readonly watchKeys: Map<string, Map<string, string>>;
|
|
299
299
|
/**
|
|
300
|
-
* The position of the last update or
|
|
301
|
-
* such event carries, and a watch's answer carries as of the moment it
|
|
300
|
+
* The position of the last update, deletion or dirty event sent, which
|
|
301
|
+
* each such event carries, and a watch's answer carries as of the moment it
|
|
302
302
|
* took whether its document exists: an event past it was sent after.
|
|
303
303
|
*/
|
|
304
304
|
protected eventSequence: number;
|
|
305
|
+
/**
|
|
306
|
+
* Per client id and canonical key, the opens and creates of the document
|
|
307
|
+
* that session has under way since it last closed it. A failed one undoes
|
|
308
|
+
* the session's open only as the last of them, and only when none answered
|
|
309
|
+
* and the session did not hold it before. A close, the caller's or a
|
|
310
|
+
* deletion's, removes the entry, so later opens start their own, and a
|
|
311
|
+
* watched open still under way places no watch. The caller's removes it
|
|
312
|
+
* also before the open holds the document, which the open then still does.
|
|
313
|
+
*/
|
|
314
|
+
protected readonly openings: Map<string, {
|
|
315
|
+
readonly wasOpen: boolean;
|
|
316
|
+
readonly wasWatched: boolean;
|
|
317
|
+
pending: number;
|
|
318
|
+
answered: boolean;
|
|
319
|
+
}>;
|
|
305
320
|
/**
|
|
306
321
|
* The live client sessions this connection registered, by client id. A
|
|
307
322
|
* document request carrying one of these ids acts as that session; one
|
|
@@ -386,15 +401,56 @@ export declare class DataServer<TTransfer extends TransferElement, TDiagnostic e
|
|
|
386
401
|
* no session end ever closes.
|
|
387
402
|
*/
|
|
388
403
|
protected requireSession(clientId: string): ClientSession<AstNode, AstDiagnostic, TTransfer>;
|
|
389
|
-
openModelDocument(args:
|
|
404
|
+
openModelDocument(args: OpenModelDocumentArgs): Promise<TransferDocument<TTransfer, TDiagnostic>>;
|
|
405
|
+
/**
|
|
406
|
+
* Run `call`, an open or create of `args.uri` by the session, kept in
|
|
407
|
+
* {@link openings} until it settles. When it fails as the last of those
|
|
408
|
+
* under way, the session's open is closed unless one of them answered or
|
|
409
|
+
* the session held it before. A create refused before it opened closes
|
|
410
|
+
* nothing. `call` is handed whether a close ended these opens since.
|
|
411
|
+
*/
|
|
412
|
+
protected trackOpen<T>(args: Pick<OpenModelDocumentArgs, 'uri' | 'clientId'>, session: ClientSession<AstNode, AstDiagnostic, TTransfer>, call: (ended: () => boolean) => Promise<T>): Promise<T>;
|
|
413
|
+
/**
|
|
414
|
+
* `snapshot` with the position of the last event sent before the request
|
|
415
|
+
* began, when it watches: a deletion sent until then ended nothing it opened.
|
|
416
|
+
*/
|
|
417
|
+
protected sequenced<TDocument extends TransferDocument<TTransfer, TDiagnostic>>(args: Pick<OpenModelDocumentArgs, 'watch'>, snapshot: TDocument, sequence: number): TDocument;
|
|
418
|
+
/**
|
|
419
|
+
* The snapshot a session's open or create answers with, watched from on
|
|
420
|
+
* when `args.watch` is set and no close `ended` the open.
|
|
421
|
+
*/
|
|
422
|
+
protected openedSnapshot(args: Pick<OpenModelDocumentArgs, 'uri' | 'clientId' | 'watch' | 'includeDiagnostics'>, ended?: () => boolean): Promise<TransferDocument<TTransfer, TDiagnostic>>;
|
|
423
|
+
/**
|
|
424
|
+
* Read `args.uri` as {@link getModelDocument} does and watch it, the watch
|
|
425
|
+
* placed and the answer encoded in one synchronous run: every event after
|
|
426
|
+
* the state answered reaches the watch, and its fingerprint is baselined to
|
|
427
|
+
* that state, so the first event repeats nothing the answer holds.
|
|
428
|
+
*
|
|
429
|
+
* Leaves the answer unwatched once `ended` tells a close ended the open,
|
|
430
|
+
* as the caller closed it, also before this began.
|
|
431
|
+
*/
|
|
432
|
+
protected watchedSnapshot(args: Pick<OpenModelDocumentArgs, 'uri' | 'clientId' | 'includeDiagnostics'>, ended?: () => boolean): Promise<TransferDocument<TTransfer, TDiagnostic>>;
|
|
390
433
|
/**
|
|
391
|
-
*
|
|
392
|
-
*
|
|
393
|
-
*
|
|
394
|
-
*
|
|
434
|
+
* Whether a watched open whose `reads` reads a later build overtook reads
|
|
435
|
+
* again, or answers that build as it stands, which may be short of the
|
|
436
|
+
* state asked for. Up to three reads by default, so sustained edits cannot
|
|
437
|
+
* hold the open unanswered. A later build with no snapshot to answer is
|
|
438
|
+
* read again whatever this returns.
|
|
395
439
|
*/
|
|
396
|
-
protected
|
|
440
|
+
protected readsAgain(_args: Pick<OpenModelDocumentArgs, 'uri' | 'clientId'>, reads: number): boolean;
|
|
397
441
|
closeModelDocument(args: CloseModelArgs): Promise<void>;
|
|
442
|
+
/**
|
|
443
|
+
* `built` with the diagnostics its root already has. A read without
|
|
444
|
+
* `includeDiagnostics` waits for none but drops none either, so a watch
|
|
445
|
+
* baselined on it does not miss the validation event already sent.
|
|
446
|
+
*/
|
|
447
|
+
protected withKnownDiagnostics(uri: string, built: AstDocument<AstNode, AstDiagnostic>): AstDocument<AstNode, AstDiagnostic>;
|
|
448
|
+
/**
|
|
449
|
+
* The state a read waits for: the last one builds reach when it asks for
|
|
450
|
+
* diagnostics, since a wait for `Validated` on a server whose builds do not
|
|
451
|
+
* validate would never end.
|
|
452
|
+
*/
|
|
453
|
+
protected diagnosticsState(args: Pick<GetModelDocumentArgs, 'includeDiagnostics'>): DocumentState | undefined;
|
|
398
454
|
getModelDocument(args: GetModelDocumentArgs): Promise<TransferDocument<TTransfer, TDiagnostic>>;
|
|
399
455
|
updateModelDocument(args: TransferUpdateDocumentArgs<TTransfer>): Promise<TransferWrittenDocument<TTransfer, TDiagnostic>>;
|
|
400
456
|
saveModelDocument(args: TransferSaveDocumentArgs<TTransfer>): Promise<TransferSavedDocument<TTransfer, TDiagnostic>>;
|
|
@@ -425,6 +481,13 @@ export declare class DataServer<TTransfer extends TransferElement, TDiagnostic e
|
|
|
425
481
|
* is in place and the load, so an event sent while it loads is older.
|
|
426
482
|
*/
|
|
427
483
|
watchModelDocument(args: WatchModelDocumentArgs): Promise<TransferWatchedDocument>;
|
|
484
|
+
/**
|
|
485
|
+
* Record the watch of `(args.uri, args.clientId)` and answer the key events
|
|
486
|
+
* name the document by. The first watcher of a URI baselines its
|
|
487
|
+
* fingerprint: to `fingerprint` at `version` when the caller encoded the
|
|
488
|
+
* document already, else to the current document.
|
|
489
|
+
*/
|
|
490
|
+
protected addWatch(args: WatchModelDocumentArgs, fingerprint?: string, version?: ModelVersion): string;
|
|
428
491
|
/**
|
|
429
492
|
* Remove a watch for `(uri, clientId)` previously created by
|
|
430
493
|
* {@link watchModelDocument}. Idempotent — unwatching twice is a no-op.
|
package/lib/data-server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-server.d.ts","sourceRoot":"","sources":["../src/data-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"data-server.d.ts","sourceRoot":"","sources":["../src/data-server.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAKJ,oBAAoB,EAKpB,KAAK,eAAe,EAMpB,eAAe,EAGf,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,OAAO,EACZ,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EAEpB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,MAAM,EACX,KAAK,kBAAkB,EACvB,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EAEpB,uBAAuB,EACvB,yBAAyB,EAE3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAIJ,KAAK,kBAAkB,EACvB,KAAK,6BAA6B,EAClC,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,2BAA2B,EAChC,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EAEzB,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAG3B,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAClC,MAAM,0BAA0B,CAAC;AAIlC;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,+GAG7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,OAAwC,CAAC;AAE5E,eAAO,MAAM,oBAAoB,QAAO,sBAAiF,CAAC;AAE1H;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,+GAGpC,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,6BAA6B,OAA+C,CAAC;AAE1F,yGAAyG;AACzG,eAAO,MAAM,2BAA2B,cAAe,MAAM,KAAG,aAAa,CAAC,oBAAoB,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAI9H,CAAC;AAEN,OAAO,KAAK,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACzG,OAAO,KAAK,EACT,aAAa,EACb,sBAAsB,EACtB,yBAAyB,EACzB,cAAc,EACd,aAAa,EACb,WAAW,EACX,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,OAAO,EAAE,aAAa,EAAY,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,KAAK,iBAAiB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAiBvE;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;AAgC3E;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACtD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,aAAa,CAAC;IAE3C;;;;;;;;OAQG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,6BAA6B,CAAC;IAErD;;;;OAIG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAEnD;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAE3C;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAElC;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAE/C;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAE7C;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CACtC;AAED;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACvC,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC;IAC1C,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAClD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,yEAAyE;IACzE,QAAQ,CAAC,WAAW,EAAE,6BAA6B,CAAC;IACpD,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;CAC5C;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAwB;IACtC,qIAAqI;IACrI,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,+MAA+M;IAC/M,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,YAAY,CAAC;IAClC,wJAAwJ;IACxJ,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,qBAAa,UAAU,CACpB,SAAS,SAAS,eAAe,EACjC,WAAW,SAAS,kBAAkB,GAAG,kBAAkB,EAC3D,QAAQ,SAAS,OAAO,GAAG,OAAO,CAElC,YAAW,kBAAkB,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,6BAA6B,EAAE,UAAU;IAwEvG,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,iBAAiB;IAChD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE,WAAW,CAAC;IAvE3E;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,mBAAmB,GAAG,0BAA0B,CAAC,CAAC,CAGlH;IAEF,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAC;IACtD,+GAA+G;IAC/G,SAAS,CAAC,QAAQ,CAAC,eAAe,wCAA+C;IACjF;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,SAAS,mCAA0C;IACtE;;;;OAIG;IACH,SAAS,CAAC,aAAa,SAAK;IAC5B;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAQ,CAAC,QAAQ;0BAEJ,OAAO;6BAAuB,OAAO;iBAAW,MAAM;kBAAY,OAAO;OAC5F;IACJ;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,wEAAuE;IACxG;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IACrF,SAAS,CAAC,QAAQ,CAAC,WAAW,uBAA8B;IAC5D,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAClC,gHAAgH;IAChH,SAAS,CAAC,aAAa,CAAC,EAAE,wBAAwB,CAAC;IACnD,8GAA8G;IAC9G,SAAS,CAAC,QAAQ,UAAS;IAC3B,sGAAsG;IACtG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC9C,4GAA4G;IAC5G,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;IACzD;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;IAEjF,YACsB,UAAU,EAAE,iBAAiB,EAC7B,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE,WAAW,CAAC,EACxE,OAAO,GAAE,iBAAsB,EAsDjC;IAED;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,KAAK,GAAE,eAA0B,GAAG,IAAI,CAmB/C;IAaK,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC,CAsBpE;IAED;;;;OAIG;IACH,SAAS,KAAK,KAAK,IAAI,MAAM,CAE5B;IAED;;;;;;OAMG;IACH,SAAS,CAAC,WAAW,CAClB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,eAAe,EACrB,OAAO,GAAE,OAAO,yBAAyB,GAAG,OAAO,uBAAmD,GACtG,IAAI,CAKN;IAED,gDAAgD;IAC1C,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAKxD;IAED,8GAA8G;IAC9G,SAAS,CAAC,UAAU,CACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC,EACzD,KAAK,GAAE,eAA0B,GACjC,IAAI,CAGN;IAED,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAO5C;IAEK,mBAAmB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAQjH;IAEK,oBAAoB,CAAC,IAAI,EAAE,2BAA2B,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC,CAWnI;IAED;;;;OAIG;IACH,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAE5H;IAED;;;;;OAKG;IACH,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC,CAM3F;IAEK,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAOtG;IAED;;;;;;OAMG;IACH,UAAgB,SAAS,CAAC,CAAC,EACxB,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE,KAAK,GAAG,UAAU,CAAC,EACrD,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC,EACzD,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,GAC1C,OAAO,CAAC,CAAC,CAAC,CAiCZ;IAED;;;OAGG;IACH,SAAS,CAAC,SAAS,CAAC,SAAS,SAAS,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,EAC3E,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,EAC1C,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,MAAM,GAChB,SAAS,CAEX;IAED;;;OAGG;IACH,SAAS,CAAC,cAAc,CACrB,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE,KAAK,GAAG,UAAU,GAAG,OAAO,GAAG,oBAAoB,CAAC,EACtF,KAAK,CAAC,EAAE,MAAM,OAAO,GACrB,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAEnD;IAED;;;;;;;;OAQG;IACH,UAAgB,eAAe,CAC5B,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE,KAAK,GAAG,UAAU,GAAG,oBAAoB,CAAC,EAC5E,KAAK,GAAE,MAAM,OAAqB,GAClC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CA6CnD;IAED;;;;;;OAMG;IACH,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,qBAAqB,EAAE,KAAK,GAAG,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnG;IAEK,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAY5D;IAED;;;;OAIG;IACH,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAM3H;IAED;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,GAAG,aAAa,GAAG,SAAS,CAE5G;IAEK,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAuBpG;IAEK,mBAAmB,CAAC,IAAI,EAAE,0BAA0B,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAO/H;IAEK,iBAAiB,CAAC,IAAI,EAAE,wBAAwB,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAMzH;IAEK,oBAAoB,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,qBAAqB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAOpH;IAED;;;;;OAKG;IACG,mBAAmB,CAAC,IAAI,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAQzE;IAED;;;;;;;;;;;;;;;;;OAiBG;IACG,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAevF;IAED;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM,CAqBrG;IAED;;;;;;;;OAQG;IACG,oBAAoB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAetE;IAED;;;;;;OAMG;IACH,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAW/C;IAED;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1C;IAEK,WAAW,IAAI,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC,CAKhD;IAEK,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAKhF;IAED;;;;;;OAMG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAElC;IAQD;;;;;;;;;;;;;;;OAeG;IACH,UAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB5E;IAEK,uBAAuB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAGlF;IAEK,gBAAgB,CAAC,QAAQ,SAAS,eAAe,GAAG,eAAe,EACtE,GAAG,EAAE,gBAAgB,GACrB,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,CAQhD;IAEK,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CA8C1D;IAED;;;;;;OAMG;IACH,SAAS,CAAC,wBAAwB,CAAC,MAAM,EAAE,eAAe,GAAG,yBAAyB,CAAC,YAAY,CAAC,CAUnG;IAED;;;;;;;;;;OAUG;IACH,SAAS,CAAC,wBAAwB,CAAC,MAAM,EAAE,eAAe,GAAG,yBAAyB,GAAG,SAAS,CAgBjG;IAED;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,GAAG,GAAG,GAAG,SAAS,CAYvE;IAED;;;;;;;;;;OAUG;IACH,SAAS,CAAC,yBAAyB,CAAC,OAAO,EAAE,eAAe,GAAG,yBAAyB,GAAG,SAAS,CAEnG;IAMD;;;;;;;OAOG;IACH,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAEhE;IAED;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAgB3F;IAED;;;;;OAKG;IACH,SAAS,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAGnH;IAED;;;;;;OAMG;IACH,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAEnD;IAED;;;;;;OAMG;IACH,SAAS,CAAC,eAAe,CACtB,OAAO,EAAE,uBAAuB,CAAC,eAAe,EAAE,WAAW,CAAC,EAC9D,IAAI,EAAE,MAAM,GACZ,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAc1C;IAED,mHAAmH;IACnH,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUzE;IAED;;;;OAIG;IACH,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAE5D;IAED;;;OAGG;IACH,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAG3D;IAED;;;;OAIG;IACH,SAAS,CAAC,uBAAuB,IAAI,IAAI,CAKxC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,GAAG,IAAI,CAOjE;IAED;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,4BAA4B,IAAI,IAAI,CAE7C;IAED,qFAAqF;IACrF,SAAS,CAAC,uBAAuB,IAAI,IAAI,CAExC;IAED;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI,CAKhE;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,SAAS,CAAC,wBAAwB,IAAI,IAAI,CAUzC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAW5D;IAED,gFAAgF;IAChF,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,IAAI,CAWvE;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,GAAG,IAAI,CA4DpE;IAED;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,0BAA0B,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,uBAAuB,CAAC,eAAe,EAAE,WAAW,CAAC,GAAG,MAAM,CAY1H;IAED;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,yBAAyB,IAAI,IAAI,CAE1C;IAED;;;;;;OAMG;IACH,SAAS,CAAC,0BAA0B,CAAC,KAAK,EAAE,kBAAkB,CAAC,QAAQ,CAAC,GAAG,IAAI,CA0B9E;IASK,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAIhE;IAEK,iBAAiB,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,MAAM,CAAC,CAI1E;IAEK,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAIrC;IAEK,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAa5D;IAEK,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAY5D;IAEK,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC,CAEzC;IAED,oEAAoE;IACpE,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,yBAAyB,CAmB9E;CACH"}
|
package/lib/data-server.js
CHANGED
|
@@ -155,11 +155,21 @@ export class DataServer {
|
|
|
155
155
|
*/
|
|
156
156
|
watchKeys = new Map();
|
|
157
157
|
/**
|
|
158
|
-
* The position of the last update or
|
|
159
|
-
* such event carries, and a watch's answer carries as of the moment it
|
|
158
|
+
* The position of the last update, deletion or dirty event sent, which
|
|
159
|
+
* each such event carries, and a watch's answer carries as of the moment it
|
|
160
160
|
* took whether its document exists: an event past it was sent after.
|
|
161
161
|
*/
|
|
162
162
|
eventSequence = 0;
|
|
163
|
+
/**
|
|
164
|
+
* Per client id and canonical key, the opens and creates of the document
|
|
165
|
+
* that session has under way since it last closed it. A failed one undoes
|
|
166
|
+
* the session's open only as the last of them, and only when none answered
|
|
167
|
+
* and the session did not hold it before. A close, the caller's or a
|
|
168
|
+
* deletion's, removes the entry, so later opens start their own, and a
|
|
169
|
+
* watched open still under way places no watch. The caller's removes it
|
|
170
|
+
* also before the open holds the document, which the open then still does.
|
|
171
|
+
*/
|
|
172
|
+
openings = new Map();
|
|
163
173
|
/**
|
|
164
174
|
* The live client sessions this connection registered, by client id. A
|
|
165
175
|
* document request carrying one of these ids acts as that session; one
|
|
@@ -227,6 +237,8 @@ export class DataServer {
|
|
|
227
237
|
renderErrorMessage: error => this.services.MessageRenderer.renderError(error)
|
|
228
238
|
});
|
|
229
239
|
this.disposables.push(this.modelService.onModelDeleted(event => this.dispatchDeleteEvent(event)));
|
|
240
|
+
// A close, the caller's or a deletion's, ends the opens under way before it. See `trackOpen`.
|
|
241
|
+
this.disposables.push(this.services.workspace.TextDocuments.onDidClose(event => this.openings.delete(`${event.clientId}\n${this.canonicalKey(event.document.uri)}`)));
|
|
230
242
|
this.subscribeToModelUpdates();
|
|
231
243
|
this.subscribeToTextDocumentSaves();
|
|
232
244
|
this.subscribeToDirtyChanges();
|
|
@@ -351,9 +363,12 @@ export class DataServer {
|
|
|
351
363
|
}
|
|
352
364
|
async createModelDocument(args) {
|
|
353
365
|
const session = this.requireSession(args.clientId);
|
|
354
|
-
const
|
|
355
|
-
|
|
356
|
-
|
|
366
|
+
const sequence = this.eventSequence;
|
|
367
|
+
return this.trackOpen(args, session, async (ended) => {
|
|
368
|
+
const version = await session.create(args.uri, args.text);
|
|
369
|
+
const snapshot = await this.openedSnapshot(args, ended);
|
|
370
|
+
return { ...this.sequenced(args, snapshot, sequence), created: { version: asModelVersion(version) } };
|
|
371
|
+
});
|
|
357
372
|
}
|
|
358
373
|
async updateModelDocuments(args) {
|
|
359
374
|
const session = this.requireSession(args.clientId);
|
|
@@ -390,37 +405,168 @@ export class DataServer {
|
|
|
390
405
|
}
|
|
391
406
|
async openModelDocument(args) {
|
|
392
407
|
const session = this.requireSession(args.clientId);
|
|
393
|
-
const
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
408
|
+
const sequence = this.eventSequence;
|
|
409
|
+
return this.trackOpen(args, session, async (ended) => {
|
|
410
|
+
await session.open(args.uri, args.options);
|
|
411
|
+
return this.sequenced(args, await this.openedSnapshot(args, ended), sequence);
|
|
412
|
+
});
|
|
397
413
|
}
|
|
398
414
|
/**
|
|
399
|
-
*
|
|
400
|
-
*
|
|
401
|
-
*
|
|
402
|
-
* it.
|
|
415
|
+
* Run `call`, an open or create of `args.uri` by the session, kept in
|
|
416
|
+
* {@link openings} until it settles. When it fails as the last of those
|
|
417
|
+
* under way, the session's open is closed unless one of them answered or
|
|
418
|
+
* the session held it before. A create refused before it opened closes
|
|
419
|
+
* nothing. `call` is handed whether a close ended these opens since.
|
|
403
420
|
*/
|
|
404
|
-
async
|
|
421
|
+
async trackOpen(args, session, call) {
|
|
422
|
+
const key = `${args.clientId}\n${this.canonicalKey(args.uri)}`;
|
|
423
|
+
const opening = this.openings.get(key) ?? {
|
|
424
|
+
wasOpen: this.services.workspace.TextDocuments.isOpenInClient(args.uri, args.clientId),
|
|
425
|
+
wasWatched: this.uriWatchRecords.get(this.canonicalKey(args.uri))?.watchers.has(args.clientId) ?? false,
|
|
426
|
+
pending: 0,
|
|
427
|
+
answered: false
|
|
428
|
+
};
|
|
429
|
+
this.openings.set(key, opening);
|
|
430
|
+
opening.pending++;
|
|
431
|
+
let answered = false;
|
|
405
432
|
try {
|
|
406
|
-
|
|
433
|
+
const result = await call(() => this.openings.get(key) !== opening);
|
|
434
|
+
answered = true;
|
|
435
|
+
return result;
|
|
407
436
|
}
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
437
|
+
finally {
|
|
438
|
+
opening.answered ||= answered;
|
|
439
|
+
// A close made meanwhile ended these opens, so what holds the document now is a later open's.
|
|
440
|
+
if (--opening.pending === 0 && this.openings.get(key) === opening) {
|
|
441
|
+
this.openings.delete(key);
|
|
442
|
+
// The open stays while any open under way answered, or one before it held it.
|
|
443
|
+
// Only an open the session holds now is closed, so a refused create sends no close.
|
|
444
|
+
const opened = this.services.workspace.TextDocuments.isOpenInClient(args.uri, args.clientId);
|
|
445
|
+
if (!opening.answered && !opening.wasOpen && opened) {
|
|
446
|
+
await session.close(args.uri).catch(() => undefined);
|
|
447
|
+
// An open of these that answered after a close placed a watch no one holds.
|
|
448
|
+
// A watch the session placed before them stays.
|
|
449
|
+
if (!opening.wasWatched) {
|
|
450
|
+
await this.unwatchModelDocument({ uri: args.uri, clientId: args.clientId }).catch(() => undefined);
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* `snapshot` with the position of the last event sent before the request
|
|
458
|
+
* began, when it watches: a deletion sent until then ended nothing it opened.
|
|
459
|
+
*/
|
|
460
|
+
sequenced(args, snapshot, sequence) {
|
|
461
|
+
return args.watch ? { ...snapshot, sequence } : snapshot;
|
|
462
|
+
}
|
|
463
|
+
/**
|
|
464
|
+
* The snapshot a session's open or create answers with, watched from on
|
|
465
|
+
* when `args.watch` is set and no close `ended` the open.
|
|
466
|
+
*/
|
|
467
|
+
openedSnapshot(args, ended) {
|
|
468
|
+
return args.watch ? this.watchedSnapshot(args, ended) : this.getModelDocument(args);
|
|
469
|
+
}
|
|
470
|
+
/**
|
|
471
|
+
* Read `args.uri` as {@link getModelDocument} does and watch it, the watch
|
|
472
|
+
* placed and the answer encoded in one synchronous run: every event after
|
|
473
|
+
* the state answered reaches the watch, and its fingerprint is baselined to
|
|
474
|
+
* that state, so the first event repeats nothing the answer holds.
|
|
475
|
+
*
|
|
476
|
+
* Leaves the answer unwatched once `ended` tells a close ended the open,
|
|
477
|
+
* as the caller closed it, also before this began.
|
|
478
|
+
*/
|
|
479
|
+
async watchedSnapshot(args, ended = () => false) {
|
|
480
|
+
const state = this.diagnosticsState(args);
|
|
481
|
+
const session = this.requireSession(args.clientId);
|
|
482
|
+
// A session that ended while the read was out dropped its watches, so
|
|
483
|
+
// a watch placed now would outlive it.
|
|
484
|
+
const assertLive = () => {
|
|
485
|
+
if (this.clientSessions.get(args.clientId) !== session) {
|
|
486
|
+
throw new SessionClosedError(args.clientId, 'The client session ended while its open was under way.');
|
|
487
|
+
}
|
|
488
|
+
};
|
|
489
|
+
const watch = (fingerprint, version) => {
|
|
490
|
+
assertLive();
|
|
491
|
+
if (!ended()) {
|
|
492
|
+
this.addWatch(args, fingerprint, version);
|
|
493
|
+
}
|
|
494
|
+
};
|
|
495
|
+
for (let reads = 1;; reads++) {
|
|
496
|
+
let built;
|
|
497
|
+
try {
|
|
498
|
+
built = await this.modelService.ensureDocumentState(args.uri, state);
|
|
499
|
+
}
|
|
500
|
+
catch (error) {
|
|
501
|
+
if (!this.isMissingDocument(error, args.uri)) {
|
|
502
|
+
throw error;
|
|
503
|
+
}
|
|
504
|
+
watch();
|
|
505
|
+
// Named as its events will be, so the client finds them however it spelled the URI.
|
|
506
|
+
return this.envelope(UriUtils.toUri(this.canonicalKey(args.uri)));
|
|
507
|
+
}
|
|
508
|
+
// A later build that reached the event phase before this run was sent
|
|
509
|
+
// before the watch was in place, so the answer has to hold it.
|
|
510
|
+
const live = this.modelService.getDocument(args.uri);
|
|
511
|
+
if (live && live.parseResult.value !== built.root && live.state >= this.options.subscriptionPhase) {
|
|
512
|
+
const current = this.readsAgain(args, reads) ? undefined : this.modelService.snapshot(args.uri);
|
|
513
|
+
if (!current) {
|
|
514
|
+
continue;
|
|
515
|
+
}
|
|
516
|
+
built = current;
|
|
517
|
+
}
|
|
518
|
+
else if (live?.parseResult.value === built.root && live.state >= this.options.subscriptionPhase) {
|
|
519
|
+
// A rebuild that kept the root, as a dependency's relink does, may have sent other diagnostics.
|
|
520
|
+
built = this.modelService.snapshot(args.uri) ?? built;
|
|
521
|
+
}
|
|
522
|
+
const answer = this.encodeDocument(this.withKnownDiagnostics(args.uri, built));
|
|
523
|
+
watch(answer.model?.hash, this.services.workspace.ModelLedger.versionOf(built.root));
|
|
524
|
+
return answer;
|
|
412
525
|
}
|
|
413
526
|
}
|
|
527
|
+
/**
|
|
528
|
+
* Whether a watched open whose `reads` reads a later build overtook reads
|
|
529
|
+
* again, or answers that build as it stands, which may be short of the
|
|
530
|
+
* state asked for. Up to three reads by default, so sustained edits cannot
|
|
531
|
+
* hold the open unanswered. A later build with no snapshot to answer is
|
|
532
|
+
* read again whatever this returns.
|
|
533
|
+
*/
|
|
534
|
+
readsAgain(_args, reads) {
|
|
535
|
+
return reads < 3;
|
|
536
|
+
}
|
|
414
537
|
async closeModelDocument(args) {
|
|
415
538
|
// Through the handle, so a close under an ended session fails as that
|
|
416
539
|
// session's calls do, and a session class's own close is honoured.
|
|
417
540
|
const session = this.requireSession(args.clientId);
|
|
541
|
+
// Ends the opens under way, as the store's close event does, also for
|
|
542
|
+
// one that has not registered yet, so none places its watch after this.
|
|
543
|
+
this.openings.delete(`${args.clientId}\n${this.canonicalKey(args.uri)}`);
|
|
418
544
|
// Closing also releases the watch for (uri, clientId) — a forgotten
|
|
419
545
|
// unwatch would otherwise leak phase-event dispatch until the connection
|
|
420
546
|
// closes. Idempotent: a close without a prior watch is a no-op.
|
|
421
547
|
await this.unwatchModelDocument({ uri: args.uri, clientId: args.clientId });
|
|
422
548
|
await session.close(args.uri);
|
|
423
549
|
}
|
|
550
|
+
/**
|
|
551
|
+
* `built` with the diagnostics its root already has. A read without
|
|
552
|
+
* `includeDiagnostics` waits for none but drops none either, so a watch
|
|
553
|
+
* baselined on it does not miss the validation event already sent.
|
|
554
|
+
*/
|
|
555
|
+
withKnownDiagnostics(uri, built) {
|
|
556
|
+
const live = this.modelService.getDocument(uri);
|
|
557
|
+
if (built.diagnostics || live?.parseResult.value !== built.root || live.state < DocumentState.Validated) {
|
|
558
|
+
return built;
|
|
559
|
+
}
|
|
560
|
+
return this.modelService.snapshot(uri) ?? built;
|
|
561
|
+
}
|
|
562
|
+
/**
|
|
563
|
+
* The state a read waits for: the last one builds reach when it asks for
|
|
564
|
+
* diagnostics, since a wait for `Validated` on a server whose builds do not
|
|
565
|
+
* validate would never end.
|
|
566
|
+
*/
|
|
567
|
+
diagnosticsState(args) {
|
|
568
|
+
return args.includeDiagnostics ? this.services.workspace.DocumentBuilder.finalBuildState() : undefined;
|
|
569
|
+
}
|
|
424
570
|
async getModelDocument(args) {
|
|
425
571
|
// Smart dispatch: a warm document (already in LangiumDocuments) is
|
|
426
572
|
// returned at its settle phase without a redundant build; a cold URI
|
|
@@ -431,10 +577,11 @@ export class DataServer {
|
|
|
431
577
|
// Defaults to the integrity-settled landmark (diagnostics may be absent,
|
|
432
578
|
// delivered asynchronously via the subscription channel). A one-shot /
|
|
433
579
|
// unsubscribed caller that needs diagnostics inline passes
|
|
434
|
-
// `includeDiagnostics: true` to settle at
|
|
435
|
-
const state = args
|
|
580
|
+
// `includeDiagnostics: true` to settle at the last state builds reach instead.
|
|
581
|
+
const state = this.diagnosticsState(args);
|
|
436
582
|
try {
|
|
437
|
-
|
|
583
|
+
const built = await this.modelService.ensureDocumentState(args.uri, state);
|
|
584
|
+
return this.encodeDocument(this.withKnownDiagnostics(args.uri, built));
|
|
438
585
|
}
|
|
439
586
|
catch (error) {
|
|
440
587
|
// The protocol answers a read of a URI with no document with an
|
|
@@ -502,19 +649,7 @@ export class DataServer {
|
|
|
502
649
|
* is in place and the load, so an event sent while it loads is older.
|
|
503
650
|
*/
|
|
504
651
|
async watchModelDocument(args) {
|
|
505
|
-
const uri = this.
|
|
506
|
-
const keys = this.watchKeys.get(args.clientId) ?? new Map();
|
|
507
|
-
this.watchKeys.set(args.clientId, keys.set(args.uri, uri));
|
|
508
|
-
const record = this.uriWatchRecords.get(uri) ?? { watchers: new Set() };
|
|
509
|
-
this.uriWatchRecords.set(uri, record);
|
|
510
|
-
record.watchers.add(args.clientId);
|
|
511
|
-
if (record.fingerprint === undefined) {
|
|
512
|
-
const document = this.modelService.getDocument(args.uri);
|
|
513
|
-
if (document && !this.services.workspace.ModelLedger.isPlaceholder(document.parseResult.value)) {
|
|
514
|
-
record.fingerprint = this.computeDocumentFingerprint(document.parseResult.value, this.encoder.toTransferDocument(document));
|
|
515
|
-
record.fingerprintVersion = this.services.workspace.ModelLedger.versionOf(document.parseResult.value);
|
|
516
|
-
}
|
|
517
|
-
}
|
|
652
|
+
const uri = this.addWatch(args);
|
|
518
653
|
// As for a read, only a missing document counts as none. A file briefly
|
|
519
654
|
// unreadable leaves the builder's placeholder, and is there all the same.
|
|
520
655
|
// Whether it exists, the text held and the position of the last event
|
|
@@ -526,6 +661,34 @@ export class DataServer {
|
|
|
526
661
|
};
|
|
527
662
|
return this.modelService.ensureDocumentState(args.uri).then(() => answer(this.modelService.getDocument(args.uri) !== undefined), (error) => answer(!this.isMissingDocument(error, args.uri)));
|
|
528
663
|
}
|
|
664
|
+
/**
|
|
665
|
+
* Record the watch of `(args.uri, args.clientId)` and answer the key events
|
|
666
|
+
* name the document by. The first watcher of a URI baselines its
|
|
667
|
+
* fingerprint: to `fingerprint` at `version` when the caller encoded the
|
|
668
|
+
* document already, else to the current document.
|
|
669
|
+
*/
|
|
670
|
+
addWatch(args, fingerprint, version) {
|
|
671
|
+
const uri = this.canonicalKey(args.uri);
|
|
672
|
+
const keys = this.watchKeys.get(args.clientId) ?? new Map();
|
|
673
|
+
this.watchKeys.set(args.clientId, keys.set(args.uri, uri));
|
|
674
|
+
const record = this.uriWatchRecords.get(uri) ?? { watchers: new Set() };
|
|
675
|
+
this.uriWatchRecords.set(uri, record);
|
|
676
|
+
record.watchers.add(args.clientId);
|
|
677
|
+
if (record.fingerprint !== undefined) {
|
|
678
|
+
return uri;
|
|
679
|
+
}
|
|
680
|
+
if (fingerprint !== undefined) {
|
|
681
|
+
record.fingerprint = fingerprint;
|
|
682
|
+
record.fingerprintVersion = version;
|
|
683
|
+
return uri;
|
|
684
|
+
}
|
|
685
|
+
const document = this.modelService.getDocument(args.uri);
|
|
686
|
+
if (document && !this.services.workspace.ModelLedger.isPlaceholder(document.parseResult.value)) {
|
|
687
|
+
record.fingerprint = this.computeDocumentFingerprint(document.parseResult.value, this.encoder.toTransferDocument(document));
|
|
688
|
+
record.fingerprintVersion = this.services.workspace.ModelLedger.versionOf(document.parseResult.value);
|
|
689
|
+
}
|
|
690
|
+
return uri;
|
|
691
|
+
}
|
|
529
692
|
/**
|
|
530
693
|
* Remove a watch for `(uri, clientId)` previously created by
|
|
531
694
|
* {@link watchModelDocument}. Idempotent — unwatching twice is a no-op.
|
|
@@ -985,7 +1148,7 @@ export class DataServer {
|
|
|
985
1148
|
dispatchDirtyEvent(event) {
|
|
986
1149
|
const uri = this.canonicalKey(event.uri);
|
|
987
1150
|
if (this.uriWatchRecords.get(uri)?.watchers.size) {
|
|
988
|
-
this.clientProxy.onDocumentDirtyChanged({ uri, text: event.text });
|
|
1151
|
+
this.clientProxy.onDocumentDirtyChanged({ uri, text: event.text, sequence: ++this.eventSequence });
|
|
989
1152
|
}
|
|
990
1153
|
}
|
|
991
1154
|
/**
|
package/lib/data-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-server.js","sourceRoot":"","sources":["../src/data-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"data-server.js","sourceRoot":"","sources":["../src/data-server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hydranium/data-server",
|
|
3
|
-
"version": "1.0.0-next.
|
|
3
|
+
"version": "1.0.0-next.434",
|
|
4
4
|
"description": "Typed-RPC protocol head for the hydranium framework. Peer of @hydranium/core/lsp and @hydranium/glsp-server; built on @hydranium/core.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"data-server",
|
|
@@ -67,18 +67,18 @@
|
|
|
67
67
|
"watch": "tsc -b -w --preserveWatchOutput"
|
|
68
68
|
},
|
|
69
69
|
"devDependencies": {
|
|
70
|
-
"@hydranium/core": "1.0.0-next.
|
|
71
|
-
"@hydranium/langium": "1.0.0-next.
|
|
72
|
-
"@hydranium/protocol": "1.0.0-next.
|
|
70
|
+
"@hydranium/core": "1.0.0-next.434",
|
|
71
|
+
"@hydranium/langium": "1.0.0-next.434",
|
|
72
|
+
"@hydranium/protocol": "1.0.0-next.434",
|
|
73
73
|
"rimraf": "^5.0.0",
|
|
74
74
|
"typescript": "^7.0.2",
|
|
75
75
|
"vscode-jsonrpc": "9.0.3",
|
|
76
76
|
"vscode-languageserver-textdocument": "^1.0.12"
|
|
77
77
|
},
|
|
78
78
|
"peerDependencies": {
|
|
79
|
-
"@hydranium/core": "1.0.0-next.
|
|
80
|
-
"@hydranium/langium": "1.0.0-next.
|
|
81
|
-
"@hydranium/protocol": "1.0.0-next.
|
|
79
|
+
"@hydranium/core": "1.0.0-next.434",
|
|
80
|
+
"@hydranium/langium": "1.0.0-next.434",
|
|
81
|
+
"@hydranium/protocol": "1.0.0-next.434",
|
|
82
82
|
"vscode-jsonrpc": "^9.0.3",
|
|
83
83
|
"vscode-languageserver-textdocument": "^1.0.12"
|
|
84
84
|
},
|
package/src/data-server.ts
CHANGED
|
@@ -35,7 +35,7 @@ import {
|
|
|
35
35
|
type FindNextNameArgs,
|
|
36
36
|
type LatencyCollector,
|
|
37
37
|
type LatencyReport,
|
|
38
|
-
type
|
|
38
|
+
type OpenModelDocumentArgs,
|
|
39
39
|
type Project,
|
|
40
40
|
type ReferenceCandidate,
|
|
41
41
|
type ReferenceContext,
|
|
@@ -472,11 +472,24 @@ export class DataServer<
|
|
|
472
472
|
*/
|
|
473
473
|
protected readonly watchKeys = new Map<string, Map<string, string>>();
|
|
474
474
|
/**
|
|
475
|
-
* The position of the last update or
|
|
476
|
-
* such event carries, and a watch's answer carries as of the moment it
|
|
475
|
+
* The position of the last update, deletion or dirty event sent, which
|
|
476
|
+
* each such event carries, and a watch's answer carries as of the moment it
|
|
477
477
|
* took whether its document exists: an event past it was sent after.
|
|
478
478
|
*/
|
|
479
479
|
protected eventSequence = 0;
|
|
480
|
+
/**
|
|
481
|
+
* Per client id and canonical key, the opens and creates of the document
|
|
482
|
+
* that session has under way since it last closed it. A failed one undoes
|
|
483
|
+
* the session's open only as the last of them, and only when none answered
|
|
484
|
+
* and the session did not hold it before. A close, the caller's or a
|
|
485
|
+
* deletion's, removes the entry, so later opens start their own, and a
|
|
486
|
+
* watched open still under way places no watch. The caller's removes it
|
|
487
|
+
* also before the open holds the document, which the open then still does.
|
|
488
|
+
*/
|
|
489
|
+
protected readonly openings = new Map<
|
|
490
|
+
string,
|
|
491
|
+
{ readonly wasOpen: boolean; readonly wasWatched: boolean; pending: number; answered: boolean }
|
|
492
|
+
>();
|
|
480
493
|
/**
|
|
481
494
|
* The live client sessions this connection registered, by client id. A
|
|
482
495
|
* document request carrying one of these ids acts as that session; one
|
|
@@ -549,6 +562,12 @@ export class DataServer<
|
|
|
549
562
|
renderErrorMessage: error => this.services.MessageRenderer.renderError(error)
|
|
550
563
|
});
|
|
551
564
|
this.disposables.push(this.modelService.onModelDeleted(event => this.dispatchDeleteEvent(event)));
|
|
565
|
+
// A close, the caller's or a deletion's, ends the opens under way before it. See `trackOpen`.
|
|
566
|
+
this.disposables.push(
|
|
567
|
+
this.services.workspace.TextDocuments.onDidClose(event =>
|
|
568
|
+
this.openings.delete(`${event.clientId}\n${this.canonicalKey(event.document.uri)}`)
|
|
569
|
+
)
|
|
570
|
+
);
|
|
552
571
|
this.subscribeToModelUpdates();
|
|
553
572
|
this.subscribeToTextDocumentSaves();
|
|
554
573
|
this.subscribeToDirtyChanges();
|
|
@@ -690,9 +709,12 @@ export class DataServer<
|
|
|
690
709
|
|
|
691
710
|
async createModelDocument(args: CreateModelDocumentArgs): Promise<TransferCreatedDocument<TTransfer, TDiagnostic>> {
|
|
692
711
|
const session = this.requireSession(args.clientId);
|
|
693
|
-
const
|
|
694
|
-
|
|
695
|
-
|
|
712
|
+
const sequence = this.eventSequence;
|
|
713
|
+
return this.trackOpen(args, session, async ended => {
|
|
714
|
+
const version = await session.create(args.uri, args.text);
|
|
715
|
+
const snapshot = await this.openedSnapshot(args, ended);
|
|
716
|
+
return { ...this.sequenced(args, snapshot, sequence), created: { version: asModelVersion(version) } };
|
|
717
|
+
});
|
|
696
718
|
}
|
|
697
719
|
|
|
698
720
|
async updateModelDocuments(args: TransferUpdateDocumentsArgs<TTransfer>): Promise<TransferWrittenDocument<TTransfer, TDiagnostic>[]> {
|
|
@@ -731,34 +753,161 @@ export class DataServer<
|
|
|
731
753
|
return session;
|
|
732
754
|
}
|
|
733
755
|
|
|
734
|
-
async openModelDocument(args:
|
|
756
|
+
async openModelDocument(args: OpenModelDocumentArgs): Promise<TransferDocument<TTransfer, TDiagnostic>> {
|
|
735
757
|
const session = this.requireSession(args.clientId);
|
|
736
|
-
const
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
758
|
+
const sequence = this.eventSequence;
|
|
759
|
+
return this.trackOpen(args, session, async ended => {
|
|
760
|
+
await session.open(args.uri, args.options);
|
|
761
|
+
return this.sequenced(args, await this.openedSnapshot(args, ended), sequence);
|
|
762
|
+
});
|
|
740
763
|
}
|
|
741
764
|
|
|
742
765
|
/**
|
|
743
|
-
*
|
|
744
|
-
*
|
|
745
|
-
*
|
|
746
|
-
* it.
|
|
766
|
+
* Run `call`, an open or create of `args.uri` by the session, kept in
|
|
767
|
+
* {@link openings} until it settles. When it fails as the last of those
|
|
768
|
+
* under way, the session's open is closed unless one of them answered or
|
|
769
|
+
* the session held it before. A create refused before it opened closes
|
|
770
|
+
* nothing. `call` is handed whether a close ended these opens since.
|
|
747
771
|
*/
|
|
748
|
-
protected async
|
|
772
|
+
protected async trackOpen<T>(
|
|
773
|
+
args: Pick<OpenModelDocumentArgs, 'uri' | 'clientId'>,
|
|
774
|
+
session: ClientSession<AstNode, AstDiagnostic, TTransfer>,
|
|
775
|
+
call: (ended: () => boolean) => Promise<T>
|
|
776
|
+
): Promise<T> {
|
|
777
|
+
const key = `${args.clientId}\n${this.canonicalKey(args.uri)}`;
|
|
778
|
+
const opening = this.openings.get(key) ?? {
|
|
779
|
+
wasOpen: this.services.workspace.TextDocuments.isOpenInClient(args.uri, args.clientId),
|
|
780
|
+
wasWatched: this.uriWatchRecords.get(this.canonicalKey(args.uri))?.watchers.has(args.clientId) ?? false,
|
|
781
|
+
pending: 0,
|
|
782
|
+
answered: false
|
|
783
|
+
};
|
|
784
|
+
this.openings.set(key, opening);
|
|
785
|
+
opening.pending++;
|
|
786
|
+
let answered = false;
|
|
749
787
|
try {
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
788
|
+
const result = await call(() => this.openings.get(key) !== opening);
|
|
789
|
+
answered = true;
|
|
790
|
+
return result;
|
|
791
|
+
} finally {
|
|
792
|
+
opening.answered ||= answered;
|
|
793
|
+
// A close made meanwhile ended these opens, so what holds the document now is a later open's.
|
|
794
|
+
if (--opening.pending === 0 && this.openings.get(key) === opening) {
|
|
795
|
+
this.openings.delete(key);
|
|
796
|
+
// The open stays while any open under way answered, or one before it held it.
|
|
797
|
+
// Only an open the session holds now is closed, so a refused create sends no close.
|
|
798
|
+
const opened = this.services.workspace.TextDocuments.isOpenInClient(args.uri, args.clientId);
|
|
799
|
+
if (!opening.answered && !opening.wasOpen && opened) {
|
|
800
|
+
await session.close(args.uri).catch(() => undefined);
|
|
801
|
+
// An open of these that answered after a close placed a watch no one holds.
|
|
802
|
+
// A watch the session placed before them stays.
|
|
803
|
+
if (!opening.wasWatched) {
|
|
804
|
+
await this.unwatchModelDocument({ uri: args.uri, clientId: args.clientId }).catch(() => undefined);
|
|
805
|
+
}
|
|
806
|
+
}
|
|
807
|
+
}
|
|
808
|
+
}
|
|
809
|
+
}
|
|
810
|
+
|
|
811
|
+
/**
|
|
812
|
+
* `snapshot` with the position of the last event sent before the request
|
|
813
|
+
* began, when it watches: a deletion sent until then ended nothing it opened.
|
|
814
|
+
*/
|
|
815
|
+
protected sequenced<TDocument extends TransferDocument<TTransfer, TDiagnostic>>(
|
|
816
|
+
args: Pick<OpenModelDocumentArgs, 'watch'>,
|
|
817
|
+
snapshot: TDocument,
|
|
818
|
+
sequence: number
|
|
819
|
+
): TDocument {
|
|
820
|
+
return args.watch ? { ...snapshot, sequence } : snapshot;
|
|
821
|
+
}
|
|
822
|
+
|
|
823
|
+
/**
|
|
824
|
+
* The snapshot a session's open or create answers with, watched from on
|
|
825
|
+
* when `args.watch` is set and no close `ended` the open.
|
|
826
|
+
*/
|
|
827
|
+
protected openedSnapshot(
|
|
828
|
+
args: Pick<OpenModelDocumentArgs, 'uri' | 'clientId' | 'watch' | 'includeDiagnostics'>,
|
|
829
|
+
ended?: () => boolean
|
|
830
|
+
): Promise<TransferDocument<TTransfer, TDiagnostic>> {
|
|
831
|
+
return args.watch ? this.watchedSnapshot(args, ended) : this.getModelDocument(args);
|
|
832
|
+
}
|
|
833
|
+
|
|
834
|
+
/**
|
|
835
|
+
* Read `args.uri` as {@link getModelDocument} does and watch it, the watch
|
|
836
|
+
* placed and the answer encoded in one synchronous run: every event after
|
|
837
|
+
* the state answered reaches the watch, and its fingerprint is baselined to
|
|
838
|
+
* that state, so the first event repeats nothing the answer holds.
|
|
839
|
+
*
|
|
840
|
+
* Leaves the answer unwatched once `ended` tells a close ended the open,
|
|
841
|
+
* as the caller closed it, also before this began.
|
|
842
|
+
*/
|
|
843
|
+
protected async watchedSnapshot(
|
|
844
|
+
args: Pick<OpenModelDocumentArgs, 'uri' | 'clientId' | 'includeDiagnostics'>,
|
|
845
|
+
ended: () => boolean = () => false
|
|
846
|
+
): Promise<TransferDocument<TTransfer, TDiagnostic>> {
|
|
847
|
+
const state = this.diagnosticsState(args);
|
|
848
|
+
const session = this.requireSession(args.clientId);
|
|
849
|
+
// A session that ended while the read was out dropped its watches, so
|
|
850
|
+
// a watch placed now would outlive it.
|
|
851
|
+
const assertLive = (): void => {
|
|
852
|
+
if (this.clientSessions.get(args.clientId) !== session) {
|
|
853
|
+
throw new SessionClosedError(args.clientId, 'The client session ended while its open was under way.');
|
|
854
|
+
}
|
|
855
|
+
};
|
|
856
|
+
const watch = (fingerprint?: string, version?: ModelVersion): void => {
|
|
857
|
+
assertLive();
|
|
858
|
+
if (!ended()) {
|
|
859
|
+
this.addWatch(args, fingerprint, version);
|
|
860
|
+
}
|
|
861
|
+
};
|
|
862
|
+
for (let reads = 1; ; reads++) {
|
|
863
|
+
let built: AstDocument<AstNode, AstDiagnostic>;
|
|
864
|
+
try {
|
|
865
|
+
built = await this.modelService.ensureDocumentState(args.uri, state);
|
|
866
|
+
} catch (error: unknown) {
|
|
867
|
+
if (!this.isMissingDocument(error, args.uri)) {
|
|
868
|
+
throw error;
|
|
869
|
+
}
|
|
870
|
+
watch();
|
|
871
|
+
// Named as its events will be, so the client finds them however it spelled the URI.
|
|
872
|
+
return this.envelope(UriUtils.toUri(this.canonicalKey(args.uri)));
|
|
873
|
+
}
|
|
874
|
+
// A later build that reached the event phase before this run was sent
|
|
875
|
+
// before the watch was in place, so the answer has to hold it.
|
|
876
|
+
const live = this.modelService.getDocument(args.uri);
|
|
877
|
+
if (live && live.parseResult.value !== built.root && live.state >= this.options.subscriptionPhase) {
|
|
878
|
+
const current = this.readsAgain(args, reads) ? undefined : this.modelService.snapshot(args.uri);
|
|
879
|
+
if (!current) {
|
|
880
|
+
continue;
|
|
881
|
+
}
|
|
882
|
+
built = current;
|
|
883
|
+
} else if (live?.parseResult.value === built.root && live.state >= this.options.subscriptionPhase) {
|
|
884
|
+
// A rebuild that kept the root, as a dependency's relink does, may have sent other diagnostics.
|
|
885
|
+
built = this.modelService.snapshot(args.uri) ?? built;
|
|
886
|
+
}
|
|
887
|
+
const answer = this.encodeDocument(this.withKnownDiagnostics(args.uri, built));
|
|
888
|
+
watch(answer.model?.hash, this.services.workspace.ModelLedger.versionOf(built.root));
|
|
889
|
+
return answer;
|
|
755
890
|
}
|
|
756
891
|
}
|
|
757
892
|
|
|
893
|
+
/**
|
|
894
|
+
* Whether a watched open whose `reads` reads a later build overtook reads
|
|
895
|
+
* again, or answers that build as it stands, which may be short of the
|
|
896
|
+
* state asked for. Up to three reads by default, so sustained edits cannot
|
|
897
|
+
* hold the open unanswered. A later build with no snapshot to answer is
|
|
898
|
+
* read again whatever this returns.
|
|
899
|
+
*/
|
|
900
|
+
protected readsAgain(_args: Pick<OpenModelDocumentArgs, 'uri' | 'clientId'>, reads: number): boolean {
|
|
901
|
+
return reads < 3;
|
|
902
|
+
}
|
|
903
|
+
|
|
758
904
|
async closeModelDocument(args: CloseModelArgs): Promise<void> {
|
|
759
905
|
// Through the handle, so a close under an ended session fails as that
|
|
760
906
|
// session's calls do, and a session class's own close is honoured.
|
|
761
907
|
const session = this.requireSession(args.clientId);
|
|
908
|
+
// Ends the opens under way, as the store's close event does, also for
|
|
909
|
+
// one that has not registered yet, so none places its watch after this.
|
|
910
|
+
this.openings.delete(`${args.clientId}\n${this.canonicalKey(args.uri)}`);
|
|
762
911
|
// Closing also releases the watch for (uri, clientId) — a forgotten
|
|
763
912
|
// unwatch would otherwise leak phase-event dispatch until the connection
|
|
764
913
|
// closes. Idempotent: a close without a prior watch is a no-op.
|
|
@@ -766,6 +915,28 @@ export class DataServer<
|
|
|
766
915
|
await session.close(args.uri);
|
|
767
916
|
}
|
|
768
917
|
|
|
918
|
+
/**
|
|
919
|
+
* `built` with the diagnostics its root already has. A read without
|
|
920
|
+
* `includeDiagnostics` waits for none but drops none either, so a watch
|
|
921
|
+
* baselined on it does not miss the validation event already sent.
|
|
922
|
+
*/
|
|
923
|
+
protected withKnownDiagnostics(uri: string, built: AstDocument<AstNode, AstDiagnostic>): AstDocument<AstNode, AstDiagnostic> {
|
|
924
|
+
const live = this.modelService.getDocument(uri);
|
|
925
|
+
if (built.diagnostics || live?.parseResult.value !== built.root || live.state < DocumentState.Validated) {
|
|
926
|
+
return built;
|
|
927
|
+
}
|
|
928
|
+
return this.modelService.snapshot(uri) ?? built;
|
|
929
|
+
}
|
|
930
|
+
|
|
931
|
+
/**
|
|
932
|
+
* The state a read waits for: the last one builds reach when it asks for
|
|
933
|
+
* diagnostics, since a wait for `Validated` on a server whose builds do not
|
|
934
|
+
* validate would never end.
|
|
935
|
+
*/
|
|
936
|
+
protected diagnosticsState(args: Pick<GetModelDocumentArgs, 'includeDiagnostics'>): DocumentState | undefined {
|
|
937
|
+
return args.includeDiagnostics ? this.services.workspace.DocumentBuilder.finalBuildState() : undefined;
|
|
938
|
+
}
|
|
939
|
+
|
|
769
940
|
async getModelDocument(args: GetModelDocumentArgs): Promise<TransferDocument<TTransfer, TDiagnostic>> {
|
|
770
941
|
// Smart dispatch: a warm document (already in LangiumDocuments) is
|
|
771
942
|
// returned at its settle phase without a redundant build; a cold URI
|
|
@@ -776,10 +947,11 @@ export class DataServer<
|
|
|
776
947
|
// Defaults to the integrity-settled landmark (diagnostics may be absent,
|
|
777
948
|
// delivered asynchronously via the subscription channel). A one-shot /
|
|
778
949
|
// unsubscribed caller that needs diagnostics inline passes
|
|
779
|
-
// `includeDiagnostics: true` to settle at
|
|
780
|
-
const state = args
|
|
950
|
+
// `includeDiagnostics: true` to settle at the last state builds reach instead.
|
|
951
|
+
const state = this.diagnosticsState(args);
|
|
781
952
|
try {
|
|
782
|
-
|
|
953
|
+
const built = await this.modelService.ensureDocumentState(args.uri, state);
|
|
954
|
+
return this.encodeDocument(this.withKnownDiagnostics(args.uri, built));
|
|
783
955
|
} catch (error: unknown) {
|
|
784
956
|
// The protocol answers a read of a URI with no document with an
|
|
785
957
|
// envelope that has no model.
|
|
@@ -851,19 +1023,7 @@ export class DataServer<
|
|
|
851
1023
|
* is in place and the load, so an event sent while it loads is older.
|
|
852
1024
|
*/
|
|
853
1025
|
async watchModelDocument(args: WatchModelDocumentArgs): Promise<TransferWatchedDocument> {
|
|
854
|
-
const uri = this.
|
|
855
|
-
const keys = this.watchKeys.get(args.clientId) ?? new Map<string, string>();
|
|
856
|
-
this.watchKeys.set(args.clientId, keys.set(args.uri, uri));
|
|
857
|
-
const record = this.uriWatchRecords.get(uri) ?? { watchers: new Set<string>() };
|
|
858
|
-
this.uriWatchRecords.set(uri, record);
|
|
859
|
-
record.watchers.add(args.clientId);
|
|
860
|
-
if (record.fingerprint === undefined) {
|
|
861
|
-
const document = this.modelService.getDocument(args.uri);
|
|
862
|
-
if (document && !this.services.workspace.ModelLedger.isPlaceholder(document.parseResult.value)) {
|
|
863
|
-
record.fingerprint = this.computeDocumentFingerprint(document.parseResult.value, this.encoder.toTransferDocument(document));
|
|
864
|
-
record.fingerprintVersion = this.services.workspace.ModelLedger.versionOf(document.parseResult.value);
|
|
865
|
-
}
|
|
866
|
-
}
|
|
1026
|
+
const uri = this.addWatch(args);
|
|
867
1027
|
// As for a read, only a missing document counts as none. A file briefly
|
|
868
1028
|
// unreadable leaves the builder's placeholder, and is there all the same.
|
|
869
1029
|
// Whether it exists, the text held and the position of the last event
|
|
@@ -879,6 +1039,35 @@ export class DataServer<
|
|
|
879
1039
|
);
|
|
880
1040
|
}
|
|
881
1041
|
|
|
1042
|
+
/**
|
|
1043
|
+
* Record the watch of `(args.uri, args.clientId)` and answer the key events
|
|
1044
|
+
* name the document by. The first watcher of a URI baselines its
|
|
1045
|
+
* fingerprint: to `fingerprint` at `version` when the caller encoded the
|
|
1046
|
+
* document already, else to the current document.
|
|
1047
|
+
*/
|
|
1048
|
+
protected addWatch(args: WatchModelDocumentArgs, fingerprint?: string, version?: ModelVersion): string {
|
|
1049
|
+
const uri = this.canonicalKey(args.uri);
|
|
1050
|
+
const keys = this.watchKeys.get(args.clientId) ?? new Map<string, string>();
|
|
1051
|
+
this.watchKeys.set(args.clientId, keys.set(args.uri, uri));
|
|
1052
|
+
const record = this.uriWatchRecords.get(uri) ?? { watchers: new Set<string>() };
|
|
1053
|
+
this.uriWatchRecords.set(uri, record);
|
|
1054
|
+
record.watchers.add(args.clientId);
|
|
1055
|
+
if (record.fingerprint !== undefined) {
|
|
1056
|
+
return uri;
|
|
1057
|
+
}
|
|
1058
|
+
if (fingerprint !== undefined) {
|
|
1059
|
+
record.fingerprint = fingerprint;
|
|
1060
|
+
record.fingerprintVersion = version;
|
|
1061
|
+
return uri;
|
|
1062
|
+
}
|
|
1063
|
+
const document = this.modelService.getDocument(args.uri);
|
|
1064
|
+
if (document && !this.services.workspace.ModelLedger.isPlaceholder(document.parseResult.value)) {
|
|
1065
|
+
record.fingerprint = this.computeDocumentFingerprint(document.parseResult.value, this.encoder.toTransferDocument(document));
|
|
1066
|
+
record.fingerprintVersion = this.services.workspace.ModelLedger.versionOf(document.parseResult.value);
|
|
1067
|
+
}
|
|
1068
|
+
return uri;
|
|
1069
|
+
}
|
|
1070
|
+
|
|
882
1071
|
/**
|
|
883
1072
|
* Remove a watch for `(uri, clientId)` previously created by
|
|
884
1073
|
* {@link watchModelDocument}. Idempotent — unwatching twice is a no-op.
|
|
@@ -1373,7 +1562,7 @@ export class DataServer<
|
|
|
1373
1562
|
protected dispatchDirtyEvent(event: ModelDirtyChangedEvent): void {
|
|
1374
1563
|
const uri = this.canonicalKey(event.uri);
|
|
1375
1564
|
if (this.uriWatchRecords.get(uri)?.watchers.size) {
|
|
1376
|
-
this.clientProxy.onDocumentDirtyChanged({ uri, text: event.text });
|
|
1565
|
+
this.clientProxy.onDocumentDirtyChanged({ uri, text: event.text, sequence: ++this.eventSequence });
|
|
1377
1566
|
}
|
|
1378
1567
|
}
|
|
1379
1568
|
|