@theia/debug 1.67.0-next.59 → 1.67.0

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 (145) hide show
  1. package/lib/browser/breakpoint/breakpoint-manager.js +1 -1
  2. package/lib/browser/breakpoint/breakpoint-manager.js.map +1 -1
  3. package/lib/browser/console/debug-console-items.d.ts +13 -3
  4. package/lib/browser/console/debug-console-items.d.ts.map +1 -1
  5. package/lib/browser/console/debug-console-items.js +81 -20
  6. package/lib/browser/console/debug-console-items.js.map +1 -1
  7. package/lib/browser/console/debug-console-session.d.ts.map +1 -1
  8. package/lib/browser/console/debug-console-session.js +1 -0
  9. package/lib/browser/console/debug-console-session.js.map +1 -1
  10. package/lib/browser/debug-commands.d.ts +153 -0
  11. package/lib/browser/debug-commands.d.ts.map +1 -0
  12. package/lib/browser/debug-commands.js +399 -0
  13. package/lib/browser/debug-commands.js.map +1 -0
  14. package/lib/browser/debug-frontend-application-contribution.d.ts +1 -150
  15. package/lib/browser/debug-frontend-application-contribution.d.ts.map +1 -1
  16. package/lib/browser/debug-frontend-application-contribution.js +155 -532
  17. package/lib/browser/debug-frontend-application-contribution.js.map +1 -1
  18. package/lib/browser/debug-prefix-configuration.js +3 -3
  19. package/lib/browser/debug-prefix-configuration.js.map +1 -1
  20. package/lib/browser/debug-session-contribution.d.ts +2 -1
  21. package/lib/browser/debug-session-contribution.d.ts.map +1 -1
  22. package/lib/browser/debug-session-contribution.js +5 -1
  23. package/lib/browser/debug-session-contribution.js.map +1 -1
  24. package/lib/browser/debug-session-manager.d.ts +11 -3
  25. package/lib/browser/debug-session-manager.d.ts.map +1 -1
  26. package/lib/browser/debug-session-manager.js +49 -8
  27. package/lib/browser/debug-session-manager.js.map +1 -1
  28. package/lib/browser/debug-session.d.ts +9 -3
  29. package/lib/browser/debug-session.d.ts.map +1 -1
  30. package/lib/browser/debug-session.js +13 -3
  31. package/lib/browser/debug-session.js.map +1 -1
  32. package/lib/browser/editor/debug-hover-source.d.ts +1 -0
  33. package/lib/browser/editor/debug-hover-source.d.ts.map +1 -1
  34. package/lib/browser/editor/debug-hover-source.js +9 -0
  35. package/lib/browser/editor/debug-hover-source.js.map +1 -1
  36. package/lib/browser/editor/debug-inline-value-decorator.js +1 -1
  37. package/lib/browser/editor/debug-inline-value-decorator.js.map +1 -1
  38. package/lib/browser/model/debug-breakpoint.d.ts +4 -2
  39. package/lib/browser/model/debug-breakpoint.d.ts.map +1 -1
  40. package/lib/browser/model/debug-breakpoint.js +10 -2
  41. package/lib/browser/model/debug-breakpoint.js.map +1 -1
  42. package/lib/browser/model/debug-data-breakpoint.d.ts +2 -0
  43. package/lib/browser/model/debug-data-breakpoint.d.ts.map +1 -1
  44. package/lib/browser/model/debug-data-breakpoint.js +16 -5
  45. package/lib/browser/model/debug-data-breakpoint.js.map +1 -1
  46. package/lib/browser/model/debug-function-breakpoint.d.ts +3 -0
  47. package/lib/browser/model/debug-function-breakpoint.d.ts.map +1 -1
  48. package/lib/browser/model/debug-function-breakpoint.js +17 -1
  49. package/lib/browser/model/debug-function-breakpoint.js.map +1 -1
  50. package/lib/browser/model/debug-instruction-breakpoint.d.ts +2 -0
  51. package/lib/browser/model/debug-instruction-breakpoint.d.ts.map +1 -1
  52. package/lib/browser/model/debug-instruction-breakpoint.js +13 -1
  53. package/lib/browser/model/debug-instruction-breakpoint.js.map +1 -1
  54. package/lib/browser/model/debug-source-breakpoint.d.ts +6 -1
  55. package/lib/browser/model/debug-source-breakpoint.d.ts.map +1 -1
  56. package/lib/browser/model/debug-source-breakpoint.js +17 -1
  57. package/lib/browser/model/debug-source-breakpoint.js.map +1 -1
  58. package/lib/browser/model/debug-stack-frame.d.ts +2 -2
  59. package/lib/browser/model/debug-stack-frame.d.ts.map +1 -1
  60. package/lib/browser/model/debug-stack-frame.js +13 -5
  61. package/lib/browser/model/debug-stack-frame.js.map +1 -1
  62. package/lib/browser/model/debug-thread.d.ts +2 -2
  63. package/lib/browser/model/debug-thread.d.ts.map +1 -1
  64. package/lib/browser/model/debug-thread.js +13 -9
  65. package/lib/browser/model/debug-thread.js.map +1 -1
  66. package/lib/browser/view/debug-action.d.ts +1 -0
  67. package/lib/browser/view/debug-action.d.ts.map +1 -1
  68. package/lib/browser/view/debug-action.js +2 -2
  69. package/lib/browser/view/debug-action.js.map +1 -1
  70. package/lib/browser/view/debug-breakpoints-source.d.ts +2 -0
  71. package/lib/browser/view/debug-breakpoints-source.d.ts.map +1 -1
  72. package/lib/browser/view/debug-breakpoints-source.js +6 -1
  73. package/lib/browser/view/debug-breakpoints-source.js.map +1 -1
  74. package/lib/browser/view/debug-configuration-widget.js +2 -2
  75. package/lib/browser/view/debug-configuration-widget.js.map +1 -1
  76. package/lib/browser/view/debug-exception-breakpoint.d.ts +9 -2
  77. package/lib/browser/view/debug-exception-breakpoint.d.ts.map +1 -1
  78. package/lib/browser/view/debug-exception-breakpoint.js +26 -5
  79. package/lib/browser/view/debug-exception-breakpoint.js.map +1 -1
  80. package/lib/browser/view/debug-session-widget.d.ts +0 -1
  81. package/lib/browser/view/debug-session-widget.d.ts.map +1 -1
  82. package/lib/browser/view/debug-session-widget.js +0 -4
  83. package/lib/browser/view/debug-session-widget.js.map +1 -1
  84. package/lib/browser/view/debug-threads-widget.d.ts +6 -1
  85. package/lib/browser/view/debug-threads-widget.d.ts.map +1 -1
  86. package/lib/browser/view/debug-threads-widget.js +69 -5
  87. package/lib/browser/view/debug-threads-widget.js.map +1 -1
  88. package/lib/browser/view/debug-toolbar-widget.d.ts +5 -18
  89. package/lib/browser/view/debug-toolbar-widget.d.ts.map +1 -1
  90. package/lib/browser/view/debug-toolbar-widget.js +14 -58
  91. package/lib/browser/view/debug-toolbar-widget.js.map +1 -1
  92. package/lib/browser/view/debug-variables-source.d.ts.map +1 -1
  93. package/lib/browser/view/debug-variables-source.js +1 -0
  94. package/lib/browser/view/debug-variables-source.js.map +1 -1
  95. package/lib/browser/view/debug-variables-widget.d.ts +15 -0
  96. package/lib/browser/view/debug-variables-widget.d.ts.map +1 -1
  97. package/lib/browser/view/debug-variables-widget.js +56 -1
  98. package/lib/browser/view/debug-variables-widget.js.map +1 -1
  99. package/lib/browser/view/debug-view-model.d.ts +4 -0
  100. package/lib/browser/view/debug-view-model.d.ts.map +1 -1
  101. package/lib/browser/view/debug-view-model.js +18 -9
  102. package/lib/browser/view/debug-view-model.js.map +1 -1
  103. package/lib/browser/view/debug-watch-expression.d.ts.map +1 -1
  104. package/lib/browser/view/debug-watch-expression.js +4 -5
  105. package/lib/browser/view/debug-watch-expression.js.map +1 -1
  106. package/lib/browser/view/debug-watch-source.d.ts.map +1 -1
  107. package/lib/browser/view/debug-watch-source.js +1 -0
  108. package/lib/browser/view/debug-watch-source.js.map +1 -1
  109. package/lib/common/debug-preferences.d.ts +1 -0
  110. package/lib/common/debug-preferences.d.ts.map +1 -1
  111. package/lib/common/debug-preferences.js +11 -1
  112. package/lib/common/debug-preferences.js.map +1 -1
  113. package/package.json +16 -16
  114. package/src/browser/breakpoint/breakpoint-manager.ts +1 -1
  115. package/src/browser/console/debug-console-items.tsx +90 -21
  116. package/src/browser/console/debug-console-session.ts +1 -0
  117. package/src/browser/debug-commands.ts +402 -0
  118. package/src/browser/debug-frontend-application-contribution.ts +35 -410
  119. package/src/browser/debug-prefix-configuration.ts +1 -1
  120. package/src/browser/debug-session-contribution.ts +7 -2
  121. package/src/browser/debug-session-manager.ts +62 -9
  122. package/src/browser/debug-session.tsx +17 -4
  123. package/src/browser/editor/debug-hover-source.tsx +6 -2
  124. package/src/browser/editor/debug-inline-value-decorator.ts +1 -1
  125. package/src/browser/model/debug-breakpoint.tsx +12 -3
  126. package/src/browser/model/debug-data-breakpoint.tsx +21 -6
  127. package/src/browser/model/debug-function-breakpoint.tsx +22 -1
  128. package/src/browser/model/debug-instruction-breakpoint.tsx +16 -1
  129. package/src/browser/model/debug-source-breakpoint.tsx +24 -3
  130. package/src/browser/model/debug-stack-frame.tsx +13 -6
  131. package/src/browser/model/debug-thread.tsx +14 -10
  132. package/src/browser/style/index.css +30 -5
  133. package/src/browser/view/debug-action.tsx +3 -2
  134. package/src/browser/view/debug-breakpoints-source.tsx +5 -1
  135. package/src/browser/view/debug-configuration-widget.tsx +1 -1
  136. package/src/browser/view/debug-exception-breakpoint.tsx +30 -5
  137. package/src/browser/view/debug-session-widget.ts +0 -5
  138. package/src/browser/view/debug-threads-widget.ts +84 -6
  139. package/src/browser/view/debug-toolbar-widget.tsx +13 -60
  140. package/src/browser/view/debug-variables-source.ts +1 -0
  141. package/src/browser/view/debug-variables-widget.ts +59 -0
  142. package/src/browser/view/debug-view-model.ts +20 -8
  143. package/src/browser/view/debug-watch-expression.tsx +5 -6
  144. package/src/browser/view/debug-watch-source.ts +1 -0
  145. package/src/common/debug-preferences.ts +12 -1
