@typespec/compiler 1.5.0-dev.0 → 1.5.0-dev.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/manifest.js +2 -2
  2. package/dist/src/server/compile-service.d.ts +6 -6
  3. package/dist/src/server/compile-service.d.ts.map +1 -1
  4. package/dist/src/server/compile-service.js +46 -36
  5. package/dist/src/server/compile-service.js.map +1 -1
  6. package/dist/src/server/constants.d.ts +5 -4
  7. package/dist/src/server/constants.d.ts.map +1 -1
  8. package/dist/src/server/constants.js +5 -4
  9. package/dist/src/server/constants.js.map +1 -1
  10. package/dist/src/server/diagnostics.d.ts.map +1 -1
  11. package/dist/src/server/diagnostics.js +23 -8
  12. package/dist/src/server/diagnostics.js.map +1 -1
  13. package/dist/src/server/file-service.d.ts +4 -1
  14. package/dist/src/server/file-service.d.ts.map +1 -1
  15. package/dist/src/server/file-service.js +30 -0
  16. package/dist/src/server/file-service.js.map +1 -1
  17. package/dist/src/server/server-compile-manager.d.ts +55 -0
  18. package/dist/src/server/server-compile-manager.d.ts.map +1 -0
  19. package/dist/src/server/server-compile-manager.js +269 -0
  20. package/dist/src/server/server-compile-manager.js.map +1 -0
  21. package/dist/src/server/server.js +1 -0
  22. package/dist/src/server/server.js.map +1 -1
  23. package/dist/src/server/serverlib.d.ts.map +1 -1
  24. package/dist/src/server/serverlib.js +127 -34
  25. package/dist/src/server/serverlib.js.map +1 -1
  26. package/dist/src/server/types.d.ts +7 -3
  27. package/dist/src/server/types.d.ts.map +1 -1
  28. package/dist/src/server/types.js.map +1 -1
  29. package/dist/src/server/update-manager.d.ts +23 -4
  30. package/dist/src/server/update-manager.d.ts.map +1 -1
  31. package/dist/src/server/update-manager.js +110 -18
  32. package/dist/src/server/update-manager.js.map +1 -1
  33. package/dist/src/testing/test-server-host.d.ts.map +1 -1
  34. package/dist/src/testing/test-server-host.js +15 -1
  35. package/dist/src/testing/test-server-host.js.map +1 -1
  36. package/package.json +1 -1
@@ -1,11 +1,29 @@
1
+ import { TextDocumentIdentifier } from "vscode-languageserver";
1
2
  import { TextDocument } from "vscode-languageserver-textdocument";
3
+ import { ServerLog } from "./types.js";
4
+ interface PendingUpdate {
5
+ latest: TextDocument | TextDocumentIdentifier;
6
+ latestUpdateTimestamp: number;
7
+ }
8
+ export type UpdateType = "opened" | "changed" | "closed" | "renamed";
9
+ type UpdateCallback = (updates: PendingUpdate[]) => Promise<void>;
2
10
  /**
3
11
  * Track file updates and recompile the affected files after some debounce time.
4
12
  */
