@hydranium/core 1.0.0-next.259 → 1.0.0-next.261
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/langium/bootstrap.d.ts +11 -9
- package/lib/langium/bootstrap.d.ts.map +1 -1
- package/lib/langium/bootstrap.js +11 -9
- package/lib/langium/bootstrap.js.map +1 -1
- package/lib/langium/build-phase-pass/build-phase-pass-service.d.ts +1 -1
- package/lib/langium/build-phase-pass/build-phase-pass.d.ts +1 -1
- package/lib/langium/diagnostics/hydranium-langium-profiler.d.ts +9 -20
- package/lib/langium/diagnostics/hydranium-langium-profiler.d.ts.map +1 -1
- package/lib/langium/diagnostics/hydranium-langium-profiler.js +15 -24
- package/lib/langium/diagnostics/hydranium-langium-profiler.js.map +1 -1
- package/lib/langium/document-builder/document-builder.d.ts +22 -10
- package/lib/langium/document-builder/document-builder.d.ts.map +1 -1
- package/lib/langium/document-builder/document-builder.js +25 -17
- package/lib/langium/document-builder/document-builder.js.map +1 -1
- package/lib/langium/integrity/integrity-service.d.ts +1 -3
- package/lib/langium/integrity/integrity-service.d.ts.map +1 -1
- package/lib/langium/integrity/integrity-service.js +1 -3
- package/lib/langium/integrity/integrity-service.js.map +1 -1
- package/lib/langium/module.d.ts +1 -1
- package/lib/langium/module.js +1 -1
- package/lib/langium/module.js.map +1 -1
- package/lib/langium/scope/fallback-scope.d.ts +27 -0
- package/lib/langium/scope/fallback-scope.d.ts.map +1 -0
- package/lib/langium/scope/fallback-scope.js +35 -0
- package/lib/langium/scope/fallback-scope.js.map +1 -0
- package/lib/langium/scope/hydranium-scope-provider.d.ts +10 -9
- package/lib/langium/scope/hydranium-scope-provider.d.ts.map +1 -1
- package/lib/langium/scope/hydranium-scope-provider.js +15 -13
- package/lib/langium/scope/hydranium-scope-provider.js.map +1 -1
- package/lib/langium/scope/index.d.ts +1 -0
- package/lib/langium/scope/index.d.ts.map +1 -1
- package/lib/langium/scope/index.js +1 -0
- package/lib/langium/scope/index.js.map +1 -1
- package/lib/langium/scope/reference-candidate-provider.d.ts +3 -3
- package/lib/langium/scope/reference-candidate-provider.d.ts.map +1 -1
- package/lib/langium/scope/reference-candidate-provider.js.map +1 -1
- package/lib/langium/scope/scope-extension-service.d.ts +41 -37
- package/lib/langium/scope/scope-extension-service.d.ts.map +1 -1
- package/lib/langium/scope/scope-extension-service.js +57 -29
- package/lib/langium/scope/scope-extension-service.js.map +1 -1
- package/lib/langium/shared-services.d.ts +2 -0
- package/lib/langium/shared-services.d.ts.map +1 -1
- package/lib/langium/shared-services.js.map +1 -1
- package/lib/node/rename-over-open-readers.d.ts +2 -0
- package/lib/node/rename-over-open-readers.d.ts.map +1 -1
- package/lib/node/rename-over-open-readers.js +6 -2
- package/lib/node/rename-over-open-readers.js.map +1 -1
- package/lib/testing/playwright/server-log-capture.d.ts +4 -0
- package/lib/testing/playwright/server-log-capture.d.ts.map +1 -1
- package/lib/testing/playwright/server-log-capture.js.map +1 -1
- package/lib/testing/stub-document-builder.d.ts +9 -2
- package/lib/testing/stub-document-builder.d.ts.map +1 -1
- package/lib/testing/stub-document-builder.js +25 -0
- package/lib/testing/stub-document-builder.js.map +1 -1
- package/package.json +5 -5
- package/src/langium/bootstrap.ts +11 -9
- package/src/langium/build-phase-pass/build-phase-pass-service.ts +1 -1
- package/src/langium/build-phase-pass/build-phase-pass.ts +1 -1
- package/src/langium/diagnostics/hydranium-langium-profiler.ts +15 -39
- package/src/langium/document-builder/document-builder.ts +37 -19
- package/src/langium/integrity/integrity-service.ts +2 -4
- package/src/langium/module.ts +2 -2
- package/src/langium/scope/fallback-scope.ts +38 -0
- package/src/langium/scope/hydranium-scope-provider.ts +26 -14
- package/src/langium/scope/index.ts +1 -0
- package/src/langium/scope/reference-candidate-provider.ts +3 -3
- package/src/langium/scope/scope-extension-service.ts +74 -59
- package/src/langium/shared-services.ts +5 -0
- package/src/node/rename-over-open-readers.ts +7 -2
- package/src/testing/playwright/server-log-capture.ts +4 -0
- package/src/testing/stub-document-builder.ts +33 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference-candidate-provider.d.ts","sourceRoot":"","sources":["../../../src/langium/scope/reference-candidate-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACzH,OAAO,EACJ,KAAK,OAAO,EACZ,KAAK,kBAAkB,EAEvB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,KAAK,EAEV,KAAK,MAAM,EAEb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAG5E;;;;;;;;;GASG;AACH,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACvD,mDAAmD;IACnD,QAAQ,EAAE,eAAe,CAAC;IAC1B;;;;;OAKG;IACH,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,cAAc,CAAC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB;IACtF,iHAAiH;IACjH,YAAY,EAAE,KAAK,CAAC;IACpB,uDAAuD;IACvD,MAAM,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAC/B,iFAAiF;IACjF,SAAS,EAAE,kBAAkB,CAAC;IAC9B,wFAAwF;IACxF,IAAI,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,0BAA0B;IACxC;;;OAGG;IACH,IAAI,CAAC,GAAG,EAAE,gBAAgB,GAAG,kBAAkB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"reference-candidate-provider.d.ts","sourceRoot":"","sources":["../../../src/langium/scope/reference-candidate-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference-candidate-provider.js","sourceRoot":"","sources":["../../../src/langium/scope/reference-candidate-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAGlF,OAAO,EAGJ,QAAQ,EAIR,MAAM,EAEN,WAAW,EACb,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAsGjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,OAAO,iCAAiC;IAerB,QAAQ;IAdX,aAAa,CAAyB;IACtC,aAAa,CAAgB;IAChD;;;;;;;OAOG;IACgB,YAAY,CAAe;IAC3B,MAAM,CAAS;IAElC,YACsB,QAAgC,EACnD,OAAO,GAAmB,EAAE;wBADT,QAAQ;QAG3B,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;QACvD,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;QACvD,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC;QACrD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC5G,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACO,eAAe,CAAC,MAAe;QACtC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC;IACrH,CAAC;IAED,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"reference-candidate-provider.js","sourceRoot":"","sources":["../../../src/langium/scope/reference-candidate-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
*
|
|
7
7
|
* SPDX-License-Identifier: MIT
|
|
8
8
|
********************************************************************************/
|
|
9
|
-
import { type AstNode, type LangiumDocument
|
|
9
|
+
import { type AstNode, type LangiumDocument } from '@hydranium/langium';
|
|
10
10
|
import { type Disposable } from 'vscode-languageserver';
|
|
11
|
-
import { type Tracer } from '@hydranium/protocol';
|
|
11
|
+
import { type ProfileRecord, type ProfileSession, type Tracer } from '@hydranium/protocol';
|
|
12
12
|
import { type LogNameOptions } from '../diagnostics/logger.js';
|
|
13
13
|
import { type ServerLanguageServices } from '../language-module.js';
|
|
14
14
|
import { Registry, type RegistryItem } from '../../util/registry.js';
|
|
@@ -54,8 +54,7 @@ export interface ScopeDescriptionAcceptor {
|
|
|
54
54
|
* descriptions are constructed ahead of time, to avoid per-query
|
|
55
55
|
* allocation. The pushed description's `tier` must be `'local'` or
|
|
56
56
|
* `'universal'`; a description of any other tier is silently dropped,
|
|
57
|
-
* because
|
|
58
|
-
* the tier they were asked for.
|
|
57
|
+
* because {@link ScopeExtensionDescriptions} holds only those two.
|
|
59
58
|
*/
|
|
60
59
|
push(description: TieredAstNodeDescription): void;
|
|
61
60
|
}
|
|
@@ -78,34 +77,25 @@ export interface ScopeExtension extends RegistryItem {
|
|
|
78
77
|
*/
|
|
79
78
|
addDescriptions(context: AstNode, referenceType: string, document: LangiumDocument, accept: ScopeDescriptionAcceptor): void;
|
|
80
79
|
}
|
|
80
|
+
/** The scope-extension descriptions for one reference, split by tier. */
|
|
81
|
+
export interface ScopeExtensionDescriptions {
|
|
82
|
+
readonly local: readonly TieredAstNodeDescription[];
|
|
83
|
+
readonly universal: readonly TieredAstNodeDescription[];
|
|
84
|
+
}
|
|
81
85
|
/**
|
|
82
86
|
* Public contract for the per-language scope-extension service. Extends
|
|
83
87
|
* the {@link ScopeExtensionRegistry} (the imperative `register` surface
|
|
84
|
-
* contributions use) with the
|
|
85
|
-
*
|
|
86
|
-
* `layerUniversalExtension` helpers, which layer scope-extension
|
|
87
|
-
* contributions around the cached project chain.
|
|
88
|
-
*
|
|
89
|
-
* Adopter overrides go through {@link DefaultScopeExtensionService}; the
|
|
90
|
-
* interface keeps the public API stable while internals
|
|
91
|
-
* (`collectExtensionDescriptions` walk) stay `protected` on the default
|
|
92
|
-
* class.
|
|
88
|
+
* contributions use) with the query `HydraniumScopeProvider` builds its
|
|
89
|
+
* extension tiers from.
|
|
93
90
|
*/
|
|
94
91
|
export interface ScopeExtensionService extends ScopeExtensionRegistry {
|
|
95
92
|
/**
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
93
|
+
* Run every extension registered for `referenceType` once against
|
|
94
|
+
* `context`, and answer its descriptions by tier. A caller that needs
|
|
95
|
+
* both tiers takes them from one call: a call per tier runs every
|
|
96
|
+
* extension twice.
|
|
100
97
|
*/
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Layer this language's `universal`-tier scope-extension descriptions
|
|
104
|
-
* BELOW `outerScope` for the given reference type. Returns `outerScope`
|
|
105
|
-
* unchanged when no extension contributes a `universal`-tier
|
|
106
|
-
* description for the type.
|
|
107
|
-
*/
|
|
108
|
-
getUniversalExtensionScope(referenceType: string, context: AstNode, outerScope: Scope): Scope;
|
|
98
|
+
getDescriptions(referenceType: string, context: AstNode): ScopeExtensionDescriptions;
|
|
109
99
|
}
|
|
110
100
|
export type ScopeExtensionServiceOptions = LogNameOptions;
|
|
111
101
|
/**
|
|
@@ -117,14 +107,20 @@ export type ScopeExtensionServiceOptions = LogNameOptions;
|
|
|
117
107
|
* separate from the query-time scope-resolution concern (which only reads).
|
|
118
108
|
*
|
|
119
109
|
* Lives in the per-language `references` group alongside `ScopeProvider`,
|
|
120
|
-
* which consumes
|
|
121
|
-
* / {@link getUniversalExtensionScope}). Designed as a base class; adopters
|
|
110
|
+
* which consumes {@link getDescriptions}. Designed as a base class; adopters
|
|
122
111
|
* extend it and call `register` in their constructor.
|
|
112
|
+
*
|
|
113
|
+
* At `debug`, each extension's calls and self-time go into one profile
|
|
114
|
+
* session, reported when a build starts and when it ends. A report thus
|
|
115
|
+
* covers one build, validation included, or the calls made between two
|
|
116
|
+
* builds, such as a reference picker's.
|
|
123
117
|
*/
|
|
124
118
|
export declare class DefaultScopeExtensionService implements ScopeExtensionService {
|
|
125
119
|
protected readonly services: ServerLanguageServices;
|
|
126
120
|
protected readonly scopeExtensions: Registry<ScopeExtension>;
|
|
127
121
|
protected readonly tracer: Tracer;
|
|
122
|
+
/** Open from the first profiled call until {@link reportProfile}. */
|
|
123
|
+
protected profileSession?: ProfileSession;
|
|
128
124
|
constructor(services: ServerLanguageServices, options?: ScopeExtensionServiceOptions);
|
|
129
125
|
/**
|
|
130
126
|
* Register a single scope extension. Doubles as the imperative low-level
|
|
@@ -133,17 +129,25 @@ export declare class DefaultScopeExtensionService implements ScopeExtensionServi
|
|
|
133
129
|
* contributions. Throws on duplicate id.
|
|
134
130
|
*/
|
|
135
131
|
register(extension: ScopeExtension): Disposable;
|
|
136
|
-
getLocalExtensionScope(referenceType: string, context: AstNode, outerScope: Scope): Scope;
|
|
137
|
-
getUniversalExtensionScope(referenceType: string, context: AstNode, outerScope: Scope): Scope;
|
|
138
132
|
/**
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
133
|
+
* Holds the profile wrap, which an override would have to copy; to change
|
|
134
|
+
* which extensions run, override {@link extensionsFor}.
|
|
135
|
+
*/
|
|
136
|
+
getDescriptions(referenceType: string, context: AstNode): ScopeExtensionDescriptions;
|
|
137
|
+
/** The extensions that run for one reference: by default, those registered for `referenceType`. */
|
|
138
|
+
protected extensionsFor(referenceType: string, _context: AstNode): ScopeExtension[];
|
|
139
|
+
/**
|
|
140
|
+
* Report the profile session, if one is open, and start the next one fresh:
|
|
141
|
+
* one line per extension, its calls and self-time. Not a share of the
|
|
142
|
+
* session's time, which runs from the first call to the report and so takes
|
|
143
|
+
* in whatever happened between the calls.
|
|
144
|
+
*/
|
|
145
|
+
protected reportProfile(): void;
|
|
146
|
+
/**
|
|
147
|
+
* The log line of one extension's {@link reportProfile} entry. It names the
|
|
148
|
+
* language: each has its own session, and an extension id is unique only
|
|
149
|
+
* within its language.
|
|
146
150
|
*/
|
|
147
|
-
protected
|
|
151
|
+
protected formatProfileRecord(record: ProfileRecord): string;
|
|
148
152
|
}
|
|
149
153
|
//# sourceMappingURL=scope-extension-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope-extension-service.d.ts","sourceRoot":"","sources":["../../../src/langium/scope/scope-extension-service.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,KAAK,OAAO,EAAY,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"scope-extension-service.d.ts","sourceRoot":"","sources":["../../../src/langium/scope/scope-extension-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
*
|
|
7
7
|
* SPDX-License-Identifier: MIT
|
|
8
8
|
********************************************************************************/
|
|
9
|
-
import { AstUtils
|
|
9
|
+
import { AstUtils } from '@hydranium/langium';
|
|
10
|
+
import { Format, Logger } from '@hydranium/protocol';
|
|
10
11
|
import { Registry } from '../../util/registry.js';
|
|
11
12
|
/** Build a {@link ScopeDescriptionAcceptor} that synthesises typed descriptions via `descriptions` and accumulates them into `into`. */
|
|
12
13
|
function createScopeDescriptionAcceptor(into, descriptions) {
|
|
@@ -16,6 +17,7 @@ function createScopeDescriptionAcceptor(into, descriptions) {
|
|
|
16
17
|
push: description => into.push(description)
|
|
17
18
|
};
|
|
18
19
|
}
|
|
20
|
+
const NO_DESCRIPTIONS = { local: [], universal: [] };
|
|
19
21
|
/**
|
|
20
22
|
* Default {@link ScopeExtensionService} implementation. Per-language
|
|
21
23
|
* registry for dynamic scope contributions: extra resolvable descriptions
|
|
@@ -25,14 +27,20 @@ function createScopeDescriptionAcceptor(into, descriptions) {
|
|
|
25
27
|
* separate from the query-time scope-resolution concern (which only reads).
|
|
26
28
|
*
|
|
27
29
|
* Lives in the per-language `references` group alongside `ScopeProvider`,
|
|
28
|
-
* which consumes
|
|
29
|
-
* / {@link getUniversalExtensionScope}). Designed as a base class; adopters
|
|
30
|
+
* which consumes {@link getDescriptions}. Designed as a base class; adopters
|
|
30
31
|
* extend it and call `register` in their constructor.
|
|
32
|
+
*
|
|
33
|
+
* At `debug`, each extension's calls and self-time go into one profile
|
|
34
|
+
* session, reported when a build starts and when it ends. A report thus
|
|
35
|
+
* covers one build, validation included, or the calls made between two
|
|
36
|
+
* builds, such as a reference picker's.
|
|
31
37
|
*/
|
|
32
38
|
export class DefaultScopeExtensionService {
|
|
33
39
|
services;
|
|
34
40
|
scopeExtensions = new Registry();
|
|
35
41
|
tracer;
|
|
42
|
+
/** Open from the first profiled call until {@link reportProfile}. */
|
|
43
|
+
profileSession;
|
|
36
44
|
constructor(services, options = {}) {
|
|
37
45
|
this.services = services;
|
|
38
46
|
this.tracer = services.shared.Tracer.for(options.logName ?? 'ScopeExtension').trace('instantiated');
|
|
@@ -44,6 +52,10 @@ export class DefaultScopeExtensionService {
|
|
|
44
52
|
for (const contribution of Object.values(contributions)) {
|
|
45
53
|
contribution.registerScopeExtensions(this);
|
|
46
54
|
}
|
|
55
|
+
// Optional for the same reason: a stub tree may carry no builder.
|
|
56
|
+
const builder = services.shared.workspace.DocumentBuilder;
|
|
57
|
+
builder?.onUpdate(() => this.reportProfile());
|
|
58
|
+
builder?.onBuildEnded(() => this.reportProfile());
|
|
47
59
|
}
|
|
48
60
|
/**
|
|
49
61
|
* Register a single scope extension. Doubles as the imperative low-level
|
|
@@ -54,41 +66,57 @@ export class DefaultScopeExtensionService {
|
|
|
54
66
|
register(extension) {
|
|
55
67
|
return this.scopeExtensions.register(extension);
|
|
56
68
|
}
|
|
57
|
-
getLocalExtensionScope(referenceType, context, outerScope) {
|
|
58
|
-
const local = this.collectExtensionDescriptions(referenceType, context, 'local');
|
|
59
|
-
if (local.length === 0) {
|
|
60
|
-
return outerScope;
|
|
61
|
-
}
|
|
62
|
-
return new StreamScope(stream(local), outerScope);
|
|
63
|
-
}
|
|
64
|
-
getUniversalExtensionScope(referenceType, context, outerScope) {
|
|
65
|
-
const universal = this.collectExtensionDescriptions(referenceType, context, 'universal');
|
|
66
|
-
if (universal.length === 0) {
|
|
67
|
-
return outerScope;
|
|
68
|
-
}
|
|
69
|
-
return new StreamScope(outerScope.getAllElements(), new MapScope(universal));
|
|
70
|
-
}
|
|
71
69
|
/**
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
* `push`-ed descriptions of other tiers are silently dropped here —
|
|
75
|
-
* the per-tier query methods only return descriptions matching their
|
|
76
|
-
* tier. (`local` and `universal` are the only acceptor entry points;
|
|
77
|
-
* `push` is the escape hatch for pre-built descriptions and is the
|
|
78
|
-
* only path that could carry other tiers.)
|
|
70
|
+
* Holds the profile wrap, which an override would have to copy; to change
|
|
71
|
+
* which extensions run, override {@link extensionsFor}.
|
|
79
72
|
*/
|
|
80
|
-
|
|
81
|
-
const extensionsForType = this.
|
|
73
|
+
getDescriptions(referenceType, context) {
|
|
74
|
+
const extensionsForType = this.extensionsFor(referenceType, context);
|
|
82
75
|
if (extensionsForType.length === 0) {
|
|
83
|
-
return
|
|
76
|
+
return NO_DESCRIPTIONS;
|
|
84
77
|
}
|
|
85
78
|
const document = AstUtils.getDocument(context);
|
|
86
79
|
const collected = [];
|
|
87
80
|
const accept = createScopeDescriptionAcceptor(collected, this.services.workspace.AstNodeDescriptionProvider);
|
|
81
|
+
const session = Logger.isLevelEnabled('debug') ? (this.profileSession ??= this.tracer.profile('scope-extension')) : undefined;
|
|
88
82
|
for (const extension of extensionsForType) {
|
|
89
|
-
|
|
83
|
+
if (session) {
|
|
84
|
+
session.scope(extension.id, () => extension.addDescriptions(context, referenceType, document, accept));
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
extension.addDescriptions(context, referenceType, document, accept);
|
|
88
|
+
}
|
|
90
89
|
}
|
|
91
|
-
return
|
|
90
|
+
return {
|
|
91
|
+
local: collected.filter(description => description.tier === 'local'),
|
|
92
|
+
universal: collected.filter(description => description.tier === 'universal')
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/** The extensions that run for one reference: by default, those registered for `referenceType`. */
|
|
96
|
+
extensionsFor(referenceType, _context) {
|
|
97
|
+
return this.scopeExtensions.all().filter(extension => extension.referenceTypes.includes(referenceType));
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Report the profile session, if one is open, and start the next one fresh:
|
|
101
|
+
* one line per extension, its calls and self-time. Not a share of the
|
|
102
|
+
* session's time, which runs from the first call to the report and so takes
|
|
103
|
+
* in whatever happened between the calls.
|
|
104
|
+
*/
|
|
105
|
+
reportProfile() {
|
|
106
|
+
const session = this.profileSession;
|
|
107
|
+
this.profileSession = undefined;
|
|
108
|
+
for (const record of session?.records() ?? []) {
|
|
109
|
+
this.tracer.debug(this.formatProfileRecord(record));
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* The log line of one extension's {@link reportProfile} entry. It names the
|
|
114
|
+
* language: each has its own session, and an extension id is unique only
|
|
115
|
+
* within its language.
|
|
116
|
+
*/
|
|
117
|
+
formatProfileRecord(record) {
|
|
118
|
+
const language = this.services.LanguageMetaData.languageId;
|
|
119
|
+
return `[profile scope-extension ${language}] ${record.id} ×${record.count} ${Format.elapsed(record.selfMs)}`;
|
|
92
120
|
}
|
|
93
121
|
}
|
|
94
122
|
//# sourceMappingURL=scope-extension-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope-extension-service.js","sourceRoot":"","sources":["../../../src/langium/scope/scope-extension-service.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAgB,QAAQ,EAAwB,
|
|
1
|
+
{"version":3,"file":"scope-extension-service.js","sourceRoot":"","sources":["../../../src/langium/scope/scope-extension-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,7 @@ import type { ProjectManager } from './project/project-manager.js';
|
|
|
22
22
|
import type { ExtendedServiceRegistry } from './service-registry.js';
|
|
23
23
|
import type { DocumentUriPolicy } from './workspace/document-uri-policy.js';
|
|
24
24
|
import type { HydraniumWorkspaceManager } from './workspace/hydranium-workspace-manager.js';
|
|
25
|
+
import type { HydraniumDocumentBuilder } from './document-builder/document-builder.js';
|
|
25
26
|
import type { AdditionalDocumentContribution } from './workspace/additional-document-contribution.js';
|
|
26
27
|
/**
|
|
27
28
|
* Minimum shared-services shape every framework component reads from.
|
|
@@ -83,6 +84,7 @@ export interface ServerSharedServicesMinimal<TProject extends Project = Project>
|
|
|
83
84
|
FileSystemProvider: WritableFileSystemProvider;
|
|
84
85
|
WorkspaceManager: HydraniumWorkspaceManager;
|
|
85
86
|
LangiumDocuments: HydraniumDocumentRegistry;
|
|
87
|
+
DocumentBuilder: HydraniumDocumentBuilder;
|
|
86
88
|
ProjectManager: ProjectManager<TProject>;
|
|
87
89
|
SelfSaveRegistry: SelfSaveRegistry;
|
|
88
90
|
BuildPipelineIntegration: BuildPipelineIntegration;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-services.d.ts","sourceRoot":"","sources":["../../src/langium/shared-services.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAC5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kDAAkD,CAAC;AACjG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAC5F,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,iDAAiD,CAAC;AAEtG;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,2BAA2B,CAAC,QAAQ,SAAS,OAAO,GAAG,OAAO,CAAE,SAAQ,yBAAyB;IAC/G,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;IACpE;;;;OAIG;IACH,eAAe,EAAE,eAAe,CAAC;IACjC,uEAAuE;IACvE,YAAY,EAAE,YAAY,CAAC;IAC3B;;;;;;;;OAQG;IACH,eAAe,EAAE,uBAAuB,CAAC;IACzC,SAAS,EAAE,yBAAyB,CAAC,WAAW,CAAC,GAAG;QAGjD,kBAAkB,EAAE,0BAA0B,CAAC;QAI/C,gBAAgB,EAAE,yBAAyB,CAAC;QAK7B,gBAAgB,EAAE,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"shared-services.d.ts","sourceRoot":"","sources":["../../src/langium/shared-services.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAC5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kDAAkD,CAAC;AACjG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAC5F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,iDAAiD,CAAC;AAEtG;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,2BAA2B,CAAC,QAAQ,SAAS,OAAO,GAAG,OAAO,CAAE,SAAQ,yBAAyB;IAC/G,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;IACpE;;;;OAIG;IACH,eAAe,EAAE,eAAe,CAAC;IACjC,uEAAuE;IACvE,YAAY,EAAE,YAAY,CAAC;IAC3B;;;;;;;;OAQG;IACH,eAAe,EAAE,uBAAuB,CAAC;IACzC,SAAS,EAAE,yBAAyB,CAAC,WAAW,CAAC,GAAG;QAGjD,kBAAkB,EAAE,0BAA0B,CAAC;QAI/C,gBAAgB,EAAE,yBAAyB,CAAC;QAK7B,gBAAgB,EAAE,yBAAyB,CAAC;QAI5C,eAAe,EAAE,wBAAwB,CAAC;QACzD,cAAc,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;QACzC,gBAAgB,EAAE,gBAAgB,CAAC;QACnC,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,qBAAqB,EAAE,qBAAqB,CAAC;QAC7C,mBAAmB,EAAE,mBAAmB,CAAC;QACzC,iBAAiB,EAAE,iBAAiB,CAAC;QACrC,WAAW,EAAE,WAAW,CAAC;QACzB,kBAAkB,EAAE,kBAAkB,CAAC;KACzC,CAAC;CACJ;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,2BAA2B,KAAK,OAAO,GAAG,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,CAEvI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-services.js","sourceRoot":"","sources":["../../src/langium/shared-services.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;
|
|
1
|
+
{"version":3,"file":"shared-services.js","sourceRoot":"","sources":["../../src/langium/shared-services.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAyGlF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,mBAAmB,CAAU,MAA0D;IACpG,OAAO,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,QAAuC,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* SPDX-License-Identifier: MIT
|
|
8
8
|
********************************************************************************/
|
|
9
|
+
import { type Clock } from '@hydranium/protocol';
|
|
9
10
|
/**
|
|
10
11
|
* Errnos Windows raises when a replacing `rename` meets a handle already on the
|
|
11
12
|
* destination open. POSIX renames are unaffected by open handles, so these
|
|
@@ -32,6 +33,7 @@ export declare const RENAME_BUDGET_MS = 10000;
|
|
|
32
33
|
export interface RenameOverOpenReadersOptions {
|
|
33
34
|
readonly rename?: (from: string, to: string) => Promise<void>;
|
|
34
35
|
readonly budgetMs?: number;
|
|
36
|
+
readonly clock?: Clock;
|
|
35
37
|
}
|
|
36
38
|
/**
|
|
37
39
|
* `rename` the staged content over `destination`, retrying while Windows
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rename-over-open-readers.d.ts","sourceRoot":"","sources":["../../src/node/rename-over-open-readers.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;
|
|
1
|
+
{"version":3,"file":"rename-over-open-readers.d.ts","sourceRoot":"","sources":["../../src/node/rename-over-open-readers.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,KAAK,KAAK,EAAe,MAAM,qBAAqB,CAAC;AAG9D;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,aAAwC,CAAC;AAE7E;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB,QAAS,CAAC;AAEvC,0EAA0E;AAC1E,MAAM,WAAW,4BAA4B;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;CACzB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,qBAAqB,CACxC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,4BAAiC,GAC1C,OAAO,CAAC,IAAI,CAAC,CAoBf"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* SPDX-License-Identifier: MIT
|
|
8
8
|
********************************************************************************/
|
|
9
|
+
import { SystemClock } from '@hydranium/protocol';
|
|
9
10
|
import * as fsp from 'node:fs/promises';
|
|
10
11
|
/**
|
|
11
12
|
* Errnos Windows raises when a replacing `rename` meets a handle already on the
|
|
@@ -46,7 +47,8 @@ export const RENAME_BUDGET_MS = 10_000;
|
|
|
46
47
|
*/
|
|
47
48
|
export async function renameOverOpenReaders(staging, destination, options = {}) {
|
|
48
49
|
const rename = options.rename ?? fsp.rename;
|
|
49
|
-
const
|
|
50
|
+
const clock = options.clock ?? new SystemClock();
|
|
51
|
+
const deadline = clock.now() + (options.budgetMs ?? RENAME_BUDGET_MS);
|
|
50
52
|
for (let attempt = 0;; attempt++) {
|
|
51
53
|
try {
|
|
52
54
|
await rename(staging, destination);
|
|
@@ -54,11 +56,13 @@ export async function renameOverOpenReaders(staging, destination, options = {})
|
|
|
54
56
|
}
|
|
55
57
|
catch (err) {
|
|
56
58
|
const code = err instanceof Error && 'code' in err ? String(err.code) : undefined;
|
|
57
|
-
if (code === undefined || !RENAME_CONTENTION_CODES.has(code) ||
|
|
59
|
+
if (code === undefined || !RENAME_CONTENTION_CODES.has(code) || clock.now() >= deadline) {
|
|
58
60
|
throw err;
|
|
59
61
|
}
|
|
60
62
|
// Backs off to keep a long contention window from spinning, capped so
|
|
61
63
|
// a late attempt still lands promptly once the handle is released.
|
|
64
|
+
// Not `clock.setTimer`: it unrefs its timer, so a process with only
|
|
65
|
+
// this write pending could exit mid-backoff.
|
|
62
66
|
await new Promise(resolve => setTimeout(resolve, Math.min(2 ** attempt, 50)));
|
|
63
67
|
}
|
|
64
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rename-over-open-readers.js","sourceRoot":"","sources":["../../src/node/rename-over-open-readers.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AAExC;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAE7E;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"rename-over-open-readers.js","sourceRoot":"","sources":["../../src/node/rename-over-open-readers.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAc,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AAExC;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAE7E;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AASvC;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACxC,OAAe,EACf,WAAmB,EACnB,OAAO,GAAiC,EAAE;IAE1C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,WAAW,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,gBAAgB,CAAC,CAAC;IACtE,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;QACjC,IAAI,CAAC;YACF,MAAM,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACnC,OAAO;QACV,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,GAAG,YAAY,KAAK,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAE,GAA6B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7G,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;gBACvF,MAAM,GAAG,CAAC;YACb,CAAC;YACD,sEAAsE;YACtE,mEAAmE;YACnE,oEAAoE;YACpE,6CAA6C;YAC7C,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACjF,CAAC;IACJ,CAAC;AACJ,CAAC"}
|
|
@@ -49,6 +49,10 @@ export interface CaptureServerLogOptions {
|
|
|
49
49
|
*
|
|
50
50
|
* The server's own threshold is left alone: it governs what the client sees,
|
|
51
51
|
* not the file, and the setting replaces it within moments of startup.
|
|
52
|
+
*
|
|
53
|
+
* The server runs every path guarded on a level this admits, its debug
|
|
54
|
+
* profiling included, so a timing run captured at a level that admits debug
|
|
55
|
+
* measures that work too.
|
|
52
56
|
*/
|
|
53
57
|
level?: LogThreshold;
|
|
54
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-log-capture.d.ts","sourceRoot":"","sources":["../../../src/testing/playwright/server-log-capture.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAKlF,OAAO,EAIJ,KAAK,YAAY,EAEnB,MAAM,qBAAqB,CAAC;AAG7B;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,6BAA6B,CAAC;AACrE;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,gCAAgC,CAAC;AAC3E;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,iCAAiC,CAAC;AAE7E,+GAA+G;AAC/G,eAAO,MAAM,0BAA0B,EAAE,SAAS,MAAM,EAAyB,CAAC;AAElF,4DAA4D;AAC5D,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAqB/D,MAAM,WAAW,uBAAuB;IACrC;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb
|
|
1
|
+
{"version":3,"file":"server-log-capture.d.ts","sourceRoot":"","sources":["../../../src/testing/playwright/server-log-capture.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-log-capture.js","sourceRoot":"","sources":["../../../src/testing/playwright/server-log-capture.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACvH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACJ,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EAErB,aAAa,EACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAEtF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,0BAA0B,CAAC;AACrE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,6BAA6B,CAAC;AAC3E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,8BAA8B,CAAC;AAE7E,+GAA+G;AAC/G,MAAM,CAAC,MAAM,0BAA0B,GAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAKlF,SAAS,aAAa,CAAC,KAAyB;IAC7C,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7F,CAAC;AAED,mFAAmF;AACnF,SAAS,qBAAqB,CAAC,KAAyB;IACrD,IAAI,CAAC,KAAK,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACpB,CAAC;IACD,MAAM,MAAM,GAAG,KAAK;SAChB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtC,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACjD,CAAC;AAED,sFAAsF;AACtF,MAAM,qBAAqB,GAAG,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"server-log-capture.js","sourceRoot":"","sources":["../../../src/testing/playwright/server-log-capture.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
********************************************************************************/
|
|
9
9
|
import { type DocumentBuilder, type DocumentState, type LangiumDocument, type URI, type WorkspaceLock } from '@hydranium/langium';
|
|
10
10
|
import { type CancellationToken } from 'vscode-languageserver';
|
|
11
|
-
import { HydraniumDocumentBuilder } from '../langium/document-builder/document-builder.js';
|
|
11
|
+
import { type BuildEndedEvent, HydraniumDocumentBuilder } from '../langium/document-builder/document-builder.js';
|
|
12
12
|
/** Recorded call to a stubbed {@link DocumentBuilder} method. */
|
|
13
13
|
export interface RecordedBuilderCall<TArgs extends unknown[]> {
|
|
14
14
|
readonly args: TArgs;
|
|
@@ -60,7 +60,7 @@ export interface StubWaitUntilGate {
|
|
|
60
60
|
* stub claims but doesn't meaningfully implement) fails with a clear
|
|
61
61
|
* message instead of "undefined is not a function".
|
|
62
62
|
*/
|
|
63
|
-
export interface StubDocumentBuilder extends Pick<DocumentBuilder, 'update' | 'onDocumentPhase' | 'onUpdate' | 'build' | 'onBuildPhase' | 'resetToState' | 'updateBuildOptions'>, Pick<HydraniumDocumentBuilder, 'onDocumentPhaseDelivered' | 'scheduleUpdate' | 'finalBuildState'> {
|
|
63
|
+
export interface StubDocumentBuilder extends Pick<DocumentBuilder, 'update' | 'onDocumentPhase' | 'onUpdate' | 'build' | 'onBuildPhase' | 'resetToState' | 'updateBuildOptions'>, Pick<HydraniumDocumentBuilder, 'onDocumentPhaseDelivered' | 'scheduleUpdate' | 'finalBuildState' | 'onBuildEnded'> {
|
|
64
64
|
/**
|
|
65
65
|
* Single-overload stub of {@link DocumentBuilder.waitUntil}. Real has
|
|
66
66
|
* two overloads (`(state, cancelToken?): Promise<void>` and
|
|
@@ -90,6 +90,13 @@ export interface StubDocumentBuilder extends Pick<DocumentBuilder, 'update' | 'o
|
|
|
90
90
|
* looking wired.
|
|
91
91
|
*/
|
|
92
92
|
fireBuildPhase(state: DocumentState, built: LangiumDocument[], cancelToken?: CancellationToken): void;
|
|
93
|
+
/**
|
|
94
|
+
* Synchronously fire every {@link HydraniumDocumentBuilder.onBuildEnded}
|
|
95
|
+
* listener with `event`. As in the real builder, one that throws does not
|
|
96
|
+
* stop the others; the real builder logs the error, and this stub, having
|
|
97
|
+
* no logger, rethrows the first one once all have run.
|
|
98
|
+
*/
|
|
99
|
+
fireBuildEnded(event: BuildEndedEvent): void;
|
|
93
100
|
/**
|
|
94
101
|
* Hold the next {@link waitUntil} call. The returned handle releases it;
|
|
95
102
|
* the call's return value resolves on the next tick after `resolve` runs.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stub-document-builder.d.ts","sourceRoot":"","sources":["../../src/testing/stub-document-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EACJ,KAAK,eAAe,EAGpB,KAAK,aAAa,EAGlB,KAAK,eAAe,EACpB,KAAK,GAAG,EACR,KAAK,aAAa,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,iBAAiB,EAAc,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;
|
|
1
|
+
{"version":3,"file":"stub-document-builder.d.ts","sourceRoot":"","sources":["../../src/testing/stub-document-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EACJ,KAAK,eAAe,EAGpB,KAAK,aAAa,EAGlB,KAAK,eAAe,EACpB,KAAK,GAAG,EACR,KAAK,aAAa,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,iBAAiB,EAAc,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,KAAK,eAAe,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAEjH,iEAAiE;AACjE,MAAM,WAAW,mBAAmB,CAAC,KAAK,SAAS,OAAO,EAAE;IACzD,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;CACvB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAC/B;;;;;;;OAOG;IACH,OAAO,IAAI,IAAI,CAAC;IAChB,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,mBACd,SACG,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,iBAAiB,GAAG,UAAU,GAAG,OAAO,GAAG,cAAc,GAAG,cAAc,GAAG,oBAAoB,CAAC,EACnI,IAAI,CAAC,wBAAwB,EAAE,0BAA0B,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,cAAc,CAAC;IACrH;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;IACrE,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACzE,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC,aAAa,EAAE,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC9F;;;;;;OAMG;IACH,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAClG,+DAA+D;IAC/D,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACnD;;;;;;OAMG;IACH,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,WAAW,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACtG;;;;;OAKG;IACH,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IAC7C;;;OAGG;IACH,iBAAiB,IAAI,iBAAiB,CAAC;IACvC,2EAA2E;IAC3E,KAAK,IAAI,IAAI,CAAC;CAChB;AAqBD;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,aAAa,CAAC,EAAE,aAAa,GAAG,mBAAmB,CAwM1F"}
|
|
@@ -44,6 +44,7 @@ export function makeStubDocumentBuilder(workspaceLock) {
|
|
|
44
44
|
const deliveredListeners = new Map();
|
|
45
45
|
const buildPhaseListeners = new Map();
|
|
46
46
|
const onUpdateListeners = [];
|
|
47
|
+
const buildEndedListeners = [];
|
|
47
48
|
const gates = [];
|
|
48
49
|
const updateCalls = [];
|
|
49
50
|
const waitUntilCalls = [];
|
|
@@ -149,6 +150,29 @@ export function makeStubDocumentBuilder(workspaceLock) {
|
|
|
149
150
|
reraise(listener(changed, deleted));
|
|
150
151
|
}
|
|
151
152
|
},
|
|
153
|
+
onBuildEnded(listener) {
|
|
154
|
+
buildEndedListeners.push(listener);
|
|
155
|
+
return Disposable.create(() => {
|
|
156
|
+
const idx = buildEndedListeners.indexOf(listener);
|
|
157
|
+
if (idx >= 0) {
|
|
158
|
+
buildEndedListeners.splice(idx, 1);
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
},
|
|
162
|
+
fireBuildEnded(event) {
|
|
163
|
+
const failures = [];
|
|
164
|
+
for (const listener of buildEndedListeners.slice()) {
|
|
165
|
+
try {
|
|
166
|
+
listener(event);
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
failures.push(error);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
if (failures.length > 0) {
|
|
173
|
+
throw failures[0];
|
|
174
|
+
}
|
|
175
|
+
},
|
|
152
176
|
onBuildPhase(state, listener) {
|
|
153
177
|
const list = buildPhaseListeners.get(state) ?? [];
|
|
154
178
|
list.push(listener);
|
|
@@ -205,6 +229,7 @@ export function makeStubDocumentBuilder(workspaceLock) {
|
|
|
205
229
|
phaseListeners.clear();
|
|
206
230
|
deliveredListeners.clear();
|
|
207
231
|
onUpdateListeners.length = 0;
|
|
232
|
+
buildEndedListeners.length = 0;
|
|
208
233
|
gates.length = 0;
|
|
209
234
|
updateCalls.length = 0;
|
|
210
235
|
waitUntilCalls.length = 0;
|