@@ -9,6 +9,7 @@ export declare class DebugConfiguration {
9
9
  'debug.showInStatusBar': 'never' | 'always' | 'onFirstSessionStart';
10
10
  'debug.confirmOnExit': 'never' | 'always';
11
11
  'debug.disassemblyView.showSourceCode': boolean;
12
+ 'debug.autoExpandLazyVariables': 'on' | 'off';
12
13
  }
13
14
  export declare const DebugPreferenceContribution: unique symbol;
14
15
  export declare const DebugPreferences: unique symbol;
@@ -1 +1 @@
1
- {"version":3,"file":"debug-preferences.d.ts","sourceRoot":"","sources":["../../src/common/debug-preferences.ts"],"names":[],"mappings":"AAiBA,OAAO,EAA0B,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAyB,MAAM,oCAAoC,CAAC;AACzJ,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,eAAO,MAAM,sBAAsB,EAAE,gBAgDpC,CAAC;AAEF,qBAAa,kBAAkB;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,WAAW,GAAG,oBAAoB,GAAG,yBAAyB,GAAG,kBAAkB,CAAC;IACvG,8BAA8B,EAAE,WAAW,GAAG,oBAAoB,GAAG,yBAAyB,CAAC;IAC/F,oBAAoB,EAAE,OAAO,CAAC;IAC9B,uBAAuB,EAAE,OAAO,GAAG,QAAQ,GAAG,qBAAqB,CAAC;IACpE,qBAAqB,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC1C,sCAAsC,EAAE,OAAO,CAAC;CACnD;AAED,eAAO,MAAM,2BAA2B,eAAwC,CAAC;AACjF,eAAO,MAAM,gBAAgB,eAA6B,CAAC;AAC3D,MAAM,MAAM,gBAAgB,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;AAEnE,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,iBAAiB,EAAE,MAAM,GAAE,gBAAyC,GAAG,gBAAgB,CAE1I;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,GAAG,IAAI,CAQhE"}
1
+ {"version":3,"file":"debug-preferences.d.ts","sourceRoot":"","sources":["../../src/common/debug-preferences.ts"],"names":[],"mappings":"AAiBA,OAAO,EAA0B,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAyB,MAAM,oCAAoC,CAAC;AACzJ,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,eAAO,MAAM,sBAAsB,EAAE,gBA0DpC,CAAC;AAEF,qBAAa,kBAAkB;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,WAAW,GAAG,oBAAoB,GAAG,yBAAyB,GAAG,kBAAkB,CAAC;IACvG,8BAA8B,EAAE,WAAW,GAAG,oBAAoB,GAAG,yBAAyB,CAAC;IAC/F,oBAAoB,EAAE,OAAO,CAAC;IAC9B,uBAAuB,EAAE,OAAO,GAAG,QAAQ,GAAG,qBAAqB,CAAC;IACpE,qBAAqB,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC1C,sCAAsC,EAAE,OAAO,CAAC;IAChD,+BAA+B,EAAE,IAAI,GAAG,KAAK,CAAC;CACjD;AAED,eAAO,MAAM,2BAA2B,eAAwC,CAAC;AACjF,eAAO,MAAM,gBAAgB,eAA6B,CAAC;AAC3D,MAAM,MAAM,gBAAgB,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;AAEnE,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,iBAAiB,EAAE,MAAM,GAAE,gBAAyC,GAAG,gBAAgB,CAE1I;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,GAAG,IAAI,CAQhE"}
@@ -64,7 +64,17 @@ exports.debugPreferencesSchema = {
64
64
  description: nls_1.nls.localizeByDefault('Show Source Code in Disassembly View.'),
65
65
  type: 'boolean',
66
66
  default: true,
67
- }
67
+ },
68
+ 'debug.autoExpandLazyVariables': {
69
+ type: 'string',
70
+ enum: ['on', 'off'],
71
+ default: 'off',
72
+ enumDescriptions: [
73
+ nls_1.nls.localizeByDefault('Always automatically expand lazy variables.'),
74
+ nls_1.nls.localizeByDefault('Never automatically expand lazy variables.')
75
+ ],
76
+ description: nls_1.nls.localizeByDefault('Controls whether variables that are lazily resolved, such as getters, are automatically resolved and expanded by the debugger.')
77
+ },
68
78
  }
