monaco-languageclient-examples 2025.6.3 → 2025.8.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 +3 -2
- package/dist/appPlayground/common.d.ts +2 -2
- package/dist/appPlayground/common.d.ts.map +1 -1
- package/dist/appPlayground/common.js +3 -2
- package/dist/appPlayground/common.js.map +1 -1
- package/dist/appPlayground/config.d.ts +2 -4
- package/dist/appPlayground/config.d.ts.map +1 -1
- package/dist/appPlayground/config.js +63 -65
- package/dist/appPlayground/config.js.map +1 -1
- package/dist/appPlayground/launcher.js +1 -1
- package/dist/appPlayground/launcher.js.map +1 -1
- package/dist/appPlayground/main.d.ts.map +1 -1
- package/dist/appPlayground/main.js +4 -5
- package/dist/appPlayground/main.js.map +1 -1
- package/dist/appPlayground/reactLauncher.js +1 -1
- package/dist/appPlayground/reactLauncher.js.map +1 -1
- package/dist/appPlayground/reactMain.d.ts.map +1 -1
- package/dist/appPlayground/reactMain.js +3 -2
- package/dist/appPlayground/reactMain.js.map +1 -1
- package/dist/bare/client.d.ts.map +1 -1
- package/dist/bare/client.js +15 -12
- package/dist/bare/client.js.map +1 -1
- package/dist/browser/main.d.ts.map +1 -1
- package/dist/browser/main.js +27 -28
- package/dist/browser/main.js.map +1 -1
- package/dist/clangd/client/config.d.ts +3 -10
- package/dist/clangd/client/config.d.ts.map +1 -1
- package/dist/clangd/client/config.js +85 -85
- package/dist/clangd/client/config.js.map +1 -1
- package/dist/clangd/client/main.d.ts.map +1 -1
- package/dist/clangd/client/main.js +9 -12
- package/dist/clangd/client/main.js.map +1 -1
- package/dist/clangd/worker/clangd-server.js.map +1 -1
- package/dist/common/client/utils.d.ts +1 -8
- package/dist/common/client/utils.d.ts.map +1 -1
- package/dist/common/client/utils.js +3 -0
- package/dist/common/client/utils.js.map +1 -1
- package/dist/debugger/client/debugger.d.ts +1 -1
- package/dist/debugger/client/debugger.d.ts.map +1 -1
- package/dist/eclipse.jdt.ls/client/main.d.ts +1 -1
- package/dist/eclipse.jdt.ls/client/main.d.ts.map +1 -1
- package/dist/eclipse.jdt.ls/client/main.js +74 -4
- package/dist/eclipse.jdt.ls/client/main.js.map +1 -1
- package/dist/eclipse.jdt.ls/config.d.ts +5 -2
- package/dist/eclipse.jdt.ls/config.d.ts.map +1 -1
- package/dist/eclipse.jdt.ls/config.js +1 -2
- package/dist/eclipse.jdt.ls/config.js.map +1 -1
- package/dist/groovy/client/main.d.ts +1 -1
- package/dist/groovy/client/main.d.ts.map +1 -1
- package/dist/groovy/client/main.js +63 -4
- package/dist/groovy/client/main.js.map +1 -1
- package/dist/groovy/config.d.ts +5 -2
- package/dist/groovy/config.d.ts.map +1 -1
- package/dist/groovy/config.js +1 -2
- package/dist/groovy/config.js.map +1 -1
- package/dist/json/client/wrapperWs.d.ts +5 -0
- package/dist/json/client/wrapperWs.d.ts.map +1 -0
- package/dist/json/client/wrapperWs.js +87 -0
- package/dist/json/client/wrapperWs.js.map +1 -0
- package/dist/json/server/main.js.map +1 -1
- package/dist/langium/langium-dsl/config/classicConfig.d.ts +2 -2
- package/dist/langium/langium-dsl/config/classicConfig.d.ts.map +1 -1
- package/dist/langium/langium-dsl/config/classicConfig.js +45 -53
- package/dist/langium/langium-dsl/config/classicConfig.js.map +1 -1
- package/dist/langium/langium-dsl/config/extendedConfig.d.ts +2 -2
- package/dist/langium/langium-dsl/config/extendedConfig.d.ts.map +1 -1
- package/dist/langium/langium-dsl/config/extendedConfig.js +40 -40
- package/dist/langium/langium-dsl/config/extendedConfig.js.map +1 -1
- package/dist/langium/langium-dsl/wrapperLangium.d.ts.map +1 -1
- package/dist/langium/langium-dsl/wrapperLangium.js +16 -23
- package/dist/langium/langium-dsl/wrapperLangium.js.map +1 -1
- package/dist/langium/statemachine/config/wrapperStatemachineConfig.d.ts +4 -4
- package/dist/langium/statemachine/config/wrapperStatemachineConfig.d.ts.map +1 -1
- package/dist/langium/statemachine/config/wrapperStatemachineConfig.js +41 -40
- package/dist/langium/statemachine/config/wrapperStatemachineConfig.js.map +1 -1
- package/dist/langium/statemachine/launcher.js +1 -1
- package/dist/langium/statemachine/launcher.js.map +1 -1
- package/dist/langium/statemachine/ls/generated/ast.d.ts +127 -22
- package/dist/langium/statemachine/ls/generated/ast.d.ts.map +1 -1
- package/dist/langium/statemachine/ls/generated/ast.js +112 -97
- package/dist/langium/statemachine/ls/generated/ast.js.map +1 -1
- package/dist/langium/statemachine/ls/generated/grammar.d.ts +2 -2
- package/dist/langium/statemachine/ls/generated/grammar.d.ts.map +1 -1
- package/dist/langium/statemachine/ls/generated/grammar.js +43 -41
- package/dist/langium/statemachine/ls/generated/grammar.js.map +1 -1
- package/dist/langium/statemachine/ls/generated/module.d.ts +3 -3
- package/dist/langium/statemachine/ls/generated/module.d.ts.map +1 -1
- package/dist/langium/statemachine/ls/generated/module.js +6 -6
- package/dist/langium/statemachine/ls/generated/module.js.map +1 -1
- package/dist/langium/statemachine/ls/statemachine-module.js +2 -2
- package/dist/langium/statemachine/ls/statemachine-module.js.map +1 -1
- package/dist/langium/statemachine/main-react.js +3 -2
- package/dist/langium/statemachine/main-react.js.map +1 -1
- package/dist/langium/statemachine/main.d.ts.map +1 -1
- package/dist/langium/statemachine/main.js +27 -38
- package/dist/langium/statemachine/main.js.map +1 -1
- package/dist/multi/config.d.ts +1 -1
- package/dist/multi/config.d.ts.map +1 -1
- package/dist/multi/config.js +1 -0
- package/dist/multi/config.js.map +1 -1
- package/dist/multi/twoLanguageClients.d.ts.map +1 -1
- package/dist/multi/twoLanguageClients.js +49 -45
- package/dist/multi/twoLanguageClients.js.map +1 -1
- package/dist/node.d.ts +3 -0
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +3 -3
- package/dist/node.js.map +1 -1
- package/dist/python/client/config.d.ts +3 -7
- package/dist/python/client/config.d.ts.map +1 -1
- package/dist/python/client/config.js +97 -93
- package/dist/python/client/config.js.map +1 -1
- package/dist/python/client/main.d.ts.map +1 -1
- package/dist/python/client/main.js +10 -16
- package/dist/python/client/main.js.map +1 -1
- package/dist/python/client/reactPython.d.ts.map +1 -1
- package/dist/python/client/reactPython.js +9 -8
- package/dist/python/client/reactPython.js.map +1 -1
- package/dist/ts/wrapperTs.d.ts.map +1 -1
- package/dist/ts/wrapperTs.js +45 -50
- package/dist/ts/wrapperTs.js.map +1 -1
- package/json.html +1 -1
- package/package.json +45 -44
- package/src/appPlayground/common.ts +3 -3
- package/src/appPlayground/config.ts +65 -69
- package/src/appPlayground/launcher.ts +1 -2
- package/src/appPlayground/main.ts +5 -8
- package/src/appPlayground/reactLauncher.ts +1 -2
- package/src/appPlayground/reactMain.tsx +4 -4
- package/src/bare/client.ts +16 -15
- package/src/browser/main.ts +27 -29
- package/src/clangd/client/config.ts +87 -97
- package/src/clangd/client/main.ts +10 -14
- package/src/clangd/worker/clangd-server.ts +2 -2
- package/src/common/client/utils.ts +2 -7
- package/src/debugger/client/debugger.ts +1 -1
- package/src/eclipse.jdt.ls/client/main.ts +78 -4
- package/src/eclipse.jdt.ls/config.ts +2 -6
- package/src/groovy/client/main.ts +65 -4
- package/src/groovy/config.ts +2 -6
- package/src/json/client/wrapperWs.ts +90 -0
- package/src/json/server/main.ts +1 -1
- package/src/langium/langium-dsl/config/classicConfig.ts +48 -64
- package/src/langium/langium-dsl/config/extendedConfig.ts +42 -49
- package/src/langium/langium-dsl/wrapperLangium.ts +15 -25
- package/src/langium/statemachine/config/wrapperStatemachineConfig.ts +45 -48
- package/src/langium/statemachine/launcher.ts +1 -1
- package/src/langium/statemachine/ls/generated/ast.ts +131 -111
- package/src/langium/statemachine/ls/generated/grammar.ts +43 -41
- package/src/langium/statemachine/ls/generated/module.ts +6 -6
- package/src/langium/statemachine/ls/statemachine-module.ts +2 -2
- package/src/langium/statemachine/ls/statemachine.langium +20 -5
- package/src/langium/statemachine/main-react.tsx +4 -4
- package/src/langium/statemachine/main.ts +27 -43
- package/src/multi/config.ts +3 -3
- package/src/multi/twoLanguageClients.ts +52 -48
- package/src/node.ts +3 -3
- package/src/python/client/config.ts +99 -101
- package/src/python/client/main.ts +11 -20
- package/src/python/client/reactPython.tsx +10 -11
- package/src/ts/wrapperTs.ts +45 -52
- package/two_langauge_clients.html +1 -0
- package/dist/common/client/extendedClient.d.ts +0 -9
- package/dist/common/client/extendedClient.d.ts.map +0 -1
- package/dist/common/client/extendedClient.js +0 -97
- package/dist/common/client/extendedClient.js.map +0 -1
- package/dist/json/client/client.d.ts +0 -3
- package/dist/json/client/client.d.ts.map +0 -1
- package/dist/json/client/client.js +0 -13
- package/dist/json/client/client.js.map +0 -1
- package/dist/json/client/config.d.ts +0 -3
- package/dist/json/client/config.d.ts.map +0 -1
- package/dist/json/client/config.js +0 -11
- package/dist/json/client/config.js.map +0 -1
- package/src/common/client/extendedClient.ts +0 -111
- package/src/json/client/client.ts +0 -14
- package/src/json/client/config.ts +0 -13
package/src/ts/wrapperTs.ts
CHANGED
|
@@ -3,15 +3,14 @@
|
|
|
3
3
|
* Licensed under the MIT License. See LICENSE in the package root for license information.
|
|
4
4
|
* ------------------------------------------------------------------------------------------ */
|
|
5
5
|
|
|
6
|
-
import
|
|
7
|
-
import '@codingame/monaco-vscode-javascript-default-extension';
|
|
6
|
+
import * as vscode from 'vscode';
|
|
8
7
|
import getKeybindingsServiceOverride from '@codingame/monaco-vscode-keybindings-service-override';
|
|
8
|
+
import '@codingame/monaco-vscode-javascript-default-extension';
|
|
9
9
|
import '@codingame/monaco-vscode-typescript-basics-default-extension';
|
|
10
10
|
import '@codingame/monaco-vscode-typescript-language-features-default-extension';
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import { configureDefaultWorkerFactory } from 'monaco-
|
|
14
|
-
import * as vscode from 'vscode';
|
|
11
|
+
import { LogLevel } from '@codingame/monaco-vscode-api';
|
|
12
|
+
import { MonacoEditorLanguageClientWrapper, type WrapperConfig } from 'monaco-editor-wrapper';
|
|
13
|
+
import { configureDefaultWorkerFactory } from 'monaco-editor-wrapper/workers/workerLoaders';
|
|
15
14
|
import { disableElement } from '../common/client/utils.js';
|
|
16
15
|
|
|
17
16
|
export const runTsWrapper = async () => {
|
|
@@ -25,55 +24,49 @@ export const runTsWrapper = async () => {
|
|
|
25
24
|
return "Goodbye";
|
|
26
25
|
};`;
|
|
27
26
|
|
|
28
|
-
const
|
|
29
|
-
const vscodeApiConfig: MonacoVscodeApiConfig = {
|
|
27
|
+
const wrapperConfig: WrapperConfig = {
|
|
30
28
|
$type: 'extended',
|
|
31
|
-
htmlContainer
|
|
29
|
+
htmlContainer: document.getElementById('monaco-editor-root')!,
|
|
32
30
|
logLevel: LogLevel.Debug,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
31
|
+
vscodeApiConfig: {
|
|
32
|
+
serviceOverrides: {
|
|
33
|
+
...getKeybindingsServiceOverride()
|
|
34
|
+
},
|
|
37
35
|
enableExtHostWorker: true,
|
|
36
|
+
userConfiguration: {
|
|
37
|
+
json: JSON.stringify({
|
|
38
|
+
'workbench.colorTheme': 'Default Dark Modern',
|
|
39
|
+
'typescript.tsserver.web.projectWideIntellisense.enabled': true,
|
|
40
|
+
'typescript.tsserver.web.projectWideIntellisense.suppressSemanticErrors': false,
|
|
41
|
+
'diffEditor.renderSideBySide': false,
|
|
42
|
+
'editor.lightbulb.enabled': 'on',
|
|
43
|
+
'editor.glyphMargin': true,
|
|
44
|
+
'editor.guides.bracketPairsHorizontal': true,
|
|
45
|
+
'editor.experimental.asyncTokenization': true
|
|
46
|
+
})
|
|
47
|
+
}
|
|
38
48
|
},
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
})
|
|
50
|
-
},
|
|
51
|
-
monacoWorkerFactory: configureDefaultWorkerFactory
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
const editorAppConfig: EditorAppConfig = {
|
|
55
|
-
$type: vscodeApiConfig.$type,
|
|
56
|
-
codeResources: {
|
|
57
|
-
modified: {
|
|
58
|
-
text: code,
|
|
59
|
-
uri: codeUri
|
|
49
|
+
editorAppConfig: {
|
|
50
|
+
codeResources: {
|
|
51
|
+
modified: {
|
|
52
|
+
text: code,
|
|
53
|
+
uri: codeUri
|
|
54
|
+
},
|
|
55
|
+
original: {
|
|
56
|
+
text: codeOriginal,
|
|
57
|
+
uri: codeOriginalUri,
|
|
58
|
+
}
|
|
60
59
|
},
|
|
61
|
-
|
|
62
|
-
text: codeOriginal,
|
|
63
|
-
uri: codeOriginalUri,
|
|
64
|
-
}
|
|
60
|
+
monacoWorkerFactory: configureDefaultWorkerFactory
|
|
65
61
|
}
|
|
66
62
|
};
|
|
67
63
|
|
|
68
|
-
const
|
|
69
|
-
await apiWrapper.init();
|
|
70
|
-
|
|
71
|
-
const editorApp = new EditorApp(editorAppConfig);
|
|
64
|
+
const wrapper = new MonacoEditorLanguageClientWrapper();
|
|
72
65
|
disableElement('button-swap-code', true);
|
|
73
66
|
|
|
74
67
|
try {
|
|
75
68
|
document.querySelector('#button-start')?.addEventListener('click', async () => {
|
|
76
|
-
await
|
|
69
|
+
await wrapper.initAndStart(wrapperConfig);
|
|
77
70
|
|
|
78
71
|
vscode.commands.getCommands().then((x) => {
|
|
79
72
|
console.log(`Found ${x.length} commands`);
|
|
@@ -81,13 +74,13 @@ export const runTsWrapper = async () => {
|
|
|
81
74
|
console.log(`Found command: ${finding}`);
|
|
82
75
|
});
|
|
83
76
|
|
|
84
|
-
|
|
77
|
+
wrapper.getEditor()?.focus();
|
|
85
78
|
await vscode.commands.executeCommand('actions.find');
|
|
86
79
|
});
|
|
87
80
|
document.querySelector('#button-swap-code')?.addEventListener('click', () => {
|
|
88
|
-
const codeResources =
|
|
81
|
+
const codeResources = wrapper.getEditorApp()?.getConfig().codeResources;
|
|
89
82
|
if (codeResources?.modified?.uri === codeUri) {
|
|
90
|
-
|
|
83
|
+
wrapper.updateCodeResources({
|
|
91
84
|
modified: {
|
|
92
85
|
text: codeOriginal,
|
|
93
86
|
uri: codeOriginalUri
|
|
@@ -98,7 +91,7 @@ export const runTsWrapper = async () => {
|
|
|
98
91
|
}
|
|
99
92
|
});
|
|
100
93
|
} else {
|
|
101
|
-
|
|
94
|
+
wrapper.updateCodeResources({
|
|
102
95
|
modified: {
|
|
103
96
|
text: code,
|
|
104
97
|
uri: codeUri
|
|
@@ -112,14 +105,14 @@ export const runTsWrapper = async () => {
|
|
|
112
105
|
});
|
|
113
106
|
document.querySelector('#button-diff')?.addEventListener('click', async () => {
|
|
114
107
|
// ensure it is boolean value and not undefined
|
|
115
|
-
const useDiffEditor = editorAppConfig
|
|
116
|
-
editorAppConfig
|
|
117
|
-
disableElement('button-swap-code', !editorAppConfig
|
|
108
|
+
const useDiffEditor = wrapperConfig.editorAppConfig!.useDiffEditor ?? false;
|
|
109
|
+
wrapperConfig.editorAppConfig!.useDiffEditor = !useDiffEditor;
|
|
110
|
+
disableElement('button-swap-code', !wrapperConfig.editorAppConfig!.useDiffEditor);
|
|
118
111
|
|
|
119
|
-
await
|
|
112
|
+
await wrapper.initAndStart(wrapperConfig);
|
|
120
113
|
});
|
|
121
114
|
document.querySelector('#button-dispose')?.addEventListener('click', async () => {
|
|
122
|
-
await
|
|
115
|
+
await wrapper.dispose();
|
|
123
116
|
});
|
|
124
117
|
} catch (e) {
|
|
125
118
|
console.error(e);
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
<button type="button" id="button-start">Start</button>
|
|
16
16
|
<button type="button" id="button-dispose">Dispose</button>
|
|
17
17
|
<button type="button" id="button-flip">Flip Content</button>
|
|
18
|
+
<label>External Lanuguage Clients:</label><input type="checkbox" id="checkbox-extlc" />
|
|
18
19
|
</div>
|
|
19
20
|
<div id="monaco-editor-root" style="width:800px;height:600px;border:1px solid grey"></div>
|
|
20
21
|
<script type="module">
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import '@codingame/monaco-vscode-java-default-extension';
|
|
2
|
-
export declare const runExtendedClient: (lsConfig: ExampleLsConfig, helloCode: string) => Promise<void>;
|
|
3
|
-
export type ExampleLsConfig = {
|
|
4
|
-
port: number;
|
|
5
|
-
path: string;
|
|
6
|
-
basePath: string;
|
|
7
|
-
documentSelector: string;
|
|
8
|
-
};
|
|
9
|
-
//# sourceMappingURL=extendedClient.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extendedClient.d.ts","sourceRoot":"","sources":["../../../src/common/client/extendedClient.ts"],"names":[],"mappings":"AAUA,OAAO,iDAAiD,CAAC;AAMzD,eAAO,MAAM,iBAAiB,GAAU,UAAU,eAAe,EAAE,WAAW,MAAM,kBAuFnF,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC5B,CAAC"}
|
|
@@ -1,97 +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 { RegisteredFileSystemProvider, RegisteredMemoryFile, registerFileSystemOverlay } from '@codingame/monaco-vscode-files-service-override';
|
|
6
|
-
import getKeybindingsServiceOverride from '@codingame/monaco-vscode-keybindings-service-override';
|
|
7
|
-
import * as vscode from 'vscode';
|
|
8
|
-
// this is required syntax highlighting
|
|
9
|
-
import { LogLevel } from '@codingame/monaco-vscode-api';
|
|
10
|
-
import '@codingame/monaco-vscode-java-default-extension';
|
|
11
|
-
import { EditorApp } from 'monaco-languageclient/editorApp';
|
|
12
|
-
import { configureDefaultWorkerFactory } from 'monaco-languageclient/workerFactory';
|
|
13
|
-
import { LanguageClientWrapper } from 'monaco-languageclient/lcwrapper';
|
|
14
|
-
import { MonacoVscodeApiWrapper } from 'monaco-languageclient/vscodeApiWrapper';
|
|
15
|
-
export const runExtendedClient = async (lsConfig, helloCode) => {
|
|
16
|
-
const helloUri = vscode.Uri.file(`${lsConfig.basePath}/workspace/hello.${lsConfig.documentSelector}`);
|
|
17
|
-
const fileSystemProvider = new RegisteredFileSystemProvider(false);
|
|
18
|
-
fileSystemProvider.registerFile(new RegisteredMemoryFile(helloUri, helloCode));
|
|
19
|
-
registerFileSystemOverlay(1, fileSystemProvider);
|
|
20
|
-
const htmlContainer = document.getElementById('monaco-editor-root');
|
|
21
|
-
const vscodeApiConfig = {
|
|
22
|
-
$type: 'extended',
|
|
23
|
-
htmlContainer,
|
|
24
|
-
logLevel: LogLevel.Debug,
|
|
25
|
-
serviceOverrides: {
|
|
26
|
-
...getKeybindingsServiceOverride(),
|
|
27
|
-
},
|
|
28
|
-
userConfiguration: {
|
|
29
|
-
json: JSON.stringify({
|
|
30
|
-
'workbench.colorTheme': 'Default Dark Modern',
|
|
31
|
-
'editor.guides.bracketPairsHorizontal': 'active',
|
|
32
|
-
'editor.lightbulb.enabled': 'On',
|
|
33
|
-
'editor.wordBasedSuggestions': 'off',
|
|
34
|
-
'editor.experimental.asyncTokenization': true
|
|
35
|
-
})
|
|
36
|
-
},
|
|
37
|
-
monacoWorkerFactory: configureDefaultWorkerFactory
|
|
38
|
-
};
|
|
39
|
-
const languageClientConfig = {
|
|
40
|
-
connection: {
|
|
41
|
-
options: {
|
|
42
|
-
$type: 'WebSocketUrl',
|
|
43
|
-
url: `ws://localhost:${lsConfig.port}${lsConfig.path}`,
|
|
44
|
-
startOptions: {
|
|
45
|
-
onCall: () => {
|
|
46
|
-
console.log('Connected to socket.');
|
|
47
|
-
},
|
|
48
|
-
reportStatus: true
|
|
49
|
-
},
|
|
50
|
-
stopOptions: {
|
|
51
|
-
onCall: () => {
|
|
52
|
-
console.log('Disconnected from socket.');
|
|
53
|
-
},
|
|
54
|
-
reportStatus: true
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
},
|
|
58
|
-
clientOptions: {
|
|
59
|
-
documentSelector: [lsConfig.documentSelector],
|
|
60
|
-
workspaceFolder: {
|
|
61
|
-
index: 0,
|
|
62
|
-
name: 'workspace',
|
|
63
|
-
uri: vscode.Uri.parse(`${lsConfig.basePath}/workspace`)
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
const editorAppConfig = {
|
|
68
|
-
$type: vscodeApiConfig.$type,
|
|
69
|
-
codeResources: {
|
|
70
|
-
modified: {
|
|
71
|
-
text: helloCode,
|
|
72
|
-
uri: helloUri.path
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
// perform global init
|
|
77
|
-
const apiWrapper = new MonacoVscodeApiWrapper(vscodeApiConfig);
|
|
78
|
-
await apiWrapper.init();
|
|
79
|
-
const lcWrapper = new LanguageClientWrapper(languageClientConfig, apiWrapper.getLogger());
|
|
80
|
-
const editorApp = new EditorApp(editorAppConfig);
|
|
81
|
-
try {
|
|
82
|
-
document.querySelector('#button-start')?.addEventListener('click', async () => {
|
|
83
|
-
await editorApp.start(htmlContainer);
|
|
84
|
-
await lcWrapper.start();
|
|
85
|
-
// open files, so the LS can pick it up
|
|
86
|
-
await vscode.workspace.openTextDocument(helloUri);
|
|
87
|
-
});
|
|
88
|
-
document.querySelector('#button-dispose')?.addEventListener('click', async () => {
|
|
89
|
-
await editorApp.dispose();
|
|
90
|
-
await lcWrapper.dispose();
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
catch (e) {
|
|
94
|
-
console.error(e);
|
|
95
|
-
}
|
|
96
|
-
};
|
|
97
|
-
//# sourceMappingURL=extendedClient.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extendedClient.js","sourceRoot":"","sources":["../../../src/common/client/extendedClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/json/client/client.ts"],"names":[],"mappings":"AAMA,OAAO,iDAAiD,CAAC;AAKzD,eAAO,MAAM,cAAc,qBAE1B,CAAC"}
|
|
@@ -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
|
-
// this is required syntax highlighting
|
|
6
|
-
import '@codingame/monaco-vscode-json-default-extension';
|
|
7
|
-
import helloJsonCode from '../../../resources/json/workspace/hello.json?raw';
|
|
8
|
-
import { runExtendedClient } from '../../common/client/extendedClient.js';
|
|
9
|
-
import { jsontLsConfig } from './config.js';
|
|
10
|
-
export const runJsonWrapper = async () => {
|
|
11
|
-
await runExtendedClient(jsontLsConfig, helloJsonCode);
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/json/client/client.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,uCAAuC;AACvC,OAAO,iDAAiD,CAAC;AACzD,OAAO,aAAa,MAAM,kDAAkD,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;IACrC,MAAM,iBAAiB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/json/client/config.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAE7E,eAAO,MAAM,aAAa,EAAE,eAK3B,CAAC"}
|
|
@@ -1,11 +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 const jsontLsConfig = {
|
|
6
|
-
port: 30000,
|
|
7
|
-
path: '/sampleServer',
|
|
8
|
-
basePath: '/home/mlc/packages/examples/resources/json',
|
|
9
|
-
documentSelector: 'json'
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/json/client/config.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAIhG,MAAM,CAAC,MAAM,aAAa,GAAoB;IAC1C,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,eAAe;IACrB,QAAQ,EAAE,4CAA4C;IACtD,gBAAgB,EAAE,MAAM;CAC3B,CAAC"}
|
|
@@ -1,111 +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 { RegisteredFileSystemProvider, RegisteredMemoryFile, registerFileSystemOverlay } from '@codingame/monaco-vscode-files-service-override';
|
|
7
|
-
import getKeybindingsServiceOverride from '@codingame/monaco-vscode-keybindings-service-override';
|
|
8
|
-
import * as vscode from 'vscode';
|
|
9
|
-
// this is required syntax highlighting
|
|
10
|
-
import { LogLevel } from '@codingame/monaco-vscode-api';
|
|
11
|
-
import '@codingame/monaco-vscode-java-default-extension';
|
|
12
|
-
import { EditorApp, type EditorAppConfig } from 'monaco-languageclient/editorApp';
|
|
13
|
-
import { configureDefaultWorkerFactory } from 'monaco-languageclient/workerFactory';
|
|
14
|
-
import { LanguageClientWrapper, type LanguageClientConfig } from 'monaco-languageclient/lcwrapper';
|
|
15
|
-
import { MonacoVscodeApiWrapper, type MonacoVscodeApiConfig } from 'monaco-languageclient/vscodeApiWrapper';
|
|
16
|
-
|
|
17
|
-
export const runExtendedClient = async (lsConfig: ExampleLsConfig, helloCode: string) => {
|
|
18
|
-
const helloUri = vscode.Uri.file(`${lsConfig.basePath}/workspace/hello.${lsConfig.documentSelector}`);
|
|
19
|
-
const fileSystemProvider = new RegisteredFileSystemProvider(false);
|
|
20
|
-
fileSystemProvider.registerFile(new RegisteredMemoryFile(helloUri, helloCode));
|
|
21
|
-
registerFileSystemOverlay(1, fileSystemProvider);
|
|
22
|
-
|
|
23
|
-
const htmlContainer = document.getElementById('monaco-editor-root')!;
|
|
24
|
-
const vscodeApiConfig: MonacoVscodeApiConfig = {
|
|
25
|
-
$type: 'extended',
|
|
26
|
-
htmlContainer,
|
|
27
|
-
logLevel: LogLevel.Debug,
|
|
28
|
-
serviceOverrides: {
|
|
29
|
-
...getKeybindingsServiceOverride(),
|
|
30
|
-
},
|
|
31
|
-
userConfiguration: {
|
|
32
|
-
json: JSON.stringify({
|
|
33
|
-
'workbench.colorTheme': 'Default Dark Modern',
|
|
34
|
-
'editor.guides.bracketPairsHorizontal': 'active',
|
|
35
|
-
'editor.lightbulb.enabled': 'On',
|
|
36
|
-
'editor.wordBasedSuggestions': 'off',
|
|
37
|
-
'editor.experimental.asyncTokenization': true
|
|
38
|
-
})
|
|
39
|
-
},
|
|
40
|
-
monacoWorkerFactory: configureDefaultWorkerFactory
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
const languageClientConfig: LanguageClientConfig = {
|
|
44
|
-
connection: {
|
|
45
|
-
options: {
|
|
46
|
-
$type: 'WebSocketUrl',
|
|
47
|
-
url: `ws://localhost:${lsConfig.port}${lsConfig.path}`,
|
|
48
|
-
startOptions: {
|
|
49
|
-
onCall: () => {
|
|
50
|
-
console.log('Connected to socket.');
|
|
51
|
-
},
|
|
52
|
-
reportStatus: true
|
|
53
|
-
},
|
|
54
|
-
stopOptions: {
|
|
55
|
-
onCall: () => {
|
|
56
|
-
console.log('Disconnected from socket.');
|
|
57
|
-
},
|
|
58
|
-
reportStatus: true
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
},
|
|
62
|
-
clientOptions: {
|
|
63
|
-
documentSelector: [lsConfig.documentSelector],
|
|
64
|
-
workspaceFolder: {
|
|
65
|
-
index: 0,
|
|
66
|
-
name: 'workspace',
|
|
67
|
-
uri: vscode.Uri.parse(`${lsConfig.basePath}/workspace`)
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
const editorAppConfig: EditorAppConfig = {
|
|
73
|
-
$type: vscodeApiConfig.$type,
|
|
74
|
-
codeResources: {
|
|
75
|
-
modified: {
|
|
76
|
-
text: helloCode,
|
|
77
|
-
uri: helloUri.path
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
// perform global init
|
|
83
|
-
const apiWrapper = new MonacoVscodeApiWrapper(vscodeApiConfig);
|
|
84
|
-
await apiWrapper.init();
|
|
85
|
-
|
|
86
|
-
const lcWrapper = new LanguageClientWrapper(languageClientConfig, apiWrapper.getLogger());
|
|
87
|
-
const editorApp = new EditorApp(editorAppConfig);
|
|
88
|
-
|
|
89
|
-
try {
|
|
90
|
-
document.querySelector('#button-start')?.addEventListener('click', async () => {
|
|
91
|
-
await editorApp.start(htmlContainer);
|
|
92
|
-
await lcWrapper.start();
|
|
93
|
-
|
|
94
|
-
// open files, so the LS can pick it up
|
|
95
|
-
await vscode.workspace.openTextDocument(helloUri);
|
|
96
|
-
});
|
|
97
|
-
document.querySelector('#button-dispose')?.addEventListener('click', async () => {
|
|
98
|
-
await editorApp.dispose();
|
|
99
|
-
await lcWrapper.dispose();
|
|
100
|
-
});
|
|
101
|
-
} catch (e) {
|
|
102
|
-
console.error(e);
|
|
103
|
-
}
|
|
104
|
-
};
|
|
105
|
-
|
|
106
|
-
export type ExampleLsConfig = {
|
|
107
|
-
port: number;
|
|
108
|
-
path: string;
|
|
109
|
-
basePath: string;
|
|
110
|
-
documentSelector: string;
|
|
111
|
-
};
|
|
@@ -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
|
-
// this is required syntax highlighting
|
|
7
|
-
import '@codingame/monaco-vscode-json-default-extension';
|
|
8
|
-
import helloJsonCode from '../../../resources/json/workspace/hello.json?raw';
|
|
9
|
-
import { runExtendedClient } from '../../common/client/extendedClient.js';
|
|
10
|
-
import { jsontLsConfig } from './config.js';
|
|
11
|
-
|
|
12
|
-
export const runJsonWrapper = async () => {
|
|
13
|
-
await runExtendedClient(jsontLsConfig, helloJsonCode);
|
|
14
|
-
};
|
|
@@ -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
|
-
|
|
6
|
-
import type { ExampleLsConfig } from '../../common/client/extendedClient.js';
|
|
7
|
-
|
|
8
|
-
export const jsontLsConfig: ExampleLsConfig = {
|
|
9
|
-
port: 30000,
|
|
10
|
-
path: '/sampleServer',
|
|
11
|
-
basePath: '/home/mlc/packages/examples/resources/json',
|
|
12
|
-
documentSelector: 'json'
|
|
13
|
-
};
|