monaco-languageclient-examples 2025.9.2 → 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 +5 -0
- package/dist/python/client/config.d.ts +1 -1
- 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 +1 -1
- package/dist/python/client/reactPython.js.map +1 -1
- package/package.json +41 -41
- package/src/debugger/server/debugServer.ts +1 -1
- package/src/python/client/config.ts +3 -2
- package/src/python/client/main.ts +1 -1
- package/src/python/client/reactPython.tsx +1 -1
- 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 -31
- 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 -58
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this npm module are documented in this file.
|
|
4
4
|
|
|
5
|
+
## [2025.10.1] - 2025-10-20
|
|
6
|
+
|
|
7
|
+
- Updated to `monaco-languageclient@10.2.0` and `@typefox/monaco-editor-react@7.2.0`.
|
|
8
|
+
- Updated all `@codingame/monaco-vscode` packages to `22.1.0`.
|
|
9
|
+
|
|
5
10
|
## [2025.9.2] - 2025-09-30
|
|
6
11
|
|
|
7
12
|
- Updated migration guide, relaxed requirement to specify htmlContainer [#966](https://github.com/TypeFox/monaco-languageclient/pull/966).
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import '@codingame/monaco-vscode-python-default-extension';
|
|
2
|
+
import { type ConfigParams } from 'monaco-languageclient/debugger';
|
|
2
3
|
import type { EditorAppConfig } from 'monaco-languageclient/editorApp';
|
|
3
4
|
import type { LanguageClientConfig } from 'monaco-languageclient/lcwrapper';
|
|
4
5
|
import { type MonacoVscodeApiConfig } from 'monaco-languageclient/vscodeApiWrapper';
|
|
5
|
-
import { type ConfigParams } from '../../debugger/common/definitions.js';
|
|
6
6
|
export declare const createDefaultConfigParams: (homeDir: string, htmlContainer: HTMLElement) => ConfigParams;
|
|
7
7
|
export type PythonAppConfig = {
|
|
8
8
|
languageClientConfig: LanguageClientConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/python/client/config.ts"],"names":[],"mappings":"AAcA,OAAO,mDAAmD,CAAC;AAU3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAE5E,OAAO,EAAyD,KAAK,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAU3I,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/python/client/config.ts"],"names":[],"mappings":"AAcA,OAAO,mDAAmD,CAAC;AAU3D,OAAO,EAA+D,KAAK,YAAY,EAAuB,MAAM,gCAAgC,CAAC;AACrJ,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAE5E,OAAO,EAAyD,KAAK,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAU3I,eAAO,MAAM,yBAAyB,+DAsCrC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,eAAe,EAAE,qBAAqB,CAAC;IACvC,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,EAAE,YAAY,CAAC;CAC9B,CAAA;AAED,eAAO,MAAM,qBAAqB,uBAoIjC,CAAC"}
|
|
@@ -21,6 +21,7 @@ import getBannerServiceOverride from '@codingame/monaco-vscode-view-banner-servi
|
|
|
21
21
|
import getStatusBarServiceOverride from '@codingame/monaco-vscode-view-status-bar-service-override';
|
|
22
22
|
import getTitleBarServiceOverride from '@codingame/monaco-vscode-view-title-bar-service-override';
|
|
23
23
|
import { createUrl } from 'monaco-languageclient/common';
|
|
24
|
+
import { createDebugLaunchConfigFile, provideDebuggerExtensionConfig } from 'monaco-languageclient/debugger';
|
|
24
25
|
import { createDefaultLocaleConfiguration } from 'monaco-languageclient/vscodeApiLocales';
|
|
25
26
|
import { defaultHtmlAugmentationInstructions, defaultViewsInit } from 'monaco-languageclient/vscodeApiWrapper';
|
|
26
27
|
import { configureDefaultWorkerFactory } from 'monaco-languageclient/workerFactory';
|
|
@@ -30,13 +31,13 @@ import badPyCode from '../../../resources/python/bad.py?raw';
|
|
|
30
31
|
import helloPyCode from '../../../resources/python/hello.py?raw';
|
|
31
32
|
import hello2PyCode from '../../../resources/python/hello2.py?raw';
|
|
32
33
|
import { createDefaultWorkspaceContent } from '../../common/client/utils.js';
|
|
33
|
-
import { provideDebuggerExtensionConfig } from '../../debugger/client/debugger.js';
|
|
34
|
-
import { createDebugLaunchConfigFile } from '../../debugger/common/definitions.js';
|
|
35
34
|
export const createDefaultConfigParams = (homeDir, htmlContainer) => {
|
|
36
35
|
const files = new Map();
|
|
37
36
|
const workspaceRoot = `${homeDir}/workspace`;
|
|
38
37
|
const configParams = {
|
|
39
38
|
extensionName: 'debugger-py-client',
|
|
39
|
+
publisher: 'TypeFox',
|
|
40
|
+
version: '1.0.0',
|
|
40
41
|
languageId: 'python',
|
|
41
42
|
documentSelector: ['python', 'py'],
|
|
42
43
|
homeDir,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/python/client/config.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,uBAAuB,MAAM,iDAAiD,CAAC;AACtF,OAAO,6BAA6B,MAAM,uDAAuD,CAAC;AAClG,OAAO,0BAA0B,MAAM,oDAAoD,CAAC;AAC5F,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,iDAAiD,CAAC;AAChJ,OAAO,6BAA6B,MAAM,uDAAuD,CAAC;AAClG,OAAO,2BAA2B,MAAM,qDAAqD,CAAC;AAC9F,OAAO,8BAA8B,MAAM,wDAAwD,CAAC;AACpG,OAAO,6BAA6B,MAAM,uDAAuD,CAAC;AAClG,OAAO,mDAAmD,CAAC;AAC3D,OAAO,6BAA6B,MAAM,wDAAwD,CAAC;AACnG,OAAO,wBAAwB,MAAM,kDAAkD,CAAC;AACxF,OAAO,+BAA+B,MAAM,0DAA0D,CAAC;AACvG,OAAO,yBAAyB,MAAM,mDAAmD,CAAC;AAC1F,OAAO,yBAAyB,MAAM,mDAAmD,CAAC;AAC1F,OAAO,wBAAwB,MAAM,uDAAuD,CAAC;AAC7F,OAAO,2BAA2B,MAAM,2DAA2D,CAAC;AACpG,OAAO,0BAA0B,MAAM,0DAA0D,CAAC;AAClG,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/python/client/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { EditorApp } from 'monaco-languageclient/editorApp';
|
|
|
7
7
|
import { LanguageClientWrapper } from 'monaco-languageclient/lcwrapper';
|
|
8
8
|
import { MonacoVscodeApiWrapper } from 'monaco-languageclient/vscodeApiWrapper';
|
|
9
9
|
import * as vscode from 'vscode';
|
|
10
|
-
import { configureDebugging } from '
|
|
10
|
+
import { configureDebugging } from 'monaco-languageclient/debugger';
|
|
11
11
|
import { createPythonAppConfig } from './config.js';
|
|
12
12
|
export const runPythonWrapper = async () => {
|
|
13
13
|
const appConfig = createPythonAppConfig();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/python/client/main.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAA4C,MAAM,yCAAyC,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/python/client/main.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAA4C,MAAM,yCAAyC,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE,CAAC;IACxC,MAAM,SAAS,GAAG,qBAAqB,EAAE,CAAC;IAE1C,wCAAwC;IACxC,MAAM,UAAU,GAAG,IAAI,sBAAsB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IACzE,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;IAEzB,MAAM,SAAS,GAAG,IAAI,qBAAqB,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;IAE5E,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAE3D,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAChD,CAAC;SAAM,CAAC;QACJ,MAAM,MAAM,GAAG,UAAU,CAAC,0BAA0B,CAAC,oBAAoB,CAAwC,CAAC;QAClH,MAAM,CAAC,eAAe,EAAE,CAAC;QAEzB,MAAM,UAAU,GAAG,UAAU,CAAC,0BAA0B,CAAC,oBAAoB,CAAoD,CAAC;QAClI,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3B,kBAAkB,CAAC,MAAM,UAAU,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;QAExB,MAAM,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC;QAChE,MAAM,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC,GAAG,CAAC,CAAC;IAC7F,CAAC;AAAA,CACJ,CAAC"}
|
|
@@ -7,7 +7,7 @@ import { MonacoEditorReactComp } from '@typefox/monaco-editor-react';
|
|
|
7
7
|
import React from 'react';
|
|
8
8
|
import ReactDOM from 'react-dom/client';
|
|
9
9
|
import * as vscode from 'vscode';
|
|
10
|
-
import { configureDebugging } from '
|
|
10
|
+
import { configureDebugging } from 'monaco-languageclient/debugger';
|
|
11
11
|
import { createPythonAppConfig } from './config.js';
|
|
12
12
|
export const runPythonReact = async () => {
|
|
13
13
|
const appConfig = createPythonAppConfig();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactPython.js","sourceRoot":"","sources":["../../../src/python/client/reactPython.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,EAA4C,MAAM,yCAAyC,CAAC;AACnG,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"reactPython.js","sourceRoot":"","sources":["../../../src/python/client/reactPython.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,EAA4C,MAAM,yCAAyC,CAAC;AACnG,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE,CAAC;IACtC,MAAM,SAAS,GAAG,qBAAqB,EAAE,CAAC;IAE1C,MAAM,mBAAmB,GAAG,KAAK,EAAE,UAAkC,EAAE,EAAE,CAAC;QACtE,MAAM,MAAM,GAAG,UAAU,CAAC,0BAA0B,CAAC,oBAAoB,CAAwC,CAAC;QAClH,MAAM,CAAC,eAAe,EAAE,CAAC;QAEzB,MAAM,UAAU,GAAG,UAAU,CAAC,0BAA0B,CAAC,oBAAoB,CAAoD,CAAC;QAClI,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3B,kBAAkB,CAAC,MAAM,UAAU,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC;QAChE,MAAM,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC,GAAG,CAAC,CAAC;IAAA,CAC5F,CAAC;IAEF,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAE,CAAC,CAAC;IACzE,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC;QACd,OAAO,CACH,6BAAK,KAAK,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,IACxC,oBAAC,qBAAqB,IAClB,eAAe,EAAE,SAAS,CAAC,eAAe,EAC1C,eAAe,EAAE,SAAS,CAAC,eAAe,EAC1C,oBAAoB,EAAE,SAAS,CAAC,oBAAoB,EACpD,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAC3B,mBAAmB,EAAE,mBAAmB,EACxC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAA,CACpB,GAAI,CACP,CACT,CAAC;IAAA,CACL,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,oBAAC,GAAG,OAAG,CAAC,CAAC;AAAA,CACxB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "monaco-languageclient-examples",
|
|
3
|
-
"version": "2025.
|
|
3
|
+
"version": "2025.10.1",
|
|
4
4
|
"description": "Monaco Language client examples",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "TypeFox GmbH",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"npm": ">=10.2.3"
|
|
70
70
|
},
|
|
71
71
|
"volta": {
|
|
72
|
-
"node": "22.
|
|
72
|
+
"node": "22.20.0",
|
|
73
73
|
"npm": "10.9.3"
|
|
74
74
|
},
|
|
75
75
|
"files": [
|
|
@@ -82,48 +82,48 @@
|
|
|
82
82
|
"LICENSE"
|
|
83
83
|
],
|
|
84
84
|
"dependencies": {
|
|
85
|
-
"@codingame/monaco-vscode-configuration-service-override": "^
|
|
86
|
-
"@codingame/monaco-vscode-cpp-default-extension": "^
|
|
87
|
-
"@codingame/monaco-vscode-debug-service-override": "^
|
|
88
|
-
"@codingame/monaco-vscode-editor-api": "^
|
|
89
|
-
"@codingame/monaco-vscode-environment-service-override": "^
|
|
90
|
-
"@codingame/monaco-vscode-explorer-service-override": "^
|
|
91
|
-
"@codingame/monaco-vscode-files-service-override": "^
|
|
92
|
-
"@codingame/monaco-vscode-groovy-default-extension": "^
|
|
93
|
-
"@codingame/monaco-vscode-java-default-extension": "^
|
|
94
|
-
"@codingame/monaco-vscode-javascript-default-extension": "^
|
|
95
|
-
"@codingame/monaco-vscode-json-default-extension": "^
|
|
96
|
-
"@codingame/monaco-vscode-keybindings-service-override": "^
|
|
97
|
-
"@codingame/monaco-vscode-lifecycle-service-override": "^
|
|
98
|
-
"@codingame/monaco-vscode-localization-service-override": "^
|
|
99
|
-
"@codingame/monaco-vscode-preferences-service-override": "^
|
|
100
|
-
"@codingame/monaco-vscode-python-default-extension": "^
|
|
101
|
-
"@codingame/monaco-vscode-remote-agent-service-override": "^
|
|
102
|
-
"@codingame/monaco-vscode-search-result-default-extension": "^
|
|
103
|
-
"@codingame/monaco-vscode-search-service-override": "^
|
|
104
|
-
"@codingame/monaco-vscode-secret-storage-service-override": "^
|
|
105
|
-
"@codingame/monaco-vscode-standalone-json-language-features": "^
|
|
106
|
-
"@codingame/monaco-vscode-standalone-typescript-language-features": "^
|
|
107
|
-
"@codingame/monaco-vscode-testing-service-override": "^
|
|
108
|
-
"@codingame/monaco-vscode-storage-service-override": "^
|
|
109
|
-
"@codingame/monaco-vscode-textmate-service-override": "^
|
|
110
|
-
"@codingame/monaco-vscode-theme-defaults-default-extension": "^
|
|
111
|
-
"@codingame/monaco-vscode-theme-service-override": "^
|
|
112
|
-
"@codingame/monaco-vscode-typescript-basics-default-extension": "^
|
|
113
|
-
"@codingame/monaco-vscode-typescript-language-features-default-extension": "^
|
|
114
|
-
"@codingame/monaco-vscode-views-service-override": "^
|
|
115
|
-
"@codingame/monaco-vscode-outline-service-override": "^
|
|
116
|
-
"@typefox/monaco-editor-react": "~7.
|
|
85
|
+
"@codingame/monaco-vscode-configuration-service-override": "^22.1.0",
|
|
86
|
+
"@codingame/monaco-vscode-cpp-default-extension": "^22.1.0",
|
|
87
|
+
"@codingame/monaco-vscode-debug-service-override": "^22.1.0",
|
|
88
|
+
"@codingame/monaco-vscode-editor-api": "^22.1.0",
|
|
89
|
+
"@codingame/monaco-vscode-environment-service-override": "^22.1.0",
|
|
90
|
+
"@codingame/monaco-vscode-explorer-service-override": "^22.1.0",
|
|
91
|
+
"@codingame/monaco-vscode-files-service-override": "^22.1.0",
|
|
92
|
+
"@codingame/monaco-vscode-groovy-default-extension": "^22.1.0",
|
|
93
|
+
"@codingame/monaco-vscode-java-default-extension": "^22.1.0",
|
|
94
|
+
"@codingame/monaco-vscode-javascript-default-extension": "^22.1.0",
|
|
95
|
+
"@codingame/monaco-vscode-json-default-extension": "^22.1.0",
|
|
96
|
+
"@codingame/monaco-vscode-keybindings-service-override": "^22.1.0",
|
|
97
|
+
"@codingame/monaco-vscode-lifecycle-service-override": "^22.1.0",
|
|
98
|
+
"@codingame/monaco-vscode-localization-service-override": "^22.1.0",
|
|
99
|
+
"@codingame/monaco-vscode-preferences-service-override": "^22.1.0",
|
|
100
|
+
"@codingame/monaco-vscode-python-default-extension": "^22.1.0",
|
|
101
|
+
"@codingame/monaco-vscode-remote-agent-service-override": "^22.1.0",
|
|
102
|
+
"@codingame/monaco-vscode-search-result-default-extension": "^22.1.0",
|
|
103
|
+
"@codingame/monaco-vscode-search-service-override": "^22.1.0",
|
|
104
|
+
"@codingame/monaco-vscode-secret-storage-service-override": "^22.1.0",
|
|
105
|
+
"@codingame/monaco-vscode-standalone-json-language-features": "^22.1.0",
|
|
106
|
+
"@codingame/monaco-vscode-standalone-typescript-language-features": "^22.1.0",
|
|
107
|
+
"@codingame/monaco-vscode-testing-service-override": "^22.1.0",
|
|
108
|
+
"@codingame/monaco-vscode-storage-service-override": "^22.1.0",
|
|
109
|
+
"@codingame/monaco-vscode-textmate-service-override": "^22.1.0",
|
|
110
|
+
"@codingame/monaco-vscode-theme-defaults-default-extension": "^22.1.0",
|
|
111
|
+
"@codingame/monaco-vscode-theme-service-override": "^22.1.0",
|
|
112
|
+
"@codingame/monaco-vscode-typescript-basics-default-extension": "^22.1.0",
|
|
113
|
+
"@codingame/monaco-vscode-typescript-language-features-default-extension": "^22.1.0",
|
|
114
|
+
"@codingame/monaco-vscode-views-service-override": "^22.1.0",
|
|
115
|
+
"@codingame/monaco-vscode-outline-service-override": "^22.1.0",
|
|
116
|
+
"@typefox/monaco-editor-react": "~7.2.0",
|
|
117
117
|
"cors": "~2.8.5",
|
|
118
118
|
"express": "~5.1.0",
|
|
119
119
|
"jszip": "~3.10.1",
|
|
120
120
|
"langium": "~4.1.0",
|
|
121
|
-
"monaco-languageclient": "~10.
|
|
122
|
-
"pyright": "~1.1.
|
|
123
|
-
"react": "~19.
|
|
124
|
-
"react-dom": "~19.
|
|
121
|
+
"monaco-languageclient": "~10.2.0",
|
|
122
|
+
"pyright": "~1.1.406",
|
|
123
|
+
"react": "~19.2.0",
|
|
124
|
+
"react-dom": "~19.2.0",
|
|
125
125
|
"request-light": "~0.8.0",
|
|
126
|
-
"vscode": "npm:@codingame/monaco-vscode-extension-api@^
|
|
126
|
+
"vscode": "npm:@codingame/monaco-vscode-extension-api@^22.1.0",
|
|
127
127
|
"vscode-json-languageservice": "~5.6.2",
|
|
128
128
|
"vscode-languageclient": "~9.0.1",
|
|
129
129
|
"vscode-languageserver": "~9.0.1",
|
|
@@ -134,12 +134,12 @@
|
|
|
134
134
|
},
|
|
135
135
|
"devDependencies": {
|
|
136
136
|
"@types/cors": "~2.8.19",
|
|
137
|
-
"@types/emscripten": "~1.41.
|
|
137
|
+
"@types/emscripten": "~1.41.4",
|
|
138
138
|
"@types/express": "~5.0.3",
|
|
139
139
|
"@types/ws": "~8.18.1",
|
|
140
140
|
"langium-cli": "~4.1.0",
|
|
141
141
|
"mini-coi": "~0.4.2",
|
|
142
|
-
"vite-plugin-static-copy": "~3.1.
|
|
142
|
+
"vite-plugin-static-copy": "~3.1.4",
|
|
143
143
|
"vscode-languageserver-types": "~3.17.5"
|
|
144
144
|
},
|
|
145
145
|
"scripts": {
|
|
@@ -8,7 +8,7 @@ import * as fs from 'node:fs';
|
|
|
8
8
|
import { exec } from 'node:child_process';
|
|
9
9
|
import express from 'express';
|
|
10
10
|
import { WebSocketServer } from 'ws';
|
|
11
|
-
import type { InitMessage } from '
|
|
11
|
+
import type { InitMessage } from 'monaco-languageclient/debugger';
|
|
12
12
|
import { DAPSocket } from './DAPSocket.js';
|
|
13
13
|
|
|
14
14
|
// This is derived from:
|
|
@@ -22,6 +22,7 @@ import getBannerServiceOverride from '@codingame/monaco-vscode-view-banner-servi
|
|
|
22
22
|
import getStatusBarServiceOverride from '@codingame/monaco-vscode-view-status-bar-service-override';
|
|
23
23
|
import getTitleBarServiceOverride from '@codingame/monaco-vscode-view-title-bar-service-override';
|
|
24
24
|
import { createUrl } from 'monaco-languageclient/common';
|
|
25
|
+
import { createDebugLaunchConfigFile, provideDebuggerExtensionConfig, type ConfigParams, type FileDefinition } from 'monaco-languageclient/debugger';
|
|
25
26
|
import type { EditorAppConfig } from 'monaco-languageclient/editorApp';
|
|
26
27
|
import type { LanguageClientConfig } from 'monaco-languageclient/lcwrapper';
|
|
27
28
|
import { createDefaultLocaleConfiguration } from 'monaco-languageclient/vscodeApiLocales';
|
|
@@ -34,14 +35,14 @@ import badPyCode from '../../../resources/python/bad.py?raw';
|
|
|
34
35
|
import helloPyCode from '../../../resources/python/hello.py?raw';
|
|
35
36
|
import hello2PyCode from '../../../resources/python/hello2.py?raw';
|
|
36
37
|
import { createDefaultWorkspaceContent } from '../../common/client/utils.js';
|
|
37
|
-
import { provideDebuggerExtensionConfig } from '../../debugger/client/debugger.js';
|
|
38
|
-
import { createDebugLaunchConfigFile, type ConfigParams, type FileDefinition } from '../../debugger/common/definitions.js';
|
|
39
38
|
|
|
40
39
|
export const createDefaultConfigParams = (homeDir: string, htmlContainer: HTMLElement): ConfigParams => {
|
|
41
40
|
const files = new Map<string, FileDefinition>();
|
|
42
41
|
const workspaceRoot = `${homeDir}/workspace`;
|
|
43
42
|
const configParams: ConfigParams = {
|
|
44
43
|
extensionName: 'debugger-py-client',
|
|
44
|
+
publisher: 'TypeFox',
|
|
45
|
+
version: '1.0.0',
|
|
45
46
|
languageId: 'python',
|
|
46
47
|
documentSelector: ['python', 'py'],
|
|
47
48
|
homeDir,
|
|
@@ -8,7 +8,7 @@ import { EditorApp } from 'monaco-languageclient/editorApp';
|
|
|
8
8
|
import { LanguageClientWrapper } from 'monaco-languageclient/lcwrapper';
|
|
9
9
|
import { MonacoVscodeApiWrapper } from 'monaco-languageclient/vscodeApiWrapper';
|
|
10
10
|
import * as vscode from 'vscode';
|
|
11
|
-
import { configureDebugging } from '
|
|
11
|
+
import { configureDebugging } from 'monaco-languageclient/debugger';
|
|
12
12
|
import { createPythonAppConfig } from './config.js';
|
|
13
13
|
|
|
14
14
|
export const runPythonWrapper = async () => {
|
|
@@ -9,7 +9,7 @@ import type { MonacoVscodeApiWrapper } from 'monaco-languageclient/vscodeApiWrap
|
|
|
9
9
|
import React from 'react';
|
|
10
10
|
import ReactDOM from 'react-dom/client';
|
|
11
11
|
import * as vscode from 'vscode';
|
|
12
|
-
import { configureDebugging } from '
|
|
12
|
+
import { configureDebugging } from 'monaco-languageclient/debugger';
|
|
13
13
|
import { createPythonAppConfig } from './config.js';
|
|
14
14
|
|
|
15
15
|
export const runPythonReact = async () => {
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import * as vscode from 'vscode';
|
|
2
|
-
import type { ExtensionConfig } from 'monaco-languageclient/vscodeApiWrapper';
|
|
3
|
-
import type { ConfigParams } from '../common/definitions.js';
|
|
4
|
-
export declare const provideDebuggerExtensionConfig: (config: ConfigParams) => ExtensionConfig;
|
|
5
|
-
export declare const configureDebugging: (api: typeof vscode, config: ConfigParams) => Promise<void>;
|
|
6
|
-
//# sourceMappingURL=debugger.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"debugger.d.ts","sourceRoot":"","sources":["../../../src/debugger/client/debugger.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,0BAA0B,CAAC;AAM1E,eAAO,MAAM,8BAA8B,2CAkC1C,CAAC;AAEF,eAAO,MAAM,kBAAkB,6DAgE9B,CAAC"}
|
|
@@ -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":"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"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { RegisteredMemoryFile } from '@codingame/monaco-vscode-files-service-override';
|
|
2
|
-
import { Uri } from 'vscode';
|
|
3
|
-
export type FileDefinition = {
|
|
4
|
-
path: string;
|
|
5
|
-
code: string;
|
|
6
|
-
uri: Uri;
|
|
7
|
-
};
|
|
8
|
-
export type InitMessage = {
|
|
9
|
-
id: 'init';
|
|
10
|
-
files: Record<string, FileDefinition>;
|
|
11
|
-
defaultFile: string;
|
|
12
|
-
debuggerExecCall: string;
|
|
13
|
-
};
|
|
14
|
-
export type ConfigParams = {
|
|
15
|
-
extensionName: string;
|
|
16
|
-
languageId: string;
|
|
17
|
-
documentSelector: string[];
|
|
18
|
-
homeDir: string;
|
|
19
|
-
workspaceRoot: string;
|
|
20
|
-
workspaceFile: Uri;
|
|
21
|
-
htmlContainer: HTMLElement;
|
|
22
|
-
protocol: 'ws' | 'wss';
|
|
23
|
-
hostname: string;
|
|
24
|
-
port: number;
|
|
25
|
-
files: Map<string, FileDefinition>;
|
|
26
|
-
defaultFile: string;
|
|
27
|
-
helpContainerCmd: string;
|
|
28
|
-
debuggerExecCall: string;
|
|
29
|
-
};
|
|
30
|
-
export declare const createDebugLaunchConfigFile: (workspacePath: string, type: string) => RegisteredMemoryFile;
|
|
31
|
-
//# 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,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,WAAW,CAAC;IAC3B,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,+DAkBvC,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;AACvF,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAgC7B,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,aAAqB,EAAE,IAAY,EAAE,EAAE,CAAC;IAChF,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;AAAA,CACL,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,58 +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 { Uri } from 'vscode';
|
|
8
|
-
|
|
9
|
-
export type FileDefinition = {
|
|
10
|
-
path: string;
|
|
11
|
-
code: string;
|
|
12
|
-
uri: Uri;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export type InitMessage = {
|
|
16
|
-
id: 'init',
|
|
17
|
-
files: Record<string, FileDefinition>
|
|
18
|
-
defaultFile: string;
|
|
19
|
-
debuggerExecCall: string;
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
export type ConfigParams = {
|
|
23
|
-
extensionName: string;
|
|
24
|
-
languageId: string;
|
|
25
|
-
documentSelector: string[];
|
|
26
|
-
homeDir: string;
|
|
27
|
-
workspaceRoot: string;
|
|
28
|
-
workspaceFile: Uri;
|
|
29
|
-
htmlContainer: HTMLElement;
|
|
30
|
-
protocol: 'ws' | 'wss';
|
|
31
|
-
hostname: string;
|
|
32
|
-
port: number;
|
|
33
|
-
files: Map<string, FileDefinition>;
|
|
34
|
-
defaultFile: string;
|
|
35
|
-
helpContainerCmd: string;
|
|
36
|
-
debuggerExecCall: string;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export const createDebugLaunchConfigFile = (workspacePath: string, type: string) => {
|
|
40
|
-
return new RegisteredMemoryFile(
|
|
41
|
-
Uri.file(`${workspacePath}/.vscode/launch.json`),
|
|
42
|
-
JSON.stringify(
|
|
43
|
-
{
|
|
44
|
-
version: '0.2.0',
|
|
45
|
-
configurations: [
|
|
46
|
-
{
|
|
47
|
-
name: 'Debugger: Lauch',
|
|
48
|
-
type,
|
|
49
|
-
request: 'attach',
|
|
50
|
-
}
|
|
51
|
-
]
|
|
52
|
-
},
|
|
53
|
-
null,
|
|
54
|
-
2
|
|
55
|
-
)
|
|
56
|
-
);
|
|
57
|
-
};
|
|
58
|
-
|