69
79
  };
70
80
  class DebugConfiguration {
@@ -1 +1 @@
1
- {"version":3,"file":"debug-preferences.js","sourceRoot":"","sources":["../../src/common/debug-preferences.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"debug-preferences.js","sourceRoot":"","sources":["../../src/common/debug-preferences.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,22 +1,22 @@
1
1
  {
2
2
  "name": "@theia/debug",
3
- "version": "1.67.0-next.59+3f14297ea",
3
+ "version": "1.67.0",
4
4
  "description": "Theia - Debug Extension",
5
5
  "dependencies": {
6
- "@theia/console": "1.67.0-next.59+3f14297ea",
7
- "@theia/core": "1.67.0-next.59+3f14297ea",
8
- "@theia/editor": "1.67.0-next.59+3f14297ea",
9
- "@theia/filesystem": "1.67.0-next.59+3f14297ea",
10
- "@theia/markers": "1.67.0-next.59+3f14297ea",
11
- "@theia/monaco": "1.67.0-next.59+3f14297ea",
6
+ "@theia/console": "1.67.0",
7
+ "@theia/core": "1.67.0",
8
+ "@theia/editor": "1.67.0",
9
+ "@theia/filesystem": "1.67.0",
10
+ "@theia/markers": "1.67.0",
11
+ "@theia/monaco": "1.67.0",
12
12
  "@theia/monaco-editor-core": "1.96.302",
13
- "@theia/output": "1.67.0-next.59+3f14297ea",
14
- "@theia/process": "1.67.0-next.59+3f14297ea",
15
- "@theia/task": "1.67.0-next.59+3f14297ea",
16
- "@theia/terminal": "1.67.0-next.59+3f14297ea",
17
- "@theia/test": "1.67.0-next.59+3f14297ea",
18
- "@theia/variable-resolver": "1.67.0-next.59+3f14297ea",
19
- "@theia/workspace": "1.67.0-next.59+3f14297ea",
13
+ "@theia/output": "1.67.0",
14
+ "@theia/process": "1.67.0",
15
+ "@theia/task": "1.67.0",
16
+ "@theia/terminal": "1.67.0",
17
+ "@theia/test": "1.67.0",
18
+ "@theia/variable-resolver": "1.67.0",
19
+ "@theia/workspace": "1.67.0",
20
20
  "@vscode/debugprotocol": "^1.51.0",
21
21
  "fast-deep-equal": "^3.1.3",
22
22
  "jsonc-parser": "^2.2.0",
@@ -59,10 +59,10 @@
59
59
  "watch": "theiaext watch"
60
60
  },
61
61
  "devDependencies": {
62
- "@theia/ext-scripts": "1.66.0"
62
+ "@theia/ext-scripts": "1.67.0"
63
63
  },
64
64
  "nyc": {
65
65
  "extends": "../../configs/nyc.json"
66
66
  },
67
- "gitHead": "3f14297ea2edcdb1fffd74afee0613e70b43e125"
67
+ "gitHead": "541860e34f1351442be3a1c998fb618472afcefd"
68
68
  }
@@ -329,7 +329,7 @@ export class BreakpointManager extends MarkerManager<SourceBreakpoint> {
329
329
 
330
330
  removeDataBreakpoint(id: string): void {
331
331
  const index = this.dataBreakpoints.findIndex(bp => bp.id === id);
332
- if (~index) { return; }
332
+ if (index < 0) { return; }
333
333
  const removed = this.dataBreakpoints.splice(index);
334
334
  this.fireOnDidChangeMarkers(BreakpointManager.DATA_URI);
335
335
  this.onDidChangeDataBreakpointsEmitter.fire({ uri: BreakpointManager.DATA_URI, added: [], removed, changed: [] });
@@ -16,12 +16,12 @@
16
16
 
17
17
  import * as React from '@theia/core/shared/react';
18
18
  import { DebugProtocol } from '@vscode/debugprotocol/lib/debugProtocol';
19
- import { SingleTextInputDialog } from '@theia/core/lib/browser';
19
+ import { codicon, SingleTextInputDialog } from '@theia/core/lib/browser';
20
20
  import { ConsoleItem, CompositeConsoleItem } from '@theia/console/lib/browser/console-session';
21
21
  import { DebugSession, formatMessage } from '../debug-session';
22
22
  import { Severity } from '@theia/core/lib/common/severity';
23
23
  import * as monaco from '@theia/monaco-editor-core';
24
- import { nls } from '@theia/core';
24
+ import { generateUuid, nls } from '@theia/core';
25
25
 
26
26
  export type DebugSessionProvider = () => DebugSession | undefined;
27
27
 
@@ -34,17 +34,24 @@ export class ExpressionContainer implements CompositeConsoleItem {
34
34
  return this.sessionProvider();
35
35
  }
36
36
 
37
+ readonly id: string | number;
37
38
  protected variablesReference: number;
38
39
  protected namedVariables: number | undefined;
39
40
  protected indexedVariables: number | undefined;
41
+ protected presentationHint: DebugProtocol.VariablePresentationHint | undefined;
40
42
  protected readonly startOfVariables: number;
41
43
 
42
44
  constructor(options: ExpressionContainer.Options) {
43
45
  this.sessionProvider = options.session;
46
+ this.id = options.id ?? generateUuid();
44
47
  this.variablesReference = options.variablesReference || 0;
45
48
  this.namedVariables = options.namedVariables;
46
49
  this.indexedVariables = options.indexedVariables;
47
50
  this.startOfVariables = options.startOfVariables || 0;
51
+ this.presentationHint = options.presentationHint;
52
+ if (this.lazy) {
53
+ (this as CompositeConsoleItem).expandByDefault = () => !this.lazy && !this.session?.autoExpandLazyVariables;
54
+ }
48
55
  }
49
56
 
50
57
  render(): React.ReactNode {
@@ -56,7 +63,31 @@ export class ExpressionContainer implements CompositeConsoleItem {
56
63
  }
57
64
 
58
65
  get hasElements(): boolean {
59
- return this.variablesReference !== undefined;
66
+ return !!this.variablesReference && !this.lazy;
67
+ }
68
+
69
+ get lazy(): boolean {
70
+ return !!this.presentationHint?.lazy;
71
+ }
72
+
73
+ async resolveLazy(): Promise<void> {
74
+ const { session, variablesReference, lazy } = this;
75
+ if (!session || !variablesReference || !lazy) {
76
+ return;
77
+ }
78
+ const response = await session.sendRequest('variables', { variablesReference });
79
+ const { variables } = response.body;
80
+ if (variables.length !== 1) {
81
+ return;
82
+ }
83
+ this.handleResolvedLazy(variables[0]);
84
+ }
85
+
86
+ protected handleResolvedLazy(resolved: DebugProtocol.Variable): void {
87
+ this.variablesReference = resolved.variablesReference;
88
+ this.namedVariables = resolved.namedVariables;
89
+ this.indexedVariables = resolved.indexedVariables;
90
+ this.presentationHint = resolved.presentationHint;
60
91
  }
61
92
 
62
93
  protected elements: Promise<ExpressionContainer[]> | undefined;
@@ -85,13 +116,15 @@ export class ExpressionContainer implements CompositeConsoleItem {
85
116
  const start = this.startOfVariables + i * chunkSize;
86
117
  const count = Math.min(chunkSize, this.indexedVariables - i * chunkSize);
87
118
  const { variablesReference } = this;
119
+ const name = `[${start}..${start + count - 1}]`;
88
120
  result.push(new DebugVirtualVariable({
89
121
  session: this.sessionProvider,
122
+ id: `${this.id}:${name}`,
90
123
  variablesReference,
91
124
  namedVariables: 0,
92
125
  indexedVariables: count,
93
126
  startOfVariables: start,
94
- name: `[${start}..${start + count - 1}]`
127
+ name
95
128
  }));
96
129
  }
97
130
  return result;
@@ -105,14 +138,23 @@ export class ExpressionContainer implements CompositeConsoleItem {
105
138
  protected fetch(result: ConsoleItem[], filter: 'indexed', start: number, count?: number): Promise<void>;
106
139
  protected async fetch(result: ConsoleItem[], filter: 'indexed' | 'named', start?: number, count?: number): Promise<void> {
107
140
  try {
108
- const { variablesReference } = this;
109
- const response = await this.session!.sendRequest('variables', { variablesReference, filter, start, count });
110
- const { variables } = response.body;
111
- const names = new Set<string>();
112
- for (const variable of variables) {
113
- if (!names.has(variable.name)) {
114
- result.push(new DebugVariable(this.sessionProvider, variable, this));
115
- names.add(variable.name);
141
+ const { session } = this;
142
+ if (session) {
143
+ const { variablesReference } = this;
144
+ const response = await session.sendRequest('variables', { variablesReference, filter, start, count });
145
+ const { variables } = response.body;
146
+ const names = new Set<string>();
147
+ const debugVariables: DebugVariable[] = [];
148
+ for (const variable of variables) {
149
+ if (!names.has(variable.name)) {
150
+ const v = new DebugVariable(this.sessionProvider, variable, this);
151
+ debugVariables.push(v);
152
+ result.push(v);
153
+ names.add(variable.name);
154
+ }
155
+ }
156
+ if (session.autoExpandLazyVariables) {
157
+ await Promise.all(debugVariables.map(v => v.lazy && v.resolveLazy()));
116
158
  }
117
159
  }
118
160
  } catch (e) {
@@ -128,10 +170,12 @@ export class ExpressionContainer implements CompositeConsoleItem {
128
170
  export namespace ExpressionContainer {
129
171
  export interface Options {
130
172
  session: DebugSessionProvider,
173
+ id?: string | number,
131
174
  variablesReference?: number
132
175
  namedVariables?: number
133
176
  indexedVariables?: number
134
177
  startOfVariables?: number
178
+ presentationHint?: DebugProtocol.VariablePresentationHint
135
179
  }
136
180
  }
137
181
 
@@ -147,9 +191,11 @@ export class DebugVariable extends ExpressionContainer {
147
191
  ) {
148
192
  super({
149
193
  session,
194
+ id: `${parent.id}:${variable.name}`,
150
195
  variablesReference: variable.variablesReference,
151
196
  namedVariables: variable.namedVariables,
152
- indexedVariables: variable.indexedVariables
197
+ indexedVariables: variable.indexedVariables,
198
+ presentationHint: variable.presentationHint
153
199
  });
154
200
  }
155
201
 
@@ -169,17 +215,20 @@ export class DebugVariable extends ExpressionContainer {
169
215
  }
170
216
 
171
217
  get readOnly(): boolean {
172
- return this.variable.presentationHint?.attributes?.includes('readOnly') ?? false;
218
+ return this.presentationHint?.attributes?.includes('readOnly') || this.lazy;
173
219
  }
174
220
 
175
221
  override render(): React.ReactNode {
176
- const { type, value, name } = this;
222
+ const { type, value, name, lazy } = this;
177
223
  return <div className={this.variableClassName}>
178
- <span title={type || name} className='name' ref={this.setNameRef}>{name}{!!value && ': '}</span>
179
- <span title={value} ref={this.setValueRef}>{value}</span>
224
+ <span title={type || name} className='name' ref={this.setNameRef}>{name}{(value || lazy) && ': '}</span>
225
+ {lazy && <span title={nls.localizeByDefault('Click to expand')} className={codicon('eye') + ' lazy-button'} onClick={this.handleLazyButtonClick} />}
226
+ <span title={value} className='value' ref={this.setValueRef}>{value}</span>
180
227
  </div>;
181
228
  }
182
229
 
230
+ private readonly handleLazyButtonClick = () => this.resolveLazy();
231
+
183
232
  protected get variableClassName(): string {
184
233
  const { type, value } = this;
185
234
  const classNames = ['theia-debug-console-variable'];
@@ -195,6 +244,13 @@ export class DebugVariable extends ExpressionContainer {
195
244
  return classNames.join(' ');
196
245
  }
197
246
 
247
+ protected override handleResolvedLazy(resolved: DebugProtocol.Variable): void {
248
+ this._value = resolved.value;
249
+ this._type = resolved.type || this._type;
250
+ super.handleResolvedLazy(resolved);
251
+ this.session?.['onDidResolveLazyVariableEmitter'].fire(this);
252
+ }
253
+
198
254
  get supportSetVariable(): boolean {
199
255
  return !!this.session && !!this.session.capabilities.supportsSetVariable;
200
256
  }
@@ -312,9 +368,10 @@ export class ExpressionItem extends ExpressionContainer {
312
368
 
313
369
  constructor(
314
370
  protected _expression: string,
315
- session: DebugSessionProvider
371
+ session: DebugSessionProvider,
372
+ id?: string | number
316
373
  ) {
317
- super({ session });
374
+ super({ session, id });
318
375
  }
319
376
 
320
377
  get expression(): string {
@@ -333,7 +390,7 @@ export class ExpressionItem extends ExpressionContainer {
333
390
  </div>;
334
391
  }
335
392
 
336
- async evaluate(context: string = 'repl'): Promise<void> {
393
+ async evaluate(context: string = 'repl', resolveLazy = true): Promise<void> {
337
394
  const session = this.session;
338
395
  if (!session?.currentFrame) {
339
396
  this.setResult(undefined, ExpressionItem.notAvailable);
@@ -343,6 +400,9 @@ export class ExpressionItem extends ExpressionContainer {
343
400
  try {
344
401
  const body = await session.evaluate(this._expression, context);
345
402
  this.setResult(body);
403
+ if (this.lazy && resolveLazy) {
404
+ await this.resolveLazy();
405
+ }
346
406
  } catch (err) {
347
407
  this.setResult(undefined, err.message);
348
408
  }
@@ -356,6 +416,7 @@ export class ExpressionItem extends ExpressionContainer {
356
416
  this.variablesReference = body.variablesReference;
357
417
  this.namedVariables = body.namedVariables;
358
418
  this.indexedVariables = body.indexedVariables;
419
+ this.presentationHint = body.presentationHint;
359
420
  this.severity = Severity.Log;
360
421
  } else {
361
422
  this._value = error;
@@ -364,21 +425,29 @@ export class ExpressionItem extends ExpressionContainer {
364
425
  this.variablesReference = 0;
365
426
  this.namedVariables = undefined;
366
427
  this.indexedVariables = undefined;
428
+ this.presentationHint = undefined;
367
429
  this.severity = Severity.Error;
368
430
  }
369
431
  this.elements = undefined;
370
432
  }
371
433
 
434
+ protected override handleResolvedLazy(resolved: DebugProtocol.Variable): void {
435
+ this._value = resolved.value;
436
+ this._type = resolved.type || this._type;
437
+ super.handleResolvedLazy(resolved);
438
+ }
372
439
  }
373
440
 
374
441
  export class DebugScope extends ExpressionContainer {
375
442
 
376
443
  constructor(
377
444
  protected readonly raw: DebugProtocol.Scope,
378
- session: DebugSessionProvider
445
+ session: DebugSessionProvider,
446
+ id: number
379
447
  ) {
380
448
  super({
381
449
  session,
450
+ id: `${raw.name}:${id}`,
382
451
  variablesReference: raw.variablesReference,
383
452
  namedVariables: raw.namedVariables,
384
453
  indexedVariables: raw.indexedVariables
@@ -85,6 +85,7 @@ export class DebugConsoleSession extends ConsoleSession {
85
85
  triggerCharacters: ['.'],
86
86
  provideCompletionItems: (model, position) => this.completions(model, position),
87
87
  }));
88
+ this.toDispose.push(this.sessionManager.onDidResolveLazyVariable(() => this.fireDidChange()));
88
89
  }
89
90
 
90
91
  getElements(): IterableIterator<ConsoleItem> {