monaco-languageclient-examples 2025.6.3 → 2025.8.2

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.
Files changed (176) hide show
  1. package/CHANGELOG.md +8 -2
  2. package/dist/appPlayground/common.d.ts +2 -2
  3. package/dist/appPlayground/common.d.ts.map +1 -1
  4. package/dist/appPlayground/common.js +3 -2
  5. package/dist/appPlayground/common.js.map +1 -1
  6. package/dist/appPlayground/config.d.ts +2 -4
  7. package/dist/appPlayground/config.d.ts.map +1 -1
  8. package/dist/appPlayground/config.js +63 -65
  9. package/dist/appPlayground/config.js.map +1 -1
  10. package/dist/appPlayground/launcher.js +1 -1
  11. package/dist/appPlayground/launcher.js.map +1 -1
  12. package/dist/appPlayground/main.d.ts.map +1 -1
  13. package/dist/appPlayground/main.js +4 -5
  14. package/dist/appPlayground/main.js.map +1 -1
  15. package/dist/appPlayground/reactLauncher.js +1 -1
  16. package/dist/appPlayground/reactLauncher.js.map +1 -1
  17. package/dist/appPlayground/reactMain.d.ts.map +1 -1
  18. package/dist/appPlayground/reactMain.js +3 -2
  19. package/dist/appPlayground/reactMain.js.map +1 -1
  20. package/dist/bare/client.d.ts.map +1 -1
  21. package/dist/bare/client.js +15 -12
  22. package/dist/bare/client.js.map +1 -1
  23. package/dist/browser/main.d.ts.map +1 -1
  24. package/dist/browser/main.js +27 -28
  25. package/dist/browser/main.js.map +1 -1
  26. package/dist/clangd/client/config.d.ts +3 -10
  27. package/dist/clangd/client/config.d.ts.map +1 -1
  28. package/dist/clangd/client/config.js +85 -85
  29. package/dist/clangd/client/config.js.map +1 -1
  30. package/dist/clangd/client/main.d.ts.map +1 -1
  31. package/dist/clangd/client/main.js +9 -12
  32. package/dist/clangd/client/main.js.map +1 -1
  33. package/dist/clangd/worker/clangd-server.js.map +1 -1
  34. package/dist/common/client/utils.d.ts +1 -8
  35. package/dist/common/client/utils.d.ts.map +1 -1
  36. package/dist/common/client/utils.js +3 -0
  37. package/dist/common/client/utils.js.map +1 -1
  38. package/dist/debugger/client/debugger.d.ts +1 -1
  39. package/dist/debugger/client/debugger.d.ts.map +1 -1
  40. package/dist/eclipse.jdt.ls/client/main.d.ts +1 -1
  41. package/dist/eclipse.jdt.ls/client/main.d.ts.map +1 -1
  42. package/dist/eclipse.jdt.ls/client/main.js +74 -4
  43. package/dist/eclipse.jdt.ls/client/main.js.map +1 -1
  44. package/dist/eclipse.jdt.ls/config.d.ts +5 -2
  45. package/dist/eclipse.jdt.ls/config.d.ts.map +1 -1
  46. package/dist/eclipse.jdt.ls/config.js +1 -2
  47. package/dist/eclipse.jdt.ls/config.js.map +1 -1
  48. package/dist/groovy/client/main.d.ts +1 -1
  49. package/dist/groovy/client/main.d.ts.map +1 -1
  50. package/dist/groovy/client/main.js +63 -4
  51. package/dist/groovy/client/main.js.map +1 -1
  52. package/dist/groovy/config.d.ts +5 -2
  53. package/dist/groovy/config.d.ts.map +1 -1
  54. package/dist/groovy/config.js +1 -2
  55. package/dist/groovy/config.js.map +1 -1
  56. package/dist/json/client/wrapperWs.d.ts +5 -0
  57. package/dist/json/client/wrapperWs.d.ts.map +1 -0
  58. package/dist/json/client/wrapperWs.js +87 -0
  59. package/dist/json/client/wrapperWs.js.map +1 -0
  60. package/dist/json/server/main.js.map +1 -1
  61. package/dist/langium/langium-dsl/config/classicConfig.d.ts +2 -2
  62. package/dist/langium/langium-dsl/config/classicConfig.d.ts.map +1 -1
  63. package/dist/langium/langium-dsl/config/classicConfig.js +45 -53
  64. package/dist/langium/langium-dsl/config/classicConfig.js.map +1 -1
  65. package/dist/langium/langium-dsl/config/extendedConfig.d.ts +2 -2
  66. package/dist/langium/langium-dsl/config/extendedConfig.d.ts.map +1 -1
  67. package/dist/langium/langium-dsl/config/extendedConfig.js +40 -40
  68. package/dist/langium/langium-dsl/config/extendedConfig.js.map +1 -1
  69. package/dist/langium/langium-dsl/wrapperLangium.d.ts.map +1 -1
  70. package/dist/langium/langium-dsl/wrapperLangium.js +16 -23
  71. package/dist/langium/langium-dsl/wrapperLangium.js.map +1 -1
  72. package/dist/langium/statemachine/config/wrapperStatemachineConfig.d.ts +4 -4
  73. package/dist/langium/statemachine/config/wrapperStatemachineConfig.d.ts.map +1 -1
  74. package/dist/langium/statemachine/config/wrapperStatemachineConfig.js +41 -40
  75. package/dist/langium/statemachine/config/wrapperStatemachineConfig.js.map +1 -1
  76. package/dist/langium/statemachine/launcher.js +1 -1
  77. package/dist/langium/statemachine/launcher.js.map +1 -1
  78. package/dist/langium/statemachine/ls/generated/ast.d.ts +127 -22
  79. package/dist/langium/statemachine/ls/generated/ast.d.ts.map +1 -1
  80. package/dist/langium/statemachine/ls/generated/ast.js +112 -97
  81. package/dist/langium/statemachine/ls/generated/ast.js.map +1 -1
  82. package/dist/langium/statemachine/ls/generated/grammar.d.ts +2 -2
  83. package/dist/langium/statemachine/ls/generated/grammar.d.ts.map +1 -1
  84. package/dist/langium/statemachine/ls/generated/grammar.js +43 -41
  85. package/dist/langium/statemachine/ls/generated/grammar.js.map +1 -1
  86. package/dist/langium/statemachine/ls/generated/module.d.ts +3 -3
  87. package/dist/langium/statemachine/ls/generated/module.d.ts.map +1 -1
  88. package/dist/langium/statemachine/ls/generated/module.js +6 -6
  89. package/dist/langium/statemachine/ls/generated/module.js.map +1 -1
  90. package/dist/langium/statemachine/ls/statemachine-module.js +2 -2
  91. package/dist/langium/statemachine/ls/statemachine-module.js.map +1 -1
  92. package/dist/langium/statemachine/main-react.js +3 -2
  93. package/dist/langium/statemachine/main-react.js.map +1 -1
  94. package/dist/langium/statemachine/main.d.ts.map +1 -1
  95. package/dist/langium/statemachine/main.js +27 -38
  96. package/dist/langium/statemachine/main.js.map +1 -1
  97. package/dist/multi/config.d.ts +1 -1
  98. package/dist/multi/config.d.ts.map +1 -1
  99. package/dist/multi/config.js +1 -0
  100. package/dist/multi/config.js.map +1 -1
  101. package/dist/multi/twoLanguageClients.d.ts.map +1 -1
  102. package/dist/multi/twoLanguageClients.js +49 -45
  103. package/dist/multi/twoLanguageClients.js.map +1 -1
  104. package/dist/node.d.ts +3 -0
  105. package/dist/node.d.ts.map +1 -1
  106. package/dist/node.js +3 -3
  107. package/dist/node.js.map +1 -1
  108. package/dist/python/client/config.d.ts +3 -7
  109. package/dist/python/client/config.d.ts.map +1 -1
  110. package/dist/python/client/config.js +97 -93
  111. package/dist/python/client/config.js.map +1 -1
  112. package/dist/python/client/main.d.ts.map +1 -1
  113. package/dist/python/client/main.js +10 -16
  114. package/dist/python/client/main.js.map +1 -1
  115. package/dist/python/client/reactPython.d.ts.map +1 -1
  116. package/dist/python/client/reactPython.js +9 -8
  117. package/dist/python/client/reactPython.js.map +1 -1
  118. package/dist/ts/wrapperTs.d.ts.map +1 -1
  119. package/dist/ts/wrapperTs.js +45 -50
  120. package/dist/ts/wrapperTs.js.map +1 -1
  121. package/json.html +1 -1
  122. package/package.json +45 -44
  123. package/src/appPlayground/common.ts +3 -3
  124. package/src/appPlayground/config.ts +65 -69
  125. package/src/appPlayground/launcher.ts +1 -2
  126. package/src/appPlayground/main.ts +5 -8
  127. package/src/appPlayground/reactLauncher.ts +1 -2
  128. package/src/appPlayground/reactMain.tsx +4 -4
  129. package/src/bare/client.ts +16 -15
  130. package/src/browser/main.ts +27 -29
  131. package/src/clangd/client/config.ts +87 -97
  132. package/src/clangd/client/main.ts +10 -14
  133. package/src/clangd/worker/clangd-server.ts +2 -2
  134. package/src/common/client/utils.ts +2 -7
  135. package/src/debugger/client/debugger.ts +1 -1
  136. package/src/eclipse.jdt.ls/client/main.ts +78 -4
  137. package/src/eclipse.jdt.ls/config.ts +2 -6
  138. package/src/groovy/client/main.ts +65 -4
  139. package/src/groovy/config.ts +2 -6
  140. package/src/json/client/wrapperWs.ts +90 -0
  141. package/src/json/server/main.ts +1 -1
  142. package/src/langium/langium-dsl/config/classicConfig.ts +48 -64
  143. package/src/langium/langium-dsl/config/extendedConfig.ts +42 -49
  144. package/src/langium/langium-dsl/wrapperLangium.ts +15 -25
  145. package/src/langium/statemachine/config/wrapperStatemachineConfig.ts +45 -48
  146. package/src/langium/statemachine/launcher.ts +1 -1
  147. package/src/langium/statemachine/ls/generated/ast.ts +131 -111
  148. package/src/langium/statemachine/ls/generated/grammar.ts +43 -41
  149. package/src/langium/statemachine/ls/generated/module.ts +6 -6
  150. package/src/langium/statemachine/ls/statemachine-module.ts +2 -2
  151. package/src/langium/statemachine/ls/statemachine.langium +20 -5
  152. package/src/langium/statemachine/main-react.tsx +4 -4
  153. package/src/langium/statemachine/main.ts +27 -43
  154. package/src/multi/config.ts +3 -3
  155. package/src/multi/twoLanguageClients.ts +52 -48
  156. package/src/node.ts +3 -3
  157. package/src/python/client/config.ts +99 -101
  158. package/src/python/client/main.ts +11 -20
  159. package/src/python/client/reactPython.tsx +10 -11
  160. package/src/ts/wrapperTs.ts +45 -52
  161. package/two_langauge_clients.html +1 -0
  162. package/dist/common/client/extendedClient.d.ts +0 -9
  163. package/dist/common/client/extendedClient.d.ts.map +0 -1
  164. package/dist/common/client/extendedClient.js +0 -97
  165. package/dist/common/client/extendedClient.js.map +0 -1
  166. package/dist/json/client/client.d.ts +0 -3
  167. package/dist/json/client/client.d.ts.map +0 -1
  168. package/dist/json/client/client.js +0 -13
  169. package/dist/json/client/client.js.map +0 -1
  170. package/dist/json/client/config.d.ts +0 -3
  171. package/dist/json/client/config.d.ts.map +0 -1
  172. package/dist/json/client/config.js +0 -11
  173. package/dist/json/client/config.js.map +0 -1
  174. package/src/common/client/extendedClient.ts +0 -111
  175. package/src/json/client/client.ts +0 -14
  176. package/src/json/client/config.ts +0 -13