5
- export declare class UpdateManger<T> {
13
+ export declare class UpdateManger {
6
14
  #private;
7
- constructor(updateCb: (document: TextDocument) => Promise<T>);
8
- scheduleUpdate(document: TextDocument): void;
15
+ private _log;
16
+ constructor(log: (sl: ServerLog) => void);
17
+ setCallback(callback: UpdateCallback): void;
18
+ get docChangedVersion(): number;
19
+ private bumpDocChangedVersion;
20
+ private pushDocChangedTimestamp;
21
+ private readonly WINDOW;
22
+ private readonly DEFAULT_DELAY;
23
+ private readonly DELAY_CANDIDATES;
24
+ private getWindowedDocChangedTimesteps;
25
+ private getAdaptiveDebounceDelay;
26
+ scheduleUpdate(document: TextDocument | TextDocumentIdentifier, UpdateType: UpdateType): void;
9
27
  }
10
28
  /**
11
29
  * Debounces a function but also waits at minimum the specified number of milliseconds until
@@ -15,5 +33,6 @@ export declare class UpdateManger<T> {
15
33
  * @param fn The function
16
34
  * @param milliseconds Number of milliseconds to debounce/throttle
17
35
  */
18
- export declare function debounceThrottle(fn: () => void, milliseconds: number): () => void;
36
+ export declare function debounceThrottle(fn: () => void | Promise<void>, getDelay: () => number, log: (sl: ServerLog) => void): () => void;
37
+ export {};
19
38
  //# sourceMappingURL=update-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-manager.d.ts","sourceRoot":"","sources":["../../../src/server/update-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAMlE;;GAEG;AACH,qBAAa,YAAY,CAAC,CAAC;;gBAIb,QAAQ,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC;IAIrD,cAAc,CAAC,QAAQ,EAAE,YAAY;CAsB7C;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,IAAI,CAmBjF"}
1
+ {"version":3,"file":"update-manager.d.ts","sourceRoot":"","sources":["../../../src/server/update-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,UAAU,aAAa;IACrB,MAAM,EAAE,YAAY,GAAG,sBAAsB,CAAC;IAC9C,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAErE,KAAK,cAAc,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAClE;;GAEG;AACH,qBAAa,YAAY;;IAQvB,OAAO,CAAC,IAAI,CAA0B;gBAE1B,GAAG,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI;IAsBjC,WAAW,CAAC,QAAQ,EAAE,cAAc;IAI3C,IAAW,iBAAiB,WAE3B;IAED,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,uBAAuB;IAK/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAO;IAGrC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAiB/B;IAEF,OAAO,CAAC,8BAA8B;IAQtC,OAAO,CAAC,wBAAwB,CAS9B;IAEK,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,sBAAsB,EAAE,UAAU,EAAE,UAAU;CAuB9F;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAC9B,QAAQ,EAAE,MAAM,MAAM,EACtB,GAAG,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,GAC3B,MAAM,IAAI,CAwCZ"}
@@ -1,33 +1,104 @@
1
- import { UPDATE_DEBOUNCE_TIME } from "./constants.js";
1
+ import { ENABLE_UPDATE_MANAGER_LOGGING } from "./constants.js";
2
2
  /**
3
3
  * Track file updates and recompile the affected files after some debounce time.
4
4
  */
5
5
  export class UpdateManger {
6
6
  #pendingUpdates = new Map();
7
7
  #updateCb;
8
- constructor(updateCb) {
9
- this.#updateCb = updateCb;
8
+ // overall version which should be bumped for any actual doc change
9
+ #docChangedVersion = 0;
10
+ #scheduleBatchUpdate;
11
+ #docChangedTimesteps = [];
12
+ _log;
13
+ constructor(log) {
14
+ this._log =
15
+ typeof process !== "undefined" &&
16
+ process?.env?.[ENABLE_UPDATE_MANAGER_LOGGING]?.toLowerCase() === "true"
17
+ ? (sl) => {
18
+ log({ ...sl, message: `#FromUpdateManager: ${sl.message}` });
19
+ }
20
+ : () => { };
21
+ this.#scheduleBatchUpdate = debounceThrottle(async () => {
22
+ const updates = this.#pendingUpdates;
23
+ this.#pendingUpdates = new Map();
24
+ if (updates.size > 0) {
25
+ await this.#update(Array.from(updates.values()));
26
+ }
27
+ }, this.getAdaptiveDebounceDelay, this._log);
28
+ }
29
+ setCallback(callback) {
30
+ this.#updateCb = callback;
31
+ }
32
+ get docChangedVersion() {
33
+ return this.#docChangedVersion;
34
+ }
35
+ bumpDocChangedVersion() {
36
+ this.#docChangedVersion++;
37
+ }
38
+ pushDocChangedTimestamp() {
39
+ const now = Date.now();
40
+ this.#docChangedTimesteps = [...this.getWindowedDocChangedTimesteps(), now];
41
+ }
42
+ WINDOW = 5000;
43
+ DEFAULT_DELAY = 500;
44
+ // Provider different debounce delay according to whether usr are actively typing, increase the delay if so to avoid unnecessary invoke
45
+ // The category below is suggested from AI, may adjust as needed in the future
46
+ DELAY_CANDIDATES = [
47
+ // IMPORTANT: sort by frequencyInWindow desc, we will pick the first match
48
+ {
49
+ // active typing
50
+ frequencyInWindow: 20,
51
+ delay: 1000,
52
+ },
53
+ {
54
+ // moderate typing
55
+ frequencyInWindow: 10,
56
+ delay: 800,
57
+ },
58
+ {
59
+ // light typing
60
+ frequencyInWindow: 0,
61
+ delay: this.DEFAULT_DELAY,
62
+ },
63
+ ];
64
+ getWindowedDocChangedTimesteps() {
65
+ const now = Date.now();
66
+ return this.#docChangedTimesteps.filter((timestamp) => {
67
+ const age = now - timestamp;
68
+ return age < this.WINDOW;
69
+ });
10
70
  }
