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.
- package/CHANGELOG.md +8 -1
- package/appPlayground.html +21 -0
- package/bare.html +3 -1
- package/browser.html +3 -1
- package/clangd.html +25 -0
- package/dist/appPlayground/launcher.d.ts +2 -0
- package/dist/appPlayground/launcher.d.ts.map +1 -0
- package/dist/appPlayground/launcher.js +9 -0
- package/dist/appPlayground/launcher.js.map +1 -0
- package/dist/appPlayground/main.d.ts +5 -0
- package/dist/appPlayground/main.d.ts.map +1 -0
- package/dist/appPlayground/main.js +125 -0
- package/dist/appPlayground/main.js.map +1 -0
- package/dist/clangd/client/config.d.ts +11 -0
- package/dist/clangd/client/config.d.ts.map +1 -0
- package/dist/clangd/client/config.js +118 -0
- package/dist/clangd/client/config.js.map +1 -0
- package/dist/clangd/client/main.d.ts +3 -0
- package/dist/clangd/client/main.d.ts.map +1 -0
- package/dist/clangd/client/main.js +53 -0
- package/dist/clangd/client/main.js.map +1 -0
- package/dist/clangd/client/mainRemoteMessageChannelFs.d.ts +19 -0
- package/dist/clangd/client/mainRemoteMessageChannelFs.d.ts.map +1 -0
- package/dist/clangd/client/mainRemoteMessageChannelFs.js +77 -0
- package/dist/clangd/client/mainRemoteMessageChannelFs.js.map +1 -0
- package/dist/clangd/client/workerHandler.d.ts +14 -0
- package/dist/clangd/client/workerHandler.d.ts.map +1 -0
- package/dist/clangd/client/workerHandler.js +54 -0
- package/dist/clangd/client/workerHandler.js.map +1 -0
- package/dist/clangd/definitions.d.ts +7 -0
- package/dist/clangd/definitions.d.ts.map +1 -0
- package/dist/clangd/definitions.js +7 -0
- package/dist/clangd/definitions.js.map +1 -0
- package/dist/clangd/worker/clangd-server.d.ts +24 -0
- package/dist/clangd/worker/clangd-server.d.ts.map +1 -0
- package/dist/clangd/worker/clangd-server.js +280 -0
- package/dist/clangd/worker/clangd-server.js.map +1 -0
- package/dist/clangd/worker/json_stream.d.ts +11 -0
- package/dist/clangd/worker/json_stream.d.ts.map +1 -0
- package/dist/clangd/worker/json_stream.js +66 -0
- package/dist/clangd/worker/json_stream.js.map +1 -0
- package/dist/clangd/worker/memfs-tools.d.ts +5 -0
- package/dist/clangd/worker/memfs-tools.d.ts.map +1 -0
- package/dist/clangd/worker/memfs-tools.js +42 -0
- package/dist/clangd/worker/memfs-tools.js.map +1 -0
- package/dist/clangd/worker/workerRemoteMessageChannelFs.d.ts +16 -0
- package/dist/clangd/worker/workerRemoteMessageChannelFs.d.ts.map +1 -0
- package/dist/clangd/worker/workerRemoteMessageChannelFs.js +94 -0
- package/dist/clangd/worker/workerRemoteMessageChannelFs.js.map +1 -0
- package/dist/common/client/utils.d.ts +3 -0
- package/dist/common/client/utils.d.ts.map +1 -1
- package/dist/common/client/utils.js +10 -0
- package/dist/common/client/utils.js.map +1 -1
- package/dist/json/server/main.d.ts +1 -0
- package/dist/json/server/main.d.ts.map +1 -1
- package/dist/json/server/main.js +17 -0
- package/dist/json/server/main.js.map +1 -1
- package/dist/langium/langium-dsl/config/classicConfig.d.ts.map +1 -1
- package/dist/langium/langium-dsl/config/classicConfig.js +1 -4
- package/dist/langium/langium-dsl/config/classicConfig.js.map +1 -1
- package/dist/langium/langium-dsl/config/extendedConfig.d.ts.map +1 -1
- package/dist/langium/langium-dsl/config/extendedConfig.js +2 -5
- package/dist/langium/langium-dsl/config/extendedConfig.js.map +1 -1
- package/dist/langium/statemachine/config/wrapperStatemachineConfig.js +1 -1
- package/dist/langium/statemachine/config/wrapperStatemachineConfig.js.map +1 -1
- package/dist/langium/statemachine/launcher.js +2 -1
- package/dist/langium/statemachine/launcher.js.map +1 -1
- package/dist/langium/statemachine/main-react.js +1 -1
- package/dist/langium/statemachine/main-react.js.map +1 -1
- package/dist/langium/statemachine/main.js +2 -2
- package/dist/langium/statemachine/main.js.map +1 -1
- package/dist/python/client/config.d.ts.map +1 -1
- package/dist/python/client/config.js +0 -3
- package/dist/python/client/config.js.map +1 -1
- package/dist/python/client/main.js +2 -2
- package/dist/python/client/main.js.map +1 -1
- package/dist/python/client/reactPython.js +1 -1
- package/dist/python/client/reactPython.js.map +1 -1
- package/dist/ts/wrapperTs.d.ts +0 -1
- package/dist/ts/wrapperTs.d.ts.map +1 -1
- package/dist/ts/wrapperTs.js +0 -1
- package/dist/ts/wrapperTs.js.map +1 -1
- package/eclipse.jdt.ls.html +6 -3
- package/ghp_appPlayground.html +21 -0
- package/ghp_browser.html +22 -0
- package/ghp_clangd.html +26 -0
- package/ghp_langium.html +27 -0
- package/ghp_react_statemachine.html +27 -0
- package/ghp_statemachine.html +23 -0
- package/ghp_tsExtHost.html +29 -0
- package/groovy.html +6 -3
- package/index.html +64 -0
- package/json.html +6 -3
- package/langium.html +3 -2
- package/package.json +46 -29
- package/python.html +6 -3
- package/react_python.html +7 -4
- package/react_statemachine.html +7 -4
- package/src/appPlayground/launcher.ts +10 -0
- package/src/appPlayground/main.ts +134 -0
- package/src/clangd/README.md +5 -0
- package/src/clangd/client/config.ts +128 -0
- package/src/clangd/client/main.ts +62 -0
- package/src/clangd/client/mainRemoteMessageChannelFs.ts +89 -0
- package/src/clangd/client/workerHandler.ts +70 -0
- package/src/clangd/definitions.ts +12 -0
- package/src/clangd/worker/clangd-server.ts +323 -0
- package/src/clangd/worker/json_stream.ts +64 -0
- package/src/clangd/worker/memfs-tools.ts +43 -0
- package/src/clangd/worker/workerRemoteMessageChannelFs.ts +113 -0
- package/src/common/client/utils.ts +20 -0
- package/src/json/server/main.ts +21 -1
- package/src/langium/langium-dsl/config/classicConfig.ts +1 -4
- package/src/langium/langium-dsl/config/extendedConfig.ts +3 -5
- package/src/langium/statemachine/config/wrapperStatemachineConfig.ts +1 -1
- package/src/langium/statemachine/launcher.ts +3 -1
- package/src/langium/statemachine/main-react.tsx +1 -1
- package/src/langium/statemachine/main.ts +2 -2
- package/src/python/client/config.ts +0 -3
- package/src/python/client/main.ts +2 -2
- package/src/python/client/reactPython.tsx +1 -1
- package/src/ts/wrapperTs.ts +0 -1
- package/src/vite-env.d.ts +2 -0
- package/statemachine.html +7 -8
- package/tsExtHost.html +29 -0
- package/two_langauge_clients.html +7 -4
- package/vite.config.deploy.ts +10 -0
- package/vite.config.preview.ts +20 -0
- package/vite.production.base.ts +48 -0
- package/src/langium/langium-dsl/content/example.langium +0 -210
- package/src/langium/statemachine/content/example-mod.statemachine +0 -31
- package/src/langium/statemachine/content/example.statemachine +0 -26
- package/src/python/client/bad.py +0 -3
- package/src/python/client/hello.py +0 -4
- package/src/python/client/hello2.py +0 -2
- package/ts.html +0 -25
- 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
|
-
|
|
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
|
-
|
|
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 @@
|
|
|
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 @@
|
|
|
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"}
|