monaco-languageclient-examples 2024.10.4 → 2024.10.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.
Files changed (137) hide show
  1. package/CHANGELOG.md +8 -1
  2. package/appPlayground.html +21 -0
  3. package/bare.html +3 -1
  4. package/browser.html +3 -1
  5. package/clangd.html +25 -0
  6. package/dist/appPlayground/launcher.d.ts +2 -0
  7. package/dist/appPlayground/launcher.d.ts.map +1 -0
  8. package/dist/appPlayground/launcher.js +9 -0
  9. package/dist/appPlayground/launcher.js.map +1 -0
  10. package/dist/appPlayground/main.d.ts +5 -0
  11. package/dist/appPlayground/main.d.ts.map +1 -0
  12. package/dist/appPlayground/main.js +125 -0
  13. package/dist/appPlayground/main.js.map +1 -0
  14. package/dist/clangd/client/config.d.ts +11 -0
  15. package/dist/clangd/client/config.d.ts.map +1 -0
  16. package/dist/clangd/client/config.js +118 -0
  17. package/dist/clangd/client/config.js.map +1 -0
  18. package/dist/clangd/client/main.d.ts +3 -0
  19. package/dist/clangd/client/main.d.ts.map +1 -0
  20. package/dist/clangd/client/main.js +53 -0
  21. package/dist/clangd/client/main.js.map +1 -0
  22. package/dist/clangd/client/mainRemoteMessageChannelFs.d.ts +19 -0
  23. package/dist/clangd/client/mainRemoteMessageChannelFs.d.ts.map +1 -0
  24. package/dist/clangd/client/mainRemoteMessageChannelFs.js +77 -0
  25. package/dist/clangd/client/mainRemoteMessageChannelFs.js.map +1 -0
  26. package/dist/clangd/client/workerHandler.d.ts +14 -0
  27. package/dist/clangd/client/workerHandler.d.ts.map +1 -0
  28. package/dist/clangd/client/workerHandler.js +54 -0
  29. package/dist/clangd/client/workerHandler.js.map +1 -0
  30. package/dist/clangd/definitions.d.ts +7 -0
  31. package/dist/clangd/definitions.d.ts.map +1 -0
  32. package/dist/clangd/definitions.js +7 -0
  33. package/dist/clangd/definitions.js.map +1 -0
  34. package/dist/clangd/worker/clangd-server.d.ts +24 -0
  35. package/dist/clangd/worker/clangd-server.d.ts.map +1 -0
  36. package/dist/clangd/worker/clangd-server.js +280 -0
  37. package/dist/clangd/worker/clangd-server.js.map +1 -0
  38. package/dist/clangd/worker/json_stream.d.ts +11 -0
  39. package/dist/clangd/worker/json_stream.d.ts.map +1 -0
  40. package/dist/clangd/worker/json_stream.js +66 -0
  41. package/dist/clangd/worker/json_stream.js.map +1 -0
  42. package/dist/clangd/worker/memfs-tools.d.ts +5 -0
  43. package/dist/clangd/worker/memfs-tools.d.ts.map +1 -0
  44. package/dist/clangd/worker/memfs-tools.js +42 -0
  45. package/dist/clangd/worker/memfs-tools.js.map +1 -0
  46. package/dist/clangd/worker/workerRemoteMessageChannelFs.d.ts +16 -0
  47. package/dist/clangd/worker/workerRemoteMessageChannelFs.d.ts.map +1 -0
  48. package/dist/clangd/worker/workerRemoteMessageChannelFs.js +94 -0
  49. package/dist/clangd/worker/workerRemoteMessageChannelFs.js.map +1 -0
  50. package/dist/common/client/utils.d.ts +3 -0
  51. package/dist/common/client/utils.d.ts.map +1 -1
  52. package/dist/common/client/utils.js +10 -0
  53. package/dist/common/client/utils.js.map +1 -1
  54. package/dist/json/server/main.d.ts +1 -0
  55. package/dist/json/server/main.d.ts.map +1 -1
  56. package/dist/json/server/main.js +17 -0
  57. package/dist/json/server/main.js.map +1 -1
  58. package/dist/langium/langium-dsl/config/classicConfig.d.ts.map +1 -1
  59. package/dist/langium/langium-dsl/config/classicConfig.js +1 -4
  60. package/dist/langium/langium-dsl/config/classicConfig.js.map +1 -1
  61. package/dist/langium/langium-dsl/config/extendedConfig.d.ts.map +1 -1
  62. package/dist/langium/langium-dsl/config/extendedConfig.js +2 -5
  63. package/dist/langium/langium-dsl/config/extendedConfig.js.map +1 -1
  64. package/dist/langium/statemachine/config/wrapperStatemachineConfig.js +1 -1
  65. package/dist/langium/statemachine/config/wrapperStatemachineConfig.js.map +1 -1
  66. package/dist/langium/statemachine/launcher.js +2 -1
  67. package/dist/langium/statemachine/launcher.js.map +1 -1
  68. package/dist/langium/statemachine/main-react.js +1 -1
  69. package/dist/langium/statemachine/main-react.js.map +1 -1
  70. package/dist/langium/statemachine/main.js +2 -2
  71. package/dist/langium/statemachine/main.js.map +1 -1
  72. package/dist/python/client/config.d.ts.map +1 -1
  73. package/dist/python/client/config.js +0 -3
  74. package/dist/python/client/config.js.map +1 -1
  75. package/dist/python/client/main.js +2 -2
  76. package/dist/python/client/main.js.map +1 -1
  77. package/dist/python/client/reactPython.js +1 -1
  78. package/dist/python/client/reactPython.js.map +1 -1
  79. package/dist/ts/wrapperTs.d.ts +0 -1
  80. package/dist/ts/wrapperTs.d.ts.map +1 -1
  81. package/dist/ts/wrapperTs.js +0 -1
  82. package/dist/ts/wrapperTs.js.map +1 -1
  83. package/eclipse.jdt.ls.html +6 -3
  84. package/ghp_appPlayground.html +21 -0
  85. package/ghp_browser.html +22 -0
  86. package/ghp_clangd.html +26 -0
  87. package/ghp_langium.html +27 -0
  88. package/ghp_react_statemachine.html +27 -0
  89. package/ghp_statemachine.html +23 -0
  90. package/ghp_tsExtHost.html +29 -0
  91. package/groovy.html +6 -3
  92. package/index.html +64 -0
  93. package/json.html +6 -3
  94. package/langium.html +3 -2
  95. package/package.json +46 -29
  96. package/python.html +6 -3
  97. package/react_python.html +7 -4
  98. package/react_statemachine.html +7 -4
  99. package/src/appPlayground/launcher.ts +10 -0
  100. package/src/appPlayground/main.ts +134 -0
  101. package/src/clangd/README.md +5 -0
  102. package/src/clangd/client/config.ts +128 -0
  103. package/src/clangd/client/main.ts +62 -0
  104. package/src/clangd/client/mainRemoteMessageChannelFs.ts +89 -0
  105. package/src/clangd/client/workerHandler.ts +70 -0
  106. package/src/clangd/definitions.ts +12 -0
  107. package/src/clangd/worker/clangd-server.ts +323 -0
  108. package/src/clangd/worker/json_stream.ts +64 -0
  109. package/src/clangd/worker/memfs-tools.ts +43 -0
  110. package/src/clangd/worker/workerRemoteMessageChannelFs.ts +113 -0
  111. package/src/common/client/utils.ts +20 -0
  112. package/src/json/server/main.ts +21 -1
  113. package/src/langium/langium-dsl/config/classicConfig.ts +1 -4
  114. package/src/langium/langium-dsl/config/extendedConfig.ts +3 -5
  115. package/src/langium/statemachine/config/wrapperStatemachineConfig.ts +1 -1
  116. package/src/langium/statemachine/launcher.ts +3 -1
  117. package/src/langium/statemachine/main-react.tsx +1 -1
  118. package/src/langium/statemachine/main.ts +2 -2
  119. package/src/python/client/config.ts +0 -3
  120. package/src/python/client/main.ts +2 -2
  121. package/src/python/client/reactPython.tsx +1 -1
  122. package/src/ts/wrapperTs.ts +0 -1
  123. package/src/vite-env.d.ts +2 -0
  124. package/statemachine.html +7 -8
  125. package/tsExtHost.html +29 -0
  126. package/two_langauge_clients.html +7 -4
  127. package/vite.config.deploy.ts +10 -0
  128. package/vite.config.preview.ts +20 -0
  129. package/vite.production.base.ts +48 -0
  130. package/src/langium/langium-dsl/content/example.langium +0 -210
  131. package/src/langium/statemachine/content/example-mod.statemachine +0 -31
  132. package/src/langium/statemachine/content/example.statemachine +0 -26
  133. package/src/python/client/bad.py +0 -3
  134. package/src/python/client/hello.py +0 -4
  135. package/src/python/client/hello2.py +0 -2
  136. package/ts.html +0 -25
  137. package/vite.bundle.config.ts +0 -32
