@opensumi/ide-debug 2.18.11-next-1657791786.0 → 2.18.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/lib/browser/contextkeys/debug-contextkey.service.d.ts +0 -1
  2. package/lib/browser/contextkeys/debug-contextkey.service.d.ts.map +1 -1
  3. package/lib/browser/contextkeys/debug-contextkey.service.js +0 -1
  4. package/lib/browser/contextkeys/debug-contextkey.service.js.map +1 -1
  5. package/lib/browser/debug-contribution.d.ts +1 -5
  6. package/lib/browser/debug-contribution.d.ts.map +1 -1
  7. package/lib/browser/debug-contribution.js +0 -13
  8. package/lib/browser/debug-contribution.js.map +1 -1
  9. package/lib/browser/debug-session-connection.d.ts +1 -1
  10. package/lib/browser/debug-session.d.ts +1 -6
  11. package/lib/browser/debug-session.d.ts.map +1 -1
  12. package/lib/browser/debug-session.js +0 -24
  13. package/lib/browser/debug-session.js.map +1 -1
  14. package/lib/browser/editor/debug-breakpoint-zone-widget.d.ts +1 -0
  15. package/lib/browser/editor/debug-breakpoint-zone-widget.d.ts.map +1 -1
  16. package/lib/browser/editor/debug-breakpoint-zone-widget.js +4 -4
  17. package/lib/browser/editor/debug-breakpoint-zone-widget.js.map +1 -1
  18. package/lib/browser/editor/debug-hover-tree.model.service.d.ts.map +1 -1
  19. package/lib/browser/editor/debug-hover-tree.model.service.js +2 -1
  20. package/lib/browser/editor/debug-hover-tree.model.service.js.map +1 -1
  21. package/lib/browser/editor/debug-hover-widget.d.ts.map +1 -1
  22. package/lib/browser/editor/debug-hover-widget.js +5 -4
  23. package/lib/browser/editor/debug-hover-widget.js.map +1 -1
  24. package/lib/browser/tree/debug-tree-node.define.d.ts +1 -5
  25. package/lib/browser/tree/debug-tree-node.define.d.ts.map +1 -1
  26. package/lib/browser/tree/debug-tree-node.define.js +0 -9
  27. package/lib/browser/tree/debug-tree-node.define.js.map +1 -1
  28. package/lib/browser/view/breakpoints/debug-breakpoints.view.d.ts +2 -2
  29. package/lib/browser/view/breakpoints/debug-breakpoints.view.d.ts.map +1 -1
  30. package/lib/browser/view/configuration/debug-configuration.module.less +1 -7
  31. package/lib/browser/view/configuration/debug-toolbar.view.d.ts.map +1 -1
  32. package/lib/browser/view/configuration/debug-toolbar.view.js +1 -6
  33. package/lib/browser/view/configuration/debug-toolbar.view.js.map +1 -1
  34. package/lib/browser/view/console/debug-console-tree.model.service.d.ts.map +1 -1
  35. package/lib/browser/view/console/debug-console-tree.model.service.js +2 -1
  36. package/lib/browser/view/console/debug-console-tree.model.service.js.map +1 -1
  37. package/lib/browser/view/frames/debug-call-stack-session.view.d.ts +1 -0
  38. package/lib/browser/view/frames/debug-call-stack-session.view.d.ts.map +1 -1
  39. package/lib/browser/view/frames/debug-call-stack-thread.view.d.ts +1 -0
  40. package/lib/browser/view/frames/debug-call-stack-thread.view.d.ts.map +1 -1
  41. package/lib/browser/view/frames/debug-call-stack.contribution.js +2 -2
  42. package/lib/browser/view/frames/debug-call-stack.contribution.js.map +1 -1
  43. package/lib/browser/view/frames/debug-call-stack.operation.d.ts +1 -0
  44. package/lib/browser/view/frames/debug-call-stack.operation.d.ts.map +1 -1
  45. package/lib/browser/view/frames/debug-call-stack.view.d.ts +2 -2
  46. package/lib/browser/view/frames/debug-call-stack.view.d.ts.map +1 -1
  47. package/lib/browser/view/variables/debug-variables-tree.model.service.d.ts.map +1 -1
  48. package/lib/browser/view/variables/debug-variables-tree.model.service.js +0 -8
  49. package/lib/browser/view/variables/debug-variables-tree.model.service.js.map +1 -1
  50. package/lib/browser/view/variables/debug-variables.contribution.d.ts +2 -9
  51. package/lib/browser/view/variables/debug-variables.contribution.d.ts.map +1 -1
  52. package/lib/browser/view/variables/debug-variables.contribution.js +7 -76
  53. package/lib/browser/view/variables/debug-variables.contribution.js.map +1 -1
  54. package/lib/browser/view/variables/debug-variables.view.d.ts +2 -2
  55. package/lib/browser/view/variables/debug-variables.view.d.ts.map +1 -1
  56. package/lib/browser/view/watch/debug-watch-tree.model.service.d.ts.map +1 -1
  57. package/lib/browser/view/watch/debug-watch-tree.model.service.js +2 -1
  58. package/lib/browser/view/watch/debug-watch-tree.model.service.js.map +1 -1
  59. package/lib/browser/view/watch/debug-watch.view.d.ts +2 -2
  60. package/lib/browser/view/watch/debug-watch.view.d.ts.map +1 -1
  61. package/lib/common/constants.d.ts +0 -2
  62. package/lib/common/constants.d.ts.map +1 -1
  63. package/lib/common/constants.js +2 -4
  64. package/lib/common/constants.js.map +1 -1
  65. package/lib/common/debug-model.d.ts +1 -17
  66. package/lib/common/debug-model.d.ts.map +1 -1
  67. package/lib/common/debug-model.js +1 -66
  68. package/lib/common/debug-model.js.map +1 -1
  69. package/lib/common/debug-service.d.ts +1 -59
  70. package/lib/common/debug-service.d.ts.map +1 -1
  71. package/lib/common/debug-service.js.map +1 -1
  72. package/lib/common/debug-session.d.ts +1 -8
  73. package/lib/common/debug-session.d.ts.map +1 -1
  74. package/lib/common/debug-session.js.map +1 -1
  75. package/package.json +23 -23
  76. package/lib/browser/debug-memory.d.ts +0 -27
  77. package/lib/browser/debug-memory.d.ts.map +0 -1
  78. package/lib/browser/debug-memory.js +0 -173
  79. package/lib/browser/debug-memory.js.map +0 -1