11
- scheduleUpdate(document) {
71
+ getAdaptiveDebounceDelay = () => {
72
+ const frequent = this.getWindowedDocChangedTimesteps().length;
73
+ for (const c of this.DELAY_CANDIDATES) {
74
+ if (frequent >= c.frequencyInWindow) {
75
+ return c.delay;
76
+ }
77
+ }
78
+ return this.DEFAULT_DELAY;
79
+ };
80
+ scheduleUpdate(document, UpdateType) {
81
+ if (UpdateType === "changed" || UpdateType === "renamed") {
82
+ // only bump this when the file is actually changed
83
+ // skip open
84
+ this.bumpDocChangedVersion();
85
+ this.pushDocChangedTimestamp();
86
+ }
12
87
  const existing = this.#pendingUpdates.get(document.uri);
13
88
  if (existing === undefined) {
14
89
  this.#pendingUpdates.set(document.uri, {
15
90
  latest: document,
91
+ latestUpdateTimestamp: Date.now(),
16
92
  });
17
93
  }
18
94
  else {
19
95
  existing.latest = document;
96
+ existing.latestUpdateTimestamp = Date.now();
20
97
  }
21
98
  this.#scheduleBatchUpdate();
22
99
  }
23
- #scheduleBatchUpdate = debounceThrottle(() => {
24
- this.#pendingUpdates.forEach((update) => {
25
- void this.#update(update);
26
- });
27
- this.#pendingUpdates.clear();
28
- }, UPDATE_DEBOUNCE_TIME);
29
- async #update(update) {
30
- await this.#updateCb(update.latest);
100
+ async #update(updates) {
101
+ await this.#updateCb?.(updates);
31
102
  }
32
103
  }
33
104
  /**
@@ -38,19 +109,40 @@ export class UpdateManger {
38
109
  * @param fn The function
39
110
  * @param milliseconds Number of milliseconds to debounce/throttle
40
111
  */
