monaco-languageclient 10.4.0-next.2 → 10.5.0-next.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 +7 -2
- package/lib/debugger/index.js +1 -1
- package/lib/vscode/utils.d.ts.map +1 -1
- package/lib/vscode/utils.js +3 -7
- package/lib/vscode/utils.js.map +1 -1
- package/lib/worker/index.d.ts +14 -3
- package/lib/worker/index.d.ts.map +1 -1
- package/lib/worker/index.js +42 -3
- package/lib/worker/index.js.map +1 -1
- package/package.json +37 -37
- package/src/debugger/index.ts +1 -1
- package/src/vscode/utils.ts +3 -9
- package/src/worker/index.ts +68 -3
- package/lib/worker/fakeWorker.d.ts +0 -6
- package/lib/worker/fakeWorker.d.ts.map +0 -1
- package/lib/worker/fakeWorker.js +0 -13
- package/lib/worker/fakeWorker.js.map +0 -1
- package/lib/worker/workerFactory.d.ts +0 -9
- package/lib/worker/workerFactory.d.ts.map +0 -1
- package/lib/worker/workerFactory.js +0 -18
- package/lib/worker/workerFactory.js.map +0 -1
- package/lib/worker/workerLoaders.d.ts +0 -5
- package/lib/worker/workerLoaders.d.ts.map +0 -1
- package/lib/worker/workerLoaders.js +0 -26
- package/lib/worker/workerLoaders.js.map +0 -1
- package/src/worker/fakeWorker.ts +0 -14
- package/src/worker/workerFactory.ts +0 -30
- package/src/worker/workerLoaders.ts +0 -36
package/CHANGELOG.md
CHANGED
|
@@ -2,10 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this npm module are documented in this file.
|
|
4
4
|
|
|
5
|
-
## [10.
|
|
5
|
+
## [10.5.0] - 2025-12-22
|
|
6
|
+
|
|
7
|
+
- Updated all `@codingame/monaco-vscode` packages to `24.1.1`.
|
|
8
|
+
|
|
9
|
+
## [10.4.0] - 2025-11-26
|
|
6
10
|
|
|
7
11
|
- Use flags to trigger behaviour [#997](https://github.com/TypeFox/monaco-languageclient/pull/997).
|
|
8
|
-
- Updated all `@codingame/monaco-vscode` packages to `23.
|
|
12
|
+
- Updated all `@codingame/monaco-vscode` packages to `23.2.2`.
|
|
13
|
+
- Use oxlint for most linting now. eslint is only kept for currently unsupported rules or eslint plugins.
|
|
9
14
|
|
|
10
15
|
## [10.3.0] - 2025-11-16
|
|
11
16
|
|
package/lib/debugger/index.js
CHANGED
|
@@ -84,7 +84,7 @@ export const configureDebugging = async (api, config, logger) => {
|
|
|
84
84
|
};
|
|
85
85
|
}
|
|
86
86
|
websocket.send(JSON.stringify(initMessage));
|
|
87
|
-
//
|
|
87
|
+
// oxlint-disable-next-line @typescript-eslint/no-explicit-any
|
|
88
88
|
adapter.onDidSendMessage((message) => {
|
|
89
89
|
if (message.type === 'event' && message.event === 'output') {
|
|
90
90
|
logger?.info('OUTPUT', message.body.output);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/vscode/utils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,qCAAqC,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kDAAkD,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/vscode/utils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,qCAAqC,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kDAAkD,CAAC;AAEnF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7D,eAAO,MAAM,4BAA4B,iCAgBxC,CAAC;AAEF,eAAO,MAAM,oBAAoB,wFAIhC,CAAC;AAEF,eAAO,MAAM,aAAa,iIAMzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,sGAQlC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,UAG/B,CAAC"}
|
package/lib/vscode/utils.js
CHANGED
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
* ------------------------------------------------------------------------------------------ */
|
|
5
5
|
import * as monaco from '@codingame/monaco-vscode-editor-api';
|
|
6
6
|
import getExtensionServiceOverride from '@codingame/monaco-vscode-extensions-service-override';
|
|
7
|
-
import { FakeWorker as Worker } from 'monaco-languageclient/workerFactory';
|
|
8
7
|
export const getEnhancedMonacoEnvironment = () => {
|
|
9
8
|
if (typeof MonacoEnvironment === 'undefined') {
|
|
10
9
|
globalThis.MonacoEnvironment = {};
|
|
@@ -38,13 +37,10 @@ export const mergeServices = (overrideServices, services) => {
|
|
|
38
37
|
*/
|
|
39
38
|
export const configureExtHostWorker = async (enableExtHostWorker, userServices) => {
|
|
40
39
|
if (enableExtHostWorker) {
|
|
41
|
-
const fakeWorker = new Worker(new URL('@codingame/monaco-vscode-api/workers/extensionHost.worker', import.meta.url), { type: 'module' });
|
|
42
|
-
const workerConfig = {
|
|
43
|
-
url: fakeWorker.url.toString(),
|
|
44
|
-
options: fakeWorker.options
|
|
45
|
-
};
|
|
46
40
|
mergeServices(userServices, {
|
|
47
|
-
...getExtensionServiceOverride(
|
|
41
|
+
...getExtensionServiceOverride({
|
|
42
|
+
enableWorkerExtensionHost: true
|
|
43
|
+
})
|
|
48
44
|
});
|
|
49
45
|
}
|
|
50
46
|
};
|
package/lib/vscode/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/vscode/utils.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,KAAK,MAAM,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/vscode/utils.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,KAAK,MAAM,MAAM,qCAAqC,CAAC;AAE9D,OAAO,2BAA2B,MAAM,sDAAsD,CAAC;AAI/F,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAA8B,EAAE,CAAC;IACzE,IAAI,OAAO,iBAAiB,KAAK,WAAW,EAAE,CAAC;QAC3C,UAAU,CAAC,iBAAiB,GAAG,EAAE,CAAC;IACtC,CAAC;IACD,MAAM,WAAW,GAAG,iBAA8C,CAAC;IACnE,IAAI,WAAW,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;QAClD,WAAW,CAAC,qBAAqB,GAAG,KAAK,CAAC;IAC9C,CAAC;IACD,IAAI,WAAW,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;QACjD,WAAW,CAAC,oBAAoB,GAAG,KAAK,CAAC;IAC7C,CAAC;IACD,IAAI,WAAW,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAC5C,WAAW,CAAC,eAAe,GAAG,eAAe,CAAC;IAClD,CAAC;IAED,OAAO,WAAW,CAAC;AAAA,CACtB,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,QAA+C,EAAE,MAAe,EAAE,EAAE,CAAC;IACtG,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9C,MAAM,EAAE,KAAK,CAAC,oBAAoB,WAAW,EAAE,CAAC,CAAC;IACrD,CAAC;AAAA,CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,gBAAuD,EAAE,QAAgD,EAAE,EAAE,CAAC;IACxI,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;AAAA,CACJ,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,mBAA4B,EAAE,YAAmD,EAAE,EAAE,CAAC;IAC/H,IAAI,mBAAmB,EAAE,CAAC;QACtB,aAAa,CAAC,YAAY,EAAE;YACxB,GAAG,2BAA2B,CAAC;gBAC3B,yBAAyB,EAAE,IAAI;aAClC,CAAC;SACL,CAAC,CAAC;IACP,CAAC;AAAA,CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAe,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,MAAe,EAAE,EAAE,CAAC;IACnG,MAAM,EAAE,IAAI,CAAC,6CAA6C,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAC3F,OAAO,SAAS,CAAC;AAAA,CACpB,CAAC"}
|
package/lib/worker/index.d.ts
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
|
|
1
|
+
import type { Logger } from 'monaco-languageclient/common';
|
|
2
|
+
export declare class Worker {
|
|
3
|
+
url: string | URL;
|
|
4
|
+
options?: WorkerOptions;
|
|
5
|
+
constructor(url: string | URL, options?: WorkerOptions);
|
|
6
|
+
}
|
|
7
|
+
export type WorkerLoader = (() => Worker) | undefined;
|
|
8
|
+
export interface WorkerFactoryConfig {
|
|
9
|
+
workerLoaders?: Partial<Record<string, WorkerLoader>>;
|
|
10
|
+
logger?: Logger;
|
|
11
|
+
}
|
|
12
|
+
export declare const useWorkerFactory: (config: WorkerFactoryConfig) => void;
|
|
13
|
+
export declare const defineDefaultWorkerLoaders: () => Partial<Record<string, WorkerLoader>>;
|
|
14
|
+
export declare const configureDefaultWorkerFactory: (logger?: Logger | undefined) => void;
|
|
4
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAE3D,qBAAa,MAAM;IACf,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IAClB,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB,YAAY,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,OAAO,CAAC,EAAE,aAAa,EAGrD;CACJ;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,gBAAgB,uCAY5B,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAyBlF,CAAC;AAEF,eAAO,MAAM,6BAA6B,uCAKzC,CAAC"}
|
package/lib/worker/index.js
CHANGED
|
@@ -2,7 +2,46 @@
|
|
|
2
2
|
* Copyright (c) 2025 TypeFox and others.
|
|
3
3
|
* Licensed under the MIT License. See LICENSE in the package root for license information.
|
|
4
4
|
* ------------------------------------------------------------------------------------------ */
|
|
5
|
-
|
|
6
|
-
export
|
|
7
|
-
|
|
5
|
+
import { getEnhancedMonacoEnvironment } from 'monaco-languageclient/vscodeApiWrapper';
|
|
6
|
+
export class Worker {
|
|
7
|
+
url;
|
|
8
|
+
options;
|
|
9
|
+
constructor(url, options) {
|
|
10
|
+
this.url = url;
|
|
11
|
+
this.options = options;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export const useWorkerFactory = (config) => {
|
|
15
|
+
const envEnhanced = getEnhancedMonacoEnvironment();
|
|
16
|
+
envEnhanced.getWorkerUrl = (workerId, label) => {
|
|
17
|
+
config.logger?.info(`getWorkerUrl: workerId: ${workerId} label: ${label}`);
|
|
18
|
+
return config.workerLoaders?.[label]?.().url.toString();
|
|
19
|
+
};
|
|
20
|
+
envEnhanced.getWorkerOptions = (moduleId, label) => {
|
|
21
|
+
config.logger?.info(`getWorkerOptions: moduleId: ${moduleId} label: ${label}`);
|
|
22
|
+
return config.workerLoaders?.[label]?.().options;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
export const defineDefaultWorkerLoaders = () => {
|
|
26
|
+
const defaultEditorWorkerService = () => new Worker(new URL('@codingame/monaco-vscode-editor-api/esm/vs/editor/editor.worker.js', import.meta.url), { type: 'module' });
|
|
27
|
+
const defaultExtensionHostWorkerMain = () => new Worker(new URL('@codingame/monaco-vscode-api/workers/extensionHost.worker', import.meta.url), { type: 'module' });
|
|
28
|
+
const defaultTextMateWorker = () => new Worker(new URL('@codingame/monaco-vscode-textmate-service-override/worker', import.meta.url), { type: 'module' });
|
|
29
|
+
return {
|
|
30
|
+
// if you import monaco api as 'monaco-editor': monaco-editor/esm/vs/editor/editor.worker.js
|
|
31
|
+
editorWorkerService: defaultEditorWorkerService,
|
|
32
|
+
extensionHostWorkerMain: defaultExtensionHostWorkerMain,
|
|
33
|
+
TextMateWorker: defaultTextMateWorker,
|
|
34
|
+
// these are other possible workers not configured by default
|
|
35
|
+
OutputLinkDetectionWorker: undefined,
|
|
36
|
+
LanguageDetectionWorker: undefined,
|
|
37
|
+
NotebookEditorWorker: undefined,
|
|
38
|
+
LocalFileSearchWorker: undefined
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
export const configureDefaultWorkerFactory = (logger) => {
|
|
42
|
+
useWorkerFactory({
|
|
43
|
+
workerLoaders: defineDefaultWorkerLoaders(),
|
|
44
|
+
logger
|
|
45
|
+
});
|
|
46
|
+
};
|
|
8
47
|
//# sourceMappingURL=index.js.map
|
package/lib/worker/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AAGtF,MAAM,OAAO,MAAM;IACf,GAAG,CAAe;IAClB,OAAO,CAAiB;IAExB,YAAY,GAAiB,EAAE,OAAuB,EAAE;QACpD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAAA,CAC1B;CACJ;AASD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAA2B,EAAE,EAAE,CAAC;IAC7D,MAAM,WAAW,GAAG,4BAA4B,EAAE,CAAC;IAEnD,WAAW,CAAC,YAAY,GAAG,CAAC,QAAgB,EAAE,KAAa,EAAE,EAAE,CAAC;QAC5D,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,2BAA2B,QAAQ,WAAW,KAAK,EAAE,CAAC,CAAC;QAC3E,OAAO,MAAM,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IAAA,CAC3D,CAAC;IAEF,WAAW,CAAC,gBAAgB,GAAG,CAAC,QAAgB,EAAE,KAAa,EAAE,EAAE,CAAC;QAChE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,+BAA+B,QAAQ,WAAW,KAAK,EAAE,CAAC,CAAC;QAC/E,OAAO,MAAM,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC;IAAA,CACpD,CAAC;AAAA,CACL,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAgD,GAAG,EAAE,CAAC;IACzF,MAAM,0BAA0B,GAAG,GAAG,EAAE,CAAC,IAAI,MAAM,CAC/C,IAAI,GAAG,CAAC,oEAAoE,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EAC9F,EAAE,IAAI,EAAE,QAAQ,EAAE,CACrB,CAAC;IACF,MAAM,8BAA8B,GAAG,GAAG,EAAE,CAAC,IAAI,MAAM,CACnD,IAAI,GAAG,CAAC,2DAA2D,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EACrF,EAAE,IAAI,EAAE,QAAQ,EAAE,CACrB,CAAC;IACF,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,IAAI,MAAM,CAC1C,IAAI,GAAG,CAAC,2DAA2D,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EACrF,EAAE,IAAI,EAAE,QAAQ,EAAE,CACrB,CAAC;IAEF,OAAO;QACH,4FAA4F;QAC5F,mBAAmB,EAAE,0BAA0B;QAC/C,uBAAuB,EAAE,8BAA8B;QACvD,cAAc,EAAE,qBAAqB;QACrC,6DAA6D;QAC7D,yBAAyB,EAAE,SAAS;QACpC,uBAAuB,EAAE,SAAS;QAClC,oBAAoB,EAAE,SAAS;QAC/B,qBAAqB,EAAE,SAAS;KACnC,CAAC;AAAA,CACL,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,MAAe,EAAE,EAAE,CAAC;IAC9D,gBAAgB,CAAC;QACb,aAAa,EAAE,0BAA0B,EAAE;QAC3C,MAAM;KACT,CAAC,CAAC;AAAA,CACN,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "monaco-languageclient",
|
|
3
|
-
"version": "10.
|
|
3
|
+
"version": "10.5.0-next.0",
|
|
4
4
|
"description": "Monaco Language client implementation",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "TypeFox GmbH",
|
|
@@ -104,47 +104,47 @@
|
|
|
104
104
|
"LICENSE"
|
|
105
105
|
],
|
|
106
106
|
"dependencies": {
|
|
107
|
-
"@codingame/monaco-vscode-api": "^
|
|
108
|
-
"@codingame/monaco-vscode-configuration-service-override": "^
|
|
109
|
-
"@codingame/monaco-vscode-editor-api": "^
|
|
110
|
-
"@codingame/monaco-vscode-editor-service-override": "^
|
|
111
|
-
"@codingame/monaco-vscode-extensions-service-override": "^
|
|
112
|
-
"@codingame/monaco-vscode-extension-api": "^
|
|
113
|
-
"@codingame/monaco-vscode-languages-service-override": "^
|
|
114
|
-
"@codingame/monaco-vscode-language-pack-cs": "^
|
|
115
|
-
"@codingame/monaco-vscode-language-pack-de": "^
|
|
116
|
-
"@codingame/monaco-vscode-language-pack-es": "^
|
|
117
|
-
"@codingame/monaco-vscode-language-pack-fr": "^
|
|
118
|
-
"@codingame/monaco-vscode-language-pack-it": "^
|
|
119
|
-
"@codingame/monaco-vscode-language-pack-ja": "^
|
|
120
|
-
"@codingame/monaco-vscode-language-pack-ko": "^
|
|
121
|
-
"@codingame/monaco-vscode-language-pack-pl": "^
|
|
122
|
-
"@codingame/monaco-vscode-language-pack-pt-br": "^
|
|
123
|
-
"@codingame/monaco-vscode-language-pack-qps-ploc": "^
|
|
124
|
-
"@codingame/monaco-vscode-language-pack-ru": "^
|
|
125
|
-
"@codingame/monaco-vscode-language-pack-tr": "^
|
|
126
|
-
"@codingame/monaco-vscode-language-pack-zh-hans": "^
|
|
127
|
-
"@codingame/monaco-vscode-language-pack-zh-hant": "^
|
|
128
|
-
"@codingame/monaco-vscode-localization-service-override": "^
|
|
129
|
-
"@codingame/monaco-vscode-log-service-override": "^
|
|
130
|
-
"@codingame/monaco-vscode-model-service-override": "^
|
|
131
|
-
"@codingame/monaco-vscode-monarch-service-override": "^
|
|
132
|
-
"@codingame/monaco-vscode-textmate-service-override": "^
|
|
133
|
-
"@codingame/monaco-vscode-theme-defaults-default-extension": "^
|
|
134
|
-
"@codingame/monaco-vscode-theme-service-override": "^
|
|
135
|
-
"@codingame/monaco-vscode-views-service-override": "^
|
|
136
|
-
"@codingame/monaco-vscode-workbench-service-override": "^
|
|
137
|
-
"vscode": "npm:@codingame/monaco-vscode-extension-api@^
|
|
107
|
+
"@codingame/monaco-vscode-api": "^24.1.1",
|
|
108
|
+
"@codingame/monaco-vscode-configuration-service-override": "^24.1.1",
|
|
109
|
+
"@codingame/monaco-vscode-editor-api": "^24.1.1",
|
|
110
|
+
"@codingame/monaco-vscode-editor-service-override": "^24.1.1",
|
|
111
|
+
"@codingame/monaco-vscode-extensions-service-override": "^24.1.1",
|
|
112
|
+
"@codingame/monaco-vscode-extension-api": "^24.1.1",
|
|
113
|
+
"@codingame/monaco-vscode-languages-service-override": "^24.1.1",
|
|
114
|
+
"@codingame/monaco-vscode-language-pack-cs": "^24.1.1",
|
|
115
|
+
"@codingame/monaco-vscode-language-pack-de": "^24.1.1",
|
|
116
|
+
"@codingame/monaco-vscode-language-pack-es": "^24.1.1",
|
|
117
|
+
"@codingame/monaco-vscode-language-pack-fr": "^24.1.1",
|
|
118
|
+
"@codingame/monaco-vscode-language-pack-it": "^24.1.1",
|
|
119
|
+
"@codingame/monaco-vscode-language-pack-ja": "^24.1.1",
|
|
120
|
+
"@codingame/monaco-vscode-language-pack-ko": "^24.1.1",
|
|
121
|
+
"@codingame/monaco-vscode-language-pack-pl": "^24.1.1",
|
|
122
|
+
"@codingame/monaco-vscode-language-pack-pt-br": "^24.1.1",
|
|
123
|
+
"@codingame/monaco-vscode-language-pack-qps-ploc": "^24.1.1",
|
|
124
|
+
"@codingame/monaco-vscode-language-pack-ru": "^24.1.1",
|
|
125
|
+
"@codingame/monaco-vscode-language-pack-tr": "^24.1.1",
|
|
126
|
+
"@codingame/monaco-vscode-language-pack-zh-hans": "^24.1.1",
|
|
127
|
+
"@codingame/monaco-vscode-language-pack-zh-hant": "^24.1.1",
|
|
128
|
+
"@codingame/monaco-vscode-localization-service-override": "^24.1.1",
|
|
129
|
+
"@codingame/monaco-vscode-log-service-override": "^24.1.1",
|
|
130
|
+
"@codingame/monaco-vscode-model-service-override": "^24.1.1",
|
|
131
|
+
"@codingame/monaco-vscode-monarch-service-override": "^24.1.1",
|
|
132
|
+
"@codingame/monaco-vscode-textmate-service-override": "^24.1.1",
|
|
133
|
+
"@codingame/monaco-vscode-theme-defaults-default-extension": "^24.1.1",
|
|
134
|
+
"@codingame/monaco-vscode-theme-service-override": "^24.1.1",
|
|
135
|
+
"@codingame/monaco-vscode-views-service-override": "^24.1.1",
|
|
136
|
+
"@codingame/monaco-vscode-workbench-service-override": "^24.1.1",
|
|
137
|
+
"vscode": "npm:@codingame/monaco-vscode-extension-api@^24.1.1",
|
|
138
138
|
"vscode-languageclient": "~9.0.1",
|
|
139
139
|
"vscode-languageserver-protocol": "~3.17.5",
|
|
140
140
|
"vscode-ws-jsonrpc": "~3.5.0"
|
|
141
141
|
},
|
|
142
142
|
"devDependencies": {
|
|
143
|
-
"@codingame/monaco-vscode-standalone-languages": "^
|
|
144
|
-
"@codingame/monaco-vscode-standalone-css-language-features": "^
|
|
145
|
-
"@codingame/monaco-vscode-standalone-html-language-features": "^
|
|
146
|
-
"@codingame/monaco-vscode-standalone-json-language-features": "^
|
|
147
|
-
"@codingame/monaco-vscode-standalone-typescript-language-features": "^
|
|
143
|
+
"@codingame/monaco-vscode-standalone-languages": "^24.1.1",
|
|
144
|
+
"@codingame/monaco-vscode-standalone-css-language-features": "^24.1.1",
|
|
145
|
+
"@codingame/monaco-vscode-standalone-html-language-features": "^24.1.1",
|
|
146
|
+
"@codingame/monaco-vscode-standalone-json-language-features": "^24.1.1",
|
|
147
|
+
"@codingame/monaco-vscode-standalone-typescript-language-features": "^24.1.1"
|
|
148
148
|
},
|
|
149
149
|
|
|
150
150
|
"scripts": {
|
package/src/debugger/index.ts
CHANGED
|
@@ -136,7 +136,7 @@ export const configureDebugging = async (api: typeof vscode, config: ConfigParam
|
|
|
136
136
|
}
|
|
137
137
|
websocket.send(JSON.stringify(initMessage));
|
|
138
138
|
|
|
139
|
-
//
|
|
139
|
+
// oxlint-disable-next-line @typescript-eslint/no-explicit-any
|
|
140
140
|
adapter.onDidSendMessage((message: any) => {
|
|
141
141
|
if (message.type === 'event' && message.event === 'output') {
|
|
142
142
|
logger?.info('OUTPUT', message.body.output);
|
package/src/vscode/utils.ts
CHANGED
|
@@ -5,10 +5,8 @@
|
|
|
5
5
|
|
|
6
6
|
import * as monaco from '@codingame/monaco-vscode-editor-api';
|
|
7
7
|
import type { OpenEditor } from '@codingame/monaco-vscode-editor-service-override';
|
|
8
|
-
import type { WorkerConfig } from '@codingame/monaco-vscode-extensions-service-override';
|
|
9
8
|
import getExtensionServiceOverride from '@codingame/monaco-vscode-extensions-service-override';
|
|
10
9
|
import type { Logger } from 'monaco-languageclient/common';
|
|
11
|
-
import { FakeWorker as Worker } from 'monaco-languageclient/workerFactory';
|
|
12
10
|
import type { MonacoEnvironmentEnhanced } from './config.js';
|
|
13
11
|
|
|
14
12
|
export const getEnhancedMonacoEnvironment = (): MonacoEnvironmentEnhanced => {
|
|
@@ -48,14 +46,10 @@ export const mergeServices = (overrideServices: monaco.editor.IEditorOverrideSer
|
|
|
48
46
|
*/
|
|
49
47
|
export const configureExtHostWorker = async (enableExtHostWorker: boolean, userServices: monaco.editor.IEditorOverrideServices) => {
|
|
50
48
|
if (enableExtHostWorker) {
|
|
51
|
-
const fakeWorker = new Worker(new URL('@codingame/monaco-vscode-api/workers/extensionHost.worker', import.meta.url), { type: 'module' });
|
|
52
|
-
const workerConfig: WorkerConfig = {
|
|
53
|
-
url: fakeWorker.url.toString(),
|
|
54
|
-
options: fakeWorker.options
|
|
55
|
-
};
|
|
56
|
-
|
|
57
49
|
mergeServices(userServices, {
|
|
58
|
-
...getExtensionServiceOverride(
|
|
50
|
+
...getExtensionServiceOverride({
|
|
51
|
+
enableWorkerExtensionHost: true
|
|
52
|
+
})
|
|
59
53
|
});
|
|
60
54
|
}
|
|
61
55
|
};
|
package/src/worker/index.ts
CHANGED
|
@@ -3,6 +3,71 @@
|
|
|
3
3
|
* Licensed under the MIT License. See LICENSE in the package root for license information.
|
|
4
4
|
* ------------------------------------------------------------------------------------------ */
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
import { getEnhancedMonacoEnvironment } from 'monaco-languageclient/vscodeApiWrapper';
|
|
7
|
+
import type { Logger } from 'monaco-languageclient/common';
|
|
8
|
+
|
|
9
|
+
export class Worker {
|
|
10
|
+
url: string | URL;
|
|
11
|
+
options?: WorkerOptions;
|
|
12
|
+
|
|
13
|
+
constructor(url: string | URL, options?: WorkerOptions) {
|
|
14
|
+
this.url = url;
|
|
15
|
+
this.options = options;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export type WorkerLoader = (() => Worker) | undefined;
|
|
20
|
+
|
|
21
|
+
export interface WorkerFactoryConfig {
|
|
22
|
+
workerLoaders?: Partial<Record<string, WorkerLoader>>;
|
|
23
|
+
logger?: Logger;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export const useWorkerFactory = (config: WorkerFactoryConfig) => {
|
|
27
|
+
const envEnhanced = getEnhancedMonacoEnvironment();
|
|
28
|
+
|
|
29
|
+
envEnhanced.getWorkerUrl = (workerId: string, label: string) => {
|
|
30
|
+
config.logger?.info(`getWorkerUrl: workerId: ${workerId} label: ${label}`);
|
|
31
|
+
return config.workerLoaders?.[label]?.().url.toString();
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
envEnhanced.getWorkerOptions = (moduleId: string, label: string) => {
|
|
35
|
+
config.logger?.info(`getWorkerOptions: moduleId: ${moduleId} label: ${label}`);
|
|
36
|
+
return config.workerLoaders?.[label]?.().options;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export const defineDefaultWorkerLoaders: () => Partial<Record<string, WorkerLoader>> = () => {
|
|
41
|
+
const defaultEditorWorkerService = () => new Worker(
|
|
42
|
+
new URL('@codingame/monaco-vscode-editor-api/esm/vs/editor/editor.worker.js', import.meta.url),
|
|
43
|
+
{ type: 'module' }
|
|
44
|
+
);
|
|
45
|
+
const defaultExtensionHostWorkerMain = () => new Worker(
|
|
46
|
+
new URL('@codingame/monaco-vscode-api/workers/extensionHost.worker', import.meta.url),
|
|
47
|
+
{ type: 'module' }
|
|
48
|
+
);
|
|
49
|
+
const defaultTextMateWorker = () => new Worker(
|
|
50
|
+
new URL('@codingame/monaco-vscode-textmate-service-override/worker', import.meta.url),
|
|
51
|
+
{ type: 'module' }
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
return {
|
|
55
|
+
// if you import monaco api as 'monaco-editor': monaco-editor/esm/vs/editor/editor.worker.js
|
|
56
|
+
editorWorkerService: defaultEditorWorkerService,
|
|
57
|
+
extensionHostWorkerMain: defaultExtensionHostWorkerMain,
|
|
58
|
+
TextMateWorker: defaultTextMateWorker,
|
|
59
|
+
// these are other possible workers not configured by default
|
|
60
|
+
OutputLinkDetectionWorker: undefined,
|
|
61
|
+
LanguageDetectionWorker: undefined,
|
|
62
|
+
NotebookEditorWorker: undefined,
|
|
63
|
+
LocalFileSearchWorker: undefined
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
export const configureDefaultWorkerFactory = (logger?: Logger) => {
|
|
68
|
+
useWorkerFactory({
|
|
69
|
+
workerLoaders: defineDefaultWorkerLoaders(),
|
|
70
|
+
logger
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fakeWorker.d.ts","sourceRoot":"","sources":["../../src/worker/fakeWorker.ts"],"names":[],"mappings":"AAKA,qBAAa,UAAU;IACnB,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IAClB,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB,YAAY,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,OAAO,CAAC,EAAE,aAAa,EAGrD;CACJ"}
|
package/lib/worker/fakeWorker.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/* --------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) 2024 TypeFox and others.
|
|
3
|
-
* Licensed under the MIT License. See LICENSE in the package root for license information.
|
|
4
|
-
* ------------------------------------------------------------------------------------------ */
|
|
5
|
-
export class FakeWorker {
|
|
6
|
-
url;
|
|
7
|
-
options;
|
|
8
|
-
constructor(url, options) {
|
|
9
|
-
this.url = url;
|
|
10
|
-
this.options = options;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=fakeWorker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fakeWorker.js","sourceRoot":"","sources":["../../src/worker/fakeWorker.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,MAAM,OAAO,UAAU;IACnB,GAAG,CAAe;IAClB,OAAO,CAAiB;IAExB,YAAY,GAAiB,EAAE,OAAuB,EAAE;QACpD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAAA,CAC1B;CACJ"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { Logger } from 'monaco-languageclient/common';
|
|
2
|
-
export type WorkerLoader = (() => Worker) | undefined;
|
|
3
|
-
export interface WorkerFactoryConfig {
|
|
4
|
-
workerLoaders?: Record<string, WorkerLoader>;
|
|
5
|
-
logger?: Logger;
|
|
6
|
-
getWorkerOverride?: (moduleId: string, label: string) => Worker;
|
|
7
|
-
}
|
|
8
|
-
export declare const useWorkerFactory: (config: WorkerFactoryConfig) => void;
|
|
9
|
-
//# sourceMappingURL=workerFactory.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workerFactory.d.ts","sourceRoot":"","sources":["../../src/worker/workerFactory.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAE3D,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,uCAa5B,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/* --------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) 2024 TypeFox and others.
|
|
3
|
-
* Licensed under the MIT License. See LICENSE in the package root for license information.
|
|
4
|
-
* ------------------------------------------------------------------------------------------ */
|
|
5
|
-
import { getEnhancedMonacoEnvironment } from 'monaco-languageclient/vscodeApiWrapper';
|
|
6
|
-
export const useWorkerFactory = (config) => {
|
|
7
|
-
const envEnhanced = getEnhancedMonacoEnvironment();
|
|
8
|
-
const getWorker = (moduleId, label) => {
|
|
9
|
-
config.logger?.info(`getWorker: moduleId: ${moduleId} label: ${label}`);
|
|
10
|
-
const workerFunc = config.workerLoaders?.[label] ?? undefined;
|
|
11
|
-
if (workerFunc === undefined) {
|
|
12
|
-
throw new Error(`Unimplemented worker ${label} (${moduleId})`);
|
|
13
|
-
}
|
|
14
|
-
return workerFunc();
|
|
15
|
-
};
|
|
16
|
-
envEnhanced.getWorker = config.getWorkerOverride ?? getWorker;
|
|
17
|
-
};
|
|
18
|
-
//# sourceMappingURL=workerFactory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workerFactory.js","sourceRoot":"","sources":["../../src/worker/workerFactory.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AAWtF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAA2B,EAAE,EAAE,CAAC;IAC7D,MAAM,WAAW,GAAG,4BAA4B,EAAE,CAAC;IAEnD,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,KAAa,EAAE,EAAE,CAAC;QACnD,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;IAAA,CACvB,CAAC;IACF,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC,iBAAiB,IAAI,SAAS,CAAC;AAAA,CACjE,CAAC"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { Logger } from 'monaco-languageclient/common';
|
|
2
|
-
import { type WorkerLoader } from 'monaco-languageclient/workerFactory';
|
|
3
|
-
export declare const defineDefaultWorkerLoaders: () => Record<string, WorkerLoader>;
|
|
4
|
-
export declare const configureDefaultWorkerFactory: (logger?: Logger | undefined) => void;
|
|
5
|
-
//# sourceMappingURL=workerLoaders.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workerLoaders.d.ts","sourceRoot":"","sources":["../../src/worker/workerLoaders.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAE1F,eAAO,MAAM,0BAA0B,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,YAAY,CAoBzE,CAAC;AAEF,eAAO,MAAM,6BAA6B,uCAKzC,CAAC"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/* --------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) 2024 TypeFox and others.
|
|
3
|
-
* Licensed under the MIT License. See LICENSE in the package root for license information.
|
|
4
|
-
* ------------------------------------------------------------------------------------------ */
|
|
5
|
-
import { useWorkerFactory } from 'monaco-languageclient/workerFactory';
|
|
6
|
-
export const defineDefaultWorkerLoaders = () => {
|
|
7
|
-
const defaultTextEditorWorker = () => new Worker(new URL('@codingame/monaco-vscode-editor-api/esm/vs/editor/editor.worker.js', import.meta.url), { type: 'module' });
|
|
8
|
-
const defaultTextMateWorker = () => new Worker(new URL('@codingame/monaco-vscode-textmate-service-override/worker', import.meta.url), { type: 'module' });
|
|
9
|
-
return {
|
|
10
|
-
// if you import monaco api as 'monaco-editor': monaco-editor/esm/vs/editor/editor.worker.js
|
|
11
|
-
TextEditorWorker: defaultTextEditorWorker,
|
|
12
|
-
TextMateWorker: defaultTextMateWorker,
|
|
13
|
-
// these are other possible workers not configured by default
|
|
14
|
-
OutputLinkDetectionWorker: undefined,
|
|
15
|
-
LanguageDetectionWorker: undefined,
|
|
16
|
-
NotebookEditorWorker: undefined,
|
|
17
|
-
LocalFileSearchWorker: undefined
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
export const configureDefaultWorkerFactory = (logger) => {
|
|
21
|
-
useWorkerFactory({
|
|
22
|
-
workerLoaders: defineDefaultWorkerLoaders(),
|
|
23
|
-
logger
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=workerLoaders.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workerLoaders.js","sourceRoot":"","sources":["../../src/worker/workerLoaders.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAGhG,OAAO,EAAE,gBAAgB,EAAqB,MAAM,qCAAqC,CAAC;AAE1F,MAAM,CAAC,MAAM,0BAA0B,GAAuC,GAAG,EAAE,CAAC;IAChF,MAAM,uBAAuB,GAAG,GAAG,EAAE,CAAC,IAAI,MAAM,CAC5C,IAAI,GAAG,CAAC,oEAAoE,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EAC9F,EAAE,IAAI,EAAE,QAAQ,EAAE,CACrB,CAAC;IACF,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,IAAI,MAAM,CAC1C,IAAI,GAAG,CAAC,2DAA2D,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EACrF,EAAE,IAAI,EAAE,QAAQ,EAAE,CACrB,CAAC;IAEF,OAAO;QACH,4FAA4F;QAC5F,gBAAgB,EAAE,uBAAuB;QACzC,cAAc,EAAE,qBAAqB;QACrC,6DAA6D;QAC7D,yBAAyB,EAAE,SAAS;QACpC,uBAAuB,EAAE,SAAS;QAClC,oBAAoB,EAAE,SAAS;QAC/B,qBAAqB,EAAE,SAAS;KACnC,CAAC;AAAA,CACL,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,MAAe,EAAE,EAAE,CAAC;IAC9D,gBAAgB,CAAC;QACb,aAAa,EAAE,0BAA0B,EAAE;QAC3C,MAAM;KACT,CAAC,CAAC;AAAA,CACN,CAAC"}
|
package/src/worker/fakeWorker.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/* --------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) 2024 TypeFox and others.
|
|
3
|
-
* Licensed under the MIT License. See LICENSE in the package root for license information.
|
|
4
|
-
* ------------------------------------------------------------------------------------------ */
|
|
5
|
-
|
|
6
|
-
export class FakeWorker {
|
|
7
|
-
url: string | URL;
|
|
8
|
-
options?: WorkerOptions;
|
|
9
|
-
|
|
10
|
-
constructor(url: string | URL, options?: WorkerOptions) {
|
|
11
|
-
this.url = url;
|
|
12
|
-
this.options = options;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/* --------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) 2024 TypeFox and others.
|
|
3
|
-
* Licensed under the MIT License. See LICENSE in the package root for license information.
|
|
4
|
-
* ------------------------------------------------------------------------------------------ */
|
|
5
|
-
|
|
6
|
-
import { getEnhancedMonacoEnvironment } from 'monaco-languageclient/vscodeApiWrapper';
|
|
7
|
-
import type { Logger } from 'monaco-languageclient/common';
|
|
8
|
-
|
|
9
|
-
export type WorkerLoader = (() => Worker) | undefined;
|
|
10
|
-
|
|
11
|
-
export interface WorkerFactoryConfig {
|
|
12
|
-
workerLoaders?: Record<string, WorkerLoader>;
|
|
13
|
-
logger?: Logger;
|
|
14
|
-
getWorkerOverride?: (moduleId: string, label: string) => Worker;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export const useWorkerFactory = (config: WorkerFactoryConfig) => {
|
|
18
|
-
const envEnhanced = getEnhancedMonacoEnvironment();
|
|
19
|
-
|
|
20
|
-
const getWorker = (moduleId: string, label: string) => {
|
|
21
|
-
config.logger?.info(`getWorker: moduleId: ${moduleId} label: ${label}`);
|
|
22
|
-
|
|
23
|
-
const workerFunc = config.workerLoaders?.[label] ?? undefined;
|
|
24
|
-
if (workerFunc === undefined) {
|
|
25
|
-
throw new Error(`Unimplemented worker ${label} (${moduleId})`);
|
|
26
|
-
}
|
|
27
|
-
return workerFunc();
|
|
28
|
-
};
|
|
29
|
-
envEnhanced.getWorker = config.getWorkerOverride ?? getWorker;
|
|
30
|
-
};
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/* --------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) 2024 TypeFox and others.
|
|
3
|
-
* Licensed under the MIT License. See LICENSE in the package root for license information.
|
|
4
|
-
* ------------------------------------------------------------------------------------------ */
|
|
5
|
-
|
|
6
|
-
import type { Logger } from 'monaco-languageclient/common';
|
|
7
|
-
import { useWorkerFactory, type WorkerLoader } from 'monaco-languageclient/workerFactory';
|
|
8
|
-
|
|
9
|
-
export const defineDefaultWorkerLoaders: () => Record<string, WorkerLoader> = () => {
|
|
10
|
-
const defaultTextEditorWorker = () => new Worker(
|
|
11
|
-
new URL('@codingame/monaco-vscode-editor-api/esm/vs/editor/editor.worker.js', import.meta.url),
|
|
12
|
-
{ type: 'module' }
|
|
13
|
-
);
|
|
14
|
-
const defaultTextMateWorker = () => new Worker(
|
|
15
|
-
new URL('@codingame/monaco-vscode-textmate-service-override/worker', import.meta.url),
|
|
16
|
-
{ type: 'module' }
|
|
17
|
-
);
|
|
18
|
-
|
|
19
|
-
return {
|
|
20
|
-
// if you import monaco api as 'monaco-editor': monaco-editor/esm/vs/editor/editor.worker.js
|
|
21
|
-
TextEditorWorker: defaultTextEditorWorker,
|
|
22
|
-
TextMateWorker: defaultTextMateWorker,
|
|
23
|
-
// these are other possible workers not configured by default
|
|
24
|
-
OutputLinkDetectionWorker: undefined,
|
|
25
|
-
LanguageDetectionWorker: undefined,
|
|
26
|
-
NotebookEditorWorker: undefined,
|
|
27
|
-
LocalFileSearchWorker: undefined
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
export const configureDefaultWorkerFactory = (logger?: Logger) => {
|
|
32
|
-
useWorkerFactory({
|
|
33
|
-
workerLoaders: defineDefaultWorkerLoaders(),
|
|
34
|
-
logger
|
|
35
|
-
});
|
|
36
|
-
};
|