monaco-languageclient 9.6.0-next.1 → 9.6.0

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/CHANGELOG.md CHANGED
@@ -2,9 +2,11 @@
2
2
 
3
3
  All notable changes to this npm module are documented in this file.
4
4
 
5
- ## [9.6.0-next.1] - 2025-04-1x
5
+ ## [9.6.0] - 2025-05-06
6
6
 
7
- - Updated all `@codingame/monaco-vscode` packages to `16.0.2`.
7
+ - Updated all `@codingame/monaco-vscode` packages to `16.1.1`.
8
+ - Always create a getWorker function [#918](https://github.com/TypeFox/monaco-languageclient/pull/918)
9
+ - Update complete uri and model handling in EditorApp [#904](https://github.com/TypeFox/monaco-languageclient/pull/904)
8
10
 
9
11
  ## [9.5.0] - 2025-03-13
10
12
 
@@ -33,8 +33,9 @@ export interface InitServicesInstructions {
33
33
  caller?: string;
34
34
  performServiceConsistencyChecks?: () => boolean;
35
35
  logger?: Logger;
36
+ monacoWorkerFactory?: (logger?: Logger) => void;
36
37
  }
37
- export declare const initEnhancedMonacoEnvironment: () => MonacoEnvironmentEnhanced;
38
+ export declare const getEnhancedMonacoEnvironment: () => MonacoEnvironmentEnhanced;
38
39
  export declare const getMonacoEnvironmentEnhanced: () => MonacoEnvironmentEnhanced;
39
40
  export declare const supplyRequiredServices: () => Promise<{
40
41
  [x: string]: any;
@@ -1 +1 @@
1
- {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/vscode/services.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,qCAAqC,CAAC;AAC9D,OAAO,2BAA2B,CAAC;AACnC,OAAO,EAAc,KAAK,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC9F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kDAAkD,CAAC;AAOnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wDAAwD,CAAC;AAClG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAI1D,MAAM,WAAW,yBAA0B,SAAQ,MAAM,CAAC,WAAW;IACjE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,WAAW;IACxB,eAAe,EAAE,eAAe,GAAG,cAAc,GAAG,kBAAkB,CAAC;IACvE,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,4BAA4B,CAAC,EAAE,CAAC,aAAa,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC;IACvF,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,eAAe;IAC5B,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC;IACzD,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,eAAe,CAAC,EAAE,6BAA6B,CAAC;IAChD,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAED,MAAM,WAAW,wBAAwB;IACrC,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+BAA+B,CAAC,EAAE,MAAM,OAAO,CAAC;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,6BAA6B,iCAczC,CAAC;AAEF,eAAO,MAAM,4BAA4B,QAEF,yBACtC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;EAOlC,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,UAAU,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,SAAS,MAAM,SAIpG,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,kBAAkB,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,WAAW,MAAM,CAAC,MAAM,CAAC,uBAAuB,SAMtI,CAAC;AAEF,eAAO,MAAM,YAAY,GAAU,iBAAiB,eAAe,EAAE,eAAe,wBAAwB,iCA0B3G,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,GAAU,iBAAiB,eAAe,EAAE,eAAe,wBAAwB,kBAoBhH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,GAAU,qBAAqB,OAAO,EAAE,cAAc,MAAM,CAAC,MAAM,CAAC,uBAAuB,kBAY7H,CAAC;AAEF,eAAO,MAAM,gCAAgC,QAAO,mBA8DnD,CAAC"}
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/vscode/services.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,qCAAqC,CAAC;AAC9D,OAAO,2BAA2B,CAAC;AACnC,OAAO,EAAc,KAAK,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC9F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kDAAkD,CAAC;AAOnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wDAAwD,CAAC;AAClG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAK1D,MAAM,WAAW,yBAA0B,SAAQ,MAAM,CAAC,WAAW;IACjE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,WAAW;IACxB,eAAe,EAAE,eAAe,GAAG,cAAc,GAAG,kBAAkB,CAAC;IACvE,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,4BAA4B,CAAC,EAAE,CAAC,aAAa,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC;IACvF,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,eAAe;IAC5B,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC;IACzD,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,eAAe,CAAC,EAAE,6BAA6B,CAAC;IAChD,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAED,MAAM,WAAW,wBAAwB;IACrC,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+BAA+B,CAAC,EAAE,MAAM,OAAO,CAAC;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACnD;AAED,eAAO,MAAM,4BAA4B,QAAO,yBAc/C,CAAC;AAEF,eAAO,MAAM,4BAA4B,QAEF,yBACtC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;EAOlC,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,UAAU,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,SAAS,MAAM,SAIpG,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,kBAAkB,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,WAAW,MAAM,CAAC,MAAM,CAAC,uBAAuB,SAMtI,CAAC;AAEF,eAAO,MAAM,YAAY,GAAU,iBAAiB,eAAe,EAAE,eAAe,wBAAwB,iCAiC3G,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,GAAU,iBAAiB,eAAe,EAAE,eAAe,wBAAwB,kBAoBhH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,GAAU,qBAAqB,OAAO,EAAE,cAAc,MAAM,CAAC,MAAM,CAAC,uBAAuB,kBAY7H,CAAC;AAEF,eAAO,MAAM,gCAAgC,QAAO,mBA8DnD,CAAC"}
@@ -12,9 +12,10 @@ import getModelServiceOverride from '@codingame/monaco-vscode-model-service-over
12
12
  import getLogServiceOverride from '@codingame/monaco-vscode-log-service-override';
13
13
  import { FakeWorker as Worker } from './fakeWorker.js';
14
14
  import { setUnexpectedErrorHandler } from '@codingame/monaco-vscode-api/monaco';
15
- export const initEnhancedMonacoEnvironment = () => {
15
+ import { useWorkerFactory } from '../workerFactory.js';
16
+ export const getEnhancedMonacoEnvironment = () => {
16
17
  const monWin = self;
17
- if (!monWin.MonacoEnvironment) {
18
+ if (monWin.MonacoEnvironment === undefined) {
18
19
  monWin.MonacoEnvironment = {};
19
20
  }
20
21
  const envEnhanced = monWin.MonacoEnvironment;
@@ -51,7 +52,15 @@ export const mergeServices = (overrideServices, services) => {
51
52
  }
52
53
  };
53
54
  export const initServices = async (vscodeApiConfig, instructions) => {
54
- const envEnhanced = initEnhancedMonacoEnvironment();
55
+ const envEnhanced = getEnhancedMonacoEnvironment();
56
+ if (typeof instructions?.monacoWorkerFactory === 'function') {
57
+ instructions.monacoWorkerFactory(instructions.logger);
58
+ }
59
+ else {
60
+ useWorkerFactory({
61
+ logger: instructions?.logger
62
+ });
63
+ }
55
64
  if (!(envEnhanced.vscodeInitialising ?? false)) {
56
65
  if (envEnhanced.vscodeApiInitialised ?? false) {
57
66
  instructions?.logger?.debug('Initialization of vscode services can only performed once!');
@@ -1 +1 @@
1
- {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/vscode/services.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/vscode/services.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,KAAK,MAAM,MAAM,qCAAqC,CAAC;AAC9D,OAAO,2BAA2B,CAAC;AACnC,OAAO,EAAE,UAAU,EAAsC,MAAM,8BAA8B,CAAC;AAG9F,OAAO,+BAA+B,EAAE,EAAE,qBAAqB,EAAE,MAAM,yDAAyD,CAAC;AACjI,OAAO,2BAA2B,MAAM,sDAAsD,CAAC;AAC/F,OAAO,2BAA2B,MAAM,qDAAqD,CAAC;AAC9F,OAAO,uBAAuB,MAAM,iDAAiD,CAAC;AACtF,OAAO,qBAAqB,MAAM,+CAA+C,CAAC;AAIlF,OAAO,EAAE,UAAU,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAoCvD,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAA8B,EAAE;IACxE,MAAM,MAAM,GAAI,IAAe,CAAC;IAChC,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAClC,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,iBAA8C,CAAC;IAC1E,IAAI,WAAW,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;QACjD,WAAW,CAAC,oBAAoB,GAAG,KAAK,CAAC;IAC7C,CAAC;IACD,IAAI,WAAW,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QAC/C,WAAW,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAC3C,CAAC;IAED,OAAO,WAAW,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,EAAE;IAC7C,MAAM,MAAM,GAAI,IAAe,CAAC;IAChC,OAAO,MAAM,CAAC,iBAA8C,CAAC;AACjE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,IAAI,EAAE;IAC7C,OAAO;QACH,GAAG,+BAA+B,EAAE;QACpC,GAAG,2BAA2B,EAAE;QAChC,GAAG,qBAAqB,EAAE;QAC1B,GAAG,uBAAuB,EAAE;KAC/B,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,QAA+C,EAAE,MAAe,EAAE,EAAE;IACrG,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9C,MAAM,EAAE,KAAK,CAAC,oBAAoB,WAAW,EAAE,CAAC,CAAC;IACrD,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,gBAAuD,EAAE,QAAgD,EAAE,EAAE;IACvI,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrD,gBAAgB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QACrC,CAAC;IACL,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,eAAgC,EAAE,YAAuC,EAAE,EAAE;IAC5G,MAAM,WAAW,GAAG,4BAA4B,EAAE,CAAC;IAEnD,IAAI,OAAO,YAAY,EAAE,mBAAmB,KAAK,UAAU,EAAE,CAAC;QAC1D,YAAY,CAAC,mBAAmB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACJ,gBAAgB,CAAC;YACb,MAAM,EAAE,YAAY,EAAE,MAAM;SAC/B,CAAC,CAAC;IACP,CAAC;IACD,IAAI,CAAC,CAAC,WAAW,CAAC,kBAAkB,IAAI,KAAK,CAAC,EAAE,CAAC;QAE7C,IAAI,WAAW,CAAC,oBAAoB,IAAI,KAAK,EAAE,CAAC;YAC5C,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC9F,CAAC;aAAM,CAAC;YACJ,WAAW,CAAC,kBAAkB,GAAG,IAAI,CAAC;YACtC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,yCAAyC,YAAY,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC;YAEzG,IAAI,eAAe,CAAC,iBAAiB,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;gBACxD,MAAM,qBAAqB,CAAC,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACxE,CAAC;YACD,MAAM,iBAAiB,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;YAEvD,eAAe,CAAC,WAAW,EAAE,4BAA4B,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;YACzF,MAAM,eAAe,CAAC,WAAW,EAAE,aAAa,EAAE,EAAE,CAAC;YACrD,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,2DAA2D,CAAC,CAAC;YAEzF,WAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACxC,WAAW,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAC3C,CAAC;IACL,CAAC;IAED,OAAO,WAAW,CAAC,oBAAoB,CAAC;AAC5C,CAAC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,eAAgC,EAAE,YAAuC,EAAE,EAAE;IACjH,MAAM,QAAQ,GAAG,MAAM,sBAAsB,EAAE,CAAC;IAEhD,aAAa,CAAC,QAAQ,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC;IAC1D,MAAM,sBAAsB,CAAC,eAAe,CAAC,mBAAmB,KAAK,IAAI,EAAE,QAAQ,CAAC,CAAC;IAErF,oBAAoB,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAErD,IAAI,YAAY,EAAE,+BAA+B,KAAK,SAAS;QAC3D,CAAC,OAAO,YAAY,CAAC,+BAA+B,KAAK,UAAU,IAAI,YAAY,CAAC,+BAA+B,EAAE,CAAC,EAAE,CAAC;QACzH,IAAI,eAAe,CAAC,WAAW,EAAE,eAAe,KAAK,cAAc,IAAI,eAAe,CAAC,WAAW,EAAE,eAAe,KAAK,kBAAkB,EAAE,CAAC;YACzI,MAAM,UAAU,CAAC,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,CAAC,eAAe,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;QACzH,CAAC;aAAM,CAAC;YACJ,MAAM,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC,eAAe,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;QACvG,CAAC;IACL,CAAC;IAED,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5B,YAAY,EAAE,MAAM,EAAE,iBAAiB,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,mBAA4B,EAAE,YAAmD,EAAE,EAAE;IAC9H,IAAI,mBAAmB,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,2DAA2D,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzI,MAAM,YAAY,GAAiB;YAC/B,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE;YAC9B,OAAO,EAAE,UAAU,CAAC,OAAO;SAC9B,CAAC;QAEF,aAAa,CAAC,YAAY,EAAE;YACxB,GAAG,2BAA2B,CAAC,YAAY,CAAC;SAC/C,CAAC,CAAC;IACP,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAwB,EAAE;IACtE,OAAO;QACH,KAAK,CAAC,WAAW;YACb,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,EAAU;YACtB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACnC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,kBAAkB,EAAE,CAAC;gBACjB,MAAM,EAAE,IAAI;gBACZ,YAAY,EAAE,SAAS;aAC1B,EAAE;gBACC,MAAM,EAAE,IAAI;gBACZ,YAAY,EAAE,OAAO;aACxB,EAAE;gBACC,MAAM,EAAE,IAAI;gBACZ,YAAY,EAAE,QAAQ;aACzB,EAAE;gBACC,MAAM,EAAE,IAAI;gBACZ,YAAY,EAAE,SAAS;aAC1B,EAAE;gBACC,MAAM,EAAE,IAAI;gBACZ,YAAY,EAAE,QAAQ;aACzB,EAAE;gBACC,MAAM,EAAE,IAAI;gBACZ,YAAY,EAAE,SAAS;aAC1B,EAAE;gBACC,MAAM,EAAE,IAAI;gBACZ,YAAY,EAAE,UAAU;aAC3B,EAAE;gBACC,MAAM,EAAE,IAAI;gBACZ,YAAY,EAAE,QAAQ;aACzB,EAAE;gBACC,MAAM,EAAE,IAAI;gBACZ,YAAY,EAAE,QAAQ;aACzB,EAAE;gBACC,MAAM,EAAE,OAAO;gBACf,YAAY,EAAE,qBAAqB;aACtC,EAAE;gBACC,MAAM,EAAE,UAAU;gBAClB,YAAY,EAAE,iBAAiB;aAClC,EAAE;gBACC,MAAM,EAAE,IAAI;gBACZ,YAAY,EAAE,SAAS;aAC1B,EAAE;gBACC,MAAM,EAAE,IAAI;gBACZ,YAAY,EAAE,SAAS;aAC1B,EAAE;gBACC,MAAM,EAAE,SAAS;gBACjB,YAAY,EAAE,sBAAsB;aACvC,EAAE;gBACC,MAAM,EAAE,SAAS;gBACjB,YAAY,EAAE,uBAAuB;aACxC,EAAE;gBACC,MAAM,EAAE,IAAI;gBACZ,YAAY,EAAE,SAAS;aAC1B,CAAC;KACL,CAAC;AACN,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { Logger } from 'monaco-languageclient/tools';
2
2
  export type WorkerLoader = (() => Worker) | undefined;
3
3
  export interface WorkerFactoryConfig {
4
- workerLoaders: Record<string, WorkerLoader>;
4
+ workerLoaders?: Record<string, WorkerLoader>;
5
5
  logger?: Logger;
6
6
  getWorkerOverride?: (moduleId: string, label: string) => Worker;
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"workerFactory.d.ts","sourceRoot":"","sources":["../src/workerFactory.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAE1D,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAChC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACnE;AAED,eAAO,MAAM,gBAAgB,GAAI,QAAQ,mBAAmB,SAa3D,CAAC"}
1
+ {"version":3,"file":"workerFactory.d.ts","sourceRoot":"","sources":["../src/workerFactory.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAE1D,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACnE;AAED,eAAO,MAAM,gBAAgB,GAAI,QAAQ,mBAAmB,SAa3D,CAAC"}
@@ -2,12 +2,12 @@
2
2
  * Copyright (c) 2024 TypeFox and others.
3
3
  * Licensed under the MIT License. See LICENSE in the package root for license information.
4
4
  * ------------------------------------------------------------------------------------------ */
5
- import { initEnhancedMonacoEnvironment } from 'monaco-languageclient/vscode/services';
5
+ import { getEnhancedMonacoEnvironment } from 'monaco-languageclient/vscode/services';
6
6
  export const useWorkerFactory = (config) => {
7
- const envEnhanced = initEnhancedMonacoEnvironment();
7
+ const envEnhanced = getEnhancedMonacoEnvironment();
8
8
  const getWorker = (moduleId, label) => {
9
9
  config.logger?.info(`getWorker: moduleId: ${moduleId} label: ${label}`);
10
- const workerFunc = config.workerLoaders[label];
10
+ const workerFunc = config.workerLoaders?.[label] ?? undefined;
11
11
  if (workerFunc === undefined) {
12
12
  throw new Error(`Unimplemented worker ${label} (${moduleId})`);
13
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"workerFactory.js","sourceRoot":"","sources":["../src/workerFactory.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAWtF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAA2B,EAAE,EAAE;IAC5D,MAAM,WAAW,GAAG,6BAA6B,EAAE,CAAC;IAEpD,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,KAAa,EAAE,EAAE;QAClD,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,wBAAwB,QAAQ,WAAW,KAAK,EAAE,CAAC,CAAC;QAExE,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,KAAK,QAAQ,GAAG,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,UAAU,EAAE,CAAC;IACxB,CAAC,CAAC;IACF,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC,iBAAiB,IAAI,SAAS,CAAC;AAClE,CAAC,CAAC"}
1
+ {"version":3,"file":"workerFactory.js","sourceRoot":"","sources":["../src/workerFactory.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAWrF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAA2B,EAAE,EAAE;IAC5D,MAAM,WAAW,GAAG,4BAA4B,EAAE,CAAC;IAEnD,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,KAAa,EAAE,EAAE;QAClD,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,wBAAwB,QAAQ,WAAW,KAAK,EAAE,CAAC,CAAC;QAExE,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC;QAC9D,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,KAAK,QAAQ,GAAG,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,UAAU,EAAE,CAAC;IACxB,CAAC,CAAC;IACF,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC,iBAAiB,IAAI,SAAS,CAAC;AAClE,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "monaco-languageclient",
3
- "version": "9.6.0-next.1",
3
+ "version": "9.6.0",
4
4
  "description": "Monaco Language client implementation",
5
5
  "author": {
6
6
  "name": "TypeFox GmbH",
@@ -39,6 +39,10 @@
39
39
  "./workerFactory": {
40
40
  "types": "./lib/workerFactory.d.ts",
41
41
  "default": "./lib/workerFactory.js"
42
+ },
43
+ "./wrapper": {
44
+ "types": "./lib/languageClientWrapper.test.d.ts",
45
+ "default": "./lib/languageClientWrapper.test.js"
42
46
  }
43
47
  },
44
48
  "typesVersions": {
@@ -57,6 +61,9 @@
57
61
  ],
58
62
  "workerFactory": [
59
63
  "lib/workerFactory"
64
+ ],
65
+ "wrapper": [
66
+ "lib/languageClientWrapper"
60
67
  ]
61
68
  }
62
69
  },
@@ -65,7 +72,7 @@
65
72
  "npm": ">=10.2.3"
66
73
  },
67
74
  "volta": {
68
- "node": "22.14.0",
75
+ "node": "22.15.0",
69
76
  "npm": "10.9.2"
70
77
  },
71
78
  "files": [
@@ -76,21 +83,21 @@
76
83
  "LICENSE"
77
84
  ],
78
85
  "dependencies": {
79
- "@codingame/monaco-vscode-api": "~16.0.2",
80
- "@codingame/monaco-vscode-configuration-service-override": "~16.0.2",
81
- "@codingame/monaco-vscode-editor-api": "~16.0.2",
82
- "@codingame/monaco-vscode-editor-service-override": "~16.0.2",
83
- "@codingame/monaco-vscode-extensions-service-override": "~16.0.2",
84
- "@codingame/monaco-vscode-extension-api": "~16.0.2",
85
- "@codingame/monaco-vscode-languages-service-override": "~16.0.2",
86
- "@codingame/monaco-vscode-localization-service-override": "~16.0.2",
87
- "@codingame/monaco-vscode-log-service-override": "~16.0.2",
88
- "@codingame/monaco-vscode-model-service-override": "~16.0.2",
89
- "vscode": "npm:@codingame/monaco-vscode-extension-api@~16.0.2",
86
+ "@codingame/monaco-vscode-api": "~16.1.1",
87
+ "@codingame/monaco-vscode-configuration-service-override": "~16.1.1",
88
+ "@codingame/monaco-vscode-editor-api": "~16.1.1",
89
+ "@codingame/monaco-vscode-editor-service-override": "~16.1.1",
90
+ "@codingame/monaco-vscode-extensions-service-override": "~16.1.1",
91
+ "@codingame/monaco-vscode-extension-api": "~16.1.1",
92
+ "@codingame/monaco-vscode-languages-service-override": "~16.1.1",
93
+ "@codingame/monaco-vscode-localization-service-override": "~16.1.1",
94
+ "@codingame/monaco-vscode-log-service-override": "~16.1.1",
95
+ "@codingame/monaco-vscode-model-service-override": "~16.1.1",
96
+ "vscode": "npm:@codingame/monaco-vscode-extension-api@~16.1.1",
90
97
  "vscode-languageclient": "~9.0.1"
91
98
  },
92
99
  "scripts": {
93
- "clean": "tsx ../../scripts/clean.ts --relativePath packages/client --recursive --paths lib *.tsbuildinfo",
100
+ "clean": "shx rm -fr ./lib *.tsbuildinfo",
94
101
  "compile": "tsc --build tsconfig.src.json",
95
102
  "build:msg": "echo Building monaco-languageclient:",
96
103
  "build": "npm run build:msg && npm run clean && npm run compile"
@@ -18,6 +18,7 @@ import type { EnvironmentOverride } from '@codingame/monaco-vscode-api/workbench
18
18
  import type { Logger } from 'monaco-languageclient/tools';
19
19
  import { FakeWorker as Worker } from './fakeWorker.js';
20
20
  import { setUnexpectedErrorHandler } from '@codingame/monaco-vscode-api/monaco';
21
+ import { useWorkerFactory } from '../workerFactory.js';
21
22
 
22
23
  export interface MonacoEnvironmentEnhanced extends monaco.Environment {
23
24
  vscodeInitialising?: boolean;
@@ -50,11 +51,12 @@ export interface InitServicesInstructions {
50
51
  caller?: string;
51
52
  performServiceConsistencyChecks?: () => boolean;
52
53
  logger?: Logger;
54
+ monacoWorkerFactory?: (logger?: Logger) => void;
53
55
  }
54
56
 
55
- export const initEnhancedMonacoEnvironment = () => {
57
+ export const getEnhancedMonacoEnvironment = (): MonacoEnvironmentEnhanced => {
56
58
  const monWin = (self as Window);
57
- if (!monWin.MonacoEnvironment) {
59
+ if (monWin.MonacoEnvironment === undefined) {
58
60
  monWin.MonacoEnvironment = {};
59
61
  }
60
62
  const envEnhanced = monWin.MonacoEnvironment as MonacoEnvironmentEnhanced;
@@ -97,8 +99,15 @@ export const mergeServices = (overrideServices: monaco.editor.IEditorOverrideSer
97
99
  };
98
100
 
99
101
  export const initServices = async (vscodeApiConfig: VscodeApiConfig, instructions?: InitServicesInstructions) => {
100
- const envEnhanced = initEnhancedMonacoEnvironment();
102
+ const envEnhanced = getEnhancedMonacoEnvironment();
101
103
 
104
+ if (typeof instructions?.monacoWorkerFactory === 'function') {
105
+ instructions.monacoWorkerFactory(instructions.logger);
106
+ } else {
107
+ useWorkerFactory({
108
+ logger: instructions?.logger
109
+ });
110
+ }
102
111
  if (!(envEnhanced.vscodeInitialising ?? false)) {
103
112
 
104
113
  if (envEnhanced.vscodeApiInitialised ?? false) {
@@ -3,24 +3,24 @@
3
3
  * Licensed under the MIT License. See LICENSE in the package root for license information.
4
4
  * ------------------------------------------------------------------------------------------ */
5
5
 
6
- import { initEnhancedMonacoEnvironment } from 'monaco-languageclient/vscode/services';
6
+ import { getEnhancedMonacoEnvironment } from 'monaco-languageclient/vscode/services';
7
7
  import type { Logger } from 'monaco-languageclient/tools';
8
8
 
9
9
  export type WorkerLoader = (() => Worker) | undefined;
10
10
 
11
11
  export interface WorkerFactoryConfig {
12
- workerLoaders: Record<string, WorkerLoader>;
12
+ workerLoaders?: Record<string, WorkerLoader>;
13
13
  logger?: Logger;
14
14
  getWorkerOverride?: (moduleId: string, label: string) => Worker;
15
15
  }
16
16
 
17
17
  export const useWorkerFactory = (config: WorkerFactoryConfig) => {
18
- const envEnhanced = initEnhancedMonacoEnvironment();
18
+ const envEnhanced = getEnhancedMonacoEnvironment();
19
19
 
20
20
  const getWorker = (moduleId: string, label: string) => {
21
21
  config.logger?.info(`getWorker: moduleId: ${moduleId} label: ${label}`);
22
22
 
23
- const workerFunc = config.workerLoaders[label];
23
+ const workerFunc = config.workerLoaders?.[label] ?? undefined;
24
24
  if (workerFunc === undefined) {
25
25
  throw new Error(`Unimplemented worker ${label} (${moduleId})`);
26
26
  }