@opensumi/ide-debug 2.21.9-rc-1671176957.0 → 2.21.9

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 (182) hide show
  1. package/lib/browser/debug-configuration-manager.js +1 -1
  2. package/lib/browser/debug-configuration-manager.js.map +1 -1
  3. package/lib/browser/debug-session-manager.js +1 -1
  4. package/lib/browser/debug-session-manager.js.map +1 -1
  5. package/lib/browser/debug-session.d.ts.map +1 -1
  6. package/lib/browser/debug-session.js +1 -5
  7. package/lib/browser/debug-session.js.map +1 -1
  8. package/lib/browser/index.d.ts.map +1 -1
  9. package/lib/browser/index.js +9 -2
  10. package/lib/browser/index.js.map +1 -1
  11. package/lib/browser/preferences/launch-folder-preference-provider.d.ts +2 -2
  12. package/lib/browser/preferences/launch-folder-preference-provider.d.ts.map +1 -1
  13. package/lib/browser/preferences/launch-folder-preference-provider.js +2 -2
  14. package/lib/browser/preferences/launch-folder-preference-provider.js.map +1 -1
  15. package/lib/browser/view/configuration/debug-configuration.module.less +5 -5
  16. package/lib/browser/view/configuration/debug-configuration.view.d.ts.map +1 -1
  17. package/lib/browser/view/configuration/debug-configuration.view.js +1 -1
  18. package/lib/browser/view/configuration/debug-configuration.view.js.map +1 -1
  19. package/lib/browser/view/configuration/debug-toolbar.view.js +2 -2
  20. package/lib/browser/view/configuration/debug-toolbar.view.js.map +1 -1
  21. package/lib/browser/view/console/debug-console.module.less +1 -2
  22. package/lib/browser/view/console/debug-console.view.js +2 -2
  23. package/lib/browser/view/console/debug-console.view.js.map +1 -1
  24. package/lib/browser/view/frames/debug-call-stack-frame.view.d.ts.map +1 -1
  25. package/lib/browser/view/frames/debug-call-stack-frame.view.js +24 -32
  26. package/lib/browser/view/frames/debug-call-stack-frame.view.js.map +1 -1
  27. package/lib/browser/view/frames/debug-call-stack-session.view.d.ts.map +1 -1
  28. package/lib/browser/view/frames/debug-call-stack-session.view.js +5 -8
  29. package/lib/browser/view/frames/debug-call-stack-session.view.js.map +1 -1
  30. package/lib/browser/view/frames/debug-call-stack-thread.view.d.ts.map +1 -1
  31. package/lib/browser/view/frames/debug-call-stack-thread.view.js +7 -12
  32. package/lib/browser/view/frames/debug-call-stack-thread.view.js.map +1 -1
  33. package/lib/browser/view/variables/debug-variables.module.less +1 -2
  34. package/lib/browser/view/variables/debug-variables.view.js +1 -1
  35. package/lib/browser/view/variables/debug-variables.view.js.map +1 -1
  36. package/lib/browser/view/watch/debug-watch.module.less +1 -2
  37. package/lib/browser/view/watch/debug-watch.view.js +1 -1
  38. package/lib/browser/view/watch/debug-watch.view.js.map +1 -1
  39. package/package.json +24 -25
  40. package/src/browser/assets/breakpoint-conditional-disabled.svg +0 -4
  41. package/src/browser/assets/breakpoint-conditional-unverified.svg +0 -4
  42. package/src/browser/assets/breakpoint-conditional.svg +0 -4
  43. package/src/browser/assets/breakpoint-disabled.svg +0 -4
  44. package/src/browser/assets/breakpoint-hint.svg +0 -4
  45. package/src/browser/assets/breakpoint-log-disabled.svg +0 -4
  46. package/src/browser/assets/breakpoint-log-unverified.svg +0 -4
  47. package/src/browser/assets/breakpoint-log.svg +0 -4
  48. package/src/browser/assets/breakpoint-unsupported.svg +0 -4
  49. package/src/browser/assets/breakpoint-unverified.svg +0 -4
  50. package/src/browser/assets/breakpoint.svg +0 -4
  51. package/src/browser/assets/breakpoints-activate-inverse.svg +0 -4
  52. package/src/browser/assets/breakpoints-activate.svg +0 -4
  53. package/src/browser/assets/configure-inverse.svg +0 -4
  54. package/src/browser/assets/configure.svg +0 -4
  55. package/src/browser/assets/continue-inverse.svg +0 -4
  56. package/src/browser/assets/current-and-breakpoint.svg +0 -4
  57. package/src/browser/assets/current-arrow.svg +0 -4
  58. package/src/browser/assets/remove-all-inverse.svg +0 -4
  59. package/src/browser/assets/remove-all.svg +0 -4
  60. package/src/browser/assets/repl-inverse.svg +0 -4
  61. package/src/browser/assets/repl.svg +0 -4
  62. package/src/browser/assets/restart-inverse.svg +0 -4
  63. package/src/browser/assets/stackframe-and-breakpoint.svg +0 -4
  64. package/src/browser/assets/stackframe-arrow.svg +0 -4
  65. package/src/browser/assets/start-inverse.svg +0 -4
  66. package/src/browser/breakpoint/breakpoint-decoration.ts +0 -57
  67. package/src/browser/breakpoint/breakpoint-manager.ts +0 -348
  68. package/src/browser/breakpoint/breakpoint-marker.ts +0 -70
  69. package/src/browser/breakpoint/index.ts +0 -3
  70. package/src/browser/components/debug-action/index.module.less +0 -73
  71. package/src/browser/components/debug-action/index.tsx +0 -40
  72. package/src/browser/components/debug-exception-widget.less +0 -42
  73. package/src/browser/components/floating-click-widget/index.module.less +0 -5
  74. package/src/browser/components/floating-click-widget/index.tsx +0 -21
  75. package/src/browser/components/index.ts +0 -1
  76. package/src/browser/contextkeys/debug-call-stack-item-type-key.ts +0 -4
  77. package/src/browser/contextkeys/debug-contextkey.service.ts +0 -54
  78. package/src/browser/contextkeys/index.ts +0 -1
  79. package/src/browser/debug-ansi-handle.ts +0 -521
  80. package/src/browser/debug-configuration-manager.ts +0 -513
  81. package/src/browser/debug-configuration-model.ts +0 -66
  82. package/src/browser/debug-contribution.ts +0 -904
  83. package/src/browser/debug-exception-widget.tsx +0 -89
  84. package/src/browser/debug-link-detector.ts +0 -234
  85. package/src/browser/debug-memory.ts +0 -220
  86. package/src/browser/debug-preferences.ts +0 -70
  87. package/src/browser/debug-progress.service.ts +0 -122
  88. package/src/browser/debug-schema-updater.ts +0 -67
  89. package/src/browser/debug-service.ts +0 -42
  90. package/src/browser/debug-session-connection.ts +0 -333
  91. package/src/browser/debug-session-contribution.ts +0 -57
  92. package/src/browser/debug-session-manager.ts +0 -622
  93. package/src/browser/debug-session.ts +0 -1182
  94. package/src/browser/debug-style.less +0 -128
  95. package/src/browser/debugUtils.ts +0 -110
  96. package/src/browser/editor/debug-breakpoint-widget.ts +0 -99
  97. package/src/browser/editor/debug-breakpoint-zone-widget.tsx +0 -262
  98. package/src/browser/editor/debug-breakpoint.module.less +0 -31
  99. package/src/browser/editor/debug-editor-contribution.ts +0 -590
  100. package/src/browser/editor/debug-expression-provider.ts +0 -101
  101. package/src/browser/editor/debug-hover-model.ts +0 -38
  102. package/src/browser/editor/debug-hover-source.ts +0 -107
  103. package/src/browser/editor/debug-hover-tree.model.service.ts +0 -332
  104. package/src/browser/editor/debug-hover-widget.tsx +0 -200
  105. package/src/browser/editor/debug-hover.module.less +0 -29
  106. package/src/browser/editor/debug-hover.view.tsx +0 -147
  107. package/src/browser/editor/debug-model-manager.ts +0 -220
  108. package/src/browser/editor/debug-model.ts +0 -853
  109. package/src/browser/editor/debug-run-to-cursor.service.ts +0 -180
  110. package/src/browser/editor/debug-styles.ts +0 -66
  111. package/src/browser/editor/evaluatable-expression.ts +0 -47
  112. package/src/browser/editor/index.ts +0 -6
  113. package/src/browser/index.ts +0 -121
  114. package/src/browser/markers/index.ts +0 -2
  115. package/src/browser/markers/marker-manager.ts +0 -201
  116. package/src/browser/markers/marker.ts +0 -20
  117. package/src/browser/model/debug-source.ts +0 -144
  118. package/src/browser/model/debug-stack-frame.ts +0 -111
  119. package/src/browser/model/debug-thread.ts +0 -186
  120. package/src/browser/model/debug-watch.ts +0 -130
  121. package/src/browser/model/index.ts +0 -4
  122. package/src/browser/preferences/launch-folder-preference-provider.ts +0 -23
  123. package/src/browser/preferences/launch-preferences-contribution.ts +0 -9
  124. package/src/browser/preferences/launch-preferences.ts +0 -16
  125. package/src/browser/tree/debug-console-tree-node.define.tsx +0 -76
  126. package/src/browser/tree/debug-tree-node.define.ts +0 -768
  127. package/src/browser/tree/index.ts +0 -2
  128. package/src/browser/view/breakpoints/debug-breakpoints.module.less +0 -72
  129. package/src/browser/view/breakpoints/debug-breakpoints.service.ts +0 -217
  130. package/src/browser/view/breakpoints/debug-breakpoints.view.tsx +0 -174
  131. package/src/browser/view/configuration/debug-configuration.module.less +0 -110
  132. package/src/browser/view/configuration/debug-configuration.service.ts +0 -170
  133. package/src/browser/view/configuration/debug-configuration.view.tsx +0 -252
  134. package/src/browser/view/configuration/debug-toolbar.service.ts +0 -167
  135. package/src/browser/view/configuration/debug-toolbar.view.tsx +0 -335
  136. package/src/browser/view/console/debug-console-filter.model.ts +0 -49
  137. package/src/browser/view/console/debug-console-filter.service.ts +0 -81
  138. package/src/browser/view/console/debug-console-filter.view.tsx +0 -78
  139. package/src/browser/view/console/debug-console-model.ts +0 -48
  140. package/src/browser/view/console/debug-console-session.ts +0 -164
  141. package/src/browser/view/console/debug-console-toolbar.view.tsx +0 -28
  142. package/src/browser/view/console/debug-console-tree.model.service.ts +0 -550
  143. package/src/browser/view/console/debug-console.contribution.ts +0 -181
  144. package/src/browser/view/console/debug-console.module.less +0 -373
  145. package/src/browser/view/console/debug-console.service.ts +0 -433
  146. package/src/browser/view/console/debug-console.view.tsx +0 -500
  147. package/src/browser/view/debug-view-model.ts +0 -182
  148. package/src/browser/view/frames/debug-call-stack-frame.view.tsx +0 -238
  149. package/src/browser/view/frames/debug-call-stack-session.view.tsx +0 -253
  150. package/src/browser/view/frames/debug-call-stack-thread.view.tsx +0 -103
  151. package/src/browser/view/frames/debug-call-stack.contribution.ts +0 -88
  152. package/src/browser/view/frames/debug-call-stack.module.less +0 -193
  153. package/src/browser/view/frames/debug-call-stack.operation.tsx +0 -97
  154. package/src/browser/view/frames/debug-call-stack.service.ts +0 -105
  155. package/src/browser/view/frames/debug-call-stack.view.tsx +0 -43
  156. package/src/browser/view/variables/debug-variables-model.ts +0 -38
  157. package/src/browser/view/variables/debug-variables-tree.model.service.ts +0 -467
  158. package/src/browser/view/variables/debug-variables.contribution.ts +0 -244
  159. package/src/browser/view/variables/debug-variables.module.less +0 -149
  160. package/src/browser/view/variables/debug-variables.view.tsx +0 -303
  161. package/src/browser/view/watch/debug-watch-model.ts +0 -38
  162. package/src/browser/view/watch/debug-watch-tree.model.service.ts +0 -567
  163. package/src/browser/view/watch/debug-watch.contribution.ts +0 -167
  164. package/src/browser/view/watch/debug-watch.module.less +0 -189
  165. package/src/browser/view/watch/debug-watch.view.tsx +0 -337
  166. package/src/common/constants.ts +0 -81
  167. package/src/common/debug-breakpoint.ts +0 -43
  168. package/src/common/debug-configuration.ts +0 -68
  169. package/src/common/debug-editor.ts +0 -4
  170. package/src/common/debug-hover.ts +0 -31
  171. package/src/common/debug-model.ts +0 -247
  172. package/src/common/debug-progress.ts +0 -8
  173. package/src/common/debug-schema-updater.ts +0 -1
  174. package/src/common/debug-service.ts +0 -176
  175. package/src/common/debug-session-options.ts +0 -19
  176. package/src/common/debug-session.ts +0 -200
  177. package/src/common/evaluatable-expression.ts +0 -43
  178. package/src/common/index.ts +0 -14
  179. package/src/common/inline-values.ts +0 -77
  180. package/src/common/terminal.ts +0 -163
  181. package/src/common/types.ts +0 -86
  182. package/src/index.ts +0 -1