package/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  All notable changes to this npm module are documented in this file.
4
4
 
5
+ ## [2024.10.5] - 2024-10-31
6
+
7
+ - Updated to `monaco-languageclient@9.0.0-next.6`, `monaco-editor-wrapper@6.0.0-next.6` and `@typefox/monaco-editor-react@6.0.0-next.6`.
8
+ - Updated all `@codingame/monaco-vscode` packages to `10.1.4`.
9
+ - Added clangd example.
10
+ - Added application playground example featuring the views service override.
11
+
5
12
  ## [2024.10.4] - 2024-10-23
6
13
 
7
14
  - Updated to `monaco-languageclient@9.0.0-next.5`, `monaco-editor-wrapper@6.0.0-next.5` and `@typefox/monaco-editor-react@6.0.0-next.5`.
@@ -10,7 +17,7 @@ Updated all `@codingame/monaco-vscode` packages to `10.1.1`.
10
17
  ## [2024.10.3] - 2024-10-21
11
18
 
12
19
  - Updated to `monaco-languageclient@9.0.0-next.4`, `monaco-editor-wrapper@6.0.0-next.4` and `@typefox/monaco-editor-react@6.0.0-next.4`.
13
- Updated all `@codingame/monaco-vscode` packages to `10.1.`.
20
+ Updated all `@codingame/monaco-vscode` packages to `10.1.0`.
14
21
  - Updated to eslint 9
