monaco-languageclient-examples 2025.9.1 → 2025.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/README.md +1 -1
- package/dist/appPlayground/common.d.ts.map +1 -1
- package/dist/appPlayground/common.js.map +1 -1
- package/dist/appPlayground/config.d.ts +2 -2
- package/dist/appPlayground/config.d.ts.map +1 -1
- package/dist/appPlayground/config.js.map +1 -1
- package/dist/appPlayground/main.js.map +1 -1
- package/dist/appPlayground/reactMain.js +6 -7
- package/dist/appPlayground/reactMain.js.map +1 -1
- package/dist/browser/main.d.ts.map +1 -1
- package/dist/browser/main.js +3 -2
- package/dist/browser/main.js.map +1 -1
- package/dist/clangd/client/config.d.ts.map +1 -1
- package/dist/clangd/client/config.js.map +1 -1
- package/dist/clangd/client/main.js.map +1 -1
- package/dist/clangd/client/mainRemoteMessageChannelFs.d.ts.map +1 -1
- package/dist/clangd/client/mainRemoteMessageChannelFs.js.map +1 -1
- package/dist/clangd/client/workerHandler.d.ts.map +1 -1
- package/dist/clangd/client/workerHandler.js.map +1 -1
- package/dist/clangd/worker/clangd-server.d.ts +0 -18
- package/dist/clangd/worker/clangd-server.d.ts.map +1 -1
- package/dist/clangd/worker/clangd-server.js +1 -1
- package/dist/clangd/worker/clangd-server.js.map +1 -1
- package/dist/clangd/worker/json_stream.d.ts.map +1 -1
- package/dist/clangd/worker/json_stream.js.map +1 -1
- package/dist/clangd/worker/memfs-tools.d.ts.map +1 -1
- package/dist/clangd/worker/memfs-tools.js.map +1 -1
- package/dist/clangd/worker/workerRemoteMessageChannelFs.d.ts +1 -2
- package/dist/clangd/worker/workerRemoteMessageChannelFs.d.ts.map +1 -1
- package/dist/clangd/worker/workerRemoteMessageChannelFs.js +1 -6
- package/dist/clangd/worker/workerRemoteMessageChannelFs.js.map +1 -1
- package/dist/common/client/extendedClient.d.ts.map +1 -1
- package/dist/common/client/extendedClient.js +1 -1
- package/dist/common/client/extendedClient.js.map +1 -1
- package/dist/common/client/utils.d.ts.map +1 -1
- package/dist/common/client/utils.js +0 -4
- package/dist/common/client/utils.js.map +1 -1
- package/dist/common/node/language-server-runner.d.ts.map +1 -1
- package/dist/common/node/language-server-runner.js.map +1 -1
- package/dist/common/node/server-commons.d.ts +3 -9
- package/dist/common/node/server-commons.d.ts.map +1 -1
- package/dist/common/node/server-commons.js +0 -7
- package/dist/common/node/server-commons.js.map +1 -1
- package/dist/debugger/server/DAPSocket.d.ts.map +1 -1
- package/dist/debugger/server/DAPSocket.js.map +1 -1
- package/dist/debugger/server/debugServer.js.map +1 -1
- package/dist/eclipse.jdt.ls/client/main.js.map +1 -1
- package/dist/eclipse.jdt.ls/config.js +0 -4
- package/dist/eclipse.jdt.ls/config.js.map +1 -1
- package/dist/eclipse.jdt.ls/server/main.d.ts.map +1 -1
- package/dist/eclipse.jdt.ls/server/main.js +1 -2
- package/dist/eclipse.jdt.ls/server/main.js.map +1 -1
- package/dist/groovy/client/main.js.map +1 -1
- package/dist/groovy/config.js +0 -4
- package/dist/groovy/config.js.map +1 -1
- package/dist/groovy/server/main.d.ts.map +1 -1
- package/dist/groovy/server/main.js +1 -2
- package/dist/groovy/server/main.js.map +1 -1
- package/dist/json/client/classic.d.ts +1 -1
- package/dist/json/client/classic.d.ts.map +1 -1
- package/dist/json/client/classic.js +1 -1
- package/dist/json/client/classic.js.map +1 -1
- package/dist/json/client/config.js +0 -4
- package/dist/json/client/config.js.map +1 -1
- package/dist/json/client/extended.js.map +1 -1
- package/dist/json/server/direct.js.map +1 -1
- package/dist/json/server/json-server.d.ts.map +1 -1
- package/dist/json/server/json-server.js.map +1 -1
- package/dist/json/server/main.d.ts.map +1 -1
- package/dist/json/server/main.js +3 -4
- package/dist/json/server/main.js.map +1 -1
- package/dist/langium/langium-dsl/config/langium.monarch.d.ts +10 -10
- package/dist/langium/langium-dsl/config/langiumDslConfig.d.ts.map +1 -1
- package/dist/langium/langium-dsl/config/langiumDslConfig.js.map +1 -1
- package/dist/langium/langium-dsl/main.js.map +1 -1
- package/dist/langium/langium-dsl/worker/langium-server.js.map +1 -1
- package/dist/langium/statemachine/config/statemachineConfig.d.ts +3 -4
- package/dist/langium/statemachine/config/statemachineConfig.d.ts.map +1 -1
- package/dist/langium/statemachine/config/statemachineConfig.js.map +1 -1
- package/dist/langium/statemachine/ls/generated/ast.d.ts +6 -6
- package/dist/langium/statemachine/ls/generated/ast.js +1 -1
- package/dist/langium/statemachine/ls/generated/ast.js.map +1 -1
- package/dist/langium/statemachine/ls/generated/grammar.d.ts +1 -1
- package/dist/langium/statemachine/ls/generated/grammar.d.ts.map +1 -1
- package/dist/langium/statemachine/ls/generated/grammar.js +0 -4
- package/dist/langium/statemachine/ls/generated/grammar.js.map +1 -1
- package/dist/langium/statemachine/ls/generated/module.d.ts +1 -1
- package/dist/langium/statemachine/ls/generated/module.js +0 -4
- package/dist/langium/statemachine/ls/generated/module.js.map +1 -1
- package/dist/langium/statemachine/ls/statemachine-module.js.map +1 -1
- package/dist/langium/statemachine/ls/statemachine-validator.d.ts.map +1 -1
- package/dist/langium/statemachine/ls/statemachine-validator.js +0 -4
- package/dist/langium/statemachine/ls/statemachine-validator.js.map +1 -1
- package/dist/langium/statemachine/main-react.d.ts.map +1 -1
- package/dist/langium/statemachine/main-react.js +3 -10
- package/dist/langium/statemachine/main-react.js.map +1 -1
- package/dist/langium/statemachine/main.d.ts.map +1 -1
- package/dist/langium/statemachine/main.js +3 -2
- package/dist/langium/statemachine/main.js.map +1 -1
- package/dist/langium/statemachine/worker/statemachine-server-port.js.map +1 -1
- package/dist/langium/statemachine/worker/statemachine-server-start.d.ts +1 -1
- package/dist/langium/statemachine/worker/statemachine-server-start.d.ts.map +1 -1
- package/dist/langium/statemachine/worker/statemachine-server-start.js.map +1 -1
- package/dist/multi/config.js.map +1 -1
- package/dist/multi/twoLanguageClients.d.ts.map +1 -1
- package/dist/multi/twoLanguageClients.js +3 -2
- package/dist/multi/twoLanguageClients.js.map +1 -1
- package/dist/python/client/config.d.ts +3 -3
- package/dist/python/client/config.d.ts.map +1 -1
- package/dist/python/client/config.js +3 -2
- package/dist/python/client/config.js.map +1 -1
- package/dist/python/client/main.js +1 -1
- package/dist/python/client/main.js.map +1 -1
- package/dist/python/client/reactPython.js +4 -5
- package/dist/python/client/reactPython.js.map +1 -1
- package/dist/python/server/direct.js.map +1 -1
- package/dist/python/server/main.d.ts.map +1 -1
- package/dist/python/server/main.js +2 -3
- package/dist/python/server/main.js.map +1 -1
- package/dist/ts/clientTs.js.map +1 -1
- package/package.json +47 -47
- package/src/appPlayground/config.ts +2 -2
- package/src/appPlayground/reactMain.tsx +1 -1
- package/src/browser/main.ts +3 -2
- package/src/clangd/worker/workerRemoteMessageChannelFs.ts +2 -3
- package/src/common/client/extendedClient.ts +1 -1
- package/src/common/client/utils.ts +1 -2
- package/src/common/node/server-commons.ts +1 -8
- package/src/debugger/server/debugServer.ts +1 -1
- package/src/eclipse.jdt.ls/server/main.ts +1 -2
- package/src/groovy/server/main.ts +1 -2
- package/src/json/client/classic.ts +1 -1
- package/src/json/server/main.ts +4 -5
- package/src/langium/statemachine/config/langium-config.json +1 -1
- package/src/langium/statemachine/config/statemachineConfig.ts +2 -2
- package/src/langium/statemachine/ls/generated/ast.ts +1 -1
- package/src/langium/statemachine/ls/generated/grammar.ts +1 -1
- package/src/langium/statemachine/ls/generated/module.ts +1 -1
- package/src/langium/statemachine/main-react.tsx +1 -2
- package/src/langium/statemachine/main.ts +3 -2
- package/src/multi/twoLanguageClients.ts +3 -2
- package/src/python/client/config.ts +5 -4
- package/src/python/client/main.ts +1 -1
- package/src/python/client/reactPython.tsx +1 -1
- package/src/python/server/main.ts +2 -3
- package/dist/debugger/client/debugger.d.ts +0 -6
- package/dist/debugger/client/debugger.d.ts.map +0 -1
- package/dist/debugger/client/debugger.js +0 -98
- package/dist/debugger/client/debugger.js.map +0 -1
- package/dist/debugger/common/definitions.d.ts +0 -32
- package/dist/debugger/common/definitions.d.ts.map +0 -1
- package/dist/debugger/common/definitions.js +0 -19
- package/dist/debugger/common/definitions.js.map +0 -1
- package/src/debugger/client/debugger.ts +0 -114
- package/src/debugger/common/definitions.ts +0 -59
|
@@ -1,98 +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 * as vscode from 'vscode';
|
|
6
|
-
// This is derived from:
|
|
7
|
-
// https://github.com/CodinGame/monaco-vscode-api/blob/main/demo/src/features/debugger.ts
|
|
8
|
-
// The client configuration is generic and can be used for a another language
|
|
9
|
-
export const provideDebuggerExtensionConfig = (config) => {
|
|
10
|
-
const filesOrContents = new Map();
|
|
11
|
-
filesOrContents.set('./extension.js', '// nothing');
|
|
12
|
-
return {
|
|
13
|
-
config: {
|
|
14
|
-
name: config.extensionName,
|
|
15
|
-
publisher: 'TypeFox',
|
|
16
|
-
version: '1.0.0',
|
|
17
|
-
engines: {
|
|
18
|
-
vscode: '*'
|
|
19
|
-
},
|
|
20
|
-
// A browser field is mandatory for the extension to be flagged as `web`
|
|
21
|
-
browser: 'extension.js',
|
|
22
|
-
contributes: {
|
|
23
|
-
debuggers: [
|
|
24
|
-
{
|
|
25
|
-
type: config.languageId,
|
|
26
|
-
label: 'Test',
|
|
27
|
-
languages: [config.languageId]
|
|
28
|
-
}
|
|
29
|
-
],
|
|
30
|
-
breakpoints: [
|
|
31
|
-
{
|
|
32
|
-
language: config.languageId
|
|
33
|
-
}
|
|
34
|
-
]
|
|
35
|
-
},
|
|
36
|
-
activationEvents: [
|
|
37
|
-
'onDebug'
|
|
38
|
-
]
|
|
39
|
-
},
|
|
40
|
-
filesOrContents
|
|
41
|
-
};
|
|
42
|
-
};
|
|
43
|
-
export const configureDebugging = async (api, config) => {
|
|
44
|
-
class WebsocketDebugAdapter {
|
|
45
|
-
websocket;
|
|
46
|
-
constructor(websocket) {
|
|
47
|
-
this.websocket = websocket;
|
|
48
|
-
this.websocket.onmessage = (message) => {
|
|
49
|
-
this._onDidSendMessage.fire(JSON.parse(message.data));
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
_onDidSendMessage = new api.EventEmitter();
|
|
53
|
-
onDidSendMessage = this._onDidSendMessage.event;
|
|
54
|
-
handleMessage(message) {
|
|
55
|
-
// path with on Windows (Chrome/Firefox) arrive here with \\ and not like expected with /
|
|
56
|
-
// Chrome on Ubuntu behaves as expected
|
|
57
|
-
const msg = JSON.stringify(message).replaceAll('\\\\', '/');
|
|
58
|
-
this.websocket.send(msg);
|
|
59
|
-
}
|
|
60
|
-
dispose() {
|
|
61
|
-
this.websocket.close();
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
api.debug.registerDebugAdapterDescriptorFactory(config.languageId, {
|
|
65
|
-
async createDebugAdapterDescriptor() {
|
|
66
|
-
const websocket = new WebSocket(`${config.protocol}://${config.hostname}:${config.port}`);
|
|
67
|
-
await new Promise((resolve, reject) => {
|
|
68
|
-
websocket.onopen = resolve;
|
|
69
|
-
websocket.onerror = () => reject(new Error(`Unable to connect to debugger server. Run "${config.helpContainerCmd}"`));
|
|
70
|
-
});
|
|
71
|
-
const adapter = new WebsocketDebugAdapter(websocket);
|
|
72
|
-
const initMessage = {
|
|
73
|
-
id: 'init',
|
|
74
|
-
files: {},
|
|
75
|
-
// the default file is the one that will be used by the debugger
|
|
76
|
-
defaultFile: config.defaultFile,
|
|
77
|
-
debuggerExecCall: config.debuggerExecCall
|
|
78
|
-
};
|
|
79
|
-
for (const [name, fileDef] of config.files.entries()) {
|
|
80
|
-
console.log(`Found: ${name} Sending file: ${fileDef.path}`);
|
|
81
|
-
initMessage.files[name] = {
|
|
82
|
-
path: fileDef.path,
|
|
83
|
-
code: fileDef.code,
|
|
84
|
-
uri: fileDef.uri
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
websocket.send(JSON.stringify(initMessage));
|
|
88
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
89
|
-
adapter.onDidSendMessage((message) => {
|
|
90
|
-
if (message.type === 'event' && message.event === 'output') {
|
|
91
|
-
console.log('OUTPUT', message.body.output);
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
return new api.DebugAdapterInlineImplementation(adapter);
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
};
|
|
98
|
-
//# sourceMappingURL=debugger.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"debugger.js","sourceRoot":"","sources":["../../../src/debugger/client/debugger.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAIjC,wBAAwB;AACxB,yFAAyF;AACzF,6EAA6E;AAE7E,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,MAAoB,EAAmB,EAAE;IACpF,MAAM,eAAe,GAAG,IAAI,GAAG,EAAwB,CAAC;IACxD,eAAe,CAAC,GAAG,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;IAEpD,OAAO;QACH,MAAM,EAAE;YACJ,IAAI,EAAE,MAAM,CAAC,aAAa;YAC1B,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE;gBACL,MAAM,EAAE,GAAG;aACd;YACD,wEAAwE;YACxE,OAAO,EAAE,cAAc;YACvB,WAAW,EAAE;gBACT,SAAS,EAAE;oBACP;wBACI,IAAI,EAAE,MAAM,CAAC,UAAU;wBACvB,KAAK,EAAE,MAAM;wBACb,SAAS,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;qBACjC;iBACJ;gBACD,WAAW,EAAE;oBACT;wBACI,QAAQ,EAAE,MAAM,CAAC,UAAU;qBAC9B;iBACJ;aACJ;YACD,gBAAgB,EAAE;gBACd,SAAS;aACZ;SACJ;QACD,eAAe;KAClB,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,GAAkB,EAAE,MAAoB,EAAE,EAAE;IACjF,MAAM,qBAAqB;QACf,SAAS,CAAY;QAE7B,YAAY,SAAoB;YAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,OAAO,EAAE,EAAE;gBACnC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1D,CAAC,CAAC;QACN,CAAC;QAED,iBAAiB,GAAG,IAAI,GAAG,CAAC,YAAY,EAA+B,CAAC;QACxE,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;QAEhD,aAAa,CAAC,OAAoC;YAC9C,yFAAyF;YACzF,uCAAuC;YACvC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC5D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO;YACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC;KACJ;IAED,GAAG,CAAC,KAAK,CAAC,qCAAqC,CAAC,MAAM,CAAC,UAAU,EAAE;QAC/D,KAAK,CAAC,4BAA4B;YAC9B,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,GAAG,MAAM,CAAC,QAAQ,MAAM,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAE1F,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAClC,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC;gBAC3B,SAAS,CAAC,OAAO,GAAG,GAAG,EAAE,CACrB,MAAM,CAAC,IAAI,KAAK,CAAC,8CAA8C,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;YACpG,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC;YAErD,MAAM,WAAW,GAAgB;gBAC7B,EAAE,EAAE,MAAM;gBACV,KAAK,EAAE,EAAE;gBACT,gEAAgE;gBAChE,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;aAC5C,CAAC;YACF,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBACnD,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,kBAAkB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC5D,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;oBACtB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,GAAG,EAAE,OAAO,CAAC,GAAG;iBACnB,CAAC;YACN,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;YAE5C,8DAA8D;YAC9D,OAAO,CAAC,gBAAgB,CAAC,CAAC,OAAY,EAAE,EAAE;gBACtC,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACzD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,GAAG,CAAC,gCAAgC,CAAC,OAAO,CAAC,CAAC;QAC7D,CAAC;KACJ,CAAC,CAAC;AACP,CAAC,CAAC"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { RegisteredMemoryFile } from '@codingame/monaco-vscode-files-service-override';
|
|
2
|
-
import type { HtmlContainerConfig } from 'monaco-languageclient/vscodeApiWrapper';
|
|
3
|
-
import { Uri } from 'vscode';
|
|
4
|
-
export type FileDefinition = {
|
|
5
|
-
path: string;
|
|
6
|
-
code: string;
|
|
7
|
-
uri: Uri;
|
|
8
|
-
};
|
|
9
|
-
export type InitMessage = {
|
|
10
|
-
id: 'init';
|
|
11
|
-
files: Record<string, FileDefinition>;
|
|
12
|
-
defaultFile: string;
|
|
13
|
-
debuggerExecCall: string;
|
|
14
|
-
};
|
|
15
|
-
export type ConfigParams = {
|
|
16
|
-
extensionName: string;
|
|
17
|
-
languageId: string;
|
|
18
|
-
documentSelector: string[];
|
|
19
|
-
homeDir: string;
|
|
20
|
-
workspaceRoot: string;
|
|
21
|
-
workspaceFile: Uri;
|
|
22
|
-
htmlContainer: HtmlContainerConfig;
|
|
23
|
-
protocol: 'ws' | 'wss';
|
|
24
|
-
hostname: string;
|
|
25
|
-
port: number;
|
|
26
|
-
files: Map<string, FileDefinition>;
|
|
27
|
-
defaultFile: string;
|
|
28
|
-
helpContainerCmd: string;
|
|
29
|
-
debuggerExecCall: string;
|
|
30
|
-
};
|
|
31
|
-
export declare const createDebugLaunchConfigFile: (workspacePath: string, type: string) => RegisteredMemoryFile;
|
|
32
|
-
//# sourceMappingURL=definitions.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../../src/debugger/common/definitions.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AACvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAE7B,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,GAAG,CAAC;CACZ,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,GAAG,CAAC;IACnB,aAAa,EAAE,mBAAmB,CAAC;IACnC,QAAQ,EAAE,IAAI,GAAG,KAAK,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;CAC5B,CAAA;AAED,eAAO,MAAM,2BAA2B,GAAI,eAAe,MAAM,EAAE,MAAM,MAAM,yBAkB9E,CAAC"}
|
|
@@ -1,19 +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 { RegisteredMemoryFile } from '@codingame/monaco-vscode-files-service-override';
|
|
6
|
-
import { Uri } from 'vscode';
|
|
7
|
-
export const createDebugLaunchConfigFile = (workspacePath, type) => {
|
|
8
|
-
return new RegisteredMemoryFile(Uri.file(`${workspacePath}/.vscode/launch.json`), JSON.stringify({
|
|
9
|
-
version: '0.2.0',
|
|
10
|
-
configurations: [
|
|
11
|
-
{
|
|
12
|
-
name: 'Debugger: Lauch',
|
|
13
|
-
type,
|
|
14
|
-
request: 'attach',
|
|
15
|
-
}
|
|
16
|
-
]
|
|
17
|
-
}, null, 2));
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=definitions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../src/debugger/common/definitions.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AAEvF,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAgC7B,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,aAAqB,EAAE,IAAY,EAAE,EAAE;IAC/E,OAAO,IAAI,oBAAoB,CAC3B,GAAG,CAAC,IAAI,CAAC,GAAG,aAAa,sBAAsB,CAAC,EAChD,IAAI,CAAC,SAAS,CACV;QACI,OAAO,EAAE,OAAO;QAChB,cAAc,EAAE;YACZ;gBACI,IAAI,EAAE,iBAAiB;gBACvB,IAAI;gBACJ,OAAO,EAAE,QAAQ;aACpB;SACJ;KACJ,EACD,IAAI,EACJ,CAAC,CACJ,CACJ,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -1,114 +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 * as vscode from 'vscode';
|
|
7
|
-
import type { ExtensionConfig } from 'monaco-languageclient/vscodeApiWrapper';
|
|
8
|
-
import type { ConfigParams, InitMessage } from '../common/definitions.js';
|
|
9
|
-
|
|
10
|
-
// This is derived from:
|
|
11
|
-
// https://github.com/CodinGame/monaco-vscode-api/blob/main/demo/src/features/debugger.ts
|
|
12
|
-
// The client configuration is generic and can be used for a another language
|
|
13
|
-
|
|
14
|
-
export const provideDebuggerExtensionConfig = (config: ConfigParams): ExtensionConfig => {
|
|
15
|
-
const filesOrContents = new Map<string, string | URL>();
|
|
16
|
-
filesOrContents.set('./extension.js', '// nothing');
|
|
17
|
-
|
|
18
|
-
return {
|
|
19
|
-
config: {
|
|
20
|
-
name: config.extensionName,
|
|
21
|
-
publisher: 'TypeFox',
|
|
22
|
-
version: '1.0.0',
|
|
23
|
-
engines: {
|
|
24
|
-
vscode: '*'
|
|
25
|
-
},
|
|
26
|
-
// A browser field is mandatory for the extension to be flagged as `web`
|
|
27
|
-
browser: 'extension.js',
|
|
28
|
-
contributes: {
|
|
29
|
-
debuggers: [
|
|
30
|
-
{
|
|
31
|
-
type: config.languageId,
|
|
32
|
-
label: 'Test',
|
|
33
|
-
languages: [config.languageId]
|
|
34
|
-
}
|
|
35
|
-
],
|
|
36
|
-
breakpoints: [
|
|
37
|
-
{
|
|
38
|
-
language: config.languageId
|
|
39
|
-
}
|
|
40
|
-
]
|
|
41
|
-
},
|
|
42
|
-
activationEvents: [
|
|
43
|
-
'onDebug'
|
|
44
|
-
]
|
|
45
|
-
},
|
|
46
|
-
filesOrContents
|
|
47
|
-
};
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
export const configureDebugging = async (api: typeof vscode, config: ConfigParams) => {
|
|
51
|
-
class WebsocketDebugAdapter implements vscode.DebugAdapter {
|
|
52
|
-
private websocket: WebSocket;
|
|
53
|
-
|
|
54
|
-
constructor(websocket: WebSocket) {
|
|
55
|
-
this.websocket = websocket;
|
|
56
|
-
this.websocket.onmessage = (message) => {
|
|
57
|
-
this._onDidSendMessage.fire(JSON.parse(message.data));
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
_onDidSendMessage = new api.EventEmitter<vscode.DebugProtocolMessage>();
|
|
62
|
-
onDidSendMessage = this._onDidSendMessage.event;
|
|
63
|
-
|
|
64
|
-
handleMessage(message: vscode.DebugProtocolMessage): void {
|
|
65
|
-
// path with on Windows (Chrome/Firefox) arrive here with \\ and not like expected with /
|
|
66
|
-
// Chrome on Ubuntu behaves as expected
|
|
67
|
-
const msg = JSON.stringify(message).replaceAll('\\\\', '/');
|
|
68
|
-
this.websocket.send(msg);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
dispose() {
|
|
72
|
-
this.websocket.close();
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
api.debug.registerDebugAdapterDescriptorFactory(config.languageId, {
|
|
77
|
-
async createDebugAdapterDescriptor() {
|
|
78
|
-
const websocket = new WebSocket(`${config.protocol}://${config.hostname}:${config.port}`);
|
|
79
|
-
|
|
80
|
-
await new Promise((resolve, reject) => {
|
|
81
|
-
websocket.onopen = resolve;
|
|
82
|
-
websocket.onerror = () =>
|
|
83
|
-
reject(new Error(`Unable to connect to debugger server. Run "${config.helpContainerCmd}"`));
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
const adapter = new WebsocketDebugAdapter(websocket);
|
|
87
|
-
|
|
88
|
-
const initMessage: InitMessage = {
|
|
89
|
-
id: 'init',
|
|
90
|
-
files: {},
|
|
91
|
-
// the default file is the one that will be used by the debugger
|
|
92
|
-
defaultFile: config.defaultFile,
|
|
93
|
-
debuggerExecCall: config.debuggerExecCall
|
|
94
|
-
};
|
|
95
|
-
for (const [name, fileDef] of config.files.entries()) {
|
|
96
|
-
console.log(`Found: ${name} Sending file: ${fileDef.path}`);
|
|
97
|
-
initMessage.files[name] = {
|
|
98
|
-
path: fileDef.path,
|
|
99
|
-
code: fileDef.code,
|
|
100
|
-
uri: fileDef.uri
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
websocket.send(JSON.stringify(initMessage));
|
|
104
|
-
|
|
105
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
106
|
-
adapter.onDidSendMessage((message: any) => {
|
|
107
|
-
if (message.type === 'event' && message.event === 'output') {
|
|
108
|
-
console.log('OUTPUT', message.body.output);
|
|
109
|
-
}
|
|
110
|
-
});
|
|
111
|
-
return new api.DebugAdapterInlineImplementation(adapter);
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
};
|
|
@@ -1,59 +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 { RegisteredMemoryFile } from '@codingame/monaco-vscode-files-service-override';
|
|
7
|
-
import type { HtmlContainerConfig } from 'monaco-languageclient/vscodeApiWrapper';
|
|
8
|
-
import { Uri } from 'vscode';
|
|
9
|
-
|
|
10
|
-
export type FileDefinition = {
|
|
11
|
-
path: string;
|
|
12
|
-
code: string;
|
|
13
|
-
uri: Uri;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export type InitMessage = {
|
|
17
|
-
id: 'init',
|
|
18
|
-
files: Record<string, FileDefinition>
|
|
19
|
-
defaultFile: string;
|
|
20
|
-
debuggerExecCall: string;
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
export type ConfigParams = {
|
|
24
|
-
extensionName: string;
|
|
25
|
-
languageId: string;
|
|
26
|
-
documentSelector: string[];
|
|
27
|
-
homeDir: string;
|
|
28
|
-
workspaceRoot: string;
|
|
29
|
-
workspaceFile: Uri;
|
|
30
|
-
htmlContainer: HtmlContainerConfig;
|
|
31
|
-
protocol: 'ws' | 'wss';
|
|
32
|
-
hostname: string;
|
|
33
|
-
port: number;
|
|
34
|
-
files: Map<string, FileDefinition>;
|
|
35
|
-
defaultFile: string;
|
|
36
|
-
helpContainerCmd: string;
|
|
37
|
-
debuggerExecCall: string;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export const createDebugLaunchConfigFile = (workspacePath: string, type: string) => {
|
|
41
|
-
return new RegisteredMemoryFile(
|
|
42
|
-
Uri.file(`${workspacePath}/.vscode/launch.json`),
|
|
43
|
-
JSON.stringify(
|
|
44
|
-
{
|
|
45
|
-
version: '0.2.0',
|
|
46
|
-
configurations: [
|
|
47
|
-
{
|
|
48
|
-
name: 'Debugger: Lauch',
|
|
49
|
-
type,
|
|
50
|
-
request: 'attach',
|
|
51
|
-
}
|
|
52
|
-
]
|
|
53
|
-
},
|
|
54
|
-
null,
|
|
55
|
-
2
|
|
56
|
-
)
|
|
57
|
-
);
|
|
58
|
-
};
|
|
59
|
-
|