@@ -1,149 +0,0 @@
1
- .debug_variables_node {
2
- height: 22px;
3
- line-height: 22px;
4
- display: flex;
5
- flex-direction: column;
6
- position: relative;
7
- cursor: pointer;
8
-
9
- &:hover {
10
- color: var(--kt-tree-hoverForeground);
11
- background: var(--kt-tree-hoverBackground);
12
- }
13
-
14
- &.mod_selected {
15
- color: var(--kt-tree-inactiveSelectionForeground) !important;
16
- background: var(--kt-tree-inactiveSelectionBackground);
17
- .expansion_toggle {
18
- color: var(--kt-tree-inactiveSelectionForeground) !important;
19
- }
20
- }
21
-
22
- &.mod_focused {
23
- outline: 1px solid var(--list-focusOutline);
24
- color: var(--kt-tree-activeSelectionForeground) !important;
25
- background: var(--kt-tree-activeSelectionBackground);
26
- .expansion_toggle {
27
- color: var(--kt-tree-activeSelectionForeground) !important;
28
- }
29
- }
30
-
31
- &.mod_actived {
32
- outline: 1px solid var(--list-focusOutline);
33
- outline-offset: -1px;
34
- .expansion_toggle {
35
- color: var(--kt-tree-activeSelectionForeground) !important;
36
- }
37
- }
38
-
39
- &.mod_loading {
40
- opacity: 0.8;
41
- }
42
- }
43
-
44
- .debug_variables_node_content {
45
- position: relative;
46
- display: flex;
47
- align-items: center;
48
- width: 100%;
49
- user-select: text;
50
- match {
51
- background-color: var(--editor-findMatchHighlightBackground);
52
- }
53
- }
54
-
55
- .debug_variables_node_status {
56
- opacity: 0.75;
57
- text-align: center;
58
- font-size: 12px;
59
- padding-right: 0;
60
- }
61
-
62
- .debug_variables_node_segment {
63
- flex-grow: 0;
64
- white-space: nowrap;
65
- color: inherit;
66
- }
67
-
68
- .debug_variables_node_displayname {
69
- margin-right: 6px;
70
- display: inline;
71
- white-space: pre;
72
- }
73
-
74
- .debug_variables_node_description {
75
- display: inline;
76
- transform: scale(0.96);
77
- color: var(--descriptionForeground);
78
- }
79
-
80
- .debug_variables_node_overflow_wrap {
81
- flex: 1;
82
- flex-shrink: 0;
83
- overflow: hidden;
84
- text-overflow: ellipsis;
85
- white-space: nowrap;
86
- text-align: left;
87
- color: var(--foreground);
88
- }
89
-
90
- .expansion_toggle {
91
- min-width: 20px;
92
- display: flex;
93
- justify-content: center;
94
- flex-shrink: 0;
95
- font-size: 16px;
96
- color: var(--foreground);
97
- &.mod_collapsed {
98
- &:before {
99
- display: block;
100
- }
101
- }
102
-
103
- &:not(.mod_collapsed) {
104
- &:before {
105
- display: block;
106
- transform: rotate(90deg);
107
- }
108
- }
109
- }
110
-
111
- .debug_variables_node_tail {
112
- text-align: center;
113
- margin-right: 10px;
114
- position: relative;
115
- height: 22px;
116
- display: flex;
117
- align-items: center;
118
- }
119
-
120
- // variable
121
- .debug_variables_variable {
122
- white-space: nowrap;
123
- overflow: hidden;
124
- text-overflow: ellipsis;
125
- overflow: visible;
126
- &.value {
127
- color: var(--debugTokenExpression-value);
128
- }
129
-
130
- &.name {
131
- color: var(--debugTokenExpression-name);
132
- }
133
-
134
- &.error {
135
- color: var(--debugTokenExpression-error);
136
- }
137
-
138
- &.number {
139
- color: var(--debugTokenExpression-number);
140
- }
141
-
142
- &.boolean {
143
- color: var(--debugTokenExpression-boolean);
144
- }
145
-
146
- &.string {
147
- color: var(--debugTokenExpression-string);
148
- }
149
- }
@@ -1,303 +0,0 @@
1
- import cls from 'classnames';
2
- import { observer } from 'mobx-react-lite';
3
- import React from 'react';
4
-
5
- import {
6
- INodeRendererProps,
7
- ClasslistComposite,
8
- IRecycleTreeHandle,
9
- TreeNodeType,
10
- RecycleTree,
11
- INodeRendererWrapProps,
12
- TreeModel,
13
- CompositeTreeNode,
14
- } from '@opensumi/ide-components';
15
- import { Loading } from '@opensumi/ide-components';
16
- import { useInjectable, getIcon } from '@opensumi/ide-core-browser';
17
- import { ViewState } from '@opensumi/ide-core-browser';
18
-
19
- import {
20
- ExpressionContainer,
21
- ExpressionNode,
22
- DebugVariableContainer,
23
- DebugVariable,
24
- DebugScope,
25
- } from '../../tree/debug-tree-node.define';
26
-
27
- import { DebugVariablesModelService } from './debug-variables-tree.model.service';
28
- import styles from './debug-variables.module.less';
29
-
30
- export const DEBUG_VARIABLE_TREE_FIELD_NAME = 'DEBUG_VARIABLE_TREE_FIELD';
31
-
32
- export const DebugVariableView = observer(({ viewState }: React.PropsWithChildren<{ viewState: ViewState }>) => {
33
- const DEBUG_VARIABLE_ITEM_HEIGHT = 22;
34
-
35
- const { width, height } = viewState;
36
-
37
- const wrapperRef: React.RefObject<HTMLDivElement> = React.createRef();
38
- const [model, setModel] = React.useState<TreeModel>();
39
-
40
- const debugVariablesModelService = useInjectable<DebugVariablesModelService>(DebugVariablesModelService);
41
-
42
- React.useEffect(() => {
43
- const disposable = debugVariablesModelService.onDidUpdateTreeModel(async (nextModel: TreeModel) => {
44
- setModel(nextModel);
45
- });
46
-
47
- return () => {
48
- disposable.dispose();
49
- debugVariablesModelService.removeNodeDecoration();
50
- setModel(undefined);
51
- };
52
- }, []);
53
-
54
- const handleTreeReady = (handle: IRecycleTreeHandle) => {
55
- debugVariablesModelService.handleTreeHandler({
56
- ...handle,
57
- hasDirectFocus: () => wrapperRef.current === document.activeElement,
58
- });
59
- };
60
-
61
- const handleTwistierClick = (
62
- ev: React.MouseEvent,
63
- item: ExpressionNode | ExpressionContainer,
64
- type: TreeNodeType,
65
- ) => {
66
- // 阻止点击事件冒泡
67
- ev.stopPropagation();
68
-
69
- const { handleTwistierClick } = debugVariablesModelService;
70
- if (!item) {
71
- return;
72
- }
73
- handleTwistierClick(item, type);
74
- };
75
-
76
- const handlerContextMenu = (
77
- ev: React.MouseEvent,
78
- node: DebugScope | DebugVariable | DebugVariableContainer | undefined,
79
- ) => {
80
- const { handleContextMenu } = debugVariablesModelService;
81
- handleContextMenu(ev, node);
82
- };
83
-
84
- const handleOuterContextMenu = (ev: React.MouseEvent) => {
85
- const { handleContextMenu } = debugVariablesModelService;
86
- // 空白区域右键菜单
87
- handleContextMenu(ev);
88
- };
89
-
90
- const handleOuterClick = (ev: React.MouseEvent) => {
91
- // 空白区域点击,取消焦点状态
92
- const { enactiveNodeDecoration } = debugVariablesModelService;
93
- enactiveNodeDecoration();
94
- };
95
-
96
- const handleOuterBlur = (ev: React.FocusEvent) => {
97
- // 空白区域点击,取消焦点状态
98
- const { enactiveNodeDecoration } = debugVariablesModelService;
99
- enactiveNodeDecoration();
100
- };
101
-
102
- const renderVariableNode = React.useCallback(
103
- (props: INodeRendererWrapProps) => {
104
- const decorations = debugVariablesModelService.decorations.getDecorations(props.item as any);
105
- return (
106
- <DebugVariableRenderedNode
107
- item={props.item}
108
- itemType={props.itemType}
109
- decorations={decorations}
110
- onClick={handleTwistierClick}
111
- onTwistierClick={handleTwistierClick}
112
- onContextMenu={handlerContextMenu}
113
- defaultLeftPadding={0}
114
- leftPadding={8}
115
- />
116
- );
117
- },
118
- [model],
119
- );
120
-
121
- const renderContent = () => {
122
- if (!model) {
123
- return <span></span>;
124
- } else {
125
- return (
126
- <RecycleTree
127
- height={height}
128
- width={width}
129
- itemHeight={DEBUG_VARIABLE_ITEM_HEIGHT}
130
- onReady={handleTreeReady}
131
- model={model!}
132
- placeholder={() => <span></span>}
133
- overflow={'auto'}
134
- >
135
- {renderVariableNode}
136
- </RecycleTree>
137
- );
138
- }
139
- };
140
-
141
- return (
142
- <div
143
- className={styles.debug_variables_container}
144
- tabIndex={-1}
145
- ref={wrapperRef}
146
- onContextMenu={handleOuterContextMenu}
147
- onClick={handleOuterClick}
148
- onBlur={handleOuterBlur}
149
- data-name={DEBUG_VARIABLE_TREE_FIELD_NAME}
150
- >
151
- {renderContent()}
152
- </div>
153
- );
154
- });
155
-
156
- export interface IDebugVariableNodeProps {
157
- item: any;
158
- defaultLeftPadding?: number;
159
- leftPadding?: number;
160
- decorations?: ClasslistComposite;
161
- onClick: (ev: React.MouseEvent, item: ExpressionNode | ExpressionContainer, type: TreeNodeType) => void;
162
- onTwistierClick: (ev: React.MouseEvent, item: ExpressionNode | ExpressionContainer, type: TreeNodeType) => void;
163
- onContextMenu?: (
164
- ev: React.MouseEvent,
165
- item: DebugScope | DebugVariableContainer | DebugVariable | undefined,
166
- type: TreeNodeType,
167
- ) => void;
168
- }
169
-
170
- export type IDebugVariableNodeRenderedProps = IDebugVariableNodeProps & INodeRendererProps;
171
-
172
- export const DebugVariableRenderedNode: React.FC<IDebugVariableNodeRenderedProps> = ({
173
- item,
174
- decorations,
175
- defaultLeftPadding,
176
- leftPadding,
177
- onClick,
178
- onTwistierClick,
179
- onContextMenu,
180
- itemType,
181
- }: IDebugVariableNodeRenderedProps) => {
182
- const handleClick = (ev: React.MouseEvent) => {
183
- onClick(ev, item, CompositeTreeNode.is(item) ? TreeNodeType.CompositeTreeNode : TreeNodeType.TreeNode);
184
- };
185
-
186
- const handleContextMenu = (ev: React.MouseEvent) => {
187
- if (ev.nativeEvent.which === 0) {
188
- return;
189
- }
190
- if (itemType === TreeNodeType.TreeNode || itemType === TreeNodeType.CompositeTreeNode) {
191
- onContextMenu && onContextMenu(ev, item, itemType);
192
- }
193
- };
194
-
195
- const paddingLeft = `${
196
- (defaultLeftPadding || 8) + (item.depth || 0) * (leftPadding || 0) + (ExpressionContainer.is(item) ? 0 : 16)
197
- }px`;
198
-
199
- const editorNodeStyle = {
200
- height: DEBUG_VARIABLE_TREE_NODE_HEIGHT,
201
- lineHeight: `${DEBUG_VARIABLE_TREE_NODE_HEIGHT}px`,
202
- paddingLeft,
203
- } as React.CSSProperties;
204
-
205
- const renderDisplayName = (node: ExpressionContainer | ExpressionNode) => (
206
- <div
207
- className={cls(
208
- styles.debug_variables_node_segment,
209
- styles.debug_variables_node_displayname,
210
- styles.debug_variables_variable,
211
- (node as DebugVariable).description ? styles.name : '',
212
- )}
213
- >
214
- {node.displayName}
215
- {(node as DebugVariable).description ? ':' : ''}
216
- </div>
217
- );
218
-
219
- const renderDescription = (node: ExpressionContainer | ExpressionNode) => {
220
- const booleanRegex = /^true|false$/i;
221
- const stringRegex = /^(['"]).*\1$/;
222
- const description = (node as DebugVariableContainer).description
223
- ? (node as DebugVariableContainer).description.replace('function', 'ƒ ')
224
- : '';
225
- const addonClass = [styles.debug_variables_variable];
226
- if (item.variableType === 'number' || item.variableType === 'boolean' || item.variableType === 'string') {
227
- addonClass.push(styles[item.variableType]);
228
- } else if (!isNaN(+description)) {
229
- addonClass.push(styles.number);
230
- } else if (booleanRegex.test(description)) {
231
- addonClass.push(styles.boolean);
232
- } else if (stringRegex.test(description)) {
233
- addonClass.push(styles.string);
234
- }
235
- return (
236
- <div
237
- className={cls(
238
- styles.debug_variables_node_segment_grow,
239
- styles.debug_variables_node_description,
240
- ...addonClass,
241
- )}
242
- >
243
- {description}
244
- </div>
245
- );
246
- };
247
-
248
- const renderStatusTail = () => (
249
- <div className={cls(styles.debug_variables_node_segment, styles.debug_variables_node_tail)}>{renderBadge()}</div>
250
- );
251
-
252
- const renderBadge = () => <div className={styles.debug_variables_node_status}>{item.badge}</div>;
253
-
254
- const renderToggle = (node: ExpressionContainer, clickHandler: any) => {
255
- const handleTwiceClick = (ev: React.MouseEvent) => {
256
- clickHandler(ev, node, itemType);
257
- };
258
- if (decorations && decorations?.classlist.indexOf(styles.mod_loading) > -1) {
259
- return (
260
- <div className={cls(styles.debug_variables_node_segment, styles.expansion_toggle)}>
261
- <Loading />
262
- </div>
263
- );
264
- }
265
- return (
266
- <div
267
- onClick={handleTwiceClick}
268
- className={cls(styles.debug_variables_node_segment, styles.expansion_toggle, getIcon('right'), {
269
- [`${styles.mod_collapsed}`]: !(node as ExpressionContainer).expanded,
270
- })}
271
- />
272
- );
273
- };
274
-
275
- const renderTwice = (item) => {
276
- if (CompositeTreeNode.is(item)) {
277
- return renderToggle(item as ExpressionContainer, onTwistierClick);
278
- }
279
- };
280
-
281
- return (
282
- <div
283
- key={item.id}
284
- onClick={handleClick}
285
- onContextMenu={handleContextMenu}
286
- title={item.description || ''}
287
- className={cls(styles.debug_variables_node, decorations ? decorations.classlist : null)}
288
- style={editorNodeStyle}
289
- data-id={item.id}
290
- >
291
- <div className={cls(styles.debug_variables_node_content)}>
292
- {renderTwice(item)}
293
- <div className={styles.debug_variables_node_overflow_wrap}>
294
- {renderDisplayName(item)}
295
- {renderDescription(item)}
296
- </div>
297
- {renderStatusTail()}
298
- </div>
299
- </div>
300
- );
301
- };
302
-
303
- export const DEBUG_VARIABLE_TREE_NODE_HEIGHT = 22;
@@ -1,38 +0,0 @@
1
- import { Injectable, Optional } from '@opensumi/di';
2
- import { TreeModel, TreeNodeEvent, CompositeTreeNode } from '@opensumi/ide-components';
3
- import { ThrottledDelayer, Emitter, Event } from '@opensumi/ide-core-browser';
4
-
5
- import { ExpressionContainer } from '../../tree/debug-tree-node.define';
6
-
7
- @Injectable({ multiple: true })
8
- export class DebugWatchModel extends TreeModel {
9
- static DEFAULT_FLUSH_DELAY = 100;
10
-
11
- private flushDispatchChangeDelayer = new ThrottledDelayer<void>(DebugWatchModel.DEFAULT_FLUSH_DELAY);
12
- private onWillUpdateEmitter: Emitter<void> = new Emitter();
13
-
14
- constructor(@Optional() root: ExpressionContainer) {
15
- super();
16
- this.init(root);
17
- }
18
-
19
- get onWillUpdate(): Event<void> {
20
- return this.onWillUpdateEmitter.event;
21
- }
22
-
23
- init(root: CompositeTreeNode) {
24
- this.root = root;
25
- // 分支更新时通知树刷新, 不是立即更新,而是延迟更新,待树稳定后再更新
26
- // 100ms的延迟并不能保证树稳定,特别是在node_modules展开的情况下
27
- // 但在普通使用上已经足够可用,即不会有渲染闪烁问题
28
- this.root.watcher.on(TreeNodeEvent.BranchDidUpdate, () => {
29
- if (!this.flushDispatchChangeDelayer.isTriggered()) {
30
- this.flushDispatchChangeDelayer.cancel();
31
- }
32
- this.flushDispatchChangeDelayer.trigger(async () => {
33
- await this.onWillUpdateEmitter.fireAndAwait();
34
- this.dispatchChange();
35
- });
36
- });
37
- }
38
- }