monaco-languageclient-examples 2025.8.3 → 2025.8.5
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 +8 -0
- package/dist/appPlayground/common.d.ts +2 -2
- package/dist/appPlayground/common.d.ts.map +1 -1
- package/dist/appPlayground/common.js +2 -3
- package/dist/appPlayground/common.js.map +1 -1
- package/dist/appPlayground/config.d.ts +4 -2
- package/dist/appPlayground/config.d.ts.map +1 -1
- package/dist/appPlayground/config.js +65 -63
- 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 +5 -4
- 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 +2 -3
- package/dist/appPlayground/reactMain.js.map +1 -1
- package/dist/bare/client.d.ts.map +1 -1
- package/dist/bare/client.js +12 -15
- package/dist/bare/client.js.map +1 -1
- package/dist/browser/main.d.ts +1 -0
- package/dist/browser/main.d.ts.map +1 -1
- package/dist/browser/main.js +29 -27
- package/dist/browser/main.js.map +1 -1
- package/dist/clangd/client/config.d.ts +10 -3
- 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 +12 -9
- package/dist/clangd/client/main.js.map +1 -1
- package/dist/common/client/extendedClient.d.ts +9 -0
- package/dist/common/client/extendedClient.d.ts.map +1 -0
- package/dist/common/client/extendedClient.js +97 -0
- package/dist/common/client/extendedClient.js.map +1 -0
- package/dist/common/client/utils.d.ts +8 -1
- package/dist/common/client/utils.d.ts.map +1 -1
- package/dist/common/client/utils.js +0 -3
- 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 +4 -74
- package/dist/eclipse.jdt.ls/client/main.js.map +1 -1
- package/dist/eclipse.jdt.ls/config.d.ts +2 -5
- package/dist/eclipse.jdt.ls/config.d.ts.map +1 -1
- package/dist/eclipse.jdt.ls/config.js +2 -1
- 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 +4 -63
- package/dist/groovy/client/main.js.map +1 -1
- package/dist/groovy/config.d.ts +2 -5
- package/dist/groovy/config.d.ts.map +1 -1
- package/dist/groovy/config.js +2 -1
- package/dist/groovy/config.js.map +1 -1
- package/dist/json/client/client.d.ts +3 -0
- package/dist/json/client/client.d.ts.map +1 -0
- package/dist/json/client/client.js +13 -0
- package/dist/json/client/client.js.map +1 -0
- package/dist/json/client/config.d.ts +3 -0
- package/dist/json/client/config.d.ts.map +1 -0
- package/dist/json/client/config.js +11 -0
- package/dist/json/client/config.js.map +1 -0
- package/dist/json/server/main.js.map +1 -1
- package/dist/langium/langium-dsl/config/extendedConfig.d.ts +2 -7
- package/dist/langium/langium-dsl/config/extendedConfig.d.ts.map +1 -1
- package/dist/langium/langium-dsl/config/extendedConfig.js +103 -49
- package/dist/langium/langium-dsl/config/extendedConfig.js.map +1 -1
- package/dist/langium/langium-dsl/config/langium.configuration.json +10 -40
- package/dist/langium/langium-dsl/config/langium.tmLanguage.json +1 -1
- package/dist/langium/langium-dsl/main.d.ts +2 -0
- package/dist/langium/langium-dsl/main.d.ts.map +1 -0
- package/dist/langium/langium-dsl/main.js +26 -0
- package/dist/langium/langium-dsl/main.js.map +1 -0
- 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 +40 -41
- 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/main-react.d.ts.map +1 -1
- package/dist/langium/statemachine/main-react.js +7 -3
- 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 +38 -27
- 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 +0 -1
- package/dist/multi/config.js.map +1 -1
- package/dist/multi/twoLanguageClients.d.ts.map +1 -1
- package/dist/multi/twoLanguageClients.js +45 -49
- package/dist/multi/twoLanguageClients.js.map +1 -1
- package/dist/node.d.ts +0 -3
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +0 -3
- package/dist/node.js.map +1 -1
- package/dist/python/client/config.d.ts +7 -3
- package/dist/python/client/config.d.ts.map +1 -1
- package/dist/python/client/config.js +93 -97
- 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 +16 -10
- 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 +13 -9
- package/dist/python/client/reactPython.js.map +1 -1
- package/dist/ts/wrapperTs.d.ts.map +1 -1
- package/dist/ts/wrapperTs.js +50 -45
- package/dist/ts/wrapperTs.js.map +1 -1
- package/ghp_langium_extended.html +3 -3
- package/index.html +1 -1
- package/json.html +1 -1
- package/langium_extended.html +4 -6
- package/package.json +10 -11
- package/src/appPlayground/common.ts +3 -3
- package/src/appPlayground/config.ts +69 -65
- package/src/appPlayground/launcher.ts +2 -1
- package/src/appPlayground/main.ts +8 -5
- package/src/appPlayground/reactLauncher.ts +2 -1
- package/src/appPlayground/reactMain.tsx +4 -4
- package/src/bare/client.ts +15 -16
- package/src/browser/main.ts +30 -27
- package/src/clangd/client/config.ts +97 -87
- package/src/clangd/client/main.ts +14 -10
- package/src/common/client/extendedClient.ts +111 -0
- package/src/common/client/utils.ts +7 -2
- package/src/debugger/client/debugger.ts +1 -1
- package/src/eclipse.jdt.ls/client/main.ts +4 -78
- package/src/eclipse.jdt.ls/config.ts +6 -2
- package/src/groovy/client/main.ts +4 -65
- package/src/groovy/config.ts +6 -2
- package/src/json/client/client.ts +14 -0
- package/src/json/client/config.ts +13 -0
- package/src/json/server/main.ts +1 -1
- package/src/langium/langium-dsl/config/extendedConfig.ts +117 -54
- package/src/langium/langium-dsl/config/langium.configuration.json +128 -158
- package/src/langium/langium-dsl/config/langium.tmLanguage.json +271 -271
- package/src/langium/langium-dsl/main.ts +31 -0
- package/src/langium/statemachine/config/wrapperStatemachineConfig.ts +48 -45
- package/src/langium/statemachine/launcher.ts +1 -1
- package/src/langium/statemachine/main-react.tsx +10 -4
- package/src/langium/statemachine/main.ts +43 -27
- package/src/multi/config.ts +3 -3
- package/src/multi/twoLanguageClients.ts +48 -52
- package/src/node.ts +0 -3
- package/src/python/client/config.ts +101 -99
- package/src/python/client/main.ts +20 -11
- package/src/python/client/reactPython.tsx +17 -10
- package/src/ts/wrapperTs.ts +52 -45
- package/two_langauge_clients.html +0 -1
- package/vite.production.base.ts +0 -1
- package/dist/json/client/wrapperWs.d.ts +0 -5
- package/dist/json/client/wrapperWs.d.ts.map +0 -1
- package/dist/json/client/wrapperWs.js +0 -87
- package/dist/json/client/wrapperWs.js.map +0 -1
- package/dist/langium/langium-dsl/config/classicConfig.d.ts +0 -7
- package/dist/langium/langium-dsl/config/classicConfig.d.ts.map +0 -1
- package/dist/langium/langium-dsl/config/classicConfig.js +0 -66
- package/dist/langium/langium-dsl/config/classicConfig.js.map +0 -1
- package/dist/langium/langium-dsl/wrapperLangium.d.ts +0 -2
- package/dist/langium/langium-dsl/wrapperLangium.d.ts.map +0 -1
- package/dist/langium/langium-dsl/wrapperLangium.js +0 -79
- package/dist/langium/langium-dsl/wrapperLangium.js.map +0 -1
- package/ghp_langium_classic.html +0 -26
- package/langium_classic.html +0 -26
- package/src/json/client/wrapperWs.ts +0 -90
- package/src/langium/langium-dsl/config/classicConfig.ts +0 -72
- package/src/langium/langium-dsl/wrapperLangium.ts +0 -85
|
@@ -1,66 +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 getKeybindingsServiceOverride from '@codingame/monaco-vscode-keybindings-service-override';
|
|
6
|
-
import { LogLevel } from '@codingame/monaco-vscode-api';
|
|
7
|
-
import { MessageTransports } from 'vscode-languageclient';
|
|
8
|
-
import { useWorkerFactory } from 'monaco-languageclient/workerFactory';
|
|
9
|
-
import { defineDefaultWorkerLoaders } from 'monaco-editor-wrapper/workers/workerLoaders';
|
|
10
|
-
import { LangiumMonarchContent } from './langium.monarch.js';
|
|
11
|
-
import code from '../../../../resources/langium/langium-dsl/example.langium?raw';
|
|
12
|
-
export const setupLangiumClientClassic = async (params) => {
|
|
13
|
-
const workerLoaders = defineDefaultWorkerLoaders();
|
|
14
|
-
workerLoaders.TextMateWorker = undefined;
|
|
15
|
-
return {
|
|
16
|
-
$type: 'classic',
|
|
17
|
-
htmlContainer: document.getElementById('monaco-editor-root'),
|
|
18
|
-
logLevel: LogLevel.Debug,
|
|
19
|
-
vscodeApiConfig: {
|
|
20
|
-
serviceOverrides: {
|
|
21
|
-
...getKeybindingsServiceOverride()
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
editorAppConfig: {
|
|
25
|
-
codeResources: {
|
|
26
|
-
modified: {
|
|
27
|
-
text: code,
|
|
28
|
-
uri: '/workspace/grammar.langium',
|
|
29
|
-
enforceLanguageId: 'langium'
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
editorOptions: {
|
|
33
|
-
'semanticHighlighting.enabled': true,
|
|
34
|
-
wordBasedSuggestions: 'off',
|
|
35
|
-
theme: 'vs-dark'
|
|
36
|
-
},
|
|
37
|
-
languageDef: {
|
|
38
|
-
monarchLanguage: LangiumMonarchContent,
|
|
39
|
-
languageExtensionConfig: { id: 'langium' }
|
|
40
|
-
},
|
|
41
|
-
monacoWorkerFactory: (logger) => {
|
|
42
|
-
useWorkerFactory({
|
|
43
|
-
workerLoaders,
|
|
44
|
-
logger
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
},
|
|
48
|
-
languageClientConfigs: {
|
|
49
|
-
configs: {
|
|
50
|
-
langium: {
|
|
51
|
-
clientOptions: {
|
|
52
|
-
documentSelector: ['langium']
|
|
53
|
-
},
|
|
54
|
-
connection: {
|
|
55
|
-
options: {
|
|
56
|
-
$type: 'WorkerDirect',
|
|
57
|
-
worker: params.worker
|
|
58
|
-
},
|
|
59
|
-
messageTransports: params.messageTransports
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
};
|
|
66
|
-
//# sourceMappingURL=classicConfig.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"classicConfig.js","sourceRoot":"","sources":["../../../../src/langium/langium-dsl/config/classicConfig.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,6BAA6B,MAAM,uDAAuD,CAAC;AAClG,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAEvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,IAAI,MAAM,+DAA+D,CAAC;AAEjF,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,EAAE,MAG/C,EAA0B,EAAE;IACzB,MAAM,aAAa,GAAG,0BAA0B,EAAE,CAAC;IACnD,aAAa,CAAC,cAAc,GAAG,SAAS,CAAC;IACzC,OAAO;QACH,KAAK,EAAE,SAAS;QAChB,aAAa,EAAE,QAAQ,CAAC,cAAc,CAAC,oBAAoB,CAAE;QAC7D,QAAQ,EAAE,QAAQ,CAAC,KAAK;QACxB,eAAe,EAAE;YACb,gBAAgB,EAAE;gBACd,GAAG,6BAA6B,EAAE;aACrC;SACJ;QACD,eAAe,EAAE;YACb,aAAa,EAAE;gBACX,QAAQ,EAAE;oBACN,IAAI,EAAE,IAAI;oBACV,GAAG,EAAE,4BAA4B;oBACjC,iBAAiB,EAAE,SAAS;iBAC/B;aACJ;YACD,aAAa,EAAE;gBACX,8BAA8B,EAAE,IAAI;gBACpC,oBAAoB,EAAE,KAAK;gBAC3B,KAAK,EAAE,SAAS;aACnB;YACD,WAAW,EAAE;gBACT,eAAe,EAAE,qBAAqB;gBACtC,uBAAuB,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;aAC7C;YACD,mBAAmB,EAAE,CAAC,MAAe,EAAE,EAAE;gBACrC,gBAAgB,CAAC;oBACb,aAAa;oBACb,MAAM;iBACT,CAAC,CAAC;YACP,CAAC;SACJ;QACD,qBAAqB,EAAE;YACnB,OAAO,EAAE;gBACL,OAAO,EAAE;oBACL,aAAa,EAAE;wBACX,gBAAgB,EAAE,CAAC,SAAS,CAAC;qBAChC;oBACD,UAAU,EAAE;wBACR,OAAO,EAAE;4BACL,KAAK,EAAE,cAAc;4BACrB,MAAM,EAAE,MAAM,CAAC,MAAM;yBACxB;wBACD,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;qBAC9C;iBACJ;aACJ;SACJ;KACJ,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wrapperLangium.d.ts","sourceRoot":"","sources":["../../../src/langium/langium-dsl/wrapperLangium.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,oBAAoB,GAAU,cAAc,OAAO,kBAsE/D,CAAC"}
|
|
@@ -1,79 +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 { BrowserMessageReader, BrowserMessageWriter } from 'vscode-languageclient/browser.js';
|
|
6
|
-
import { MonacoEditorLanguageClientWrapper } from 'monaco-editor-wrapper';
|
|
7
|
-
import { setupLangiumClientExtended } from './config/extendedConfig.js';
|
|
8
|
-
import { setupLangiumClientClassic } from './config/classicConfig.js';
|
|
9
|
-
import { delayExecution, disableElement } from '../../common/client/utils.js';
|
|
10
|
-
import text from '../../../resources/langium/langium-dsl/example.langium?raw';
|
|
11
|
-
import workerUrl from './worker/langium-server?worker&url';
|
|
12
|
-
export const runLangiumDslWrapper = async (extendedMode) => {
|
|
13
|
-
try {
|
|
14
|
-
let wrapper;
|
|
15
|
-
const loadLangiumWorker = () => {
|
|
16
|
-
console.log(`Langium worker URL: ${workerUrl}`);
|
|
17
|
-
return new Worker(workerUrl, {
|
|
18
|
-
type: 'module',
|
|
19
|
-
name: 'Langium LS',
|
|
20
|
-
});
|
|
21
|
-
};
|
|
22
|
-
const checkStarted = () => {
|
|
23
|
-
if (wrapper?.isStarted() ?? false) {
|
|
24
|
-
alert('Editor was already started!\nPlease reload the page to test the alternative editor.');
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
return false;
|
|
28
|
-
};
|
|
29
|
-
const startLangiumClient = async () => {
|
|
30
|
-
if (checkStarted())
|
|
31
|
-
return;
|
|
32
|
-
disableElement('button-start', true);
|
|
33
|
-
const worker = loadLangiumWorker();
|
|
34
|
-
const reader = new BrowserMessageReader(worker);
|
|
35
|
-
const writer = new BrowserMessageWriter(worker);
|
|
36
|
-
reader.listen((message) => {
|
|
37
|
-
console.log('Received message from worker:', message);
|
|
38
|
-
});
|
|
39
|
-
if (extendedMode) {
|
|
40
|
-
const config = await setupLangiumClientExtended({
|
|
41
|
-
worker,
|
|
42
|
-
messageTransports: { reader, writer }
|
|
43
|
-
});
|
|
44
|
-
wrapper = new MonacoEditorLanguageClientWrapper();
|
|
45
|
-
await wrapper.initAndStart(config);
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
const config = await setupLangiumClientClassic({
|
|
49
|
-
worker,
|
|
50
|
-
messageTransports: { reader, writer }
|
|
51
|
-
});
|
|
52
|
-
wrapper = new MonacoEditorLanguageClientWrapper();
|
|
53
|
-
await wrapper.initAndStart(config);
|
|
54
|
-
}
|
|
55
|
-
await delayExecution(1000);
|
|
56
|
-
await wrapper.updateCodeResources({
|
|
57
|
-
modified: {
|
|
58
|
-
text: `// modified file\n\n${text}`,
|
|
59
|
-
uri: '/workspace/mod.langium',
|
|
60
|
-
enforceLanguageId: 'langium'
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
};
|
|
64
|
-
const disposeEditor = async () => {
|
|
65
|
-
if (!wrapper)
|
|
66
|
-
return;
|
|
67
|
-
wrapper.reportStatus();
|
|
68
|
-
await wrapper.dispose();
|
|
69
|
-
wrapper = undefined;
|
|
70
|
-
disableElement('button-start', false);
|
|
71
|
-
};
|
|
72
|
-
document.querySelector('#button-start')?.addEventListener('click', startLangiumClient);
|
|
73
|
-
document.querySelector('#button-dispose')?.addEventListener('click', disposeEditor);
|
|
74
|
-
}
|
|
75
|
-
catch (e) {
|
|
76
|
-
console.error(e);
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
//# sourceMappingURL=wrapperLangium.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wrapperLangium.js","sourceRoot":"","sources":["../../../src/langium/langium-dsl/wrapperLangium.ts"],"names":[],"mappings":"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"}
|
package/ghp_langium_classic.html
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
|
|
4
|
-
<head>
|
|
5
|
-
<title>Langium Grammar DSL (Classic Mode)</title>
|
|
6
|
-
<meta charset="UTF-8" />
|
|
7
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
8
|
-
<link rel="stylesheet" href="style.css">
|
|
9
|
-
</head>
|
|
10
|
-
|
|
11
|
-
<body>
|
|
12
|
-
<div class="exampleHeadelineDiv">
|
|
13
|
-
<b class="exampleHeadeline">Langium Grammar DSL (Classic Mode)</b> - [<a href="./index.html">Back to Index</a>]
|
|
14
|
-
<br>
|
|
15
|
-
<button type="button" id="button-start">Start</button>
|
|
16
|
-
<button type="button" id="button-dispose">Dispose</button>
|
|
17
|
-
</div>
|
|
18
|
-
<div id="monaco-editor-root" style="height: 80vh; border: 1px solid grey"></div>
|
|
19
|
-
<script type="module">
|
|
20
|
-
import { runLangiumDslWrapper } from './src/langium/langium-dsl/wrapperLangium.ts';
|
|
21
|
-
|
|
22
|
-
runLangiumDslWrapper(false);
|
|
23
|
-
</script>;
|
|
24
|
-
</body>
|
|
25
|
-
|
|
26
|
-
</html>
|
package/langium_classic.html
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
|
|
4
|
-
<head>
|
|
5
|
-
<title>Langium Grammar DSL (Classic Mode)</title>
|
|
6
|
-
<meta charset="UTF-8" />
|
|
7
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
8
|
-
<link rel="stylesheet" href="style.css">
|
|
9
|
-
</head>
|
|
10
|
-
|
|
11
|
-
<body>
|
|
12
|
-
<div class="exampleHeadelineDiv">
|
|
13
|
-
<b class="exampleHeadeline">Langium Grammar DSL (Classic Mode)</b> - [<a href="../../index.html">Back to Index</a>]
|
|
14
|
-
<br>
|
|
15
|
-
<button type="button" id="button-start">Start</button>
|
|
16
|
-
<button type="button" id="button-dispose">Dispose</button>
|
|
17
|
-
</div>
|
|
18
|
-
<div id="monaco-editor-root" style="height: 80vh; border: 1px solid grey"></div>
|
|
19
|
-
<script type="module">
|
|
20
|
-
import { runLangiumDslWrapper } from './src/langium/langium-dsl/wrapperLangium.ts';
|
|
21
|
-
|
|
22
|
-
runLangiumDslWrapper(false);
|
|
23
|
-
</script>;
|
|
24
|
-
</body>
|
|
25
|
-
|
|
26
|
-
</html>
|
|
@@ -1,90 +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 getKeybindingsServiceOverride from '@codingame/monaco-vscode-keybindings-service-override';
|
|
7
|
-
// this is required syntax highlighting
|
|
8
|
-
import '@codingame/monaco-vscode-json-default-extension';
|
|
9
|
-
import { LogLevel } from '@codingame/monaco-vscode-api';
|
|
10
|
-
import { MonacoEditorLanguageClientWrapper, type WrapperConfig } from 'monaco-editor-wrapper';
|
|
11
|
-
import { configureDefaultWorkerFactory } from 'monaco-editor-wrapper/workers/workerLoaders';
|
|
12
|
-
|
|
13
|
-
const text = `{
|
|
14
|
-
"$schema": "http://json.schemastore.org/coffeelint",
|
|
15
|
-
"line_endings": {"value": "unix"}
|
|
16
|
-
}`;
|
|
17
|
-
|
|
18
|
-
export const buildJsonClientUserConfig = (htmlContainer?: HTMLElement): WrapperConfig => {
|
|
19
|
-
return {
|
|
20
|
-
$type: 'extended',
|
|
21
|
-
htmlContainer,
|
|
22
|
-
logLevel: LogLevel.Debug,
|
|
23
|
-
vscodeApiConfig: {
|
|
24
|
-
serviceOverrides: {
|
|
25
|
-
...getKeybindingsServiceOverride(),
|
|
26
|
-
},
|
|
27
|
-
userConfiguration: {
|
|
28
|
-
json: JSON.stringify({
|
|
29
|
-
'workbench.colorTheme': 'Default Dark Modern',
|
|
30
|
-
'editor.guides.bracketPairsHorizontal': 'active',
|
|
31
|
-
'editor.lightbulb.enabled': 'On',
|
|
32
|
-
'editor.wordBasedSuggestions': 'off',
|
|
33
|
-
'editor.experimental.asyncTokenization': true
|
|
34
|
-
})
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
editorAppConfig: {
|
|
38
|
-
codeResources: {
|
|
39
|
-
modified: {
|
|
40
|
-
text,
|
|
41
|
-
uri: '/workspace/test.json',
|
|
42
|
-
}
|
|
43
|
-
},
|
|
44
|
-
monacoWorkerFactory: configureDefaultWorkerFactory
|
|
45
|
-
},
|
|
46
|
-
languageClientConfigs: {
|
|
47
|
-
configs: {
|
|
48
|
-
json: {
|
|
49
|
-
clientOptions: {
|
|
50
|
-
documentSelector: ['json']
|
|
51
|
-
},
|
|
52
|
-
connection: {
|
|
53
|
-
options: {
|
|
54
|
-
$type: 'WebSocketUrl',
|
|
55
|
-
url: 'ws://localhost:30000/sampleServer',
|
|
56
|
-
startOptions: {
|
|
57
|
-
onCall: () => {
|
|
58
|
-
console.log('Connected to socket.');
|
|
59
|
-
},
|
|
60
|
-
reportStatus: true
|
|
61
|
-
},
|
|
62
|
-
stopOptions: {
|
|
63
|
-
onCall: () => {
|
|
64
|
-
console.log('Disconnected from socket.');
|
|
65
|
-
},
|
|
66
|
-
reportStatus: true
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
export const runJsonWrapper = () => {
|
|
77
|
-
const wrapper = new MonacoEditorLanguageClientWrapper();
|
|
78
|
-
|
|
79
|
-
try {
|
|
80
|
-
document.querySelector('#button-start')?.addEventListener('click', async () => {
|
|
81
|
-
const config = buildJsonClientUserConfig(document.getElementById('monaco-editor-root')!);
|
|
82
|
-
await wrapper.initAndStart(config);
|
|
83
|
-
});
|
|
84
|
-
document.querySelector('#button-dispose')?.addEventListener('click', async () => {
|
|
85
|
-
await wrapper.dispose();
|
|
86
|
-
});
|
|
87
|
-
} catch (e) {
|
|
88
|
-
console.error(e);
|
|
89
|
-
}
|
|
90
|
-
};
|
|
@@ -1,72 +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 getKeybindingsServiceOverride from '@codingame/monaco-vscode-keybindings-service-override';
|
|
7
|
-
import { LogLevel } from '@codingame/monaco-vscode-api';
|
|
8
|
-
import { MessageTransports } from 'vscode-languageclient';
|
|
9
|
-
import type { Logger } from 'monaco-languageclient/tools';
|
|
10
|
-
import { useWorkerFactory } from 'monaco-languageclient/workerFactory';
|
|
11
|
-
import type { WrapperConfig } from 'monaco-editor-wrapper';
|
|
12
|
-
import { defineDefaultWorkerLoaders } from 'monaco-editor-wrapper/workers/workerLoaders';
|
|
13
|
-
import { LangiumMonarchContent } from './langium.monarch.js';
|
|
14
|
-
import code from '../../../../resources/langium/langium-dsl/example.langium?raw';
|
|
15
|
-
|
|
16
|
-
export const setupLangiumClientClassic = async (params: {
|
|
17
|
-
worker: Worker
|
|
18
|
-
messageTransports?: MessageTransports,
|
|
19
|
-
}): Promise<WrapperConfig> => {
|
|
20
|
-
const workerLoaders = defineDefaultWorkerLoaders();
|
|
21
|
-
workerLoaders.TextMateWorker = undefined;
|
|
22
|
-
return {
|
|
23
|
-
$type: 'classic',
|
|
24
|
-
htmlContainer: document.getElementById('monaco-editor-root')!,
|
|
25
|
-
logLevel: LogLevel.Debug,
|
|
26
|
-
vscodeApiConfig: {
|
|
27
|
-
serviceOverrides: {
|
|
28
|
-
...getKeybindingsServiceOverride()
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
editorAppConfig: {
|
|
32
|
-
codeResources: {
|
|
33
|
-
modified: {
|
|
34
|
-
text: code,
|
|
35
|
-
uri: '/workspace/grammar.langium',
|
|
36
|
-
enforceLanguageId: 'langium'
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
editorOptions: {
|
|
40
|
-
'semanticHighlighting.enabled': true,
|
|
41
|
-
wordBasedSuggestions: 'off',
|
|
42
|
-
theme: 'vs-dark'
|
|
43
|
-
},
|
|
44
|
-
languageDef: {
|
|
45
|
-
monarchLanguage: LangiumMonarchContent,
|
|
46
|
-
languageExtensionConfig: { id: 'langium' }
|
|
47
|
-
},
|
|
48
|
-
monacoWorkerFactory: (logger?: Logger) => {
|
|
49
|
-
useWorkerFactory({
|
|
50
|
-
workerLoaders,
|
|
51
|
-
logger
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
},
|
|
55
|
-
languageClientConfigs: {
|
|
56
|
-
configs: {
|
|
57
|
-
langium: {
|
|
58
|
-
clientOptions: {
|
|
59
|
-
documentSelector: ['langium']
|
|
60
|
-
},
|
|
61
|
-
connection: {
|
|
62
|
-
options: {
|
|
63
|
-
$type: 'WorkerDirect',
|
|
64
|
-
worker: params.worker
|
|
65
|
-
},
|
|
66
|
-
messageTransports: params.messageTransports
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
};
|
|
@@ -1,85 +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 { BrowserMessageReader, BrowserMessageWriter } from 'vscode-languageclient/browser.js';
|
|
7
|
-
import { MonacoEditorLanguageClientWrapper } from 'monaco-editor-wrapper';
|
|
8
|
-
import { setupLangiumClientExtended } from './config/extendedConfig.js';
|
|
9
|
-
import { setupLangiumClientClassic } from './config/classicConfig.js';
|
|
10
|
-
import { delayExecution, disableElement } from '../../common/client/utils.js';
|
|
11
|
-
import text from '../../../resources/langium/langium-dsl/example.langium?raw';
|
|
12
|
-
import workerUrl from './worker/langium-server?worker&url';
|
|
13
|
-
|
|
14
|
-
export const runLangiumDslWrapper = async (extendedMode: boolean) => {
|
|
15
|
-
try {
|
|
16
|
-
let wrapper: MonacoEditorLanguageClientWrapper | undefined;
|
|
17
|
-
|
|
18
|
-
const loadLangiumWorker = () => {
|
|
19
|
-
console.log(`Langium worker URL: ${workerUrl}`);
|
|
20
|
-
return new Worker(workerUrl, {
|
|
21
|
-
type: 'module',
|
|
22
|
-
name: 'Langium LS',
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
const checkStarted = () => {
|
|
27
|
-
if (wrapper?.isStarted() ?? false) {
|
|
28
|
-
alert('Editor was already started!\nPlease reload the page to test the alternative editor.');
|
|
29
|
-
return true;
|
|
30
|
-
}
|
|
31
|
-
return false;
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
const startLangiumClient = async () => {
|
|
35
|
-
if (checkStarted()) return;
|
|
36
|
-
disableElement('button-start', true);
|
|
37
|
-
|
|
38
|
-
const worker = loadLangiumWorker();
|
|
39
|
-
const reader = new BrowserMessageReader(worker);
|
|
40
|
-
const writer = new BrowserMessageWriter(worker);
|
|
41
|
-
reader.listen((message) => {
|
|
42
|
-
console.log('Received message from worker:', message);
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
if (extendedMode) {
|
|
46
|
-
const config = await setupLangiumClientExtended({
|
|
47
|
-
worker,
|
|
48
|
-
messageTransports: { reader, writer }
|
|
49
|
-
});
|
|
50
|
-
wrapper = new MonacoEditorLanguageClientWrapper();
|
|
51
|
-
await wrapper.initAndStart(config);
|
|
52
|
-
} else {
|
|
53
|
-
const config = await setupLangiumClientClassic({
|
|
54
|
-
worker,
|
|
55
|
-
messageTransports: { reader, writer }
|
|
56
|
-
});
|
|
57
|
-
wrapper = new MonacoEditorLanguageClientWrapper();
|
|
58
|
-
await wrapper.initAndStart(config);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
await delayExecution(1000);
|
|
62
|
-
await wrapper.updateCodeResources({
|
|
63
|
-
modified: {
|
|
64
|
-
text: `// modified file\n\n${text}`,
|
|
65
|
-
uri: '/workspace/mod.langium',
|
|
66
|
-
enforceLanguageId: 'langium'
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
const disposeEditor = async () => {
|
|
72
|
-
if (!wrapper) return;
|
|
73
|
-
wrapper.reportStatus();
|
|
74
|
-
await wrapper.dispose();
|
|
75
|
-
wrapper = undefined;
|
|
76
|
-
disableElement('button-start', false);
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
document.querySelector('#button-start')?.addEventListener('click', startLangiumClient);
|
|
80
|
-
document.querySelector('#button-dispose')?.addEventListener('click', disposeEditor);
|
|
81
|
-
} catch (e) {
|
|
82
|
-
console.error(e);
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
|