@@ -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 { LogLevel } from '@codingame/monaco-vscode-api';
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 { EditorApp, type EditorAppConfig } from 'monaco-languageclient/editorApp';
12
- import { MonacoVscodeApiWrapper, type MonacoVscodeApiConfig } from 'monaco-languageclient/vscodeApiWrapper';
13
- import { configureDefaultWorkerFactory } from 'monaco-languageclient/workerFactory';
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 htmlContainer = document.getElementById('monaco-editor-root')!;
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
- serviceOverrides: {
34
- ...getKeybindingsServiceOverride()
35
- },
36
- advanced: {
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
- userConfiguration: {
40
- json: JSON.stringify({
41
- 'workbench.colorTheme': 'Default Dark Modern',
42
- 'typescript.tsserver.web.projectWideIntellisense.enabled': true,
43
- 'typescript.tsserver.web.projectWideIntellisense.suppressSemanticErrors': false,
44
- 'diffEditor.renderSideBySide': false,
45
- 'editor.lightbulb.enabled': 'on',
46
- 'editor.glyphMargin': true,
47
- 'editor.guides.bracketPairsHorizontal': true,
48
- 'editor.experimental.asyncTokenization': true
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
- original: {
62
- text: codeOriginal,
63
- uri: codeOriginalUri,
64
- }
60
+ monacoWorkerFactory: configureDefaultWorkerFactory
65
61
  }
66
62
  };
67
63
 
68
- const apiWrapper = new MonacoVscodeApiWrapper(vscodeApiConfig);
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 editorApp.start(htmlContainer);
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
- editorApp.getEditor()?.focus();
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 = editorApp.getConfig().codeResources;
81
+ const codeResources = wrapper.getEditorApp()?.getConfig().codeResources;
89
82
  if (codeResources?.modified?.uri === codeUri) {
90
- editorApp.updateCodeResources({
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
- editorApp.updateCodeResources({
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.useDiffEditor ?? false;
116
- editorAppConfig.useDiffEditor = !useDiffEditor;
117
- disableElement('button-swap-code', !editorAppConfig.useDiffEditor);
108
+ const useDiffEditor = wrapperConfig.editorAppConfig!.useDiffEditor ?? false;
109
+ wrapperConfig.editorAppConfig!.useDiffEditor = !useDiffEditor;
110
+ disableElement('button-swap-code', !wrapperConfig.editorAppConfig!.useDiffEditor);
118
111
 
119
- await editorApp.start(htmlContainer);
112
+ await wrapper.initAndStart(wrapperConfig);
120
113
  });
121
114
  document.querySelector('#button-dispose')?.addEventListener('click', async () => {
122
- await editorApp.dispose();
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,3 +0,0 @@
1
- import '@codingame/monaco-vscode-json-default-extension';
2
- export declare const runJsonWrapper: () => Promise<void>;
3
- //# sourceMappingURL=client.d.ts.map
@@ -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,3 +0,0 @@
1
- import type { ExampleLsConfig } from '../../common/client/extendedClient.js';
2
- export declare const jsontLsConfig: ExampleLsConfig;
3
- //# sourceMappingURL=config.d.ts.map
@@ -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
- };