monaco-languageclient 9.11.0 → 10.0.0-next.1
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 +4 -0
- package/lib/{commonTypes.d.ts → common/commonTypes.d.ts} +2 -2
- package/lib/common/commonTypes.d.ts.map +1 -0
- package/lib/common/commonTypes.js +6 -0
- package/lib/common/commonTypes.js.map +1 -0
- package/lib/common/index.d.ts +4 -0
- package/lib/common/index.d.ts.map +1 -0
- package/lib/{tools → common}/index.js +1 -0
- package/lib/common/index.js.map +1 -0
- package/lib/common/logging.d.ts.map +1 -0
- package/lib/common/logging.js.map +1 -0
- package/lib/common/utils.d.ts +5 -0
- package/lib/common/utils.d.ts.map +1 -0
- package/lib/{tools → common}/utils.js +14 -0
- package/lib/common/utils.js.map +1 -0
- package/lib/editorApp/config.d.ts +55 -0
- package/lib/editorApp/config.d.ts.map +1 -0
- package/lib/editorApp/config.js +13 -0
- package/lib/editorApp/config.js.map +1 -0
- package/lib/editorApp/editorApp.d.ts +60 -0
- package/lib/editorApp/editorApp.d.ts.map +1 -0
- package/lib/editorApp/editorApp.js +394 -0
- package/lib/editorApp/editorApp.js.map +1 -0
- package/lib/editorApp/index.d.ts +3 -0
- package/lib/editorApp/index.d.ts.map +1 -0
- package/lib/editorApp/index.js +7 -0
- package/lib/editorApp/index.js.map +1 -0
- package/lib/fs/definitions.d.ts +1 -1
- package/lib/fs/definitions.d.ts.map +1 -1
- package/lib/fs/endpoints/defaultEndpoint.d.ts +1 -1
- package/lib/fs/endpoints/defaultEndpoint.d.ts.map +1 -1
- package/lib/index.d.ts +15 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +18 -2
- package/lib/index.js.map +1 -1
- package/lib/vscode/apiWrapper.d.ts +62 -0
- package/lib/vscode/apiWrapper.d.ts.map +1 -0
- package/lib/vscode/apiWrapper.js +299 -0
- package/lib/vscode/apiWrapper.js.map +1 -0
- package/lib/vscode/config.d.ts +46 -0
- package/lib/vscode/config.d.ts.map +1 -0
- package/lib/vscode/config.js +7 -0
- package/lib/vscode/config.js.map +1 -0
- package/lib/vscode/index.d.ts +4 -2
- package/lib/vscode/index.d.ts.map +1 -1
- package/lib/vscode/index.js +4 -2
- package/lib/vscode/index.js.map +1 -1
- package/lib/vscode/locales.d.ts +5 -0
- package/lib/vscode/locales.d.ts.map +1 -0
- package/lib/vscode/locales.js +124 -0
- package/lib/vscode/locales.js.map +1 -0
- package/lib/vscode/utils.d.ts +13 -0
- package/lib/vscode/utils.d.ts.map +1 -0
- package/lib/vscode/utils.js +56 -0
- package/lib/vscode/utils.js.map +1 -0
- package/lib/vscode/viewsService.d.ts +4 -0
- package/lib/vscode/viewsService.d.ts.map +1 -0
- package/lib/vscode/viewsService.js +67 -0
- package/lib/vscode/viewsService.js.map +1 -0
- package/lib/{vscode → worker}/fakeWorker.d.ts.map +1 -1
- package/lib/{vscode → worker}/fakeWorker.js.map +1 -1
- package/lib/worker/index.d.ts +4 -0
- package/lib/worker/index.d.ts.map +1 -0
- package/lib/worker/index.js +8 -0
- package/lib/worker/index.js.map +1 -0
- package/lib/{workerFactory.d.ts → worker/workerFactory.d.ts} +1 -1
- package/lib/worker/workerFactory.d.ts.map +1 -0
- package/lib/{workerFactory.js → worker/workerFactory.js} +1 -1
- package/lib/worker/workerFactory.js.map +1 -0
- package/lib/worker/workerLoaders.d.ts +5 -0
- package/lib/worker/workerLoaders.d.ts.map +1 -0
- package/lib/worker/workerLoaders.js +26 -0
- package/lib/worker/workerLoaders.js.map +1 -0
- package/lib/wrapper/index.d.ts +4 -0
- package/lib/wrapper/index.d.ts.map +1 -0
- package/lib/wrapper/index.js +8 -0
- package/lib/wrapper/index.js.map +1 -0
- package/lib/wrapper/lcconfig.d.ts +24 -0
- package/lib/wrapper/lcconfig.d.ts.map +1 -0
- package/lib/wrapper/lcconfig.js +6 -0
- package/lib/wrapper/lcconfig.js.map +1 -0
- package/lib/wrapper/lcmanager.d.ts +18 -0
- package/lib/wrapper/lcmanager.d.ts.map +1 -0
- package/lib/wrapper/lcmanager.js +75 -0
- package/lib/wrapper/lcmanager.js.map +1 -0
- package/lib/wrapper/lcwrapper.d.ts +37 -0
- package/lib/wrapper/lcwrapper.d.ts.map +1 -0
- package/lib/wrapper/lcwrapper.js +247 -0
- package/lib/wrapper/lcwrapper.js.map +1 -0
- package/package.json +61 -18
- package/src/{commonTypes.ts → common/commonTypes.ts} +2 -2
- package/src/{tools → common}/index.ts +1 -0
- package/src/{tools → common}/utils.ts +16 -1
- package/src/editorApp/config.ts +67 -0
- package/src/editorApp/editorApp.ts +448 -0
- package/{lib/commonTypes.js → src/editorApp/index.ts} +3 -2
- package/src/fs/definitions.ts +1 -1
- package/src/fs/endpoints/defaultEndpoint.ts +1 -1
- package/src/index.ts +29 -2
- package/src/vscode/apiWrapper.ts +341 -0
- package/src/vscode/config.ts +55 -0
- package/src/vscode/index.ts +4 -2
- package/src/vscode/locales.ts +128 -0
- package/src/vscode/utils.ts +67 -0
- package/src/vscode/viewsService.ts +73 -0
- package/src/worker/index.ts +8 -0
- package/src/{workerFactory.ts → worker/workerFactory.ts} +2 -2
- package/src/worker/workerLoaders.ts +36 -0
- package/src/wrapper/index.ts +8 -0
- package/src/wrapper/lcconfig.ts +32 -0
- package/src/wrapper/lcmanager.ts +89 -0
- package/src/wrapper/lcwrapper.ts +280 -0
- package/lib/client.d.ts +0 -13
- package/lib/client.d.ts.map +0 -1
- package/lib/client.js +0 -16
- package/lib/client.js.map +0 -1
- package/lib/commonTypes.d.ts.map +0 -1
- package/lib/commonTypes.js.map +0 -1
- package/lib/tools/index.d.ts +0 -3
- package/lib/tools/index.d.ts.map +0 -1
- package/lib/tools/index.js.map +0 -1
- package/lib/tools/logging.d.ts.map +0 -1
- package/lib/tools/logging.js.map +0 -1
- package/lib/tools/utils.d.ts +0 -3
- package/lib/tools/utils.d.ts.map +0 -1
- package/lib/tools/utils.js.map +0 -1
- package/lib/vscode/services.d.ts +0 -64
- package/lib/vscode/services.d.ts.map +0 -1
- package/lib/vscode/services.js +0 -192
- package/lib/vscode/services.js.map +0 -1
- package/lib/workerFactory.d.ts.map +0 -1
- package/lib/workerFactory.js.map +0 -1
- package/src/client.ts +0 -26
- package/src/vscode/services.ts +0 -249
- /package/lib/{tools → common}/logging.d.ts +0 -0
- /package/lib/{tools → common}/logging.js +0 -0
- /package/lib/{vscode → worker}/fakeWorker.d.ts +0 -0
- /package/lib/{vscode → worker}/fakeWorker.js +0 -0
- /package/src/{tools → common}/logging.ts +0 -0
- /package/src/{vscode → worker}/fakeWorker.ts +0 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/* --------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) 2025 TypeFox and others.
|
|
3
|
+
* Licensed under the MIT License. See LICENSE in the package root for license information.
|
|
4
|
+
* ------------------------------------------------------------------------------------------ */
|
|
5
|
+
|
|
6
|
+
export * from './fakeWorker.js';
|
|
7
|
+
export * from './workerFactory.js';
|
|
8
|
+
export * from './workerLoaders.js';
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Licensed under the MIT License. See LICENSE in the package root for license information.
|
|
4
4
|
* ------------------------------------------------------------------------------------------ */
|
|
5
5
|
|
|
6
|
-
import { getEnhancedMonacoEnvironment } from 'monaco-languageclient/
|
|
7
|
-
import type { Logger } from 'monaco-languageclient/
|
|
6
|
+
import { getEnhancedMonacoEnvironment } from 'monaco-languageclient/vscodeApiWrapper';
|
|
7
|
+
import type { Logger } from 'monaco-languageclient/common';
|
|
8
8
|
|
|
9
9
|
export type WorkerLoader = (() => Worker) | undefined;
|
|
10
10
|
|
|
@@ -0,0 +1,36 @@
|
|
|
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
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
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 * from './lcconfig.js';
|
|
7
|
+
export * from './lcmanager.js';
|
|
8
|
+
export * from './lcwrapper.js';
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/* --------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) 2025 TypeFox and others.
|
|
3
|
+
* Licensed under the MIT License. See LICENSE in the package root for license information.
|
|
4
|
+
* ------------------------------------------------------------------------------------------ */
|
|
5
|
+
|
|
6
|
+
import type { LanguageClientOptions, MessageTransports } from 'vscode-languageclient/browser.js';
|
|
7
|
+
import { type ConnectionConfigOptions } from 'monaco-languageclient/common';
|
|
8
|
+
|
|
9
|
+
export interface ConnectionConfig {
|
|
10
|
+
options: ConnectionConfigOptions;
|
|
11
|
+
messageTransports?: MessageTransports;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface LanguageClientConfig {
|
|
15
|
+
name?: string;
|
|
16
|
+
connection: ConnectionConfig;
|
|
17
|
+
clientOptions: LanguageClientOptions;
|
|
18
|
+
restartOptions?: LanguageClientRestartOptions;
|
|
19
|
+
disposeWorker?: boolean;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface LanguageClientRestartOptions {
|
|
23
|
+
retries: number;
|
|
24
|
+
timeout: number;
|
|
25
|
+
keepWorker?: boolean;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface LanguageClientConfigs {
|
|
29
|
+
configs: Record<string, LanguageClientConfig>
|
|
30
|
+
overwriteExisting?: boolean;
|
|
31
|
+
enforceDispose?: boolean;
|
|
32
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/* --------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) 2025 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 type { LanguageClientConfigs } from './lcconfig.js';
|
|
8
|
+
import { LanguageClientWrapper } from './lcwrapper.js';
|
|
9
|
+
|
|
10
|
+
export class LanguageClientsManager {
|
|
11
|
+
|
|
12
|
+
private logger?: Logger;
|
|
13
|
+
private languageClientConfigs?: LanguageClientConfigs;
|
|
14
|
+
private languageClientWrappers: Map<string, LanguageClientWrapper> = new Map();
|
|
15
|
+
|
|
16
|
+
constructor(logger?: Logger) {
|
|
17
|
+
this.logger = logger;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
haveLanguageClients(): boolean {
|
|
21
|
+
return this.languageClientWrappers.size > 0;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
getLanguageClientWrapper(languageId: string): LanguageClientWrapper | undefined {
|
|
25
|
+
return this.languageClientWrappers.get(languageId);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
getLanguageClient(languageId: string) {
|
|
29
|
+
return this.languageClientWrappers.get(languageId)?.getLanguageClient();
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
getWorker(languageId: string): Worker | undefined {
|
|
33
|
+
return this.languageClientWrappers.get(languageId)?.getWorker();
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
async setConfigs(languageClientConfigs: LanguageClientConfigs): Promise<void> {
|
|
37
|
+
this.languageClientConfigs = languageClientConfigs;
|
|
38
|
+
|
|
39
|
+
const lccEntries = Object.entries(this.languageClientConfigs.configs);
|
|
40
|
+
if (lccEntries.length > 0) {
|
|
41
|
+
for (const [languageId, lcc] of lccEntries) {
|
|
42
|
+
const current = this.languageClientWrappers.get(languageId);
|
|
43
|
+
const lcw = new LanguageClientWrapper(lcc, this.logger);
|
|
44
|
+
|
|
45
|
+
if (current !== undefined) {
|
|
46
|
+
if (languageClientConfigs.overwriteExisting === true) {
|
|
47
|
+
if (languageClientConfigs.enforceDispose === true) {
|
|
48
|
+
await current.dispose();
|
|
49
|
+
}
|
|
50
|
+
} else {
|
|
51
|
+
throw new Error(`A languageclient config with id "${languageId}" already exists and you confiured to not override.`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
this.languageClientWrappers.set(languageId, lcw);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
async start(): Promise<void | void[]> {
|
|
60
|
+
const allPromises: Array<Promise<void>> = [];
|
|
61
|
+
for (const lcw of this.languageClientWrappers.values()) {
|
|
62
|
+
if (!lcw.isStarted()) {
|
|
63
|
+
allPromises.push(lcw.start());
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return Promise.all(allPromises);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
isStarted(): boolean {
|
|
70
|
+
for (const lcw of this.languageClientWrappers.values()) {
|
|
71
|
+
// as soon as one is not started return
|
|
72
|
+
if (!lcw.isStarted()) {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
async dispose(): Promise<void | void[]> {
|
|
80
|
+
const allPromises: Array<Promise<void>> = [];
|
|
81
|
+
for (const lcw of this.languageClientWrappers.values()) {
|
|
82
|
+
if (lcw.haveLanguageClient()) {
|
|
83
|
+
allPromises.push(lcw.dispose());
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
await Promise.all(allPromises);
|
|
87
|
+
this.languageClientWrappers.clear();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -0,0 +1,280 @@
|
|
|
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 { BrowserMessageReader, BrowserMessageWriter } from 'vscode-languageserver-protocol/browser.js';
|
|
7
|
+
import { CloseAction, ErrorAction, MessageTransports, State } from 'vscode-languageclient/browser.js';
|
|
8
|
+
import { createUrl, type Logger, type WorkerConfigOptionsDirect, type WorkerConfigOptionsParams } from 'monaco-languageclient/common';
|
|
9
|
+
import { toSocket, WebSocketMessageReader, WebSocketMessageWriter } from 'vscode-ws-jsonrpc';
|
|
10
|
+
import { MonacoLanguageClient } from 'monaco-languageclient';
|
|
11
|
+
import type { LanguageClientConfig, LanguageClientRestartOptions } from './lcconfig.js';
|
|
12
|
+
|
|
13
|
+
export interface LanguageClientError {
|
|
14
|
+
message: string;
|
|
15
|
+
error: Error | string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export class LanguageClientWrapper {
|
|
19
|
+
|
|
20
|
+
private languageClient?: MonacoLanguageClient;
|
|
21
|
+
private languageClientConfig: LanguageClientConfig;
|
|
22
|
+
private worker?: Worker;
|
|
23
|
+
private port?: MessagePort;
|
|
24
|
+
private name?: string;
|
|
25
|
+
private logger: Logger | undefined;
|
|
26
|
+
|
|
27
|
+
constructor(config: LanguageClientConfig, logger?: Logger) {
|
|
28
|
+
this.languageClientConfig = config;
|
|
29
|
+
this.name = this.languageClientConfig.name ?? 'unnamed';
|
|
30
|
+
this.logger = logger;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
haveLanguageClient(): boolean {
|
|
34
|
+
return this.languageClient !== undefined;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
getLanguageClient(): MonacoLanguageClient | undefined {
|
|
38
|
+
return this.languageClient;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
getWorker(): Worker | undefined {
|
|
42
|
+
return this.worker;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
isStarted(): boolean {
|
|
46
|
+
return this.languageClient !== undefined && this.languageClient.isRunning();
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
async start(): Promise<void> {
|
|
50
|
+
if (this.languageClient?.isRunning() ?? false) {
|
|
51
|
+
this.logger?.info('startLanguageClientConnection: monaco-languageclient already running!');
|
|
52
|
+
return Promise.resolve();
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return new Promise((resolve, reject) => {
|
|
56
|
+
const conConfig = this.languageClientConfig.connection;
|
|
57
|
+
const conOptions = conConfig.options;
|
|
58
|
+
|
|
59
|
+
if (conOptions.$type === 'WebSocketDirect' || conOptions.$type === 'WebSocketParams' || conOptions.$type === 'WebSocketUrl') {
|
|
60
|
+
const webSocket = conOptions.$type === 'WebSocketDirect' ? conOptions.webSocket : new WebSocket(createUrl(conOptions));
|
|
61
|
+
this.initMessageTransportWebSocket(webSocket, resolve, reject);
|
|
62
|
+
} else {
|
|
63
|
+
// init of worker and start of languageclient can be handled directly, because worker available already
|
|
64
|
+
this.initMessageTransportWorker(conOptions, resolve, reject);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Restart the languageclient with options to control worker handling
|
|
71
|
+
*
|
|
72
|
+
* @param updatedWorker Set a new worker here that should be used. keepWorker has no effect then, as we want to dispose of the prior workers
|
|
73
|
+
* @param disposeWorker Set to false if worker should not be disposed
|
|
74
|
+
*/
|
|
75
|
+
async restart(updatedWorker?: Worker, forceWorkerDispose?: boolean): Promise<void> {
|
|
76
|
+
await this.dispose(forceWorkerDispose);
|
|
77
|
+
|
|
78
|
+
this.worker = updatedWorker;
|
|
79
|
+
this.logger?.info('Re-Starting monaco-languageclient');
|
|
80
|
+
return this.start();
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
protected async initMessageTransportWebSocket(webSocket: WebSocket, resolve: () => void, reject: (reason?: unknown) => void) {
|
|
84
|
+
|
|
85
|
+
let messageTransports = this.languageClientConfig.connection.messageTransports;
|
|
86
|
+
if (messageTransports === undefined) {
|
|
87
|
+
const iWebSocket = toSocket(webSocket);
|
|
88
|
+
messageTransports = {
|
|
89
|
+
reader: new WebSocketMessageReader(iWebSocket),
|
|
90
|
+
writer: new WebSocketMessageWriter(iWebSocket)
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// if websocket is already open, then start the languageclient directly
|
|
95
|
+
if (webSocket.readyState === WebSocket.OPEN) {
|
|
96
|
+
await this.performLanguageClientStart(messageTransports, resolve, reject);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// otherwise start on open
|
|
100
|
+
webSocket.onopen = async () => {
|
|
101
|
+
await this.performLanguageClientStart(messageTransports, resolve, reject);
|
|
102
|
+
};
|
|
103
|
+
webSocket.onerror = (ev: Event) => {
|
|
104
|
+
const languageClientError: LanguageClientError = {
|
|
105
|
+
message: `languageClientWrapper (${this.name}): Websocket connection failed.`,
|
|
106
|
+
error: (ev as ErrorEvent).error ?? 'No error was provided.'
|
|
107
|
+
};
|
|
108
|
+
reject(languageClientError);
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
protected async initMessageTransportWorker(lccOptions: WorkerConfigOptionsDirect | WorkerConfigOptionsParams, resolve: () => void, reject: (reason?: unknown) => void) {
|
|
113
|
+
if (!this.worker) {
|
|
114
|
+
if (lccOptions.$type === 'WorkerConfig') {
|
|
115
|
+
const workerConfig = lccOptions as WorkerConfigOptionsParams;
|
|
116
|
+
this.worker = new Worker(workerConfig.url.href, {
|
|
117
|
+
type: workerConfig.type,
|
|
118
|
+
name: workerConfig.workerName
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
this.worker.onerror = (ev) => {
|
|
122
|
+
const languageClientError: LanguageClientError = {
|
|
123
|
+
message: `languageClientWrapper (${this.name}): Illegal worker configuration detected.`,
|
|
124
|
+
error: ev.error ?? 'No error was provided.'
|
|
125
|
+
};
|
|
126
|
+
reject(languageClientError);
|
|
127
|
+
};
|
|
128
|
+
} else {
|
|
129
|
+
const workerDirectConfig = lccOptions as WorkerConfigOptionsDirect;
|
|
130
|
+
this.worker = workerDirectConfig.worker;
|
|
131
|
+
}
|
|
132
|
+
if (lccOptions.messagePort !== undefined) {
|
|
133
|
+
this.port = lccOptions.messagePort;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
const portOrWorker = this.port ? this.port : this.worker;
|
|
138
|
+
let messageTransports = this.languageClientConfig.connection.messageTransports;
|
|
139
|
+
if (messageTransports === undefined) {
|
|
140
|
+
messageTransports = {
|
|
141
|
+
reader: new BrowserMessageReader(portOrWorker),
|
|
142
|
+
writer: new BrowserMessageWriter(portOrWorker)
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
await this.performLanguageClientStart(messageTransports, resolve, reject);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
protected async performLanguageClientStart(messageTransports: MessageTransports, resolve: () => void, reject: (reason?: unknown) => void) {
|
|
150
|
+
let starting = true;
|
|
151
|
+
// do not perform another start attempt if already running
|
|
152
|
+
if (this.languageClient?.isRunning() ?? false) {
|
|
153
|
+
this.logger?.info('performLanguageClientStart: monaco-languageclient already running!');
|
|
154
|
+
resolve();
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
const mlcConfig = {
|
|
158
|
+
name: this.languageClientConfig.name ?? 'Monaco Wrapper Language Client',
|
|
159
|
+
clientOptions: {
|
|
160
|
+
// disable the default error handler...
|
|
161
|
+
errorHandler: {
|
|
162
|
+
error: (e: Error) => {
|
|
163
|
+
if (starting) {
|
|
164
|
+
reject(`Error occurred in language client: ${e}`);
|
|
165
|
+
return { action: ErrorAction.Shutdown };
|
|
166
|
+
} else {
|
|
167
|
+
return { action: ErrorAction.Continue };
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
closed: () => ({ action: CloseAction.DoNotRestart })
|
|
171
|
+
},
|
|
172
|
+
// ...but allowm to override all options
|
|
173
|
+
...this.languageClientConfig.clientOptions,
|
|
174
|
+
},
|
|
175
|
+
messageTransports
|
|
176
|
+
};
|
|
177
|
+
this.languageClient = new MonacoLanguageClient(mlcConfig);
|
|
178
|
+
|
|
179
|
+
const conOptions = this.languageClientConfig.connection.options;
|
|
180
|
+
this.initRestartConfiguration(messageTransports, this.languageClientConfig.restartOptions);
|
|
181
|
+
|
|
182
|
+
const isWebSocket = conOptions.$type === 'WebSocketParams' || conOptions.$type === 'WebSocketUrl' || conOptions.$type === 'WebSocketDirect';
|
|
183
|
+
|
|
184
|
+
messageTransports.reader.onClose(async () => {
|
|
185
|
+
await this.languageClient?.stop();
|
|
186
|
+
|
|
187
|
+
if (isWebSocket && conOptions.stopOptions !== undefined) {
|
|
188
|
+
const stopOptions = conOptions.stopOptions;
|
|
189
|
+
stopOptions.onCall(this.getLanguageClient());
|
|
190
|
+
if (stopOptions.reportStatus !== undefined) {
|
|
191
|
+
this.logger?.info(this.reportStatus().join('\n'));
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
|
|
196
|
+
try {
|
|
197
|
+
await this.languageClient.start();
|
|
198
|
+
|
|
199
|
+
if (isWebSocket && conOptions.startOptions !== undefined) {
|
|
200
|
+
const startOptions = conOptions.startOptions;
|
|
201
|
+
startOptions.onCall(this.getLanguageClient());
|
|
202
|
+
if (startOptions.reportStatus !== undefined) {
|
|
203
|
+
this.logger?.info(this.reportStatus().join('\n'));
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
} catch (e: unknown) {
|
|
207
|
+
const languageClientError: LanguageClientError = {
|
|
208
|
+
message: `languageClientWrapper (${this.name}): Start was unsuccessful.`,
|
|
209
|
+
error: Object.hasOwn(e ?? {}, 'cause') ? (e as Error) : 'No error was provided.'
|
|
210
|
+
};
|
|
211
|
+
reject(languageClientError);
|
|
212
|
+
}
|
|
213
|
+
this.logger?.info(`languageClientWrapper (${this.name}): Started successfully.`);
|
|
214
|
+
resolve();
|
|
215
|
+
starting = false;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
protected initRestartConfiguration(messageTransports: MessageTransports, restartOptions?: LanguageClientRestartOptions) {
|
|
219
|
+
if (restartOptions !== undefined) {
|
|
220
|
+
let retry = 0;
|
|
221
|
+
|
|
222
|
+
const readerOnError = messageTransports.reader.onError(() => restartLC);
|
|
223
|
+
const readerOnClose = messageTransports.reader.onClose(() => restartLC);
|
|
224
|
+
|
|
225
|
+
const restartLC = async () => {
|
|
226
|
+
if (this.isStarted()) {
|
|
227
|
+
try {
|
|
228
|
+
readerOnError.dispose();
|
|
229
|
+
readerOnClose.dispose();
|
|
230
|
+
|
|
231
|
+
await this.restart(this.worker, restartOptions.keepWorker);
|
|
232
|
+
} finally {
|
|
233
|
+
retry++;
|
|
234
|
+
if (retry > (restartOptions.retries) && !this.isStarted()) {
|
|
235
|
+
this.logger?.info(`Disabling Language Client. Failed to start clangd after ${restartOptions.retries} retries`);
|
|
236
|
+
} else {
|
|
237
|
+
setTimeout(async () => {
|
|
238
|
+
await this.restart(this.worker, restartOptions.keepWorker);
|
|
239
|
+
}, restartOptions.timeout);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
protected disposeWorker() {
|
|
248
|
+
this.worker?.terminate();
|
|
249
|
+
this.worker = undefined;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
async dispose(forceWorkerDispose?: boolean): Promise<void> {
|
|
253
|
+
try {
|
|
254
|
+
if (this.isStarted()) {
|
|
255
|
+
await this.languageClient?.dispose();
|
|
256
|
+
this.languageClient = undefined;
|
|
257
|
+
this.logger?.info('monaco-languageclient and monaco-editor were successfully disposed.');
|
|
258
|
+
}
|
|
259
|
+
} catch (e) {
|
|
260
|
+
const languageClientError: LanguageClientError = {
|
|
261
|
+
message: `languageClientWrapper (${this.name}): Disposing the monaco-languageclient resulted in error.`,
|
|
262
|
+
error: Object.hasOwn(e ?? {}, 'cause') ? (e as Error) : 'No error was provided.'
|
|
263
|
+
};
|
|
264
|
+
return Promise.reject(languageClientError);
|
|
265
|
+
} finally {
|
|
266
|
+
// always terminate the worker if desired
|
|
267
|
+
if (this.languageClientConfig.disposeWorker === true || forceWorkerDispose === true) {
|
|
268
|
+
this.disposeWorker();
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
reportStatus() {
|
|
274
|
+
const status: string[] = [];
|
|
275
|
+
const languageClient = this.getLanguageClient();
|
|
276
|
+
status.push('LanguageClientWrapper status:');
|
|
277
|
+
status.push(`LanguageClient: ${languageClient?.name ?? 'Language Client'} is in a '${State[languageClient?.state ?? 1]}' state`);
|
|
278
|
+
return status;
|
|
279
|
+
}
|
|
280
|
+
}
|
package/lib/client.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { BaseLanguageClient, MessageTransports, type LanguageClientOptions } from 'vscode-languageclient/browser.js';
|
|
2
|
-
export type MonacoLanguageClientOptions = {
|
|
3
|
-
name: string;
|
|
4
|
-
id?: string;
|
|
5
|
-
clientOptions: LanguageClientOptions;
|
|
6
|
-
messageTransports: MessageTransports;
|
|
7
|
-
};
|
|
8
|
-
export declare class MonacoLanguageClient extends BaseLanguageClient {
|
|
9
|
-
protected readonly messageTransports: MessageTransports;
|
|
10
|
-
constructor({ id, name, clientOptions, messageTransports }: MonacoLanguageClientOptions);
|
|
11
|
-
protected createMessageTransports(_encoding: string): Promise<MessageTransports>;
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=client.d.ts.map
|
package/lib/client.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAErH,MAAM,MAAM,2BAA2B,GAAG;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,qBAAqB,CAAC;IACrC,iBAAiB,EAAE,iBAAiB,CAAC;CACxC,CAAA;AAED,qBAAa,oBAAqB,SAAQ,kBAAkB;IACxD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;gBAE5C,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,2BAA2B;cAKpE,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAG5F"}
|
package/lib/client.js
DELETED
|
@@ -1,16 +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 { BaseLanguageClient, MessageTransports } from 'vscode-languageclient/browser.js';
|
|
6
|
-
export class MonacoLanguageClient extends BaseLanguageClient {
|
|
7
|
-
messageTransports;
|
|
8
|
-
constructor({ id, name, clientOptions, messageTransports }) {
|
|
9
|
-
super(id ?? name.toLowerCase(), name, clientOptions);
|
|
10
|
-
this.messageTransports = messageTransports;
|
|
11
|
-
}
|
|
12
|
-
createMessageTransports(_encoding) {
|
|
13
|
-
return Promise.resolve(this.messageTransports);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=client.js.map
|
package/lib/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAA8B,MAAM,kCAAkC,CAAC;AASrH,MAAM,OAAO,oBAAqB,SAAQ,kBAAkB;IACrC,iBAAiB,CAAoB;IAExD,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,iBAAiB,EAA+B;QACnF,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QACrD,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC/C,CAAC;IAEkB,uBAAuB,CAAC,SAAiB;QACxD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACnD,CAAC;CACJ"}
|
package/lib/commonTypes.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commonTypes.d.ts","sourceRoot":"","sources":["../src/commonTypes.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,MAAM,uBAAuB,GAAG,4BAA4B,GAAG,4BAA4B,GAAG,yBAAyB,GAAG,yBAAyB,GAAG,yBAAyB,CAAC;AAEtL,MAAM,WAAW,oBAAoB;IACjC,oCAAoC;IACpC,MAAM,EAAE,CAAC,cAAc,CAAC,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACxD,wCAAwC;IACxC,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,4BAA4B;IACzC,KAAK,EAAE,iBAAiB,CAAA;IACxB,SAAS,EAAE,SAAS,CAAA;IACpB,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,WAAW,CAAC,EAAE,oBAAoB,CAAC;CACtC;AAED,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;CAC1E;AAED,MAAM,WAAW,4BAA6B,SAAQ,kBAAkB;IACpE,KAAK,EAAE,iBAAiB,CAAA;IACxB,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,WAAW,CAAC,EAAE,oBAAoB,CAAC;CACtC;AAED,MAAM,WAAW,kBAAkB;IAC/B,GAAG,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACjE,KAAK,EAAE,cAAc,CAAA;IACrB,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,WAAW,CAAC,EAAE,oBAAoB,CAAC;CACtC;AAED,MAAM,WAAW,yBAAyB;IACtC,KAAK,EAAE,cAAc,CAAA;IACrB,GAAG,EAAE,GAAG,CAAC;IACT,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC3B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,yBAAyB;IACtC,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,WAAW,CAAC;CAC7B"}
|
package/lib/commonTypes.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commonTypes.js","sourceRoot":"","sources":["../src/commonTypes.ts"],"names":[],"mappings":"AAAA;;;gGAGgG"}
|
package/lib/tools/index.d.ts
DELETED
package/lib/tools/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAKA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
|
package/lib/tools/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/tools/logging.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,KAAK,OAAO,EAAE,MAAM,+CAA+C,CAAC;AACnH,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAExD,MAAM,WAAW,MAAO,SAAQ,OAAO;IACnC,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;CACnE;AAED,qBAAa,aAAc,SAAQ,mBAAmB;gBAEtC,QAAQ,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,OAAO;IAIpD,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE;CAO1D"}
|
package/lib/tools/logging.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/tools/logging.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAgB,MAAM,+CAA+C,CAAC;AACnH,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAMxD,MAAM,OAAO,aAAc,SAAQ,mBAAmB;IAElD,YAAY,QAAmB,EAAE,SAAmB;QAChD,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,iBAAiB,CAAC,OAAe,EAAE,GAAG,MAAiB;QACnD,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;CAEJ"}
|
package/lib/tools/utils.d.ts
DELETED
package/lib/tools/utils.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/tools/utils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEpF,eAAO,MAAM,SAAS,GAAI,QAAQ,kBAAkB,GAAG,kBAAkB,WA+BxE,CAAC"}
|
package/lib/tools/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/tools/utils.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAIhG,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAA+C,EAAE,EAAE;IACzE,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAK,MAA6B,CAAC,GAAG,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,MAA4B,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxE,MAAM,IAAI,KAAK,CAAC,uCAAuC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAC3B,CAAC;SAAM,CAAC;QACJ,MAAM,OAAO,GAAG,MAA4B,CAAC;QAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAChD,QAAQ,GAAG,GAAG,QAAQ,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QAC3C,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,OAAO,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;gBACtB,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACnC,CAAC;QACL,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACnC,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;YAE9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC7D,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC3F,CAAC;YAED,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC9B,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC"}
|
package/lib/vscode/services.d.ts
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import * as monaco from '@codingame/monaco-vscode-editor-api';
|
|
2
|
-
import 'vscode/localExtensionHost';
|
|
3
|
-
import { type IWorkbenchConstructionOptions } from '@codingame/monaco-vscode-api';
|
|
4
|
-
import type { OpenEditor } from '@codingame/monaco-vscode-editor-service-override';
|
|
5
|
-
import type { LocalizationOptions } from '@codingame/monaco-vscode-localization-service-override';
|
|
6
|
-
import type { EnvironmentOverride } from '@codingame/monaco-vscode-api/workbench';
|
|
7
|
-
import type { Logger } from 'monaco-languageclient/tools';
|
|
8
|
-
export interface MonacoEnvironmentEnhanced extends monaco.Environment {
|
|
9
|
-
vscodeInitialising?: boolean;
|
|
10
|
-
vscodeApiInitialised?: boolean;
|
|
11
|
-
}
|
|
12
|
-
export interface UserConfiguration {
|
|
13
|
-
json?: string;
|
|
14
|
-
}
|
|
15
|
-
export interface ViewsConfig {
|
|
16
|
-
viewServiceType: 'EditorService' | 'ViewsService' | 'WorkspaceService';
|
|
17
|
-
openEditorFunc?: OpenEditor;
|
|
18
|
-
htmlAugmentationInstructions?: (htmlContainer: HTMLElement | null | undefined) => void;
|
|
19
|
-
viewsInitFunc?: () => Promise<void>;
|
|
20
|
-
}
|
|
21
|
-
export interface VscodeApiConfig {
|
|
22
|
-
vscodeApiInitPerformExternally?: boolean;
|
|
23
|
-
loadThemes?: boolean;
|
|
24
|
-
serviceOverrides?: monaco.editor.IEditorOverrideServices;
|
|
25
|
-
enableExtHostWorker?: boolean;
|
|
26
|
-
workspaceConfig?: IWorkbenchConstructionOptions;
|
|
27
|
-
userConfiguration?: UserConfiguration;
|
|
28
|
-
viewsConfig?: ViewsConfig;
|
|
29
|
-
envOptions?: EnvironmentOverride;
|
|
30
|
-
}
|
|
31
|
-
export interface InitServicesInstructions {
|
|
32
|
-
htmlContainer?: HTMLElement;
|
|
33
|
-
caller?: string;
|
|
34
|
-
performServiceConsistencyChecks?: () => boolean;
|
|
35
|
-
logger?: Logger;
|
|
36
|
-
monacoWorkerFactory?: (logger?: Logger) => void;
|
|
37
|
-
}
|
|
38
|
-
export declare const getEnhancedMonacoEnvironment: () => MonacoEnvironmentEnhanced;
|
|
39
|
-
export declare const getMonacoEnvironmentEnhanced: () => MonacoEnvironmentEnhanced;
|
|
40
|
-
export declare const supplyRequiredServices: () => Promise<{
|
|
41
|
-
[x: string]: any;
|
|
42
|
-
}>;
|
|
43
|
-
export declare const reportServiceLoading: (services: monaco.editor.IEditorOverrideServices, logger?: Logger) => void;
|
|
44
|
-
export declare const mergeServices: (overrideServices: monaco.editor.IEditorOverrideServices, services?: monaco.editor.IEditorOverrideServices) => void;
|
|
45
|
-
export declare const initServices: (vscodeApiConfig: VscodeApiConfig, instructions?: InitServicesInstructions) => Promise<boolean | undefined>;
|
|
46
|
-
/**
|
|
47
|
-
* monaco-vscode-api automatically loads the following services:
|
|
48
|
-
* - layout
|
|
49
|
-
* - environment
|
|
50
|
-
* - extension
|
|
51
|
-
* - files
|
|
52
|
-
* - quickAccess
|
|
53
|
-
* monaco-languageclient always adds the following services:
|
|
54
|
-
* - languages
|
|
55
|
-
* - log
|
|
56
|
-
* - model
|
|
57
|
-
*/
|
|
58
|
-
export declare const importAllServices: (vscodeApiConfig: VscodeApiConfig, instructions?: InitServicesInstructions) => Promise<void>;
|
|
59
|
-
/**
|
|
60
|
-
* Enable ext host to run in a worker
|
|
61
|
-
*/
|
|
62
|
-
export declare const configureExtHostWorker: (enableExtHostWorker: boolean, userServices: monaco.editor.IEditorOverrideServices) => Promise<void>;
|
|
63
|
-
export declare const createDefaultLocaleConfiguration: () => LocalizationOptions;
|
|
64
|
-
//# sourceMappingURL=services.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|