@theia/memory-inspector 1.67.0-next.56 → 1.67.0-next.86

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 (125) hide show
  1. package/lib/browser/diff-widget/memory-diff-options-widget.d.ts +37 -0
  2. package/lib/browser/diff-widget/memory-diff-options-widget.d.ts.map +1 -0
  3. package/lib/browser/diff-widget/memory-diff-options-widget.js +125 -0
  4. package/lib/browser/diff-widget/memory-diff-options-widget.js.map +1 -0
  5. package/lib/browser/diff-widget/memory-diff-select-widget.d.ts +51 -0
  6. package/lib/browser/diff-widget/memory-diff-select-widget.d.ts.map +1 -0
  7. package/lib/browser/diff-widget/memory-diff-select-widget.js +130 -0
  8. package/lib/browser/diff-widget/memory-diff-select-widget.js.map +1 -0
  9. package/lib/browser/diff-widget/memory-diff-table-widget.d.ts +78 -0
  10. package/lib/browser/diff-widget/memory-diff-table-widget.d.ts.map +1 -0
  11. package/lib/browser/diff-widget/memory-diff-table-widget.js +307 -0
  12. package/lib/browser/diff-widget/memory-diff-table-widget.js.map +1 -0
  13. package/lib/browser/diff-widget/memory-diff-widget-types.d.ts +42 -0
  14. package/lib/browser/diff-widget/memory-diff-widget-types.d.ts.map +1 -0
  15. package/lib/browser/diff-widget/memory-diff-widget-types.js +24 -0
  16. package/lib/browser/diff-widget/memory-diff-widget-types.js.map +1 -0
  17. package/lib/browser/editable-widget/memory-editable-table-widget.d.ts +65 -0
  18. package/lib/browser/editable-widget/memory-editable-table-widget.d.ts.map +1 -0
  19. package/lib/browser/editable-widget/memory-editable-table-widget.js +320 -0
  20. package/lib/browser/editable-widget/memory-editable-table-widget.js.map +1 -0
  21. package/lib/browser/memory-inspector-frontend-contribution.d.ts +47 -0
  22. package/lib/browser/memory-inspector-frontend-contribution.d.ts.map +1 -0
  23. package/lib/browser/memory-inspector-frontend-contribution.js +284 -0
  24. package/lib/browser/memory-inspector-frontend-contribution.js.map +1 -0
  25. package/lib/browser/memory-inspector-frontend-module.d.ts +22 -0
  26. package/lib/browser/memory-inspector-frontend-module.d.ts.map +1 -0
  27. package/lib/browser/memory-inspector-frontend-module.js +88 -0
  28. package/lib/browser/memory-inspector-frontend-module.js.map +1 -0
  29. package/lib/browser/memory-provider/cdt-gdb-memory-provider.d.ts +36 -0
  30. package/lib/browser/memory-provider/cdt-gdb-memory-provider.d.ts.map +1 -0
  31. package/lib/browser/memory-provider/cdt-gdb-memory-provider.js +132 -0
  32. package/lib/browser/memory-provider/cdt-gdb-memory-provider.js.map +1 -0
  33. package/lib/browser/memory-provider/memory-provider-service.d.ts +37 -0
  34. package/lib/browser/memory-provider/memory-provider-service.d.ts.map +1 -0
  35. package/lib/browser/memory-provider/memory-provider-service.js +94 -0
  36. package/lib/browser/memory-provider/memory-provider-service.js.map +1 -0
  37. package/lib/browser/memory-provider/memory-provider.d.ts +66 -0
  38. package/lib/browser/memory-provider/memory-provider.d.ts.map +1 -0
  39. package/lib/browser/memory-provider/memory-provider.js +89 -0
  40. package/lib/browser/memory-provider/memory-provider.js.map +1 -0
  41. package/lib/browser/memory-provider/memory-provider.spec.d.ts +17 -0
  42. package/lib/browser/memory-provider/memory-provider.spec.d.ts.map +1 -0
  43. package/lib/browser/memory-provider/memory-provider.spec.js +24 -0
  44. package/lib/browser/memory-provider/memory-provider.spec.js.map +1 -0
  45. package/lib/browser/memory-widget/memory-options-widget.d.ts +137 -0
  46. package/lib/browser/memory-widget/memory-options-widget.d.ts.map +1 -0
  47. package/lib/browser/memory-widget/memory-options-widget.js +557 -0
  48. package/lib/browser/memory-widget/memory-options-widget.js.map +1 -0
  49. package/lib/browser/memory-widget/memory-table-widget.d.ts +147 -0
  50. package/lib/browser/memory-widget/memory-table-widget.d.ts.map +1 -0
  51. package/lib/browser/memory-widget/memory-table-widget.js +481 -0
  52. package/lib/browser/memory-widget/memory-table-widget.js.map +1 -0
  53. package/lib/browser/memory-widget/memory-widget.d.ts +34 -0
  54. package/lib/browser/memory-widget/memory-widget.d.ts.map +1 -0
  55. package/lib/browser/memory-widget/memory-widget.js +105 -0
  56. package/lib/browser/memory-widget/memory-widget.js.map +1 -0
  57. package/lib/browser/register-widget/register-filter-service.d.ts +43 -0
  58. package/lib/browser/register-widget/register-filter-service.d.ts.map +1 -0
  59. package/lib/browser/register-widget/register-filter-service.js +74 -0
  60. package/lib/browser/register-widget/register-filter-service.js.map +1 -0
  61. package/lib/browser/register-widget/register-options-widget.d.ts +82 -0
  62. package/lib/browser/register-widget/register-options-widget.d.ts.map +1 -0
  63. package/lib/browser/register-widget/register-options-widget.js +331 -0
  64. package/lib/browser/register-widget/register-options-widget.js.map +1 -0
  65. package/lib/browser/register-widget/register-table-widget.d.ts +78 -0
  66. package/lib/browser/register-widget/register-table-widget.d.ts.map +1 -0
  67. package/lib/browser/register-widget/register-table-widget.js +224 -0
  68. package/lib/browser/register-widget/register-table-widget.js.map +1 -0
  69. package/lib/browser/register-widget/register-widget-types.d.ts +30 -0
  70. package/lib/browser/register-widget/register-widget-types.d.ts.map +1 -0
  71. package/lib/browser/register-widget/register-widget-types.js +36 -0
  72. package/lib/browser/register-widget/register-widget-types.js.map +1 -0
  73. package/lib/browser/utils/memory-commands.d.ts +28 -0
  74. package/lib/browser/utils/memory-commands.d.ts.map +1 -0
  75. package/lib/browser/utils/memory-commands.js +68 -0
  76. package/lib/browser/utils/memory-commands.js.map +1 -0
  77. package/lib/browser/utils/memory-hover-renderer.d.ts +34 -0
  78. package/lib/browser/utils/memory-hover-renderer.d.ts.map +1 -0
  79. package/lib/browser/utils/memory-hover-renderer.js +104 -0
  80. package/lib/browser/utils/memory-hover-renderer.js.map +1 -0
  81. package/lib/browser/utils/memory-recents.d.ts +28 -0
  82. package/lib/browser/utils/memory-recents.d.ts.map +1 -0
  83. package/lib/browser/utils/memory-recents.js +53 -0
  84. package/lib/browser/utils/memory-recents.js.map +1 -0
  85. package/lib/browser/utils/memory-widget-components.d.ts +59 -0
  86. package/lib/browser/utils/memory-widget-components.d.ts.map +1 -0
  87. package/lib/browser/utils/memory-widget-components.js +71 -0
  88. package/lib/browser/utils/memory-widget-components.js.map +1 -0
  89. package/lib/browser/utils/memory-widget-manager.d.ts +51 -0
  90. package/lib/browser/utils/memory-widget-manager.d.ts.map +1 -0
  91. package/lib/browser/utils/memory-widget-manager.js +175 -0
  92. package/lib/browser/utils/memory-widget-manager.js.map +1 -0
  93. package/lib/browser/utils/memory-widget-utils.d.ts +114 -0
  94. package/lib/browser/utils/memory-widget-utils.d.ts.map +1 -0
  95. package/lib/browser/utils/memory-widget-utils.js +43 -0
  96. package/lib/browser/utils/memory-widget-utils.js.map +1 -0
  97. package/lib/browser/utils/memory-widget-variable-utils.d.ts +58 -0
  98. package/lib/browser/utils/memory-widget-variable-utils.d.ts.map +1 -0
  99. package/lib/browser/utils/memory-widget-variable-utils.js +145 -0
  100. package/lib/browser/utils/memory-widget-variable-utils.js.map +1 -0
  101. package/lib/browser/utils/multi-select-bar.d.ts +32 -0
  102. package/lib/browser/utils/multi-select-bar.d.ts.map +1 -0
  103. package/lib/browser/utils/multi-select-bar.js +36 -0
  104. package/lib/browser/utils/multi-select-bar.js.map +1 -0
  105. package/lib/browser/wrapper-widgets/memory-dock-panel.d.ts +25 -0
  106. package/lib/browser/wrapper-widgets/memory-dock-panel.d.ts.map +1 -0
  107. package/lib/browser/wrapper-widgets/memory-dock-panel.js +49 -0
  108. package/lib/browser/wrapper-widgets/memory-dock-panel.js.map +1 -0
  109. package/lib/browser/wrapper-widgets/memory-dockpanel-placeholder-widget.d.ts +24 -0
  110. package/lib/browser/wrapper-widgets/memory-dockpanel-placeholder-widget.d.ts.map +1 -0
  111. package/lib/browser/wrapper-widgets/memory-dockpanel-placeholder-widget.js +50 -0
  112. package/lib/browser/wrapper-widgets/memory-dockpanel-placeholder-widget.js.map +1 -0
  113. package/lib/browser/wrapper-widgets/memory-layout-widget.d.ts +52 -0
  114. package/lib/browser/wrapper-widgets/memory-layout-widget.d.ts.map +1 -0
  115. package/lib/browser/wrapper-widgets/memory-layout-widget.js +178 -0
  116. package/lib/browser/wrapper-widgets/memory-layout-widget.js.map +1 -0
  117. package/lib/common/util.d.ts +22 -0
  118. package/lib/common/util.d.ts.map +1 -0
  119. package/lib/common/util.js +32 -0
  120. package/lib/common/util.js.map +1 -0
  121. package/lib/common/utils.spec.d.ts +17 -0
  122. package/lib/common/utils.spec.d.ts.map +1 -0
  123. package/lib/common/utils.spec.js +47 -0
  124. package/lib/common/utils.spec.js.map +1 -0
  125. package/package.json +4 -4