15
22
 
16
23
  ## [2024.10.2] - 20241-10-11
@@ -0,0 +1,21 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <title>Application Playground</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
+ <link rel="stylesheet" href="./resources/styles/views.css">
10
+ </head>
11
+
12
+ <body>
13
+ <div class="exampleHeadelineDiv">
14
+ <b class="exampleHeadeline">Application Playground</b> - [<a href="../../index.html">Back to Index</a>]
15
+ <br>
16
+ <b>Heads up:</b> This is a prototype and still evolving.
17
+ </div>
18
+ <script type="module" rel="modulepreload" src="./src/appPlayground/launcher"></script>
19
+ </body>
20
+
21
+ </html>
package/bare.html CHANGED
@@ -10,7 +10,9 @@
10
10
 
11
11
 
12
12
  <body>
13
- <h2>JSON Language Client & Language Server (Web Socket)</h2>
13
+ <div class="exampleHeadelineDiv">
14
+ <b class="exampleHeadeline">JSON Language Client & Language Server (Web Socket)</b> - [<a href="../../index.html">Back to Index</a>]
15
+ </div>
14
16
  <div id="monaco-editor-root" style="width:800px;height:600px;border:1px solid grey"></div>
15
17
  <script type="module">
16
18
  import { runClient } from "./src/bare/client.ts";
package/browser.html CHANGED
@@ -9,7 +9,9 @@
9
9
  </head>
10
10
 
11
11
  <body>
12
- <h2>Language Client Pure Browser Example</h2>
12
+ <div class="exampleHeadelineDiv">
13
+ <b class="exampleHeadeline">Language Client Pure Browser Example</b> - [<a href="../../index.html">Back to Index</a>]
14
+ </div>
13
15
  <div id="monaco-editor-root" style="width:800px;height:600px;border:1px solid grey"></div>
14
16
  <script type="module">
15
17
  import { runBrowserEditor } from "./src/browser/main.ts";
