monaco-languageclient-examples 2025.8.6 → 2025.9.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 +11 -0
- package/README.md +0 -1
- package/dist/appPlayground/common.d.ts.map +1 -1
- package/dist/appPlayground/common.js +0 -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 +4 -9
- package/dist/appPlayground/config.js.map +1 -1
- package/dist/appPlayground/main.js +1 -1
- package/dist/appPlayground/main.js.map +1 -1
- package/dist/appPlayground/reactMain.d.ts.map +1 -1
- package/dist/appPlayground/reactMain.js +2 -2
- package/dist/appPlayground/reactMain.js.map +1 -1
- package/dist/browser/main.d.ts.map +1 -1
- package/dist/browser/main.js +6 -5
- package/dist/browser/main.js.map +1 -1
- package/dist/clangd/client/config.d.ts.map +1 -1
- package/dist/clangd/client/config.js +4 -6
- package/dist/clangd/client/config.js.map +1 -1
- package/dist/clangd/client/main.js +1 -1
- package/dist/clangd/client/main.js.map +1 -1
- package/dist/common/client/extendedClient.d.ts +1 -1
- package/dist/common/client/extendedClient.d.ts.map +1 -1
- package/dist/common/client/extendedClient.js +14 -6
- package/dist/common/client/extendedClient.js.map +1 -1
- package/dist/debugger/common/definitions.d.ts +2 -1
- package/dist/debugger/common/definitions.d.ts.map +1 -1
- package/dist/debugger/common/definitions.js.map +1 -1
- package/dist/eclipse.jdt.ls/config.js +1 -1
- package/dist/eclipse.jdt.ls/config.js.map +1 -1
- package/dist/groovy/config.js +1 -1
- package/dist/groovy/config.js.map +1 -1
- package/dist/json/client/classic.d.ts +4 -0
- package/dist/json/client/classic.d.ts.map +1 -0
- package/dist/{bare/client.js → json/client/classic.js} +43 -31
- package/dist/json/client/classic.js.map +1 -0
- package/dist/json/client/config.js +1 -1
- package/dist/json/client/config.js.map +1 -1
- package/dist/json/client/{client.d.ts → extended.d.ts} +1 -1
- package/dist/json/client/extended.d.ts.map +1 -0
- package/dist/json/client/{client.js → extended.js} +1 -1
- package/dist/json/client/extended.js.map +1 -0
- package/dist/langium/langium-dsl/config/{extendedConfig.d.ts → langiumDslConfig.d.ts} +1 -1
- package/dist/langium/langium-dsl/config/langiumDslConfig.d.ts.map +1 -0
- package/dist/langium/langium-dsl/config/{extendedConfig.js → langiumDslConfig.js} +5 -6
- package/dist/langium/langium-dsl/config/langiumDslConfig.js.map +1 -0
- package/dist/langium/langium-dsl/main.js +2 -2
- package/dist/langium/langium-dsl/main.js.map +1 -1
- package/dist/langium/statemachine/config/{wrapperStatemachineConfig.d.ts → statemachineConfig.d.ts} +3 -2
- package/dist/langium/statemachine/config/statemachineConfig.d.ts.map +1 -0
- package/dist/langium/statemachine/config/{wrapperStatemachineConfig.js → statemachineConfig.js} +6 -3
- package/dist/langium/statemachine/config/statemachineConfig.js.map +1 -0
- package/dist/langium/statemachine/launcher.js +2 -2
- package/dist/langium/statemachine/launcher.js.map +1 -1
- package/dist/langium/statemachine/ls/generated/ast.d.ts +5 -5
- package/dist/langium/statemachine/main-react.d.ts +1 -1
- package/dist/langium/statemachine/main-react.d.ts.map +1 -1
- package/dist/langium/statemachine/main-react.js +43 -48
- package/dist/langium/statemachine/main-react.js.map +1 -1
- package/dist/langium/statemachine/main.d.ts +1 -1
- package/dist/langium/statemachine/main.d.ts.map +1 -1
- package/dist/langium/statemachine/main.js +7 -8
- package/dist/langium/statemachine/main.js.map +1 -1
- package/dist/multi/config.d.ts.map +1 -1
- package/dist/multi/config.js +2 -1
- package/dist/multi/config.js.map +1 -1
- package/dist/multi/twoLanguageClients.d.ts.map +1 -1
- package/dist/multi/twoLanguageClients.js +7 -6
- package/dist/multi/twoLanguageClients.js.map +1 -1
- package/dist/python/client/config.d.ts +2 -2
- package/dist/python/client/config.d.ts.map +1 -1
- package/dist/python/client/config.js +4 -6
- 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 +2 -3
- 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 +1 -6
- package/dist/python/client/reactPython.js.map +1 -1
- package/dist/ts/{wrapperTs.d.ts → clientTs.d.ts} +1 -1
- package/dist/ts/clientTs.d.ts.map +1 -0
- package/dist/ts/clientTs.js +178 -0
- package/dist/ts/clientTs.js.map +1 -0
- package/ghp_langium_extended.html +1 -3
- package/ghp_react_statemachine.html +1 -4
- package/ghp_tsExtHost.html +1 -1
- package/index.html +10 -22
- package/json.html +1 -1
- package/{bare.html → json_classic.html} +1 -1
- package/package.json +41 -41
- package/src/appPlayground/common.ts +0 -3
- package/src/appPlayground/config.ts +5 -13
- package/src/appPlayground/main.ts +1 -1
- package/src/appPlayground/reactMain.tsx +1 -2
- package/src/browser/main.ts +6 -5
- package/src/clangd/client/config.ts +4 -6
- package/src/clangd/client/main.ts +1 -1
- package/src/common/client/extendedClient.ts +15 -7
- package/src/debugger/common/definitions.ts +2 -1
- package/src/eclipse.jdt.ls/config.ts +1 -1
- package/src/groovy/config.ts +1 -1
- package/src/{bare/client.ts → json/client/classic.ts} +44 -31
- package/src/json/client/config.ts +1 -1
- package/src/langium/langium-dsl/config/{extendedConfig.ts → langiumDslConfig.ts} +4 -5
- package/src/langium/langium-dsl/main.ts +2 -2
- package/src/langium/statemachine/config/{wrapperStatemachineConfig.ts → statemachineConfig.ts} +7 -4
- package/src/langium/statemachine/launcher.ts +2 -2
- package/src/langium/statemachine/main-react.tsx +49 -57
- package/src/langium/statemachine/main.ts +7 -8
- package/src/multi/config.ts +2 -1
- package/src/multi/twoLanguageClients.ts +9 -8
- package/src/python/client/config.ts +7 -9
- package/src/python/client/main.ts +2 -4
- package/src/python/client/reactPython.tsx +1 -7
- package/src/ts/clientTs.ts +196 -0
- package/tsExtHost.html +1 -1
- package/dist/bare/client.d.ts +0 -3
- package/dist/bare/client.d.ts.map +0 -1
- package/dist/bare/client.js.map +0 -1
- package/dist/json/client/client.d.ts.map +0 -1
- package/dist/json/client/client.js.map +0 -1
- package/dist/langium/langium-dsl/config/extendedConfig.d.ts.map +0 -1
- package/dist/langium/langium-dsl/config/extendedConfig.js.map +0 -1
- package/dist/langium/statemachine/config/wrapperStatemachineConfig.d.ts.map +0 -1
- package/dist/langium/statemachine/config/wrapperStatemachineConfig.js.map +0 -1
- package/dist/ts/wrapperTs.d.ts.map +0 -1
- package/dist/ts/wrapperTs.js +0 -119
- package/dist/ts/wrapperTs.js.map +0 -1
- package/src/ts/wrapperTs.ts +0 -128
- /package/src/json/client/{client.ts → extended.ts} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "monaco-languageclient-examples",
|
|
3
|
-
"version": "2025.
|
|
3
|
+
"version": "2025.9.1",
|
|
4
4
|
"description": "Monaco Language client examples",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "TypeFox GmbH",
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"default": "./dist/node.js"
|
|
30
30
|
},
|
|
31
31
|
"./json-client": {
|
|
32
|
-
"types": "./dist/json/client/
|
|
33
|
-
"default": "./dist/json/client/
|
|
32
|
+
"types": "./dist/json/client/extended.d.ts",
|
|
33
|
+
"default": "./dist/json/client/extended.js"
|
|
34
34
|
},
|
|
35
35
|
"./python-client": {
|
|
36
36
|
"types": "./dist/python/client/main.d.ts",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"dist/node"
|
|
55
55
|
],
|
|
56
56
|
"json-client": [
|
|
57
|
-
"dist/json/client/
|
|
57
|
+
"dist/json/client/extended"
|
|
58
58
|
],
|
|
59
59
|
"worker/langium": [
|
|
60
60
|
"dist/langium/langium-dsl/worker/langium-server"
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"npm": ">=10.2.3"
|
|
70
70
|
},
|
|
71
71
|
"volta": {
|
|
72
|
-
"node": "22.
|
|
72
|
+
"node": "22.19.0",
|
|
73
73
|
"npm": "10.9.3"
|
|
74
74
|
},
|
|
75
75
|
"files": [
|
|
@@ -82,48 +82,48 @@
|
|
|
82
82
|
"LICENSE"
|
|
83
83
|
],
|
|
84
84
|
"dependencies": {
|
|
85
|
-
"@codingame/monaco-vscode-configuration-service-override": "
|
|
86
|
-
"@codingame/monaco-vscode-cpp-default-extension": "
|
|
87
|
-
"@codingame/monaco-vscode-debug-service-override": "
|
|
88
|
-
"@codingame/monaco-vscode-editor-api": "
|
|
89
|
-
"@codingame/monaco-vscode-environment-service-override": "
|
|
90
|
-
"@codingame/monaco-vscode-explorer-service-override": "
|
|
91
|
-
"@codingame/monaco-vscode-files-service-override": "
|
|
92
|
-
"@codingame/monaco-vscode-groovy-default-extension": "
|
|
93
|
-
"@codingame/monaco-vscode-java-default-extension": "
|
|
94
|
-
"@codingame/monaco-vscode-javascript-default-extension": "
|
|
95
|
-
"@codingame/monaco-vscode-json-default-extension": "
|
|
96
|
-
"@codingame/monaco-vscode-keybindings-service-override": "
|
|
97
|
-
"@codingame/monaco-vscode-lifecycle-service-override": "
|
|
98
|
-
"@codingame/monaco-vscode-localization-service-override": "
|
|
99
|
-
"@codingame/monaco-vscode-preferences-service-override": "
|
|
100
|
-
"@codingame/monaco-vscode-python-default-extension": "
|
|
101
|
-
"@codingame/monaco-vscode-remote-agent-service-override": "
|
|
102
|
-
"@codingame/monaco-vscode-search-result-default-extension": "
|
|
103
|
-
"@codingame/monaco-vscode-search-service-override": "
|
|
104
|
-
"@codingame/monaco-vscode-secret-storage-service-override": "
|
|
105
|
-
"@codingame/monaco-vscode-standalone-json-language-features": "
|
|
106
|
-
"@codingame/monaco-vscode-standalone-typescript-language-features": "
|
|
107
|
-
"@codingame/monaco-vscode-testing-service-override": "
|
|
108
|
-
"@codingame/monaco-vscode-storage-service-override": "
|
|
109
|
-
"@codingame/monaco-vscode-textmate-service-override": "
|
|
110
|
-
"@codingame/monaco-vscode-theme-defaults-default-extension": "
|
|
111
|
-
"@codingame/monaco-vscode-theme-service-override": "
|
|
112
|
-
"@codingame/monaco-vscode-typescript-basics-default-extension": "
|
|
113
|
-
"@codingame/monaco-vscode-typescript-language-features-default-extension": "
|
|
114
|
-
"@codingame/monaco-vscode-views-service-override": "
|
|
115
|
-
"@codingame/monaco-vscode-outline-service-override": "
|
|
116
|
-
"@typefox/monaco-editor-react": "~7.0.0
|
|
85
|
+
"@codingame/monaco-vscode-configuration-service-override": "^21.1.0",
|
|
86
|
+
"@codingame/monaco-vscode-cpp-default-extension": "^21.1.0",
|
|
87
|
+
"@codingame/monaco-vscode-debug-service-override": "^21.1.0",
|
|
88
|
+
"@codingame/monaco-vscode-editor-api": "^21.1.0",
|
|
89
|
+
"@codingame/monaco-vscode-environment-service-override": "^21.1.0",
|
|
90
|
+
"@codingame/monaco-vscode-explorer-service-override": "^21.1.0",
|
|
91
|
+
"@codingame/monaco-vscode-files-service-override": "^21.1.0",
|
|
92
|
+
"@codingame/monaco-vscode-groovy-default-extension": "^21.1.0",
|
|
93
|
+
"@codingame/monaco-vscode-java-default-extension": "^21.1.0",
|
|
94
|
+
"@codingame/monaco-vscode-javascript-default-extension": "^21.1.0",
|
|
95
|
+
"@codingame/monaco-vscode-json-default-extension": "^21.1.0",
|
|
96
|
+
"@codingame/monaco-vscode-keybindings-service-override": "^21.1.0",
|
|
97
|
+
"@codingame/monaco-vscode-lifecycle-service-override": "^21.1.0",
|
|
98
|
+
"@codingame/monaco-vscode-localization-service-override": "^21.1.0",
|
|
99
|
+
"@codingame/monaco-vscode-preferences-service-override": "^21.1.0",
|
|
100
|
+
"@codingame/monaco-vscode-python-default-extension": "^21.1.0",
|
|
101
|
+
"@codingame/monaco-vscode-remote-agent-service-override": "^21.1.0",
|
|
102
|
+
"@codingame/monaco-vscode-search-result-default-extension": "^21.1.0",
|
|
103
|
+
"@codingame/monaco-vscode-search-service-override": "^21.1.0",
|
|
104
|
+
"@codingame/monaco-vscode-secret-storage-service-override": "^21.1.0",
|
|
105
|
+
"@codingame/monaco-vscode-standalone-json-language-features": "^21.1.0",
|
|
106
|
+
"@codingame/monaco-vscode-standalone-typescript-language-features": "^21.1.0",
|
|
107
|
+
"@codingame/monaco-vscode-testing-service-override": "^21.1.0",
|
|
108
|
+
"@codingame/monaco-vscode-storage-service-override": "^21.1.0",
|
|
109
|
+
"@codingame/monaco-vscode-textmate-service-override": "^21.1.0",
|
|
110
|
+
"@codingame/monaco-vscode-theme-defaults-default-extension": "^21.1.0",
|
|
111
|
+
"@codingame/monaco-vscode-theme-service-override": "^21.1.0",
|
|
112
|
+
"@codingame/monaco-vscode-typescript-basics-default-extension": "^21.1.0",
|
|
113
|
+
"@codingame/monaco-vscode-typescript-language-features-default-extension": "^21.1.0",
|
|
114
|
+
"@codingame/monaco-vscode-views-service-override": "^21.1.0",
|
|
115
|
+
"@codingame/monaco-vscode-outline-service-override": "^21.1.0",
|
|
116
|
+
"@typefox/monaco-editor-react": "~7.0.0",
|
|
117
117
|
"cors": "~2.8.5",
|
|
118
118
|
"express": "~5.1.0",
|
|
119
119
|
"jszip": "~3.10.1",
|
|
120
|
-
"langium": "~4.0.
|
|
121
|
-
"monaco-languageclient": "~10.0.0
|
|
120
|
+
"langium": "~4.0.3",
|
|
121
|
+
"monaco-languageclient": "~10.0.0",
|
|
122
122
|
"pyright": "~1.1.404",
|
|
123
123
|
"react": "~19.1.1",
|
|
124
124
|
"react-dom": "~19.1.1",
|
|
125
125
|
"request-light": "~0.8.0",
|
|
126
|
-
"vscode": "npm:@codingame/monaco-vscode-extension-api
|
|
126
|
+
"vscode": "npm:@codingame/monaco-vscode-extension-api@^21.1.0",
|
|
127
127
|
"vscode-json-languageservice": "~5.6.1",
|
|
128
128
|
"vscode-languageclient": "~9.0.1",
|
|
129
129
|
"vscode-languageserver": "~9.0.1",
|
|
@@ -134,7 +134,7 @@
|
|
|
134
134
|
},
|
|
135
135
|
"devDependencies": {
|
|
136
136
|
"@types/cors": "~2.8.19",
|
|
137
|
-
"@types/emscripten": "~1.
|
|
137
|
+
"@types/emscripten": "~1.41.2",
|
|
138
138
|
"@types/express": "~5.0.3",
|
|
139
139
|
"@types/ws": "~8.18.1",
|
|
140
140
|
"langium-cli": "~4.0.0",
|
|
@@ -12,9 +12,6 @@ export const configurePostStart = async (apiWrapper: MonacoVscodeApiWrapper, con
|
|
|
12
12
|
const result = apiWrapper.getExtensionRegisterResult('mlc-app-playground') as RegisterLocalProcessExtensionResult;
|
|
13
13
|
result.setAsDefaultApi();
|
|
14
14
|
|
|
15
|
-
// WA: Force show explorer and not search
|
|
16
|
-
await vscode.commands.executeCommand('workbench.view.explorer');
|
|
17
|
-
|
|
18
15
|
await Promise.all([
|
|
19
16
|
await vscode.workspace.openTextDocument(configResult.helloTsUri),
|
|
20
17
|
await vscode.workspace.openTextDocument(configResult.testerTsUri)
|
|
@@ -27,9 +27,8 @@ import '@codingame/monaco-vscode-typescript-language-features-default-extension'
|
|
|
27
27
|
|
|
28
28
|
import '../../resources/vsix/open-collaboration-tools.vsix';
|
|
29
29
|
|
|
30
|
-
import { defaultHtmlAugmentationInstructions, defaultViewsInit, type MonacoVscodeApiConfig } from 'monaco-languageclient/vscodeApiWrapper';
|
|
31
|
-
import type { EditorAppConfig } from 'monaco-languageclient/editorApp';
|
|
32
30
|
import { createDefaultLocaleConfiguration } from 'monaco-languageclient/vscodeApiLocales';
|
|
31
|
+
import { defaultHtmlAugmentationInstructions, defaultViewsInit, type HtmlContainerConfig, type MonacoVscodeApiConfig } from 'monaco-languageclient/vscodeApiWrapper';
|
|
33
32
|
import { configureDefaultWorkerFactory } from 'monaco-languageclient/workerFactory';
|
|
34
33
|
import helloTsCode from '../../resources/appPlayground/hello.ts?raw';
|
|
35
34
|
import testerTsCode from '../../resources/appPlayground/tester.ts?raw';
|
|
@@ -37,19 +36,17 @@ import { createDefaultWorkspaceContent } from '../common/client/utils.js';
|
|
|
37
36
|
|
|
38
37
|
export type ConfigResult = {
|
|
39
38
|
vscodeApiConfig: MonacoVscodeApiConfig;
|
|
40
|
-
editorAppConfig: EditorAppConfig
|
|
41
39
|
workspaceFileUri: vscode.Uri;
|
|
42
40
|
helloTsUri: vscode.Uri;
|
|
43
41
|
testerTsUri: vscode.Uri;
|
|
44
42
|
};
|
|
45
43
|
|
|
46
|
-
export const configure = async (htmlContainer
|
|
44
|
+
export const configure = async (htmlContainer: HtmlContainerConfig): Promise<ConfigResult> => {
|
|
47
45
|
const workspaceFileUri = vscode.Uri.file('/workspace.code-workspace');
|
|
48
46
|
|
|
49
47
|
const vscodeApiConfig: MonacoVscodeApiConfig = {
|
|
50
48
|
$type: 'extended',
|
|
51
49
|
logLevel: LogLevel.Debug,
|
|
52
|
-
htmlContainer,
|
|
53
50
|
serviceOverrides: {
|
|
54
51
|
...getKeybindingsServiceOverride(),
|
|
55
52
|
...getLifecycleServiceOverride(),
|
|
@@ -66,7 +63,8 @@ export const configure = async (htmlContainer?: HTMLElement): Promise<ConfigResu
|
|
|
66
63
|
...getOutlineServiceOverride()
|
|
67
64
|
},
|
|
68
65
|
viewsConfig: {
|
|
69
|
-
|
|
66
|
+
$type: 'ViewsService',
|
|
67
|
+
htmlContainer,
|
|
70
68
|
htmlAugmentationInstructions: defaultHtmlAugmentationInstructions,
|
|
71
69
|
viewsInitFunc: defaultViewsInit
|
|
72
70
|
},
|
|
@@ -103,7 +101,7 @@ export const configure = async (htmlContainer?: HTMLElement): Promise<ConfigResu
|
|
|
103
101
|
'typescript.tsserver.web.projectWideIntellisense.suppressSemanticErrors': false,
|
|
104
102
|
'editor.guides.bracketPairsHorizontal': true,
|
|
105
103
|
'oct.serverUrl': 'https://api.open-collab.tools/',
|
|
106
|
-
'editor.experimental.asyncTokenization':
|
|
104
|
+
'editor.experimental.asyncTokenization': true
|
|
107
105
|
})
|
|
108
106
|
},
|
|
109
107
|
extensions: [{
|
|
@@ -122,11 +120,6 @@ export const configure = async (htmlContainer?: HTMLElement): Promise<ConfigResu
|
|
|
122
120
|
monacoWorkerFactory: configureDefaultWorkerFactory
|
|
123
121
|
};
|
|
124
122
|
|
|
125
|
-
const editorAppConfig: EditorAppConfig = {
|
|
126
|
-
$type: vscodeApiConfig.$type,
|
|
127
|
-
id: 'AAP',
|
|
128
|
-
};
|
|
129
|
-
|
|
130
123
|
const workspaceUri = vscode.Uri.file('/workspace');
|
|
131
124
|
const helloTsUri = vscode.Uri.file('/workspace/hello.ts');
|
|
132
125
|
const testerTsUri = vscode.Uri.file('/workspace/tester.ts');
|
|
@@ -147,7 +140,6 @@ export const configure = async (htmlContainer?: HTMLElement): Promise<ConfigResu
|
|
|
147
140
|
|
|
148
141
|
return {
|
|
149
142
|
vscodeApiConfig,
|
|
150
|
-
editorAppConfig,
|
|
151
143
|
workspaceFileUri,
|
|
152
144
|
helloTsUri,
|
|
153
145
|
testerTsUri
|
|
@@ -15,7 +15,7 @@ export const runApplicationPlayground = async () => {
|
|
|
15
15
|
|
|
16
16
|
// perform global init
|
|
17
17
|
const apiWrapper = new MonacoVscodeApiWrapper(configResult.vscodeApiConfig);
|
|
18
|
-
await apiWrapper.
|
|
18
|
+
await apiWrapper.start();
|
|
19
19
|
|
|
20
20
|
await configurePostStart(apiWrapper, configResult);
|
|
21
21
|
};
|
|
@@ -11,14 +11,13 @@ import { configurePostStart } from './common.js';
|
|
|
11
11
|
|
|
12
12
|
export const runApplicationPlaygroundReact = async () => {
|
|
13
13
|
|
|
14
|
-
const configResult = await configure();
|
|
14
|
+
const configResult = await configure('ReactPlaceholder');
|
|
15
15
|
const root = ReactDOM.createRoot(document.getElementById('react-root')!);
|
|
16
16
|
const App = () => {
|
|
17
17
|
return (
|
|
18
18
|
<div style={{ 'backgroundColor': '#1f1f1f' }}>
|
|
19
19
|
<MonacoEditorReactComp
|
|
20
20
|
vscodeApiConfig={configResult.vscodeApiConfig}
|
|
21
|
-
editorAppConfig={configResult.editorAppConfig}
|
|
22
21
|
onVscodeApiInitDone={async (apiWrapper) => {
|
|
23
22
|
await configurePostStart(apiWrapper, configResult);
|
|
24
23
|
}}
|
package/src/browser/main.ts
CHANGED
|
@@ -21,7 +21,6 @@ export const runBrowserEditor = async () => {
|
|
|
21
21
|
const protocolConverter = createProtocolConverter(undefined, true, true);
|
|
22
22
|
|
|
23
23
|
let mainVscodeDocument: vscode.TextDocument | undefined;
|
|
24
|
-
const htmlContainer = document.getElementById('monaco-editor-root')!;
|
|
25
24
|
const languageId = 'json';
|
|
26
25
|
const code = `{
|
|
27
26
|
"$schema": "http://json.schemastore.org/coffeelint",
|
|
@@ -31,7 +30,10 @@ export const runBrowserEditor = async () => {
|
|
|
31
30
|
|
|
32
31
|
const vscodeApiConfig: MonacoVscodeApiConfig = {
|
|
33
32
|
$type: 'extended',
|
|
34
|
-
|
|
33
|
+
viewsConfig: {
|
|
34
|
+
$type: 'EditorService',
|
|
35
|
+
htmlContainer: document.getElementById('monaco-editor-root')!
|
|
36
|
+
},
|
|
35
37
|
logLevel: LogLevel.Debug,
|
|
36
38
|
serviceOverrides: {
|
|
37
39
|
...getKeybindingsServiceOverride(),
|
|
@@ -47,7 +49,6 @@ export const runBrowserEditor = async () => {
|
|
|
47
49
|
monacoWorkerFactory: configureDefaultWorkerFactory
|
|
48
50
|
};
|
|
49
51
|
const editorAppConfig: EditorAppConfig = {
|
|
50
|
-
$type: vscodeApiConfig.$type,
|
|
51
52
|
codeResources: {
|
|
52
53
|
modified: {
|
|
53
54
|
text: code,
|
|
@@ -56,7 +57,7 @@ export const runBrowserEditor = async () => {
|
|
|
56
57
|
}
|
|
57
58
|
};
|
|
58
59
|
const apiWrapper = new MonacoVscodeApiWrapper(vscodeApiConfig);
|
|
59
|
-
await apiWrapper.
|
|
60
|
+
await apiWrapper.start();
|
|
60
61
|
|
|
61
62
|
const editorApp = new EditorApp(editorAppConfig);
|
|
62
63
|
|
|
@@ -158,7 +159,7 @@ export const runBrowserEditor = async () => {
|
|
|
158
159
|
diagnosticCollection.clear();
|
|
159
160
|
};
|
|
160
161
|
|
|
161
|
-
await editorApp.start(
|
|
162
|
+
await editorApp.start(apiWrapper.getHtmlContainer());
|
|
162
163
|
|
|
163
164
|
editorApp.getTextModels().modified?.onDidChangeContent(() => {
|
|
164
165
|
validate();
|
|
@@ -35,7 +35,6 @@ export const createClangdAppConfig = async (config: {
|
|
|
35
35
|
}): Promise<ClangdAppConfig> => {
|
|
36
36
|
const vscodeApiConfig: MonacoVscodeApiConfig = {
|
|
37
37
|
$type: 'extended',
|
|
38
|
-
htmlContainer: config.htmlContainer,
|
|
39
38
|
logLevel: LogLevel.Debug,
|
|
40
39
|
serviceOverrides: {
|
|
41
40
|
...getKeybindingsServiceOverride(),
|
|
@@ -49,7 +48,8 @@ export const createClangdAppConfig = async (config: {
|
|
|
49
48
|
...getSecretStorageServiceOverride()
|
|
50
49
|
},
|
|
51
50
|
viewsConfig: {
|
|
52
|
-
|
|
51
|
+
$type: 'ViewsService',
|
|
52
|
+
htmlContainer: config.htmlContainer,
|
|
53
53
|
htmlAugmentationInstructions: defaultHtmlAugmentationInstructions,
|
|
54
54
|
viewsInitFunc: defaultViewsInit
|
|
55
55
|
},
|
|
@@ -102,7 +102,7 @@ export const createClangdAppConfig = async (config: {
|
|
|
102
102
|
};
|
|
103
103
|
|
|
104
104
|
const languageClientConfig: LanguageClientConfig = {
|
|
105
|
-
|
|
105
|
+
languageId: 'cpp',
|
|
106
106
|
connection: {
|
|
107
107
|
options: {
|
|
108
108
|
$type: 'WorkerDirect',
|
|
@@ -125,9 +125,7 @@ export const createClangdAppConfig = async (config: {
|
|
|
125
125
|
}
|
|
126
126
|
};
|
|
127
127
|
|
|
128
|
-
const editorAppConfig: EditorAppConfig = {
|
|
129
|
-
$type: vscodeApiConfig.$type
|
|
130
|
-
};
|
|
128
|
+
const editorAppConfig: EditorAppConfig = {};
|
|
131
129
|
|
|
132
130
|
return {
|
|
133
131
|
vscodeApiConfig,
|
|
@@ -41,7 +41,7 @@ export const runClangdWrapper = async () => {
|
|
|
41
41
|
|
|
42
42
|
// perform global init
|
|
43
43
|
const apiWrapper = new MonacoVscodeApiWrapper(appConfig.vscodeApiConfig);
|
|
44
|
-
await apiWrapper.
|
|
44
|
+
await apiWrapper.start();
|
|
45
45
|
|
|
46
46
|
const lcWrapper = new LanguageClientWrapper(appConfig.languageClientConfig);
|
|
47
47
|
|
|
@@ -13,9 +13,10 @@ import { EditorApp, type EditorAppConfig } from 'monaco-languageclient/editorApp
|
|
|
13
13
|
import { configureDefaultWorkerFactory } from 'monaco-languageclient/workerFactory';
|
|
14
14
|
import { LanguageClientWrapper, type LanguageClientConfig } from 'monaco-languageclient/lcwrapper';
|
|
15
15
|
import { MonacoVscodeApiWrapper, type MonacoVscodeApiConfig } from 'monaco-languageclient/vscodeApiWrapper';
|
|
16
|
+
import { LangiumMonarchContent } from '../../langium/langium-dsl/config/langium.monarch.js';
|
|
16
17
|
|
|
17
18
|
export const runExtendedClient = async (lsConfig: ExampleLsConfig, helloCode: string) => {
|
|
18
|
-
const helloUri = vscode.Uri.file(`${lsConfig.basePath}/workspace/hello.${lsConfig.
|
|
19
|
+
const helloUri = vscode.Uri.file(`${lsConfig.basePath}/workspace/hello.${lsConfig.languageId}`);
|
|
19
20
|
const fileSystemProvider = new RegisteredFileSystemProvider(false);
|
|
20
21
|
fileSystemProvider.registerFile(new RegisteredMemoryFile(helloUri, helloCode));
|
|
21
22
|
registerFileSystemOverlay(1, fileSystemProvider);
|
|
@@ -23,7 +24,10 @@ export const runExtendedClient = async (lsConfig: ExampleLsConfig, helloCode: st
|
|
|
23
24
|
const htmlContainer = document.getElementById('monaco-editor-root')!;
|
|
24
25
|
const vscodeApiConfig: MonacoVscodeApiConfig = {
|
|
25
26
|
$type: 'extended',
|
|
26
|
-
|
|
27
|
+
viewsConfig: {
|
|
28
|
+
$type: 'EditorService',
|
|
29
|
+
htmlContainer
|
|
30
|
+
},
|
|
27
31
|
logLevel: LogLevel.Debug,
|
|
28
32
|
serviceOverrides: {
|
|
29
33
|
...getKeybindingsServiceOverride(),
|
|
@@ -41,6 +45,7 @@ export const runExtendedClient = async (lsConfig: ExampleLsConfig, helloCode: st
|
|
|
41
45
|
};
|
|
42
46
|
|
|
43
47
|
const languageClientConfig: LanguageClientConfig = {
|
|
48
|
+
languageId: lsConfig.languageId,
|
|
44
49
|
connection: {
|
|
45
50
|
options: {
|
|
46
51
|
$type: 'WebSocketUrl',
|
|
@@ -60,7 +65,7 @@ export const runExtendedClient = async (lsConfig: ExampleLsConfig, helloCode: st
|
|
|
60
65
|
},
|
|
61
66
|
},
|
|
62
67
|
clientOptions: {
|
|
63
|
-
documentSelector: [lsConfig.
|
|
68
|
+
documentSelector: [lsConfig.languageId],
|
|
64
69
|
workspaceFolder: {
|
|
65
70
|
index: 0,
|
|
66
71
|
name: 'workspace',
|
|
@@ -70,25 +75,28 @@ export const runExtendedClient = async (lsConfig: ExampleLsConfig, helloCode: st
|
|
|
70
75
|
};
|
|
71
76
|
|
|
72
77
|
const editorAppConfig: EditorAppConfig = {
|
|
73
|
-
$type: vscodeApiConfig.$type,
|
|
74
78
|
codeResources: {
|
|
75
79
|
modified: {
|
|
76
80
|
text: helloCode,
|
|
77
81
|
uri: helloUri.path
|
|
78
82
|
}
|
|
83
|
+
},
|
|
84
|
+
languageDef: {
|
|
85
|
+
monarchLanguage: LangiumMonarchContent,
|
|
86
|
+
languageExtensionConfig: { id: 'langium' }
|
|
79
87
|
}
|
|
80
88
|
};
|
|
81
89
|
|
|
82
90
|
// perform global init
|
|
83
91
|
const apiWrapper = new MonacoVscodeApiWrapper(vscodeApiConfig);
|
|
84
|
-
await apiWrapper.
|
|
92
|
+
await apiWrapper.start();
|
|
85
93
|
|
|
86
94
|
const lcWrapper = new LanguageClientWrapper(languageClientConfig, apiWrapper.getLogger());
|
|
87
95
|
const editorApp = new EditorApp(editorAppConfig);
|
|
88
96
|
|
|
89
97
|
try {
|
|
90
98
|
document.querySelector('#button-start')?.addEventListener('click', async () => {
|
|
91
|
-
await editorApp.start(
|
|
99
|
+
await editorApp.start(apiWrapper.getHtmlContainer());
|
|
92
100
|
await lcWrapper.start();
|
|
93
101
|
|
|
94
102
|
// open files, so the LS can pick it up
|
|
@@ -107,5 +115,5 @@ export type ExampleLsConfig = {
|
|
|
107
115
|
port: number;
|
|
108
116
|
path: string;
|
|
109
117
|
basePath: string;
|
|
110
|
-
|
|
118
|
+
languageId: string;
|
|
111
119
|
};
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* ------------------------------------------------------------------------------------------ */
|
|
5
5
|
|
|
6
6
|
import { RegisteredMemoryFile } from '@codingame/monaco-vscode-files-service-override';
|
|
7
|
+
import type { HtmlContainerConfig } from 'monaco-languageclient/vscodeApiWrapper';
|
|
7
8
|
import { Uri } from 'vscode';
|
|
8
9
|
|
|
9
10
|
export type FileDefinition = {
|
|
@@ -26,7 +27,7 @@ export type ConfigParams = {
|
|
|
26
27
|
homeDir: string;
|
|
27
28
|
workspaceRoot: string;
|
|
28
29
|
workspaceFile: Uri;
|
|
29
|
-
htmlContainer
|
|
30
|
+
htmlContainer: HtmlContainerConfig;
|
|
30
31
|
protocol: 'ws' | 'wss';
|
|
31
32
|
hostname: string;
|
|
32
33
|
port: number;
|
package/src/groovy/config.ts
CHANGED
|
@@ -4,58 +4,61 @@
|
|
|
4
4
|
* ------------------------------------------------------------------------------------------ */
|
|
5
5
|
|
|
6
6
|
import { LogLevel } from '@codingame/monaco-vscode-api';
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import getThemeServiceOverride from '@codingame/monaco-vscode-theme-service-override';
|
|
10
|
-
import { MonacoVscodeApiWrapper, type MonacoVscodeApiConfig } from 'monaco-languageclient/vscodeApiWrapper';
|
|
11
|
-
// monaco-editor does not supply json highlighting with the json worker,
|
|
12
|
-
// that's why we use the textmate extension from VSCode
|
|
13
|
-
import '@codingame/monaco-vscode-json-default-extension';
|
|
14
|
-
import { configureDefaultWorkerFactory } from 'monaco-languageclient/workerFactory';
|
|
7
|
+
import type { Logger } from 'monaco-languageclient/common';
|
|
8
|
+
import { EditorApp, type EditorAppConfig } from 'monaco-languageclient/editorApp';
|
|
15
9
|
import { LanguageClientWrapper, type LanguageClientConfig } from 'monaco-languageclient/lcwrapper';
|
|
10
|
+
import { MonacoVscodeApiWrapper, type MonacoVscodeApiConfig } from 'monaco-languageclient/vscodeApiWrapper';
|
|
11
|
+
import { defineDefaultWorkerLoaders, useWorkerFactory } from 'monaco-languageclient/workerFactory';
|
|
16
12
|
|
|
17
13
|
export const runClient = async () => {
|
|
18
14
|
const htmlContainer = document.getElementById('monaco-editor-root')!;
|
|
19
15
|
const vscodeApiConfig: MonacoVscodeApiConfig = {
|
|
20
16
|
$type: 'classic',
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
...getThemeServiceOverride()
|
|
17
|
+
viewsConfig: {
|
|
18
|
+
$type: 'EditorService',
|
|
19
|
+
htmlContainer
|
|
25
20
|
},
|
|
21
|
+
logLevel: LogLevel.Debug,
|
|
26
22
|
userConfiguration: {
|
|
27
23
|
json: JSON.stringify({
|
|
28
24
|
'editor.experimental.asyncTokenization': true
|
|
29
25
|
})
|
|
30
26
|
},
|
|
31
|
-
monacoWorkerFactory:
|
|
27
|
+
monacoWorkerFactory: configureClassicWorkerFactory
|
|
32
28
|
};
|
|
33
29
|
|
|
34
30
|
const apiWrapper = new MonacoVscodeApiWrapper(vscodeApiConfig);
|
|
35
|
-
await apiWrapper.
|
|
31
|
+
await apiWrapper.start();
|
|
36
32
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
id: 'json',
|
|
40
|
-
extensions: ['.json', '.jsonc'],
|
|
41
|
-
aliases: ['JSON', 'json'],
|
|
42
|
-
mimetypes: ['application/json']
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
// create monaco editor
|
|
46
|
-
monaco.editor.create(htmlContainer, {
|
|
47
|
-
value: `{
|
|
33
|
+
const languageId = 'json';
|
|
34
|
+
const code = `{
|
|
48
35
|
"$schema": "http://json.schemastore.org/coffeelint",
|
|
49
36
|
"line_endings": "unix"
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
37
|
+
}`;
|
|
38
|
+
const codeUri = '/workspace/model.json';
|
|
39
|
+
const editorAppConfig: EditorAppConfig = {
|
|
40
|
+
codeResources: {
|
|
41
|
+
modified: {
|
|
42
|
+
text: code,
|
|
43
|
+
uri: codeUri
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
languageDef: {
|
|
47
|
+
languageExtensionConfig: {
|
|
48
|
+
id: languageId,
|
|
49
|
+
extensions: ['.json', '.jsonc'],
|
|
50
|
+
aliases: ['JSON', 'json'],
|
|
51
|
+
mimetypes: ['application/json']
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
const editorApp = new EditorApp(editorAppConfig);
|
|
56
|
+
await editorApp.start(apiWrapper.getHtmlContainer());
|
|
55
57
|
|
|
56
58
|
const languageClientConfig: LanguageClientConfig = {
|
|
59
|
+
languageId,
|
|
57
60
|
clientOptions: {
|
|
58
|
-
documentSelector: [
|
|
61
|
+
documentSelector: [languageId]
|
|
59
62
|
},
|
|
60
63
|
connection: {
|
|
61
64
|
options: {
|
|
@@ -70,3 +73,13 @@ export const runClient = async () => {
|
|
|
70
73
|
);
|
|
71
74
|
await languageClientWrapper.start();
|
|
72
75
|
};
|
|
76
|
+
|
|
77
|
+
export const configureClassicWorkerFactory = (logger?: Logger) => {
|
|
78
|
+
const defaultworkerLoaders = defineDefaultWorkerLoaders();
|
|
79
|
+
// remove textmate worker as it is not compatible with classic mode
|
|
80
|
+
defaultworkerLoaders.TextMateWorker = undefined;
|
|
81
|
+
useWorkerFactory({
|
|
82
|
+
workerLoaders: defaultworkerLoaders,
|
|
83
|
+
logger
|
|
84
|
+
});
|
|
85
|
+
};
|
|
@@ -59,9 +59,7 @@ export const setupLangiumClientExtended = async (): Promise<ExampleAppConfig> =>
|
|
|
59
59
|
await fileSystemProvider.writeFile(langiumTypesLangiumUri, textEncoder.encode(langiumTypesLangium), options);
|
|
60
60
|
registerFileSystemOverlay(1, fileSystemProvider);
|
|
61
61
|
|
|
62
|
-
const editorAppConfig: EditorAppConfig = {
|
|
63
|
-
$type: overallConfigType
|
|
64
|
-
};
|
|
62
|
+
const editorAppConfig: EditorAppConfig = {};
|
|
65
63
|
|
|
66
64
|
const innerHtml = `<div id="editorsDiv">
|
|
67
65
|
<div id="editors"></div>
|
|
@@ -86,12 +84,12 @@ export const setupLangiumClientExtended = async (): Promise<ExampleAppConfig> =>
|
|
|
86
84
|
const vscodeApiConfig: MonacoVscodeApiConfig = {
|
|
87
85
|
$type: overallConfigType,
|
|
88
86
|
logLevel: LogLevel.Debug,
|
|
89
|
-
htmlContainer: document.body,
|
|
90
87
|
serviceOverrides: {
|
|
91
88
|
...getKeybindingsServiceOverride()
|
|
92
89
|
},
|
|
93
90
|
viewsConfig: {
|
|
94
|
-
|
|
91
|
+
$type: 'ViewsService',
|
|
92
|
+
htmlContainer: document.body,
|
|
95
93
|
htmlAugmentationInstructions: (htmlElement: HTMLElement | null | undefined) => {
|
|
96
94
|
const htmlContainer = document.createElement('div', { is: 'app' });
|
|
97
95
|
htmlContainer.innerHTML = innerHtml;
|
|
@@ -136,6 +134,7 @@ export const setupLangiumClientExtended = async (): Promise<ExampleAppConfig> =>
|
|
|
136
134
|
};
|
|
137
135
|
|
|
138
136
|
const languageClientConfig: LanguageClientConfig = {
|
|
137
|
+
languageId: 'langium',
|
|
139
138
|
clientOptions: {
|
|
140
139
|
documentSelector: ['langium']
|
|
141
140
|
},
|
|
@@ -7,7 +7,7 @@ import { LanguageClientWrapper } from 'monaco-languageclient/lcwrapper';
|
|
|
7
7
|
import { MonacoVscodeApiWrapper } from 'monaco-languageclient/vscodeApiWrapper';
|
|
8
8
|
import * as vscode from 'vscode';
|
|
9
9
|
import type { ExampleAppConfig } from '../../common/client/utils.js';
|
|
10
|
-
import { setupLangiumClientExtended } from './config/
|
|
10
|
+
import { setupLangiumClientExtended } from './config/langiumDslConfig.js';
|
|
11
11
|
|
|
12
12
|
export const runLangiumGrammarDsl = async () => {
|
|
13
13
|
try {
|
|
@@ -15,7 +15,7 @@ export const runLangiumGrammarDsl = async () => {
|
|
|
15
15
|
|
|
16
16
|
// perform global init
|
|
17
17
|
const apiWrapper = new MonacoVscodeApiWrapper(appConfig.vscodeApiConfig);
|
|
18
|
-
await apiWrapper.
|
|
18
|
+
await apiWrapper.start();
|
|
19
19
|
|
|
20
20
|
// init language client
|
|
21
21
|
const lcWrapper = new LanguageClientWrapper(appConfig.languageClientConfig);
|