@@ -0,0 +1,557 @@
1
+ "use strict";
2
+ /********************************************************************************
3
+ * Copyright (C) 2021 Ericsson and others.
4
+ *
5
+ * This program and the accompanying materials are made available under the
6
+ * terms of the Eclipse Public License v. 2.0 which is available at
7
+ * http://www.eclipse.org/legal/epl-2.0.
8
+ *
9
+ * This Source Code may also be made available under the following Secondary
10
+ * Licenses when the conditions for such availability set forth in the Eclipse
11
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ * with the GNU Classpath Exception which is available at
13
+ * https://www.gnu.org/software/classpath/license.html.
14
+ *
15
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ ********************************************************************************/
17
+ var MemoryOptionsWidget_1;
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.MemoryOptionsWidget = exports.AUTO_UPDATE_TOGGLE_ID = exports.ASCII_TOGGLE_ID = exports.ENDIAN_SELECT_ID = exports.BYTES_PER_GROUP_FIELD_ID = exports.BYTES_PER_ROW_FIELD_ID = exports.LOCATION_OFFSET_FIELD_ID = exports.LENGTH_FIELD_ID = exports.LOCATION_FIELD_ID = exports.EMPTY_MEMORY = void 0;
20
+ const tslib_1 = require("tslib");
21
+ const core_1 = require("@theia/core");
22
+ const browser_1 = require("@theia/core/lib/browser");
23
+ const promise_util_1 = require("@theia/core/lib/common/promise-util");
24
+ const inversify_1 = require("@theia/core/shared/inversify");
25
+ const React = tslib_1.__importStar(require("@theia/core/shared/react"));
26
+ const debug_session_1 = require("@theia/debug/lib/browser/debug-session");
27
+ const debug_session_manager_1 = require("@theia/debug/lib/browser/debug-session-manager");
28
+ const long_1 = tslib_1.__importDefault(require("long"));
29
+ const memory_provider_service_1 = require("../memory-provider/memory-provider-service");
30
+ const memory_recents_1 = require("../utils/memory-recents");
31
+ const memory_widget_components_1 = require("../utils/memory-widget-components");
32
+ const memory_widget_utils_1 = require("../utils/memory-widget-utils");
33
+ const multi_select_bar_1 = require("../utils/multi-select-bar");
34
+ const debounce = require("@theia/core/shared/lodash.debounce");
35
+ exports.EMPTY_MEMORY = (0, core_1.deepFreeze)({
36
+ bytes: new Uint8Array(),
37
+ address: new long_1.default(0, 0, true),
38
+ });
39
+ exports.LOCATION_FIELD_ID = 't-mv-location';
40
+ exports.LENGTH_FIELD_ID = 't-mv-length';
41
+ exports.LOCATION_OFFSET_FIELD_ID = 't-mv-location-offset';
42
+ exports.BYTES_PER_ROW_FIELD_ID = 't-mv-bytesrow';
43
+ exports.BYTES_PER_GROUP_FIELD_ID = 't-mv-bytesgroup';
44
+ exports.ENDIAN_SELECT_ID = 't-mv-endiannesss';
45
+ exports.ASCII_TOGGLE_ID = 't-mv-ascii-toggle';
46
+ exports.AUTO_UPDATE_TOGGLE_ID = 't-mv-auto-update-toggle';
47
+ let MemoryOptionsWidget = MemoryOptionsWidget_1 = class MemoryOptionsWidget extends browser_1.ReactWidget {
48
+ constructor() {
49
+ super(...arguments);
50
+ this.iconClass = 'memory-view-icon';
51
+ this.lockIconClass = 'memory-lock-icon';
52
+ this.additionalColumnSelectLabel = core_1.nls.localize('theia/memory-inspector/extraColumn', 'Extra Column');
53
+ this.sessionListeners = new core_1.DisposableCollection();
54
+ this.onOptionsChangedEmitter = new core_1.Emitter();
55
+ this.onOptionsChanged = this.onOptionsChangedEmitter.event;
56
+ this.onMemoryChangedEmitter = new core_1.Emitter();
57
+ this.onMemoryChanged = this.onMemoryChangedEmitter.event;
58
+ this.memoryReadResult = exports.EMPTY_MEMORY;
59
+ this.columnsDisplayed = {
60
+ address: {
61
+ label: core_1.nls.localizeByDefault('Address'),
62
+ doRender: true
63
+ },
64
+ data: {
65
+ label: core_1.nls.localize('theia/memory-inspector/data', 'Data'),
66
+ doRender: true
67
+ },
68
+ variables: {
69
+ label: core_1.nls.localizeByDefault('Variables'),
70
+ doRender: true
71
+ },
72
+ ascii: {
73
+ label: core_1.nls.localize('theia/memory-inspector/ascii', 'ASCII'),
74
+ doRender: false
75
+ },
76
+ };
77
+ this.byteSize = 8;
78
+ this.bytesPerGroup = 1;
79
+ this.groupsPerRow = 4;
80
+ this.variables = [];
81
+ this.endianness = memory_widget_utils_1.Interfaces.Endianness.Little;
82
+ this.memoryReadError = core_1.nls.localize('theia/memory-inspector/memory/readError/noContents', 'No memory contents currently available.');
83
+ this.address = 0;
84
+ this.offset = 0;
85
+ this.readLength = 256;
86
+ this.doDisplaySettings = false;
87
+ this.doUpdateAutomatically = true;
88
+ this.showMemoryError = false;
89
+ this.errorTimeout = undefined;
90
+ this.recentLocations = new memory_recents_1.Recents();
91
+ this.showTitleEditIcon = false;
92
+ this.isTitleEditable = false;
93
+ this.handleColumnSelectionChange = (columnLabel, doShow) => this.doHandleColumnSelectionChange(columnLabel, doShow);
94
+ this.toggleAutoUpdate = (e) => {
95
+ var _a;
96
+ if (e.nativeEvent.type === 'click') {
97
+ e.currentTarget.blur();
98
+ }
99
+ if ('key' in e && ((_a = browser_1.KeyCode.createKeyCode(e.nativeEvent).key) === null || _a === void 0 ? void 0 : _a.keyCode) === browser_1.Key.TAB.keyCode) {
100
+ return;
101
+ }
102
+ this.doUpdateAutomatically = !this.doUpdateAutomatically;
103
+ if (this.doUpdateAutomatically) {
104
+ this.title.iconClass = this.iconClass;
105
+ }
106
+ else {
107
+ this.title.iconClass = this.lockIconClass;
108
+ }
109
+ this.fireDidChangeOptions();
110
+ };
111
+ this.onByteSizeChange = (event) => {
112
+ this.byteSize = parseInt(event.target.value);
113
+ this.fireDidChangeOptions(event.target.id);
114
+ };
115
+ this.toggleDoShowSettings = (e) => {
116
+ var _a;
117
+ if (!('key' in e) || ((_a = browser_1.KeyCode.createKeyCode(e.nativeEvent).key) === null || _a === void 0 ? void 0 : _a.keyCode) === browser_1.Key.TAB.keyCode) {
118
+ this.doDisplaySettings = !this.doDisplaySettings;
119
+ this.update();
120
+ }
121
+ };
122
+ this.assignLocationRef = location => {
123
+ this.addressField = location !== null && location !== void 0 ? location : undefined;
124
+ };
125
+ this.assignReadLengthRef = readLength => {
126
+ this.readLengthField = readLength !== null && readLength !== void 0 ? readLength : undefined;
127
+ };
128
+ this.assignOffsetRef = offset => {
129
+ this.offsetField = offset !== null && offset !== void 0 ? offset : undefined;
130
+ };
131
+ this.setAddressFromSelect = (e) => {
132
+ if (this.addressField) {
133
+ this.addressField.value = e.target.value;
134
+ }
135
+ };
136
+ this.activateHeaderInputField = (e) => {
137
+ var _a, _b;
138
+ if (!this.isTitleEditable) {
139
+ const isMouseDown = !('key' in e);
140
+ const isActivationKey = 'key' in e && (((_a = browser_1.KeyCode.createKeyCode(e.nativeEvent).key) === null || _a === void 0 ? void 0 : _a.keyCode) === browser_1.Key.SPACE.keyCode
141
+ || ((_b = browser_1.KeyCode.createKeyCode(e.nativeEvent).key) === null || _b === void 0 ? void 0 : _b.keyCode) === browser_1.Key.ENTER.keyCode);
142
+ if (isMouseDown || isActivationKey) {
143
+ if (isMouseDown) {
144
+ e.currentTarget.blur();
145
+ }
146
+ this.isTitleEditable = true;
147
+ this.update();
148
+ }
149
+ }
150
+ };
151
+ this.saveHeaderInputValue = (e) => {
152
+ const isMouseDown = !('key' in e);
153
+ const isSaveKey = 'key' in e && e.key === 'Enter';
154
+ const isCancelKey = 'key' in e && e.key === 'Escape';
155
+ e.stopPropagation();
156
+ if (isMouseDown || isSaveKey || isCancelKey) {
157
+ this.updateHeader(isCancelKey);
158
+ }
159
+ };
160
+ this.assignHeaderInputRef = (element) => {
161
+ if (element) {
162
+ this.headerInputField = element;
163
+ element.focus();
164
+ }
165
+ };
166
+ this.doShowMemoryErrors = (doClearError = false) => {
167
+ if (this.errorTimeout !== undefined) {
168
+ clearTimeout(this.errorTimeout);
169
+ }
170
+ if (doClearError) {
171
+ this.showMemoryError = false;
172
+ this.update();
173
+ this.errorTimeout = undefined;
174
+ return;
175
+ }
176
+ this.showMemoryError = true;
177
+ this.update();
178
+ this.errorTimeout = setTimeout(() => {
179
+ this.showMemoryError = false;
180
+ this.update();
181
+ this.errorTimeout = undefined;
182
+ }, memory_widget_utils_1.Constants.ERROR_TIMEOUT);
183
+ };
184
+ this.doRefresh = (event) => {
185
+ if ('key' in event && event.key !== 'Enter') {
186
+ return;
187
+ }
188
+ this.updateMemoryView();
189
+ };
190
+ this.updateMemoryView = debounce(this.doUpdateMemoryView.bind(this), memory_widget_utils_1.Constants.DEBOUNCE_TIME, { trailing: true });
191
+ // Callbacks for when the various view parameters change.
192
+ /**
193
+ * Handle bytes per row changed event.
194
+ */
195
+ this.onGroupsPerRowChange = (event) => {
196
+ const { value, id } = event.target;
197
+ this.groupsPerRow = parseInt(value);
198
+ this.fireDidChangeOptions(id);
199
+ };
200
+ /**
201
+ * Handle bytes per group changed event.
202
+ */
203
+ this.onBytesPerGroupChange = (event) => {
204
+ const { value, id } = event.target;
205
+ this.bytesPerGroup = parseInt(value);
206
+ this.fireDidChangeOptions(id);
207
+ };
208
+ /**
209
+ * Handle endianness changed event.
210
+ */
211
+ this.onEndiannessChange = (event) => {
212
+ const { value, id } = event.target;
213
+ if (value !== memory_widget_utils_1.Interfaces.Endianness.Big && value !== memory_widget_utils_1.Interfaces.Endianness.Little) {
214
+ return;
215
+ }
216
+ this.endianness = value;
217
+ this.fireDidChangeOptions(id);
218
+ };
219
+ }
220
+ get memory() {
221
+ return {
222
+ ...this.memoryReadResult,
223
+ variables: this.variables,
224
+ };
225
+ }
226
+ get options() {
227
+ return this.storeState();
228
+ }
229
+ init() {
230
+ this.addClass(MemoryOptionsWidget_1.ID);
231
+ this.title.label = core_1.nls.localize('theia/memory-inspector/memory', 'Memory ({0})', this.memoryWidgetOptions.displayId);
232
+ this.title.caption = core_1.nls.localize('theia/memory-inspector/memory', 'Memory ({0})', this.memoryWidgetOptions.displayId);
233
+ this.title.iconClass = this.iconClass;
234
+ this.title.closable = true;
235
+ if (this.memoryWidgetOptions.dynamic !== false) {
236
+ this.toDispose.push(this.sessionManager.onDidChangeActiveDebugSession(({ current }) => {
237
+ this.setUpListeners(current);
238
+ }));
239
+ this.toDispose.push(this.sessionManager.onDidCreateDebugSession(current => {
240
+ this.setUpListeners(current);
241
+ }));
242
+ this.setUpListeners(this.sessionManager.currentSession);
243
+ }
244
+ this.toDispose.push(this.onOptionsChanged(() => this.update()));
245
+ this.update();
246
+ }
247
+ async setAddressAndGo(newAddress, newOffset, newLength, direction) {
248
+ let doUpdate = false;
249
+ const originalValues = {
250
+ offset: '',
251
+ length: '',
252
+ };
253
+ if (this.addressField) {
254
+ this.addressField.value = newAddress;
255
+ doUpdate = true;
256
+ }
257
+ if (this.offsetField && newOffset !== undefined) {
258
+ originalValues.offset = this.offsetField.value;
259
+ this.offsetField.value = newOffset.toString();
260
+ doUpdate = true;
261
+ }
262
+ if (this.readLengthField && newLength !== undefined) {
263
+ originalValues.length = this.readLengthField.value;
264
+ this.readLengthField.value = newLength.toString();
265
+ doUpdate = true;
266
+ }
267
+ if (doUpdate && this.readLengthField && this.offsetField) {
268
+ this.pinnedMemoryReadResult = new promise_util_1.Deferred();
269
+ this.updateMemoryView();
270
+ const result = await this.pinnedMemoryReadResult.promise;
271
+ if (result === false) {
272
+ // Memory request errored
273
+ this.readLengthField.value = originalValues.length;
274
+ this.offsetField.value = originalValues.offset;
275
+ }
276
+ if (result) {
277
+ // Memory request returned some memory
278
+ const resultLength = result.bytes.length * 8 / this.byteSize;
279
+ const lengthFieldValue = parseInt(this.readLengthField.value);
280
+ if (lengthFieldValue !== resultLength) {
281
+ this.memoryReadError = core_1.nls.localize('theia/memory-inspector/memory/readError/bounds', 'Memory bounds exceeded, result will be truncated.');
282
+ this.doShowMemoryErrors();
283
+ this.readLengthField.value = resultLength.toString();
284
+ if (direction === 'above') {
285
+ this.offsetField.value = `${parseInt(originalValues.offset) - (resultLength - parseInt(originalValues.length))}`;
286
+ }
287
+ this.update();
288
+ }
289
+ }
290
+ }
291
+ return undefined;
292
+ }
293
+ setUpListeners(session) {
294
+ this.sessionListeners.dispose();
295
+ this.sessionListeners = new core_1.DisposableCollection(core_1.Disposable.create(() => this.handleActiveSessionChange()));
296
+ if (session) {
297
+ this.sessionListeners.push(session.onDidChange(() => this.handleSessionChange()));
298
+ }
299
+ }
300
+ handleActiveSessionChange() {
301
+ const isDynamic = this.memoryWidgetOptions.dynamic !== false;
302
+ if (isDynamic && this.doUpdateAutomatically) {
303
+ this.memoryReadResult = exports.EMPTY_MEMORY;
304
+ this.fireDidChangeMemory();
305
+ }
306
+ }
307
+ handleSessionChange() {
308
+ var _a, _b;
309
+ const isStopped = ((_a = this.sessionManager.currentSession) === null || _a === void 0 ? void 0 : _a.state) === debug_session_1.DebugState.Stopped;
310
+ const isReadyForQuery = !!((_b = this.sessionManager.currentSession) === null || _b === void 0 ? void 0 : _b.currentFrame);
311
+ const isDynamic = this.memoryWidgetOptions.dynamic !== false;
312
+ if (isStopped && isReadyForQuery && isDynamic && this.doUpdateAutomatically && this.memoryReadResult !== exports.EMPTY_MEMORY) {
313
+ this.updateMemoryView();
314
+ }
315
+ }
316
+ onActivateRequest(msg) {
317
+ super.onActivateRequest(msg);
318
+ this.acceptFocus();
319
+ }
320
+ acceptFocus() {
321
+ if (this.doUpdateAutomatically) {
322
+ if (this.addressField) {
323
+ this.addressField.focus();
324
+ this.addressField.select();
325
+ }
326
+ }
327
+ else {
328
+ const settingsCog = this.node.querySelector('.toggle-settings-click-zone');
329
+ settingsCog === null || settingsCog === void 0 ? void 0 : settingsCog.focus();
330
+ }
331
+ }
332
+ doHandleColumnSelectionChange(columnLabel, doShow) {
333
+ if (columnLabel in this.columnsDisplayed) {
334
+ this.columnsDisplayed[columnLabel].doRender = doShow;
335
+ this.fireDidChangeOptions(exports.ASCII_TOGGLE_ID);
336
+ }
337
+ }
338
+ onAfterAttach(msg) {
339
+ super.onAfterAttach(msg);
340
+ if (this.memoryWidgetOptions.dynamic !== false) {
341
+ if (this.addressField) {
342
+ this.addressField.value = this.address.toString();
343
+ }
344
+ }
345
+ }
346
+ render() {
347
+ return (React.createElement("div", { className: 't-mv-container' }, this.renderInputContainer()));
348
+ }
349
+ renderInputContainer() {
350
+ return (React.createElement("div", { className: 't-mv-settings-container' },
351
+ React.createElement("div", { className: 't-mv-wrapper' },
352
+ this.renderToolbar(),
353
+ this.renderMemoryLocationGroup(),
354
+ this.doDisplaySettings && (React.createElement("div", { className: 't-mv-toggle-settings-wrapper' }, this.renderByteDisplayGroup())))));
355
+ }
356
+ renderByteDisplayGroup() {
357
+ return (React.createElement("div", { className: 't-mv-group settings-group' },
358
+ React.createElement(memory_widget_components_1.MWSelect, { id: 'byte-size-select', label: core_1.nls.localize('theia/memory-inspector/byteSize', 'Byte Size'), value: this.byteSize.toString(), onChange: this.onByteSizeChange, options: ['8', '16', '32', '64'] }),
359
+ React.createElement(memory_widget_components_1.MWSelect, { id: exports.BYTES_PER_GROUP_FIELD_ID, label: core_1.nls.localize('theia/memory-inspector/bytesPerGroup', 'Bytes Per Group'), value: this.bytesPerGroup.toString(), onChange: this.onBytesPerGroupChange, options: ['1', '2', '4', '8', '16'] }),
360
+ React.createElement(memory_widget_components_1.MWSelect, { id: exports.BYTES_PER_ROW_FIELD_ID, label: core_1.nls.localize('theia/memory-inspector/groupsPerRow', 'Groups Per Row'), value: this.groupsPerRow.toString(), onChange: this.onGroupsPerRowChange, options: ['1', '2', '4', '8', '16', '32'] }),
361
+ React.createElement(memory_widget_components_1.MWSelect, { id: exports.ENDIAN_SELECT_ID, label: core_1.nls.localize('theia/memory-inspector/endianness', 'Endianness'), value: this.endianness, onChange: this.onEndiannessChange, options: [memory_widget_utils_1.Interfaces.Endianness.Little, memory_widget_utils_1.Interfaces.Endianness.Big] }),
362
+ React.createElement(multi_select_bar_1.MWMultiSelect, { id: exports.ASCII_TOGGLE_ID, label: core_1.nls.localize('theia/memory-inspector/columns', 'Columns'), items: this.getOptionalColumns(), onSelectionChanged: this.handleColumnSelectionChange })));
363
+ }
364
+ getObligatoryColumnIds() {
365
+ return ['address', 'data'];
366
+ }
367
+ getOptionalColumns() {
368
+ const obligatoryColumns = new Set(this.getObligatoryColumnIds());
369
+ return Object.entries(this.columnsDisplayed)
370
+ .reduce((accumulated, [id, { doRender, label }]) => {
371
+ if (!obligatoryColumns.has(id)) {
372
+ accumulated.push({ id, label, defaultChecked: doRender });
373
+ }
374
+ return accumulated;
375
+ }, []);
376
+ }
377
+ renderMemoryLocationGroup() {
378
+ return (React.createElement(React.Fragment, null,
379
+ React.createElement("div", { className: 't-mv-group view-group' },
380
+ React.createElement(memory_widget_components_1.MWInputWithSelect, { id: exports.LOCATION_FIELD_ID, label: core_1.nls.localizeByDefault('Address'), title: core_1.nls.localize('theia/memory-inspector/addressTooltip', 'Memory location to display, an address or expression evaluating to an address'), defaultValue: `${this.address}`, onSelectChange: this.setAddressFromSelect, passRef: this.assignLocationRef, onKeyDown: this.doRefresh, options: [...this.recentLocations.values], disabled: !this.doUpdateAutomatically }),
381
+ React.createElement(memory_widget_components_1.MWInput, { id: exports.LOCATION_OFFSET_FIELD_ID, label: core_1.nls.localize('theia/memory-inspector/offset', 'Offset'), title: core_1.nls.localize('theia/memory-inspector/offsetTooltip', 'Offset to be added to the current memory location, when navigating'), defaultValue: '0', passRef: this.assignOffsetRef, onKeyDown: this.doRefresh, disabled: !this.doUpdateAutomatically }),
382
+ React.createElement(memory_widget_components_1.MWInput, { id: exports.LENGTH_FIELD_ID, label: core_1.nls.localize('theia/memory-inspector/length', 'Length'), title: core_1.nls.localize('theia/memory-inspector/lengthTooltip', 'Number of bytes to fetch, in decimal or hexadecimal'), defaultValue: this.readLength.toString(), passRef: this.assignReadLengthRef, onChange: memory_widget_utils_1.Utils.validateNumericalInputs, onKeyDown: this.doRefresh, disabled: !this.doUpdateAutomatically }),
383
+ React.createElement("button", { type: 'button', className: 'theia-button main view-group-go-button', onClick: this.doRefresh, disabled: !this.doUpdateAutomatically, title: core_1.nls.localizeByDefault('Go') }, core_1.nls.localizeByDefault('Go'))),
384
+ React.createElement("div", { className: `t-mv-memory-fetch-error${this.showMemoryError ? ' show' : ' hide'}` }, this.memoryReadError)));
385
+ }
386
+ updateHeader(isCancelKey) {
387
+ if (!isCancelKey && this.headerInputField) {
388
+ this.title.label = this.headerInputField.value;
389
+ this.title.caption = this.headerInputField.value;
390
+ }
391
+ this.isTitleEditable = false;
392
+ this.update();
393
+ }
394
+ renderToolbar() {
395
+ return (React.createElement("div", { className: 'memory-widget-toolbar' },
396
+ this.renderLockIcon(),
397
+ this.renderEditableTitleField(),
398
+ this.renderSettingsContainer()));
399
+ }
400
+ renderSettingsContainer() {
401
+ return React.createElement("div", { className: 'toggle-settings-container' },
402
+ React.createElement("div", { className: 'toggle-settings-click-zone no-select', tabIndex: 0, "aria-label": this.doDisplaySettings ?
403
+ core_1.nls.localize('theia/memory-inspector/memory/hideSettings', 'Hide Settings Panel') :
404
+ core_1.nls.localize('theia/memory-inspector/memory/showSettings', 'Show Settings Panel'), role: 'button', onClick: this.toggleDoShowSettings, onKeyDown: this.toggleDoShowSettings, title: this.doDisplaySettings ?
405
+ core_1.nls.localize('theia/memory-inspector/memory/hideSettings', 'Hide Settings Panel') :
406
+ core_1.nls.localize('theia/memory-inspector/memory/showSettings', 'Show Settings Panel') },
407
+ React.createElement("i", { className: 'codicon codicon-settings-gear' }),
408
+ React.createElement("span", null, this.doDisplaySettings ?
409
+ core_1.nls.localize('theia/memory-inspector/closeSettings', 'Close Settings') :
410
+ core_1.nls.localizeByDefault('Settings'))));
411
+ }
412
+ renderLockIcon() {
413
+ return this.memoryWidgetOptions.dynamic !== false && (React.createElement("div", { className: 'memory-widget-auto-updates-container' },
414
+ React.createElement("div", { className: `fa fa-${this.doUpdateAutomatically ? 'unlock' : 'lock'}`, id: exports.AUTO_UPDATE_TOGGLE_ID, title: this.doUpdateAutomatically ?
415
+ core_1.nls.localize('theia/memory-inspector/memory/freeze', 'Freeze Memory View') :
416
+ core_1.nls.localize('theia/memory-inspector/memory/unfreeze', 'Unfreeze Memory View'), onClick: this.toggleAutoUpdate, onKeyDown: this.toggleAutoUpdate, role: 'button', tabIndex: 0 })));
417
+ }
418
+ renderEditableTitleField() {
419
+ return (React.createElement("div", { className: 'memory-widget-header-click-zone', tabIndex: 0, onClick: this.activateHeaderInputField, onKeyDown: this.activateHeaderInputField, role: 'button' },
420
+ !this.isTitleEditable
421
+ ? (React.createElement("h2", { className: `${MemoryOptionsWidget_1.WIDGET_H2_CLASS}${!this.doUpdateAutomatically ? ' disabled' : ''} no-select` }, this.title.label))
422
+ : React.createElement("input", { className: 'theia-input', type: 'text', defaultValue: this.title.label, onKeyDown: this.saveHeaderInputValue, spellCheck: false, ref: this.assignHeaderInputRef }),
423
+ !this.isTitleEditable && (React.createElement("div", { className: `fa fa-pencil${this.showTitleEditIcon ? ' show' : ' hide'}` })),
424
+ this.isTitleEditable && (React.createElement("div", { className: 'fa fa-save', onClick: this.saveHeaderInputValue, onKeyDown: this.saveHeaderInputValue, role: 'button', tabIndex: 0, title: core_1.nls.localizeByDefault('Save') }))));
425
+ }
426
+ storeState() {
427
+ var _a, _b, _c, _d, _e, _f;
428
+ return {
429
+ address: (_b = (_a = this.addressField) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : this.address,
430
+ offset: (_d = parseInt(`${(_c = this.offsetField) === null || _c === void 0 ? void 0 : _c.value}`)) !== null && _d !== void 0 ? _d : this.offset,
431
+ length: (_f = parseInt(`${(_e = this.readLengthField) === null || _e === void 0 ? void 0 : _e.value}`)) !== null && _f !== void 0 ? _f : this.readLength,
432
+ byteSize: this.byteSize,
433
+ bytesPerGroup: this.bytesPerGroup,
434
+ groupsPerRow: this.groupsPerRow,
435
+ endianness: this.endianness,
436
+ doDisplaySettings: this.doDisplaySettings,
437
+ columnsDisplayed: this.columnsDisplayed,
438
+ recentLocationsArray: this.recentLocations.values,
439
+ isFrozen: !this.doUpdateAutomatically,
440
+ doUpdateAutomatically: this.doUpdateAutomatically,
441
+ };
442
+ }
443
+ restoreState(oldState) {
444
+ var _a, _b, _c, _d, _e, _f, _g, _h;
445
+ this.address = (_a = oldState.address) !== null && _a !== void 0 ? _a : this.address;
446
+ this.offset = (_b = oldState.offset) !== null && _b !== void 0 ? _b : this.offset;
447
+ this.readLength = (_c = oldState.length) !== null && _c !== void 0 ? _c : this.readLength;
448
+ this.byteSize = (_d = oldState.byteSize) !== null && _d !== void 0 ? _d : this.byteSize;
449
+ this.bytesPerGroup = (_e = oldState.bytesPerGroup) !== null && _e !== void 0 ? _e : this.bytesPerGroup;
450
+ this.groupsPerRow = (_f = oldState.groupsPerRow) !== null && _f !== void 0 ? _f : this.groupsPerRow;
451
+ this.endianness = (_g = oldState.endianness) !== null && _g !== void 0 ? _g : this.endianness;
452
+ this.recentLocations = (_h = new memory_recents_1.Recents(oldState.recentLocationsArray)) !== null && _h !== void 0 ? _h : this.recentLocations;
453
+ this.doDisplaySettings = !!oldState.doDisplaySettings;
454
+ if (oldState.columnsDisplayed) {
455
+ this.columnsDisplayed = oldState.columnsDisplayed;
456
+ }
457
+ }
458
+ fetchNewMemory() {
459
+ this.updateMemoryView();
460
+ }
461
+ async doUpdateMemoryView() {
462
+ var _a, _b;
463
+ if (!(this.addressField && this.readLengthField)) {
464
+ return;
465
+ }
466
+ if (((_a = this.addressField) === null || _a === void 0 ? void 0 : _a.value.trim().length) === 0) {
467
+ this.memoryReadError = core_1.nls.localize('theia/memory-inspector/memory/addressField/memoryReadError', 'Enter an address or expression in the Location field.');
468
+ this.doShowMemoryErrors();
469
+ return;
470
+ }
471
+ if (this.readLengthField.value.trim().length === 0) {
472
+ this.memoryReadError = core_1.nls.localize('theia/memory-inspector/memory/readLength/memoryReadError', 'Enter a length (decimal or hexadecimal number) in the Length field.');
473
+ this.doShowMemoryErrors();
474
+ return;
475
+ }
476
+ const startAddress = this.addressField.value;
477
+ const locationOffset = parseInt(`${(_b = this.offsetField) === null || _b === void 0 ? void 0 : _b.value}`) || 0;
478
+ const readLength = parseInt(this.readLengthField.value);
479
+ try {
480
+ this.memoryReadResult = await this.getMemory(startAddress, readLength, locationOffset);
481
+ this.fireDidChangeMemory();
482
+ if (this.pinnedMemoryReadResult) {
483
+ this.pinnedMemoryReadResult.resolve(this.memoryReadResult);
484
+ }
485
+ this.doShowMemoryErrors(true);
486
+ }
487
+ catch (err) {
488
+ this.memoryReadError = this.getUserError(err);
489
+ console.error('Failed to read memory', err);
490
+ this.doShowMemoryErrors();
491
+ if (this.pinnedMemoryReadResult) {
492
+ this.pinnedMemoryReadResult.resolve(this.memoryReadResult);
493
+ }
494
+ }
495
+ finally {
496
+ this.pinnedMemoryReadResult = undefined;
497
+ this.update();
498
+ }
499
+ }
500
+ getUserError(err) {
501
+ return err instanceof Error ? err.message : core_1.nls.localize('theia/memory-inspector/memory/userError', 'There was an error fetching memory.');
502
+ }
503
+ async getMemory(memoryReference, count, offset) {
504
+ const result = await this.retrieveMemory(memoryReference, count, offset);
505
+ try {
506
+ this.variables = await this.memoryProvider.getLocals();
507
+ }
508
+ catch {
509
+ this.variables = [];
510
+ }
511
+ this.recentLocations.add(memoryReference);
512
+ this.updateDefaults(memoryReference, count, offset);
513
+ return result;
514
+ }
515
+ async retrieveMemory(memoryReference, count, offset) {
516
+ return this.memoryProvider.readMemory({ memoryReference, count, offset });
517
+ }
518
+ // TODO: This may not be necessary if we change how state is stored (currently in the text fields themselves.)
519
+ updateDefaults(address, readLength, offset) {
520
+ this.address = address;
521
+ this.readLength = readLength;
522
+ this.offset = offset;
523
+ }
524
+ fireDidChangeOptions(targetId) {
525
+ this.onOptionsChangedEmitter.fire(targetId);
526
+ }
527
+ fireDidChangeMemory() {
528
+ this.onMemoryChangedEmitter.fire(this.memoryReadResult);
529
+ }
530
+ };
531
+ exports.MemoryOptionsWidget = MemoryOptionsWidget;
532
+ MemoryOptionsWidget.ID = 'memory-view-options-widget';
533
+ MemoryOptionsWidget.LABEL = core_1.nls.localize('theia/memory-inspector/memoryTitle', 'Memory');
534
+ MemoryOptionsWidget.WIDGET_H2_CLASS = 'memory-widget-header';
535
+ MemoryOptionsWidget.WIDGET_HEADER_INPUT_CLASS = 'memory-widget-header-input';
536
+ tslib_1.__decorate([
537
+ (0, inversify_1.inject)(memory_provider_service_1.MemoryProviderService),
538
+ tslib_1.__metadata("design:type", memory_provider_service_1.MemoryProviderService)
539
+ ], MemoryOptionsWidget.prototype, "memoryProvider", void 0);
540
+ tslib_1.__decorate([
541
+ (0, inversify_1.inject)(debug_session_manager_1.DebugSessionManager),
542
+ tslib_1.__metadata("design:type", debug_session_manager_1.DebugSessionManager)
543
+ ], MemoryOptionsWidget.prototype, "sessionManager", void 0);
544
+ tslib_1.__decorate([
545
+ (0, inversify_1.inject)(memory_widget_utils_1.MemoryWidgetOptions),
546
+ tslib_1.__metadata("design:type", Object)
547
+ ], MemoryOptionsWidget.prototype, "memoryWidgetOptions", void 0);
548
+ tslib_1.__decorate([
549
+ (0, inversify_1.postConstruct)(),
550
+ tslib_1.__metadata("design:type", Function),
551
+ tslib_1.__metadata("design:paramtypes", []),
552
+ tslib_1.__metadata("design:returntype", void 0)
553
+ ], MemoryOptionsWidget.prototype, "init", null);
554
+ exports.MemoryOptionsWidget = MemoryOptionsWidget = MemoryOptionsWidget_1 = tslib_1.__decorate([
555
+ (0, inversify_1.injectable)()
556
+ ], MemoryOptionsWidget);
557
+ //# sourceMappingURL=memory-options-widget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-options-widget.js","sourceRoot":"","sources":["../../../src/browser/memory-widget/memory-options-widget.tsx"],"names":[],"mappings":"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"}