@@ -1,173 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DebugMemoryFileSystemProvider = void 0;
4
- const tslib_1 = require("tslib");
5
- const clamp_1 = tslib_1.__importDefault(require("lodash/clamp"));
6
- const di_1 = require("@opensumi/di");
7
- const ide_core_common_1 = require("@opensumi/ide-core-common");
8
- const ide_core_common_2 = require("@opensumi/ide-core-common");
9
- const common_1 = require("../common");
10
- const debug_session_manager_1 = require("./debug-session-manager");
11
- const { Path } = ide_core_common_1.path;
12
- let DebugMemoryFileSystemProvider = class DebugMemoryFileSystemProvider {
13
- constructor() {
14
- this.memoryFdCounter = 0;
15
- this.changeEmitter = new ide_core_common_2.Emitter();
16
- this.fdMemory = new Map();
17
- this.capabilities = 0 | 1024 /* PathCaseSensitive */ | 4 /* FileOpenReadWriteClose */;
18
- this.onDidChangeCapabilities = ide_core_common_2.Event.None;
19
- this.onDidChangeFile = this.changeEmitter.event;
20
- }
21
- stat(uri) {
22
- return Promise.resolve({
23
- type: ide_core_common_2.FileType.File,
24
- uri: uri.toString(),
25
- mtime: 0,
26
- ctime: 0,
27
- size: 0,
28
- lastModification: 0,
29
- isDirectory: false,
30
- });
31
- }
32
- async readFile(uri) {
33
- const parse = this.parseUri(uri);
34
- if (!parse) {
35
- return this.toBuffer('');
36
- }
37
- if (!parse.offset) {
38
- return this.toBuffer('');
39
- }
40
- const { session, memoryReference, offset } = parse;
41
- const data = new Uint8Array(offset.toOffset - offset.fromOffset);
42
- const fd = this.memoryFdCounter++;
43
- let region = session.getMemory(memoryReference);
44
- if (offset) {
45
- region = new MemoryRegionView(region, offset);
46
- }
47
- this.fdMemory.set(fd, { session, region });
48
- await this.read(fd, offset.fromOffset, data, 0, data.length);
49
- return data;
50
- }
51
- async read(fd, pos, data, offset, length) {
52
- const memory = this.fdMemory.get(fd);
53
- if (!memory) {
54
- return;
55
- }
56
- const ranges = await memory.region.read(pos, length);
57
- let readSoFar = 0;
58
- for (const range of ranges) {
59
- switch (range.type) {
60
- case 1 /* Unreadable */:
61
- return readSoFar;
62
- case 2 /* Error */:
63
- if (readSoFar > 0) {
64
- return readSoFar;
65
- }
66
- else {
67
- return this.logger.error(range.error);
68
- }
69
- case 0 /* Valid */: {
70
- const start = Math.max(0, pos - range.offset);
71
- const toWrite = range.data.slice(start, Math.min(range.data.byteLength, start + (length - readSoFar)));
72
- data.set(toWrite.buffer, offset + readSoFar);
73
- readSoFar += toWrite.byteLength;
74
- break;
75
- }
76
- default:
77
- this.logger.log(range);
78
- }
79
- }
80
- return readSoFar;
81
- }
82
- toBuffer(s) {
83
- return ide_core_common_2.BinaryBuffer.fromString(s).buffer;
84
- }
85
- parseUri(uri) {
86
- if (uri.scheme !== common_1.DEBUG_MEMORY_SCHEME) {
87
- return;
88
- }
89
- const session = this.debugSessionManager.sessions.find((s) => s.id.toLowerCase() === uri.authority.toLowerCase());
90
- if (!session) {
91
- return;
92
- }
93
- let offset;
94
- /**
95
- * query 参数是 hex-editor 插件通过覆盖了 debug file accessor 处理过后添加上的,形如
96
- * ?range=0:131072
97
- */
98
- const rangeMatch = /range=([0-9]+):([0-9]+)/.exec(uri.query);
99
- if (rangeMatch) {
100
- offset = { fromOffset: Number(rangeMatch[1]), toOffset: Number(rangeMatch[2]) };
101
- }
102
- const [, memoryReference] = uri.path.split(Path.separator);
103
- return {
104
- session,
105
- offset,
106
- readOnly: !session.capabilities.supportsWriteMemoryRequest,
107
- sessionId: uri.authority,
108
- memoryReference: decodeURIComponent(memoryReference),
109
- };
110
- }
111
- readDirectory() {
112
- throw new Error('Not allowed');
113
- }
114
- createDirectory() {
115
- throw new Error('Not allowed');
116
- }
117
- rename() {
118
- throw new Error('Not allowed');
119
- }
120
- delete() {
121
- throw new Error('Not allowed');
122
- }
123
- watch() {
124
- throw new Error('Not allowed');
125
- }
126
- /**
127
- * 目前仅支持读,不支持写
128
- */
129
- writeFile() {
130
- throw new Error('Method not implemented.');
131
- }
132
- };
133
- tslib_1.__decorate([
134
- (0, di_1.Autowired)(common_1.IDebugSessionManager),
135
- tslib_1.__metadata("design:type", debug_session_manager_1.DebugSessionManager)
136
- ], DebugMemoryFileSystemProvider.prototype, "debugSessionManager", void 0);
137
- tslib_1.__decorate([
138
- (0, di_1.Autowired)(ide_core_common_2.ILogger),
139
- tslib_1.__metadata("design:type", Object)
140
- ], DebugMemoryFileSystemProvider.prototype, "logger", void 0);
141
- DebugMemoryFileSystemProvider = tslib_1.__decorate([
142
- (0, di_1.Injectable)()
143
- ], DebugMemoryFileSystemProvider);
144
- exports.DebugMemoryFileSystemProvider = DebugMemoryFileSystemProvider;
145
- class MemoryRegionView extends ide_core_common_2.Disposable {
146
- constructor(parent, range) {
147
- super();
148
- this.parent = parent;
149
- this.range = range;
150
- this.invalidateEmitter = new ide_core_common_2.Emitter();
151
- this.onDidInvalidate = this.invalidateEmitter.event;
152
- this.width = this.range.toOffset - this.range.fromOffset;
153
- this.writable = parent.writable;
154
- this.registerDispose(parent);
155
- this.registerDispose(parent.onDidInvalidate((e) => {
156
- const fromOffset = (0, clamp_1.default)(e.fromOffset - range.fromOffset, 0, this.width);
157
- const toOffset = (0, clamp_1.default)(e.toOffset - range.fromOffset, 0, this.width);
158
- if (toOffset > fromOffset) {
159
- this.invalidateEmitter.fire({ fromOffset, toOffset });
160
- }
161
- }));
162
- }
163
- read(fromOffset, toOffset) {
164
- if (fromOffset < 0) {
165
- throw new RangeError(`Invalid fromOffset: ${fromOffset}`);
166
- }
167
- return this.parent.read(this.range.fromOffset + fromOffset, this.range.fromOffset + Math.min(toOffset, this.width));
168
- }
169
- write(offset, data) {
170
- return this.parent.write(this.range.fromOffset + offset, data);
171
- }
172
- }
173
- //# sourceMappingURL=debug-memory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug-memory.js","sourceRoot":"","sources":["../../src/browser/debug-memory.ts"],"names":[],"mappings":"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"}