package/clangd.html ADDED
@@ -0,0 +1,25 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+
4
+ <head>
5
+ <title>Cpp Language Client & Clangd Language Server (Worker/Wasm)</title>
6
+ <meta charset="utf-8">
7
+ <meta name="viewport" content="width=device-width, initial-scale=1">
8
+ <link rel="stylesheet" href="style.css">
9
+ <link rel="stylesheet" href="./resources/styles/views.css">
10
+ </head>
11
+
12
+ <body>
13
+ <div class="exampleHeadelineDiv">
14
+ <b class="exampleHeadeline">Cpp Language Client & Clangd Language Server (Worker/Wasm)</b> - [<a href="../../index.html">Back to Index</a>]
15
+ <br>
16
+ <b>Heads up:</b> This is a prototype and still evolving.<br>
17
+ The clangd language server worker has been derived from: <a href="https://github.com/guyutongxue/clangd-in-browser">clangd-in-browser</a><br>
18
+ </div>
19
+ <script type="module">
20
+ import { runClangdWrapper } from "./src/clangd/client/main.ts";
21
+ runClangdWrapper();
22
+ </script>
23
+ </body>
24
+
25
+ </html>
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=launcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../src/appPlayground/launcher.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
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 { initLocaleLoader } from 'monaco-editor-wrapper/vscode/locale';
6
+ await initLocaleLoader();
7
+ const { runApplicationPlayground } = await import('./main.js');
8
+ runApplicationPlayground();
9
+ //# sourceMappingURL=launcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launcher.js","sourceRoot":"","sources":["../../src/appPlayground/launcher.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,MAAM,gBAAgB,EAAE,CAAC;AAEzB,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;AAC/D,wBAAwB,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import '@codingame/monaco-vscode-typescript-basics-default-extension';
2
+ import '@codingame/monaco-vscode-typescript-language-features-default-extension';
3
+ import '../../resources/vsix/open-collaboration-tools.vsix';
4
+ export declare const runApplicationPlayground: () => Promise<void>;
5
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/appPlayground/main.ts"],"names":[],"mappings":"AAoBA,OAAO,8DAA8D,CAAC;AACtE,OAAO,yEAAyE,CAAC;AAEjF,OAAO,oDAAoD,CAAC;AAW5D,eAAO,MAAM,wBAAwB,qBAmGpC,CAAC"}
@@ -0,0 +1,125 @@
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 * as vscode from 'vscode';
6
+ import { LogLevel } from 'vscode/services';
7
+ import getConfigurationServiceOverride from '@codingame/monaco-vscode-configuration-service-override';
8
+ import getKeybindingsServiceOverride from '@codingame/monaco-vscode-keybindings-service-override';
9
+ import getLifecycleServiceOverride from '@codingame/monaco-vscode-lifecycle-service-override';
10
+ import getLocalizationServiceOverride from '@codingame/monaco-vscode-localization-service-override';
11
+ import getBannerServiceOverride from '@codingame/monaco-vscode-view-banner-service-override';
12
+ import getStatusBarServiceOverride from '@codingame/monaco-vscode-view-status-bar-service-override';
13
+ import getTitleBarServiceOverride from '@codingame/monaco-vscode-view-title-bar-service-override';
14
+ import getExplorerServiceOverride from '@codingame/monaco-vscode-explorer-service-override';
15
+ import { RegisteredFileSystemProvider, registerFileSystemOverlay, RegisteredMemoryFile } from '@codingame/monaco-vscode-files-service-override';
16
+ import getRemoteAgentServiceOverride from '@codingame/monaco-vscode-remote-agent-service-override';
17
+ import getEnvironmentServiceOverride from '@codingame/monaco-vscode-environment-service-override';
18
+ import getSecretStorageServiceOverride from '@codingame/monaco-vscode-secret-storage-service-override';
19
+ // this is required syntax highlighting
20
+ import '@codingame/monaco-vscode-typescript-basics-default-extension';
21
+ import '@codingame/monaco-vscode-typescript-language-features-default-extension';
22
+ import '../../resources/vsix/open-collaboration-tools.vsix';
23
+ import { MonacoEditorLanguageClientWrapper } from 'monaco-editor-wrapper';
24
+ import { createDefaultLocaleConfiguration } from 'monaco-languageclient/vscode/services';
25
+ import { configureMonacoWorkers, createDefaultWorkspaceFile } from '../common/client/utils.js';
26
+ import helloTsCode from '../../resources/appPlayground/hello.ts?raw';
27
+ import testerTsCode from '../../resources/appPlayground/tester.ts?raw';
28
+ import { defaultViewsHtml, defaultViewsInit } from 'monaco-editor-wrapper/vscode/services';
29
+ const wrapper = new MonacoEditorLanguageClientWrapper();
30
+ export const runApplicationPlayground = async () => {
31
+ const workspaceFile = vscode.Uri.file('/workspace/.vscode/workspace.code-workspace');
32
+ const wrapperConfig = {
33
+ id: 'AAP',
34
+ logLevel: LogLevel.Debug,
35
+ vscodeApiConfig: {
36
+ userServices: {
37
+ ...getConfigurationServiceOverride(),
38
+ ...getKeybindingsServiceOverride(),
39
+ ...getLifecycleServiceOverride(),
40
+ ...getLocalizationServiceOverride(createDefaultLocaleConfiguration()),
41
+ ...getBannerServiceOverride(),
42
+ ...getStatusBarServiceOverride(),
43
+ ...getTitleBarServiceOverride(),
44
+ ...getExplorerServiceOverride(),
45
+ ...getRemoteAgentServiceOverride(),
46
+ ...getEnvironmentServiceOverride(),
47
+ ...getSecretStorageServiceOverride()
48
+ },
49
+ enableExtHostWorker: true,
50
+ viewsConfig: {
51
+ viewServiceType: 'ViewsService',
52
+ viewsInitFunc: defaultViewsInit
53
+ },
54
+ workspaceConfig: {
55
+ enableWorkspaceTrust: true,
56
+ windowIndicator: {
57
+ label: 'mlc-app-playground',
58
+ tooltip: '',
59
+ command: ''
60
+ },
61
+ workspaceProvider: {
62
+ trusted: true,
63
+ async open() {
64
+ window.open(window.location.href);
65
+ return true;
66
+ },
67
+ workspace: {
68
+ workspaceUri: workspaceFile
69
+ }
70
+ },
71
+ configurationDefaults: {
72
+ 'window.title': 'mlc-app-playground${separator}${dirty}${activeEditorShort}'
73
+ },
74
+ productConfiguration: {
75
+ nameShort: 'mlc-app-playground',
76
+ nameLong: 'mlc-app-playground'
77
+ }
78
+ },
79
+ userConfiguration: {
80
+ json: JSON.stringify({
81
+ 'workbench.colorTheme': 'Default Dark Modern',
82
+ 'editor.wordBasedSuggestions': 'off',
83
+ 'typescript.tsserver.web.projectWideIntellisense.enabled': true,
84
+ 'typescript.tsserver.web.projectWideIntellisense.suppressSemanticErrors': false,
85
+ 'editor.guides.bracketPairsHorizontal': true,
86
+ 'oct.serverUrl': 'https://api.open-collab.tools/',
87
+ 'editor.experimental.asyncTokenization': false
88
+ })
89
+ },
90
+ },
91
+ editorAppConfig: {
92
+ $type: 'extended',
93
+ extensions: [{
94
+ config: {
95
+ name: 'mlc-app-playground',
96
+ publisher: 'TypeFox',
97
+ version: '1.0.0',
98
+ engines: {
99
+ vscode: '*'
100
+ }
101
+ }
102
+ }],
103
+ monacoWorkerFactory: configureMonacoWorkers,
104
+ htmlContainer: document.body
105
+ }
106
+ };
107
+ const htmlContainer = document.createElement('div', { is: 'app' });
108
+ htmlContainer.innerHTML = defaultViewsHtml;
109
+ document.body.append(htmlContainer);
110
+ const helloTsUri = vscode.Uri.file('/workspace/hello.ts');
111
+ const testerTsUri = vscode.Uri.file('/workspace/tester.ts');
112
+ const fileSystemProvider = new RegisteredFileSystemProvider(false);
113
+ fileSystemProvider.registerFile(new RegisteredMemoryFile(helloTsUri, helloTsCode));
114
+ fileSystemProvider.registerFile(new RegisteredMemoryFile(testerTsUri, testerTsCode));
115
+ fileSystemProvider.registerFile(createDefaultWorkspaceFile(workspaceFile, '/workspace'));
116
+ registerFileSystemOverlay(1, fileSystemProvider);
117
+ await wrapper.init(wrapperConfig);
118
+ const result = wrapper.getMonacoEditorApp().getExtensionRegisterResult('mlc-app-playground');
119
+ result.setAsDefaultApi();
120
+ await Promise.all([
121
+ await vscode.window.showTextDocument(helloTsUri),
122
+ await vscode.window.showTextDocument(testerTsUri, { viewColumn: vscode.ViewColumn.Two })
123
+ ]);
124
+ };
125
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/appPlayground/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { Uri } from 'vscode';
2
+ import { WrapperConfig } from 'monaco-editor-wrapper';
3
+ import { ClangdWorkerHandler } from './workerHandler.js';
4
+ export declare const createWrapperConfig: (config: {
5
+ htmlContainer: HTMLElement;
6
+ workspaceUri: Uri;
7
+ workspaceFileUri: Uri;
8
+ clangdWorkerHandler: ClangdWorkerHandler;
9
+ lsMessageLocalPort: MessagePort;
10
+ }) => Promise<WrapperConfig>;
11
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/clangd/client/config.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAY7B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGzD,eAAO,MAAM,mBAAmB,WAAkB;IAC9C,aAAa,EAAE,WAAW,CAAC;IAC3B,YAAY,EAAE,GAAG,CAAC;IAClB,gBAAgB,EAAE,GAAG,CAAC;IACtB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,kBAAkB,EAAE,WAAW,CAAA;CAClC,KAAG,OAAO,CAAC,aAAa,CAmGxB,CAAC"}
@@ -0,0 +1,118 @@
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 getConfigurationServiceOverride from '@codingame/monaco-vscode-configuration-service-override';
6
+ import getKeybindingsServiceOverride from '@codingame/monaco-vscode-keybindings-service-override';
7
+ import getLifecycleServiceOverride from '@codingame/monaco-vscode-lifecycle-service-override';
8
+ import getBannerServiceOverride from '@codingame/monaco-vscode-view-banner-service-override';
9
+ import getStatusBarServiceOverride from '@codingame/monaco-vscode-view-status-bar-service-override';
10
+ import getTitleBarServiceOverride from '@codingame/monaco-vscode-view-title-bar-service-override';
11
+ import getExplorerServiceOverride from '@codingame/monaco-vscode-explorer-service-override';
12
+ import getRemoteAgentServiceOverride from '@codingame/monaco-vscode-remote-agent-service-override';
13
+ import getEnvironmentServiceOverride from '@codingame/monaco-vscode-environment-service-override';
14
+ import getSecretStorageServiceOverride from '@codingame/monaco-vscode-secret-storage-service-override';
15
+ import { LogLevel } from 'vscode/services';
16
+ import { configureMonacoWorkers } from '../../common/client/utils.js';
17
+ import { defaultViewsInit } from 'monaco-editor-wrapper/vscode/services';
18
+ export const createWrapperConfig = async (config) => {
19
+ const languageId = 'cpp';
20
+ return {
21
+ logLevel: LogLevel.Debug,
22
+ languageClientConfigs: {
23
+ LANGUAGE_ID: {
24
+ languageId: languageId,
25
+ name: 'Clangd WASM Language Server',
26
+ connection: {
27
+ options: {
28
+ $type: 'WorkerDirect',
29
+ worker: await config.clangdWorkerHandler.createWorker(),
30
+ messagePort: config.lsMessageLocalPort
31
+ }
32
+ },
33
+ restartOptions: {
34
+ retries: 5,
35
+ timeout: 1000,
36
+ keepWorker: true
37
+ },
38
+ clientOptions: {
39
+ documentSelector: [languageId],
40
+ workspaceFolder: {
41
+ index: 0,
42
+ name: 'workspace',
43
+ uri: config.workspaceUri
44
+ }
45
+ }
46
+ }
47
+ },
48
+ vscodeApiConfig: {
49
+ userServices: {
50
+ ...getConfigurationServiceOverride(),
51
+ ...getKeybindingsServiceOverride(),
52
+ ...getLifecycleServiceOverride(),
53
+ ...getBannerServiceOverride(),
54
+ ...getStatusBarServiceOverride(),
55
+ ...getTitleBarServiceOverride(),
56
+ ...getExplorerServiceOverride(),
57
+ ...getRemoteAgentServiceOverride(),
58
+ ...getEnvironmentServiceOverride(),
59
+ ...getSecretStorageServiceOverride()
60
+ },
61
+ viewsConfig: {
62
+ viewServiceType: 'ViewsService',
63
+ viewsInitFunc: defaultViewsInit
64
+ },
65
+ workspaceConfig: {
66
+ enableWorkspaceTrust: true,
67
+ windowIndicator: {
68
+ label: 'mlc-clangd-example',
69
+ tooltip: '',
70
+ command: ''
71
+ },
72
+ workspaceProvider: {
73
+ trusted: true,
74
+ async open() {
75
+ window.open(window.location.href);
76
+ return true;
77
+ },
78
+ workspace: {
79
+ workspaceUri: config.workspaceFileUri
80
+ },
81
+ },
82
+ configurationDefaults: {
83
+ 'window.title': 'mlc-clangd-exampled${separator}${dirty}${activeEditorShort}'
84
+ },
85
+ productConfiguration: {
86
+ nameShort: 'mlc-clangd-example',
87
+ nameLong: 'mlc-clangd-example'
88
+ }
89
+ },
90
+ userConfiguration: {
91
+ json: JSON.stringify({
92
+ 'workbench.colorTheme': 'Default Dark Modern',
93
+ 'editor.wordBasedSuggestions': 'off',
94
+ 'editor.guides.bracketPairsHorizontal': true,
95
+ 'editor.inlayHints.enabled': 'offUnlessPressed',
96
+ 'editor.quickSuggestionsDelay': 200,
97
+ 'editor.experimental.asyncTokenization': false
98
+ })
99
+ }
100
+ },
101
+ editorAppConfig: {
102
+ $type: 'extended',
103
+ extensions: [{
104
+ config: {
105
+ name: 'mlc-clangd-example',
106
+ publisher: 'TypeFox',
107
+ version: '1.0.0',
108
+ engines: {
109
+ vscode: '*'
110
+ }
111
+ }
112
+ }],
113
+ monacoWorkerFactory: configureMonacoWorkers,
114
+ htmlContainer: config.htmlContainer
115
+ }
116
+ };
117
+ };
118
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/clangd/client/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import '@codingame/monaco-vscode-cpp-default-extension';
2
+ export declare const runClangdWrapper: () => Promise<void>;
3
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/clangd/client/main.ts"],"names":[],"mappings":"AAQA,OAAO,gDAAgD,CAAC;AAWxD,eAAO,MAAM,gBAAgB,qBA0C5B,CAAC"}
@@ -0,0 +1,53 @@
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 * as vscode from 'vscode';
6
+ import { RegisteredFileSystemProvider, registerFileSystemOverlay } from '@codingame/monaco-vscode-files-service-override';
7
+ // this is required syntax highlighting
8
+ import '@codingame/monaco-vscode-cpp-default-extension';
9
+ import { MonacoEditorLanguageClientWrapper } from 'monaco-editor-wrapper';
10
+ import { createWrapperConfig } from './config.js';
11
+ import { ClangdWorkerHandler } from './workerHandler.js';
12
+ import { MainRemoteMessageChannelFs } from './mainRemoteMessageChannelFs.js';
13
+ import { defaultViewsHtml } from 'monaco-editor-wrapper/vscode/services';
14
+ import { createDefaultWorkspaceFile } from '../../common/client/utils.js';
15
+ import { WORKSPACE_PATH } from '../definitions.js';
16
+ const wrapper = new MonacoEditorLanguageClientWrapper();
17
+ export const runClangdWrapper = async () => {
18
+ const channelLs = new MessageChannel();
19
+ const channelFs = new MessageChannel();
20
+ const fileSystemProvider = new RegisteredFileSystemProvider(false);
21
+ const workspaceFileUri = vscode.Uri.file(`${WORKSPACE_PATH}/.vscode/workspace.code-workspace`);
22
+ fileSystemProvider.registerFile(createDefaultWorkspaceFile(workspaceFileUri, WORKSPACE_PATH));
23
+ registerFileSystemOverlay(1, fileSystemProvider);
24
+ const readiness = async () => {
25
+ const resourceUri = vscode.Uri.file(`${WORKSPACE_PATH}/main.cpp`);
26
+ await vscode.window.showTextDocument(resourceUri);
27
+ };
28
+ new MainRemoteMessageChannelFs(fileSystemProvider, channelFs.port1, readiness);
29
+ const htmlContainer = document.createElement('div', { is: 'app' });
30
+ htmlContainer.innerHTML = defaultViewsHtml;
31
+ document.body.append(htmlContainer);
32
+ const clangdWorkerHandler = new ClangdWorkerHandler();
33
+ const userConfig = await createWrapperConfig({
34
+ htmlContainer: document.body,
35
+ workspaceUri: vscode.Uri.file(WORKSPACE_PATH),
36
+ workspaceFileUri,
37
+ clangdWorkerHandler,
38
+ lsMessageLocalPort: channelLs.port1
39
+ });
40
+ await wrapper.init(userConfig);
41
+ await clangdWorkerHandler.init({
42
+ lsMessagePort: channelLs.port2,
43
+ fsMessagePort: channelFs.port2,
44
+ loadWorkspace: true,
45
+ // allows to load additional files from resources/clangd/workspace/volatile/**/*.{cpp,c,h,hpp}
46
+ // volatile: {
47
+ // useDefaultGlob: true
48
+ // }
49
+ });
50
+ await clangdWorkerHandler.launch();
51
+ await wrapper.startLanguageClients();
52
+ };
53
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/clangd/client/main.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,4BAA4B,EAAE,yBAAyB,EAAE,MAAM,iDAAiD,CAAC;AAC1H,uCAAuC;AACvC,OAAO,gDAAgD,CAAC;AACxD,OAAO,EAAE,iCAAiC,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,OAAO,GAAG,IAAI,iCAAiC,EAAE,CAAC;AAExD,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;IACvC,MAAM,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;IACvC,MAAM,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;IAEvC,MAAM,kBAAkB,GAAG,IAAI,4BAA4B,CAAC,KAAK,CAAC,CAAC;IACnE,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,cAAc,mCAAmC,CAAC,CAAC;IAC/F,kBAAkB,CAAC,YAAY,CAAC,0BAA0B,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC,CAAC;IAC9F,yBAAyB,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAEjD,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;QACzB,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,cAAc,WAAW,CAAC,CAAC;QAClE,MAAM,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACtD,CAAC,CAAC;IACF,IAAI,0BAA0B,CAAC,kBAAkB,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAE/E,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACnE,aAAa,CAAC,SAAS,GAAG,gBAAgB,CAAC;IAC3C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAEpC,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC;IACtD,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC;QACzC,aAAa,EAAE,QAAQ,CAAC,IAAI;QAC5B,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;QAC7C,gBAAgB;QAChB,mBAAmB;QACnB,kBAAkB,EAAE,SAAS,CAAC,KAAK;KACtC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAE/B,MAAM,mBAAmB,CAAC,IAAI,CAAC;QAC3B,aAAa,EAAE,SAAS,CAAC,KAAK;QAC9B,aAAa,EAAE,SAAS,CAAC,KAAK;QAC9B,aAAa,EAAE,IAAI;QACnB,8FAA8F;QAC9F,cAAc;QACd,2BAA2B;QAC3B,IAAI;KACP,CAAC,CAAC;IACH,MAAM,mBAAmB,CAAC,MAAM,EAAE,CAAC;IAEnC,MAAM,OAAO,CAAC,oBAAoB,EAAE,CAAC;AACzC,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { RegisteredFileSystemProvider } from '@codingame/monaco-vscode-files-service-override';
2
+ import { ComChannelEndpoint, WorkerMessage, ComRouter } from 'wtd-core';
3
+ /**
4
+ * Answer the file create request
5
+ */
6
+ export declare class FileHandlerMain implements ComRouter {
7
+ private endpointFs?;
8
+ private fileSystemProvider;
9
+ private readiness;
10
+ constructor(fileSystemProvider: RegisteredFileSystemProvider, readiness: () => void);
11
+ setComChannelEndpoint(comChannelEndpoint: ComChannelEndpoint): void;
12
+ fs_driver_init(message: WorkerMessage): Promise<void>;
13
+ syncFile(message: WorkerMessage): Promise<void>;
14
+ fs_driver_ready(message: WorkerMessage): Promise<void>;
15
+ }
16
+ export declare class MainRemoteMessageChannelFs {
17
+ constructor(fileSystemProvider: RegisteredFileSystemProvider, port: MessagePort, readiness: () => void);
18
+ }
19
+ //# sourceMappingURL=mainRemoteMessageChannelFs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mainRemoteMessageChannelFs.d.ts","sourceRoot":"","sources":["../../../src/clangd/client/mainRemoteMessageChannelFs.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,4BAA4B,EAAwB,MAAM,iDAAiD,CAAC;AACrH,OAAO,EAAE,kBAAkB,EAAc,aAAa,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEpF;;GAEG;AACH,qBAAa,eAAgB,YAAW,SAAS;IAE7C,OAAO,CAAC,UAAU,CAAC,CAAqB;IACxC,OAAO,CAAC,kBAAkB,CAA+B;IACzD,OAAO,CAAC,SAAS,CAAa;gBAElB,kBAAkB,EAAE,4BAA4B,EAAE,SAAS,EAAE,MAAM,IAAI;IAKnF,qBAAqB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,IAAI;IAI7D,cAAc,CAAC,OAAO,EAAE,aAAa;IAkBrC,QAAQ,CAAC,OAAO,EAAE,aAAa;IAgB/B,eAAe,CAAC,OAAO,EAAE,aAAa;CAU/C;AAED,qBAAa,0BAA0B;gBAEvB,kBAAkB,EAAE,4BAA4B,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,IAAI;CAazG"}
@@ -0,0 +1,77 @@
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 * as vscode from 'vscode';
6
+ import { RegisteredMemoryFile } from '@codingame/monaco-vscode-files-service-override';
7
+ import { ComChannelEndpoint, RawPayload, WorkerMessage } from 'wtd-core';
8
+ /**
9
+ * Answer the file create request
10
+ */
11
+ export class FileHandlerMain {
12
+ endpointFs;
13
+ fileSystemProvider;
14
+ readiness;
15
+ constructor(fileSystemProvider, readiness) {
16
+ this.fileSystemProvider = fileSystemProvider;
17
+ this.readiness = readiness;
18
+ }
19
+ setComChannelEndpoint(comChannelEndpoint) {
20
+ this.endpointFs = comChannelEndpoint;
21
+ }
22
+ async fs_driver_init(message) {
23
+ await this.endpointFs?.sentAnswer({
24
+ message: WorkerMessage.createFromExisting(message, {
25
+ overrideCmd: 'fs_driver_init_confirm',
26
+ }),
27
+ awaitAnswer: false
28
+ });
29
+ // send double confirmation
30
+ await this.endpointFs?.sentMessage({
31
+ message: WorkerMessage.fromPayload(new RawPayload({
32
+ hello: 'worker',
33
+ }), 'fs_follower_init'),
34
+ awaitAnswer: true,
35
+ expectedAnswer: 'fs_follower_init_confirm'
36
+ });
37
+ }
38
+ async syncFile(message) {
39
+ const rawPayload = message.payloads[0];
40
+ const resourceUri = vscode.Uri.file(rawPayload.message.raw.resourceUri);
41
+ this.fileSystemProvider.registerFile(new RegisteredMemoryFile(resourceUri, rawPayload.message.raw.content));
42
+ await this.endpointFs?.sentAnswer({
43
+ message: WorkerMessage.createFromExisting(message, {
44
+ overrideCmd: 'syncFile_confirm',
45
+ overridePayloads: new RawPayload({
46
+ status: 'created',
47
+ message: `Created: ${rawPayload.message.raw.resourceUri}`
48
+ })
49
+ })
50
+ });
51
+ }
52
+ async fs_driver_ready(message) {
53
+ this.readiness();
54
+ await this.endpointFs?.sentAnswer({
55
+ message: WorkerMessage.createFromExisting(message, {
56
+ overrideCmd: 'fs_driver_ready_confirm',
57
+ }),
58
+ awaitAnswer: false
59
+ });
60
+ }
61
+ }
62
+ export class MainRemoteMessageChannelFs {
63
+ constructor(fileSystemProvider, port, readiness) {
64
+ const fileHandlerMain = new FileHandlerMain(fileSystemProvider, readiness);
65
+ const endpointFs = new ComChannelEndpoint({
66
+ endpointId: 21,
67
+ endpointName: 'port_main_fs',
68
+ endpointConfig: {
69
+ $type: 'DirectImplConfig',
70
+ impl: port
71
+ },
72
+ verbose: false
73
+ });
74
+ endpointFs.connect(fileHandlerMain);
75
+ }
76
+ }
77
+ //# sourceMappingURL=mainRemoteMessageChannelFs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mainRemoteMessageChannelFs.js","sourceRoot":"","sources":["../../../src/clangd/client/mainRemoteMessageChannelFs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { VolatileInput } from '../definitions.js';
2
+ export declare class ClangdWorkerHandler {
3
+ private interactionMain;
4
+ private endpointMain?;
5
+ createWorker(): Promise<Worker>;
6
+ init(config: {
7
+ lsMessagePort: MessagePort;
8
+ fsMessagePort: MessagePort;
9
+ loadWorkspace: boolean;
10
+ volatile?: VolatileInput;
11
+ }): Promise<void>;
12
+ launch(): Promise<void>;
13
+ }
14
+ //# sourceMappingURL=workerHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workerHandler.d.ts","sourceRoot":"","sources":["../../../src/clangd/client/workerHandler.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAYlD,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,eAAe,CAAsD;IAC7E,OAAO,CAAC,YAAY,CAAC,CAAqB;IAEpC,YAAY;IAmBZ,IAAI,CAAC,MAAM,EAAE;QACf,aAAa,EAAE,WAAW,CAAC;QAC3B,aAAa,EAAE,WAAW,CAAC;QAC3B,aAAa,EAAE,OAAO,CAAC;QACvB,QAAQ,CAAC,EAAE,aAAa,CAAA;KAC3B;IAcK,MAAM;CAOf"}