41
- export function debounceThrottle(fn, milliseconds) {
112
+ export function debounceThrottle(fn, getDelay, log) {
42
113
  let timeout;
43
- let lastInvocation = Date.now() - milliseconds;
114
+ let lastInvocation = undefined;
115
+ let executingCount = 0;
116
+ let debounceExecutionId = 0;
117
+ const UPDATE_PARALLEL_LIMIT = 2;
44
118
  function maybeCall() {
45
119
  clearTimeout(timeout);
46
- timeout = setTimeout(() => {
47
- if (Date.now() - lastInvocation < milliseconds) {
120
+ timeout = setTimeout(async () => {
121
+ if (lastInvocation !== undefined &&
122
+ (Date.now() - lastInvocation < getDelay() || executingCount >= UPDATE_PARALLEL_LIMIT)) {
48
123
  maybeCall();
49
124
  return;
50
125
  }
51
- fn();
126
+ const curId = debounceExecutionId++;
127
+ const s = new Date();
128
+ try {
129
+ executingCount++;
130
+ log({
131
+ level: "debug",
132
+ message: `Starting debounce execution #${curId} at ${s.toISOString()}. Current parallel count: ${executingCount}`,
133
+ });
134
+ await fn();
135
+ }
136
+ finally {
137
+ executingCount--;
138
+ const e = new Date();
139
+ log({
140
+ level: "debug",
141
+ message: `Finish debounce execution #${curId} at ${e.toISOString()}, duration=${e.getTime() - s.getTime()}. Current parallel count: ${executingCount}`,
142
+ });
143
+ }
52
144
  lastInvocation = Date.now();
53
- }, milliseconds);
145
+ }, getDelay());
54
146
  }
55
147
  return maybeCall;
56
148
  }
@@ -1 +1 @@
1
- {"version":3,"file":"update-manager.js","sourceRoot":"","sources":["../../../src/server/update-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAKtD;;GAEG;AACH,MAAM,OAAO,YAAY;IACvB,eAAe,GAAG,IAAI,GAAG,EAAyB,CAAC;IACnD,SAAS,CAAyC;IAElD,YAAY,QAAgD;QAC1D,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAEM,cAAc,CAAC,QAAsB;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE;gBACrC,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED,oBAAoB,GAAG,gBAAgB,CAAC,GAAG,EAAE;QAC3C,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACtC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC,EAAE,oBAAoB,CAAC,CAAC;IAEzB,KAAK,CAAC,OAAO,CAAC,MAAqB;QACjC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAAc,EAAE,YAAoB;IACnE,IAAI,OAAY,CAAC;IACjB,IAAI,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;IAE/C,SAAS,SAAS;QAChB,YAAY,CAAC,OAAO,CAAC,CAAC;QAEtB,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YACxB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,GAAG,YAAY,EAAE,CAAC;gBAC/C,SAAS,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YAED,EAAE,EAAE,CAAC;YACL,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,CAAC,EAAE,YAAY,CAAC,CAAC;IACnB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"update-manager.js","sourceRoot":"","sources":["../../../src/server/update-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAW/D;;GAEG;AACH,MAAM,OAAO,YAAY;IACvB,eAAe,GAAG,IAAI,GAAG,EAAyB,CAAC;IACnD,SAAS,CAAkB;IAC3B,mEAAmE;IACnE,kBAAkB,GAAG,CAAC,CAAC;IACvB,oBAAoB,CAAa;IACjC,oBAAoB,GAAa,EAAE,CAAC;IAE5B,IAAI,CAA0B;IAEtC,YAAY,GAA4B;QACtC,IAAI,CAAC,IAAI;YACP,OAAO,OAAO,KAAK,WAAW;gBAC9B,OAAO,EAAE,GAAG,EAAE,CAAC,6BAA6B,CAAC,EAAE,WAAW,EAAE,KAAK,MAAM;gBACrE,CAAC,CAAC,CAAC,EAAa,EAAE,EAAE;oBAChB,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC/D,CAAC;gBACH,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;QAEf,IAAI,CAAC,oBAAoB,GAAG,gBAAgB,CAC1C,KAAK,IAAI,EAAE;YACT,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC;YACrC,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAyB,CAAC;YACxD,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACnD,CAAC;QACH,CAAC,EACD,IAAI,CAAC,wBAAwB,EAC7B,IAAI,CAAC,IAAI,CACV,CAAC;IACJ,CAAC;IAEM,WAAW,CAAC,QAAwB;QACzC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,IAAW,iBAAiB;QAC1B,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAEO,qBAAqB;QAC3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAEO,uBAAuB;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,oBAAoB,GAAG,CAAC,GAAG,IAAI,CAAC,8BAA8B,EAAE,EAAE,GAAG,CAAC,CAAC;IAC9E,CAAC;IAEgB,MAAM,GAAG,IAAI,CAAC;IACd,aAAa,GAAG,GAAG,CAAC;IACrC,uIAAuI;IACvI,8EAA8E;IAC7D,gBAAgB,GAAG;QAClC,0EAA0E;QAC1E;YACE,gBAAgB;YAChB,iBAAiB,EAAE,EAAE;YACrB,KAAK,EAAE,IAAI;SACZ;QACD;YACE,kBAAkB;YAClB,iBAAiB,EAAE,EAAE;YACrB,KAAK,EAAE,GAAG;SACX;QACD;YACE,eAAe;YACf,iBAAiB,EAAE,CAAC;YACpB,KAAK,EAAE,IAAI,CAAC,aAAa;SAC1B;KACF,CAAC;IAEM,8BAA8B;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE;YACpD,MAAM,GAAG,GAAG,GAAG,GAAG,SAAS,CAAC;YAC5B,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,wBAAwB,GAAG,GAAW,EAAE;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,8BAA8B,EAAE,CAAC,MAAM,CAAC;QAE9D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtC,IAAI,QAAQ,IAAI,CAAC,CAAC,iBAAiB,EAAE,CAAC;gBACpC,OAAO,CAAC,CAAC,KAAK,CAAC;YACjB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC,CAAC;IAEK,cAAc,CAAC,QAA+C,EAAE,UAAsB;QAC3F,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YACzD,mDAAmD;YACnD,YAAY;YACZ,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACjC,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE;gBACrC,MAAM,EAAE,QAAQ;gBAChB,qBAAqB,EAAE,IAAI,CAAC,GAAG,EAAE;aAClC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC;YAC3B,QAAQ,CAAC,qBAAqB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAwB;QACpC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,EAA8B,EAC9B,QAAsB,EACtB,GAA4B;IAE5B,IAAI,OAAY,CAAC;IACjB,IAAI,cAAc,GAAuB,SAAS,CAAC;IACnD,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,MAAM,qBAAqB,GAAG,CAAC,CAAC;IAEhC,SAAS,SAAS;QAChB,YAAY,CAAC,OAAO,CAAC,CAAC;QAEtB,OAAO,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;YAC9B,IACE,cAAc,KAAK,SAAS;gBAC5B,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,GAAG,QAAQ,EAAE,IAAI,cAAc,IAAI,qBAAqB,CAAC,EACrF,CAAC;gBACD,SAAS,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YACD,MAAM,KAAK,GAAG,mBAAmB,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,cAAc,EAAE,CAAC;gBACjB,GAAG,CAAC;oBACF,KAAK,EAAE,OAAO;oBACd,OAAO,EAAE,gCAAgC,KAAK,OAAO,CAAC,CAAC,WAAW,EAAE,6BAA6B,cAAc,EAAE;iBAClH,CAAC,CAAC;gBACH,MAAM,EAAE,EAAE,CAAC;YACb,CAAC;oBAAS,CAAC;gBACT,cAAc,EAAE,CAAC;gBACjB,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;gBACrB,GAAG,CAAC;oBACF,KAAK,EAAE,OAAO;oBACd,OAAO,EAAE,8BAA8B,KAAK,OAAO,CAAC,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,6BAA6B,cAAc,EAAE;iBACvJ,CAAC,CAAC;YACL,CAAC;YACD,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"test-server-host.d.ts","sourceRoot":"","sources":["../../../src/testing/test-server-host.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAkB,MAAM,+BAA+B,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAc,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,MAAM,EAAE,UAAU,EAAgB,MAAM,oBAAoB,CAAC;AAGtE,OAAO,EAAuB,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,cAAe,SAAQ,UAAU,EAAE,cAAc;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;IACxD,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC;IACjE,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;IACzC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,UAAU,EAAE,CAAC;IACpD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9B;AAED,wBAAsB,oBAAoB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,2BAmG/F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CAanE"}
1
+ {"version":3,"file":"test-server-host.d.ts","sourceRoot":"","sources":["../../../src/testing/test-server-host.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,UAAU,EAA0C,MAAM,+BAA+B,CAAC;AAInG,OAAO,EAAE,cAAc,EAAc,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,MAAM,EAAE,UAAU,EAAgB,MAAM,oBAAoB,CAAC;AAItE,OAAO,EAAuB,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,cAAe,SAAQ,UAAU,EAAE,cAAc;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;IACxD,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC;IACjE,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;IACzC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,UAAU,EAAE,CAAC;IACpD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9B;AAED,wBAAsB,oBAAoB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,2BAqH/F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CAanE"}
@@ -40,6 +40,10 @@ export async function createTestServerHost(options) {
40
40
  const document = TextDocument.create(url, "typespec", version, content);
41
41
  documents.set(url, document);
42
42
  fileSystem.addTypeSpecFile(path, ""); // force virtual file system to create directory where document lives.
43
+ if (!oldDocument) {
44
+ server.documentOpened({ document });
45
+ }
46
+ server.checkChange({ document });
43
47
  return document;
44
48
  },
45
49
  openDocument(path) {
@@ -49,7 +53,7 @@ export async function createTestServerHost(options) {
49
53
  getDiagnostics(path) {
50
54
  return diagnostics.get(this.getURL(path)) ?? [];
51
55
  },
52
- sendDiagnostics(params) {
56
+ async sendDiagnostics(params) {
53
57
  if (params.version && documents.get(params.uri)?.version !== params.version) {
54
58
  return;
55
59
  }
@@ -100,6 +104,16 @@ export async function createTestServerHost(options) {
100
104
  workspaceFolders: null,
101
105
  });
102
106
  server.initialized({});
107
+ const serverCompile = server.compile;
108
+ server.compile = async (document, additionalOptions, serverCompileOptions) => {
109
+ // Wrap the compile to report diagnostics after compile in test to make sure existing tests
110
+ // that rely on diagnostics to work without having to change each of them to call reportDiagnostics explicitly.
111
+ const result = await serverCompile(document, additionalOptions, serverCompileOptions);
112
+ if (result) {
113
+ await server.reportDiagnostics(result);
114
+ }
115
+ return result;
116
+ };
103
117
  serverHost.server = server;
104
118
  return serverHost;
105
119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"test-server-host.js","sourceRoot":"","sources":["../../../src/testing/test-server-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-server-host.js","sourceRoot":"","sources":["../../../src/testing/test-server-host.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typespec/compiler",
3
- "version": "1.5.0-dev.0",
3
+ "version": "1.5.0-dev.2",
4
4
  "description": "TypeSpec Compiler Preview",
5
5
  "author": "Microsoft Corporation",
6
6
  "license": "MIT",