@theia/debug 1.68.0-next.9 → 1.68.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.
- package/lib/browser/breakpoint/breakpoint-manager.js +10 -10
- package/lib/browser/breakpoint/breakpoint-manager.js.map +1 -1
- package/lib/browser/breakpoint/breakpoint-marker.js +4 -6
- package/lib/browser/breakpoint/breakpoint-marker.js.map +1 -1
- package/lib/browser/breakpoint/debug-data-breakpoint-actions.js +7 -10
- package/lib/browser/breakpoint/debug-data-breakpoint-actions.js.map +1 -1
- package/lib/browser/console/debug-console-contribution.d.ts +16 -4
- package/lib/browser/console/debug-console-contribution.d.ts.map +1 -1
- package/lib/browser/console/debug-console-contribution.js +158 -44
- package/lib/browser/console/debug-console-contribution.js.map +1 -1
- package/lib/browser/console/debug-console-items.d.ts +0 -1
- package/lib/browser/console/debug-console-items.d.ts.map +1 -1
- package/lib/browser/console/debug-console-items.js +11 -16
- package/lib/browser/console/debug-console-items.js.map +1 -1
- package/lib/browser/console/debug-console-session.d.ts +9 -1
- package/lib/browser/console/debug-console-session.d.ts.map +1 -1
- package/lib/browser/console/debug-console-session.js +59 -4
- package/lib/browser/console/debug-console-session.js.map +1 -1
- package/lib/browser/debug-commands.js +3 -3
- package/lib/browser/debug-commands.js.map +1 -1
- package/lib/browser/debug-configuration-manager.js +8 -14
- package/lib/browser/debug-configuration-manager.js.map +1 -1
- package/lib/browser/debug-frontend-application-contribution.js +17 -21
- package/lib/browser/debug-frontend-application-contribution.js.map +1 -1
- package/lib/browser/debug-prefix-configuration.js +4 -4
- package/lib/browser/debug-prefix-configuration.js.map +1 -1
- package/lib/browser/debug-session-manager.js +4 -5
- package/lib/browser/debug-session-manager.js.map +1 -1
- package/lib/browser/debug-session-options.js +1 -2
- package/lib/browser/debug-session-options.js.map +1 -1
- package/lib/browser/debug-session.d.ts +0 -1
- package/lib/browser/debug-session.d.ts.map +1 -1
- package/lib/browser/debug-session.js +13 -19
- package/lib/browser/debug-session.js.map +1 -1
- package/lib/browser/disassembly-view/disassembly-view-breakpoint-renderer.js +7 -10
- package/lib/browser/disassembly-view/disassembly-view-breakpoint-renderer.js.map +1 -1
- package/lib/browser/disassembly-view/disassembly-view-contribution.js +7 -8
- package/lib/browser/disassembly-view/disassembly-view-contribution.js.map +1 -1
- package/lib/browser/disassembly-view/disassembly-view-instruction-renderer.js +16 -18
- package/lib/browser/disassembly-view/disassembly-view-instruction-renderer.js.map +1 -1
- package/lib/browser/disassembly-view/disassembly-view-table-delegate.js +1 -2
- package/lib/browser/disassembly-view/disassembly-view-table-delegate.js.map +1 -1
- package/lib/browser/disassembly-view/disassembly-view-widget.d.ts.map +1 -1
- package/lib/browser/disassembly-view/disassembly-view-widget.js +29 -34
- package/lib/browser/disassembly-view/disassembly-view-widget.js.map +1 -1
- package/lib/browser/editor/debug-breakpoint-widget.d.ts.map +1 -1
- package/lib/browser/editor/debug-breakpoint-widget.js +5 -5
- package/lib/browser/editor/debug-breakpoint-widget.js.map +1 -1
- package/lib/browser/editor/debug-editor-model.d.ts.map +1 -1
- package/lib/browser/editor/debug-editor-model.js +36 -39
- package/lib/browser/editor/debug-editor-model.js.map +1 -1
- package/lib/browser/editor/debug-editor-service.js +1 -2
- package/lib/browser/editor/debug-editor-service.js.map +1 -1
- package/lib/browser/editor/debug-hover-source.d.ts +0 -1
- package/lib/browser/editor/debug-hover-source.d.ts.map +1 -1
- package/lib/browser/editor/debug-hover-widget.d.ts +0 -1
- package/lib/browser/editor/debug-hover-widget.d.ts.map +1 -1
- package/lib/browser/editor/debug-hover-widget.js +10 -9
- package/lib/browser/editor/debug-hover-widget.js.map +1 -1
- package/lib/browser/editor/debug-inline-value-decorator.d.ts.map +1 -1
- package/lib/browser/editor/debug-inline-value-decorator.js +6 -3
- package/lib/browser/editor/debug-inline-value-decorator.js.map +1 -1
- package/lib/browser/model/debug-breakpoint.d.ts +0 -1
- package/lib/browser/model/debug-breakpoint.d.ts.map +1 -1
- package/lib/browser/model/debug-breakpoint.js +1 -2
- package/lib/browser/model/debug-breakpoint.js.map +1 -1
- package/lib/browser/model/debug-data-breakpoint.d.ts +0 -1
- package/lib/browser/model/debug-data-breakpoint.d.ts.map +1 -1
- package/lib/browser/model/debug-data-breakpoint.js +2 -3
- package/lib/browser/model/debug-data-breakpoint.js.map +1 -1
- package/lib/browser/model/debug-function-breakpoint.d.ts +0 -1
- package/lib/browser/model/debug-function-breakpoint.d.ts.map +1 -1
- package/lib/browser/model/debug-instruction-breakpoint.d.ts +0 -1
- package/lib/browser/model/debug-instruction-breakpoint.d.ts.map +1 -1
- package/lib/browser/model/debug-instruction-breakpoint.js +2 -3
- package/lib/browser/model/debug-instruction-breakpoint.js.map +1 -1
- package/lib/browser/model/debug-source-breakpoint.d.ts +0 -1
- package/lib/browser/model/debug-source-breakpoint.d.ts.map +1 -1
- package/lib/browser/model/debug-source-breakpoint.js +3 -1
- package/lib/browser/model/debug-source-breakpoint.js.map +1 -1
- package/lib/browser/model/debug-source.js +2 -2
- package/lib/browser/model/debug-source.js.map +1 -1
- package/lib/browser/model/debug-stack-frame.d.ts +0 -1
- package/lib/browser/model/debug-stack-frame.d.ts.map +1 -1
- package/lib/browser/model/debug-thread.d.ts +0 -1
- package/lib/browser/model/debug-thread.d.ts.map +1 -1
- package/lib/browser/model/debug-thread.js +3 -5
- package/lib/browser/model/debug-thread.js.map +1 -1
- package/lib/browser/view/debug-action.d.ts +0 -1
- package/lib/browser/view/debug-action.d.ts.map +1 -1
- package/lib/browser/view/debug-breakpoints-widget.d.ts +0 -1
- package/lib/browser/view/debug-breakpoints-widget.d.ts.map +1 -1
- package/lib/browser/view/debug-breakpoints-widget.js +7 -6
- package/lib/browser/view/debug-breakpoints-widget.js.map +1 -1
- package/lib/browser/view/debug-configuration-select.d.ts +0 -1
- package/lib/browser/view/debug-configuration-select.d.ts.map +1 -1
- package/lib/browser/view/debug-configuration-select.js +6 -7
- package/lib/browser/view/debug-configuration-select.js.map +1 -1
- package/lib/browser/view/debug-configuration-widget.d.ts +0 -1
- package/lib/browser/view/debug-configuration-widget.d.ts.map +1 -1
- package/lib/browser/view/debug-exception-breakpoint.d.ts +0 -1
- package/lib/browser/view/debug-exception-breakpoint.d.ts.map +1 -1
- package/lib/browser/view/debug-exception-breakpoint.js +1 -2
- package/lib/browser/view/debug-exception-breakpoint.js.map +1 -1
- package/lib/browser/view/debug-session-widget.js +3 -2
- package/lib/browser/view/debug-session-widget.js.map +1 -1
- package/lib/browser/view/debug-stack-frames-source.d.ts +0 -1
- package/lib/browser/view/debug-stack-frames-source.d.ts.map +1 -1
- package/lib/browser/view/debug-stack-frames-widget.d.ts +0 -1
- package/lib/browser/view/debug-stack-frames-widget.d.ts.map +1 -1
- package/lib/browser/view/debug-stack-frames-widget.js +4 -3
- package/lib/browser/view/debug-stack-frames-widget.js.map +1 -1
- package/lib/browser/view/debug-threads-widget.d.ts +0 -1
- package/lib/browser/view/debug-threads-widget.d.ts.map +1 -1
- package/lib/browser/view/debug-threads-widget.js +7 -6
- package/lib/browser/view/debug-threads-widget.js.map +1 -1
- package/lib/browser/view/debug-toolbar-widget.d.ts +0 -1
- package/lib/browser/view/debug-toolbar-widget.d.ts.map +1 -1
- package/lib/browser/view/debug-toolbar-widget.js +4 -3
- package/lib/browser/view/debug-toolbar-widget.js.map +1 -1
- package/lib/browser/view/debug-variables-widget.d.ts +0 -1
- package/lib/browser/view/debug-variables-widget.d.ts.map +1 -1
- package/lib/browser/view/debug-variables-widget.js +11 -10
- package/lib/browser/view/debug-variables-widget.js.map +1 -1
- package/lib/browser/view/debug-watch-expression.d.ts +0 -1
- package/lib/browser/view/debug-watch-expression.d.ts.map +1 -1
- package/lib/browser/view/debug-watch-widget.js +6 -5
- package/lib/browser/view/debug-watch-widget.js.map +1 -1
- package/lib/browser/view/debug-widget.js +4 -3
- package/lib/browser/view/debug-widget.js.map +1 -1
- package/lib/common/debug-adapter-session.js +1 -2
- package/lib/common/debug-adapter-session.js.map +1 -1
- package/lib/common/debug-preferences.js +7 -7
- package/lib/common/debug-preferences.js.map +1 -1
- package/lib/common/debug-service.js +1 -1
- package/lib/common/debug-service.js.map +1 -1
- package/lib/common/launch-preferences.js +2 -2
- package/lib/common/launch-preferences.js.map +1 -1
- package/lib/node/stream-debug-adapter.d.ts +0 -5
- package/lib/node/stream-debug-adapter.d.ts.map +1 -1
- package/lib/node/stream-debug-adapter.js +4 -5
- package/lib/node/stream-debug-adapter.js.map +1 -1
- package/package.json +16 -16
- package/src/browser/console/debug-console-contribution.tsx +194 -38
- package/src/browser/console/debug-console-session.ts +65 -1
- package/src/browser/disassembly-view/disassembly-view-widget.ts +6 -3
- package/src/browser/editor/debug-editor-model.ts +1 -0
- package/src/browser/editor/debug-inline-value-decorator.ts +6 -3
- package/src/browser/model/debug-source-breakpoint.tsx +3 -1
- package/src/browser/style/debug.css +28 -0
- package/src/common/debug-preferences.ts +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-debug-adapter.js","sourceRoot":"","sources":["../../src/node/stream-debug-adapter.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,kEAAyE;AACzE,wDAA8D;AAM9D,MAAe,kBAAmB,SAAQ,iCAAoB;
|
|
1
|
+
{"version":3,"file":"stream-debug-adapter.js","sourceRoot":"","sources":["../../src/node/stream-debug-adapter.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.68.0
|
|
3
|
+
"version": "1.68.0",
|
|
4
4
|
"description": "Theia - Debug Extension",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/console": "1.68.0
|
|
7
|
-
"@theia/core": "1.68.0
|
|
8
|
-
"@theia/editor": "1.68.0
|
|
9
|
-
"@theia/filesystem": "1.68.0
|
|
10
|
-
"@theia/markers": "1.68.0
|
|
11
|
-
"@theia/monaco": "1.68.0
|
|
6
|
+
"@theia/console": "1.68.0",
|
|
7
|
+
"@theia/core": "1.68.0",
|
|
8
|
+
"@theia/editor": "1.68.0",
|
|
9
|
+
"@theia/filesystem": "1.68.0",
|
|
10
|
+
"@theia/markers": "1.68.0",
|
|
11
|
+
"@theia/monaco": "1.68.0",
|
|
12
12
|
"@theia/monaco-editor-core": "1.96.302",
|
|
13
|
-
"@theia/output": "1.68.0
|
|
14
|
-
"@theia/process": "1.68.0
|
|
15
|
-
"@theia/task": "1.68.0
|
|
16
|
-
"@theia/terminal": "1.68.0
|
|
17
|
-
"@theia/test": "1.68.0
|
|
18
|
-
"@theia/variable-resolver": "1.68.0
|
|
19
|
-
"@theia/workspace": "1.68.0
|
|
13
|
+
"@theia/output": "1.68.0",
|
|
14
|
+
"@theia/process": "1.68.0",
|
|
15
|
+
"@theia/task": "1.68.0",
|
|
16
|
+
"@theia/terminal": "1.68.0",
|
|
17
|
+
"@theia/test": "1.68.0",
|
|
18
|
+
"@theia/variable-resolver": "1.68.0",
|
|
19
|
+
"@theia/workspace": "1.68.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.
|
|
62
|
+
"@theia/ext-scripts": "1.68.0"
|
|
63
63
|
},
|
|
64
64
|
"nyc": {
|
|
65
65
|
"extends": "../../configs/nyc.json"
|
|
66
66
|
},
|
|
67
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "d844a76de68367f16a726f1eae0c2032ecb85f63"
|
|
68
68
|
}
|
|
@@ -17,7 +17,7 @@ import '../../../src/browser/style/debug.css';
|
|
|
17
17
|
|
|
18
18
|
import { ConsoleSessionManager } from '@theia/console/lib/browser/console-session-manager';
|
|
19
19
|
import { ConsoleOptions, ConsoleWidget } from '@theia/console/lib/browser/console-widget';
|
|
20
|
-
import { AbstractViewContribution, bindViewContribution, codicon, Widget, WidgetFactory } from '@theia/core/lib/browser';
|
|
20
|
+
import { AbstractViewContribution, bindViewContribution, codicon, HoverService, Widget, WidgetFactory } from '@theia/core/lib/browser';
|
|
21
21
|
import { ContextKey, ContextKeyService } from '@theia/core/lib/browser/context-key-service';
|
|
22
22
|
import { nls } from '@theia/core/lib/common/nls';
|
|
23
23
|
import { TabBarToolbarContribution, TabBarToolbarRegistry } from '@theia/core/lib/browser/shell/tab-bar-toolbar';
|
|
@@ -29,7 +29,9 @@ import { SelectComponent, SelectOption } from '@theia/core/lib/browser/widgets/s
|
|
|
29
29
|
import { DebugSession } from '../debug-session';
|
|
30
30
|
import { DebugSessionManager, DidChangeActiveDebugSession } from '../debug-session-manager';
|
|
31
31
|
import { DebugConsoleSession, DebugConsoleSessionFactory } from './debug-console-session';
|
|
32
|
-
import { InMemoryResources } from '@theia/core';
|
|
32
|
+
import { Disposable, DisposableCollection, Emitter, Event, InMemoryResources } from '@theia/core';
|
|
33
|
+
import { MarkdownStringImpl } from '@theia/core/lib/common/markdown-rendering';
|
|
34
|
+
import debounce = require('@theia/core/shared/lodash.debounce');
|
|
33
35
|
|
|
34
36
|
export type InDebugReplContextKey = ContextKey<boolean>;
|
|
35
37
|
export const InDebugReplContextKey = Symbol('inDebugReplContextKey');
|
|
@@ -47,7 +49,7 @@ export namespace DebugConsoleCommands {
|
|
|
47
49
|
}
|
|
48
50
|
|
|
49
51
|
@injectable()
|
|
50
|
-
export class DebugConsoleContribution extends AbstractViewContribution<ConsoleWidget> implements TabBarToolbarContribution {
|
|
52
|
+
export class DebugConsoleContribution extends AbstractViewContribution<ConsoleWidget> implements TabBarToolbarContribution, Disposable {
|
|
51
53
|
|
|
52
54
|
@inject(ConsoleSessionManager)
|
|
53
55
|
protected consoleSessionManager: ConsoleSessionManager;
|
|
@@ -61,8 +63,16 @@ export class DebugConsoleContribution extends AbstractViewContribution<ConsoleWi
|
|
|
61
63
|
@inject(InMemoryResources)
|
|
62
64
|
protected readonly resources: InMemoryResources;
|
|
63
65
|
|
|
66
|
+
@inject(HoverService)
|
|
67
|
+
protected readonly hoverService: HoverService;
|
|
68
|
+
|
|
64
69
|
protected readonly DEBUG_CONSOLE_SEVERITY_ID = 'debugConsoleSeverity';
|
|
65
70
|
|
|
71
|
+
protected filterInputRef: HTMLInputElement | undefined;
|
|
72
|
+
protected currentFilterValue = '';
|
|
73
|
+
protected readonly filterChangedEmitter = new Emitter<void>();
|
|
74
|
+
protected readonly toDispose = new DisposableCollection();
|
|
75
|
+
|
|
66
76
|
constructor() {
|
|
67
77
|
super({
|
|
68
78
|
widgetId: DebugConsoleContribution.options.id,
|
|
@@ -78,28 +88,42 @@ export class DebugConsoleContribution extends AbstractViewContribution<ConsoleWi
|
|
|
78
88
|
@postConstruct()
|
|
79
89
|
protected init(): void {
|
|
80
90
|
this.resources.add(DebugConsoleSession.uri, '');
|
|
81
|
-
this.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
91
|
+
this.toDispose.pushAll([
|
|
92
|
+
this.debugSessionManager.onDidCreateDebugSession(session => {
|
|
93
|
+
const consoleParent = session.findConsoleParent();
|
|
94
|
+
if (consoleParent) {
|
|
95
|
+
const parentConsoleSession = this.consoleSessionManager.get(consoleParent.id);
|
|
96
|
+
if (parentConsoleSession instanceof DebugConsoleSession) {
|
|
97
|
+
session.on('output', event => parentConsoleSession.logOutput(parentConsoleSession.debugSession, event));
|
|
98
|
+
}
|
|
99
|
+
} else {
|
|
100
|
+
const consoleSession = this.debugConsoleSessionFactory(session);
|
|
101
|
+
this.consoleSessionManager.add(consoleSession);
|
|
102
|
+
session.on('output', event => consoleSession.logOutput(session, event));
|
|
87
103
|
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
this.consoleSessionManager.
|
|
97
|
-
|
|
104
|
+
}),
|
|
105
|
+
this.debugSessionManager.onDidChangeActiveDebugSession(event => this.handleActiveDebugSessionChanged(event)),
|
|
106
|
+
this.debugSessionManager.onDidDestroyDebugSession(session => {
|
|
107
|
+
const consoleSession = this.consoleSessionManager.get(session.id);
|
|
108
|
+
if (consoleSession instanceof DebugConsoleSession) {
|
|
109
|
+
consoleSession.markTerminated();
|
|
110
|
+
}
|
|
111
|
+
}),
|
|
112
|
+
this.consoleSessionManager.onDidChangeSelectedSession(() => {
|
|
113
|
+
const session = this.consoleSessionManager.selectedSession;
|
|
114
|
+
if (session && this.filterInputRef) {
|
|
115
|
+
const filterValue = session.filterText || '';
|
|
116
|
+
this.filterInputRef.value = filterValue;
|
|
117
|
+
this.currentFilterValue = filterValue;
|
|
118
|
+
this.filterChangedEmitter.fire();
|
|
119
|
+
}
|
|
120
|
+
})
|
|
121
|
+
]);
|
|
98
122
|
}
|
|
99
123
|
|
|
100
124
|
protected handleActiveDebugSessionChanged(event: DidChangeActiveDebugSession): void {
|
|
101
125
|
if (!event.current) {
|
|
102
|
-
|
|
126
|
+
return;
|
|
103
127
|
} else {
|
|
104
128
|
const topSession = event.current.findConsoleParent() || event.current;
|
|
105
129
|
const consoleSession = topSession ? this.consoleSessionManager.get(topSession.id) : undefined;
|
|
@@ -127,13 +151,28 @@ export class DebugConsoleContribution extends AbstractViewContribution<ConsoleWi
|
|
|
127
151
|
id: 'debug-console-severity',
|
|
128
152
|
render: widget => this.renderSeveritySelector(widget),
|
|
129
153
|
isVisible: widget => this.withWidget(widget, () => true),
|
|
130
|
-
onDidChange: this.consoleSessionManager.onDidChangeSeverity
|
|
154
|
+
onDidChange: this.consoleSessionManager.onDidChangeSeverity,
|
|
155
|
+
priority: -3,
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
toolbarRegistry.registerItem({
|
|
159
|
+
id: 'debug-console-filter',
|
|
160
|
+
render: () => this.renderFilterInput(),
|
|
161
|
+
isVisible: widget => this.withWidget(widget, () => true),
|
|
162
|
+
onDidChange: this.filterChangedEmitter.event,
|
|
163
|
+
priority: -2,
|
|
131
164
|
});
|
|
132
165
|
|
|
133
166
|
toolbarRegistry.registerItem({
|
|
134
167
|
id: 'debug-console-session-selector',
|
|
135
168
|
render: widget => this.renderDebugConsoleSelector(widget),
|
|
136
|
-
isVisible: widget => this.withWidget(widget, () => this.consoleSessionManager.all.length
|
|
169
|
+
isVisible: widget => this.withWidget(widget, () => this.consoleSessionManager.all.length >= 1),
|
|
170
|
+
onDidChange: Event.any(
|
|
171
|
+
this.consoleSessionManager.onDidAddSession,
|
|
172
|
+
this.consoleSessionManager.onDidDeleteSession,
|
|
173
|
+
this.consoleSessionManager.onDidChangeSelectedSession
|
|
174
|
+
) as Event<void>,
|
|
175
|
+
priority: -1,
|
|
137
176
|
});
|
|
138
177
|
|
|
139
178
|
toolbarRegistry.registerItem({
|
|
@@ -196,33 +235,142 @@ export class DebugConsoleContribution extends AbstractViewContribution<ConsoleWi
|
|
|
196
235
|
label: Severity.toLocaleString(e)
|
|
197
236
|
}));
|
|
198
237
|
|
|
199
|
-
return <
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
238
|
+
return <div onMouseEnter={this.handleSeverityMouseEnter}>
|
|
239
|
+
<SelectComponent
|
|
240
|
+
id={this.DEBUG_CONSOLE_SEVERITY_ID}
|
|
241
|
+
key="debugConsoleSeverity"
|
|
242
|
+
options={severityElements}
|
|
243
|
+
defaultValue={this.consoleSessionManager.severity || Severity.Ignore}
|
|
244
|
+
onChange={this.changeSeverity}
|
|
245
|
+
/>
|
|
246
|
+
</div>;
|
|
206
247
|
}
|
|
207
248
|
|
|
249
|
+
protected handleSeverityMouseEnter = (e: React.MouseEvent<HTMLDivElement>): void => {
|
|
250
|
+
const tooltipContent = new MarkdownStringImpl();
|
|
251
|
+
tooltipContent.appendMarkdown(nls.localize(
|
|
252
|
+
'theia/debug/consoleSeverityTooltip',
|
|
253
|
+
'Filter console output by severity level. Only messages with the selected severity will be shown.'
|
|
254
|
+
));
|
|
255
|
+
this.hoverService.requestHover({
|
|
256
|
+
content: tooltipContent,
|
|
257
|
+
target: e.currentTarget,
|
|
258
|
+
position: 'bottom'
|
|
259
|
+
});
|
|
260
|
+
};
|
|
261
|
+
|
|
208
262
|
protected renderDebugConsoleSelector(widget: Widget | undefined): React.ReactNode {
|
|
209
263
|
const availableConsoles: SelectOption[] = [];
|
|
210
|
-
this.consoleSessionManager.all
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
}
|
|
264
|
+
const sortedSessions = this.consoleSessionManager.all
|
|
265
|
+
.filter((e): e is DebugConsoleSession => e instanceof DebugConsoleSession)
|
|
266
|
+
.sort((a, b) => {
|
|
267
|
+
if (a.terminated !== b.terminated) {
|
|
268
|
+
return a.terminated ? 1 : -1;
|
|
269
|
+
}
|
|
270
|
+
return 0;
|
|
271
|
+
});
|
|
272
|
+
|
|
273
|
+
sortedSessions.forEach(session => {
|
|
274
|
+
let label = session.debugSession.label;
|
|
275
|
+
if (session.terminated) {
|
|
276
|
+
label = `${label} (${nls.localizeByDefault('Stopped')})`;
|
|
216
277
|
}
|
|
278
|
+
availableConsoles.push({
|
|
279
|
+
value: session.id,
|
|
280
|
+
label
|
|
281
|
+
});
|
|
217
282
|
});
|
|
218
283
|
|
|
219
|
-
|
|
284
|
+
const selectedId = this.consoleSessionManager.selectedSession?.id;
|
|
285
|
+
|
|
286
|
+
return <div onMouseEnter={this.handleSessionSelectorMouseEnter}><SelectComponent
|
|
220
287
|
key="debugConsoleSelector"
|
|
221
288
|
options={availableConsoles}
|
|
222
|
-
defaultValue={
|
|
223
|
-
onChange={this.changeDebugConsole}
|
|
289
|
+
defaultValue={selectedId}
|
|
290
|
+
onChange={this.changeDebugConsole} />
|
|
291
|
+
</div>;
|
|
224
292
|
}
|
|
225
293
|
|
|
294
|
+
protected handleSessionSelectorMouseEnter = (e: React.MouseEvent<HTMLDivElement>): void => {
|
|
295
|
+
const tooltipContent = new MarkdownStringImpl();
|
|
296
|
+
tooltipContent.appendMarkdown(nls.localize(
|
|
297
|
+
'theia/debug/consoleSessionSelectorTooltip',
|
|
298
|
+
'Switch between debug sessions. Each debug session has its own console output.'
|
|
299
|
+
));
|
|
300
|
+
this.hoverService.requestHover({
|
|
301
|
+
content: tooltipContent,
|
|
302
|
+
target: e.currentTarget,
|
|
303
|
+
position: 'bottom'
|
|
304
|
+
});
|
|
305
|
+
};
|
|
306
|
+
|
|
307
|
+
protected renderFilterInput(): React.ReactNode {
|
|
308
|
+
return (
|
|
309
|
+
<div className="item enabled debug-console-filter-container">
|
|
310
|
+
<input
|
|
311
|
+
type="text"
|
|
312
|
+
className="theia-input"
|
|
313
|
+
placeholder={nls.localize('theia/debug/consoleFilter', 'Filter (e.g. text, !exclude)')}
|
|
314
|
+
aria-label={nls.localize('theia/debug/consoleFilterAriaLabel', 'Filter debug console output')}
|
|
315
|
+
ref={ref => { this.filterInputRef = ref ?? undefined; }}
|
|
316
|
+
onChange={this.handleFilterInputChange}
|
|
317
|
+
onMouseEnter={this.handleFilterMouseEnter}
|
|
318
|
+
/>
|
|
319
|
+
{this.currentFilterValue && <span
|
|
320
|
+
className="debug-console-filter-btn codicon codicon-close action-label"
|
|
321
|
+
role="button"
|
|
322
|
+
aria-label={nls.localizeByDefault('Clear')}
|
|
323
|
+
onClick={this.handleFilterClear}
|
|
324
|
+
title={nls.localizeByDefault('Clear')}
|
|
325
|
+
/>}
|
|
326
|
+
</div>
|
|
327
|
+
);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
protected handleFilterInputChange = (e: React.ChangeEvent<HTMLInputElement>): void => {
|
|
331
|
+
const value = e.target.value;
|
|
332
|
+
this.currentFilterValue = value;
|
|
333
|
+
this.filterChangedEmitter.fire();
|
|
334
|
+
this.applyFilterDebounced(value);
|
|
335
|
+
};
|
|
336
|
+
|
|
337
|
+
protected applyFilterDebounced = debounce((value: string) => {
|
|
338
|
+
const session = this.consoleSessionManager.selectedSession;
|
|
339
|
+
if (session) {
|
|
340
|
+
session.filterText = value;
|
|
341
|
+
}
|
|
342
|
+
}, 150);
|
|
343
|
+
|
|
344
|
+
protected handleFilterClear = (): void => {
|
|
345
|
+
if (this.filterInputRef) {
|
|
346
|
+
this.filterInputRef.value = '';
|
|
347
|
+
}
|
|
348
|
+
this.currentFilterValue = '';
|
|
349
|
+
const session = this.consoleSessionManager.selectedSession;
|
|
350
|
+
if (session) {
|
|
351
|
+
session.filterText = '';
|
|
352
|
+
}
|
|
353
|
+
this.filterChangedEmitter.fire();
|
|
354
|
+
};
|
|
355
|
+
|
|
356
|
+
protected handleFilterMouseEnter = (e: React.MouseEvent<HTMLInputElement>): void => {
|
|
357
|
+
const tooltipContent = new MarkdownStringImpl();
|
|
358
|
+
tooltipContent.appendMarkdown(nls.localize(
|
|
359
|
+
'theia/debug/consoleFilterTooltip',
|
|
360
|
+
'Filter console output by text. Separate multiple terms with commas. Prefix with `!` to exclude a term.\n\n' +
|
|
361
|
+
'Examples:\n\n' +
|
|
362
|
+
'- `text` - show lines containing "text"\n' +
|
|
363
|
+
'- `text, other` - show lines containing "text" or "other"\n' +
|
|
364
|
+
'- `!text` - hide lines containing "text"\n' +
|
|
365
|
+
'- `text, !other` - show "text" but hide "other"'
|
|
366
|
+
));
|
|
367
|
+
this.hoverService.requestHover({
|
|
368
|
+
content: tooltipContent,
|
|
369
|
+
target: e.currentTarget,
|
|
370
|
+
position: 'bottom'
|
|
371
|
+
});
|
|
372
|
+
};
|
|
373
|
+
|
|
226
374
|
protected changeDebugConsole = (option: SelectOption) => {
|
|
227
375
|
const id = option.value!;
|
|
228
376
|
const session = this.consoleSessionManager.get(id);
|
|
@@ -246,6 +394,14 @@ export class DebugConsoleContribution extends AbstractViewContribution<ConsoleWi
|
|
|
246
394
|
protected async clearConsole(): Promise<void> {
|
|
247
395
|
const widget = await this.widget;
|
|
248
396
|
widget.clear();
|
|
397
|
+
const selectedSession = this.consoleSessionManager.selectedSession;
|
|
398
|
+
if (selectedSession instanceof DebugConsoleSession && selectedSession.terminated) {
|
|
399
|
+
this.consoleSessionManager.delete(selectedSession.id);
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
dispose(): void {
|
|
404
|
+
this.toDispose.dispose();
|
|
249
405
|
}
|
|
250
406
|
|
|
251
407
|
}
|
|
@@ -41,6 +41,8 @@ export class DebugConsoleSession extends ConsoleSession {
|
|
|
41
41
|
|
|
42
42
|
protected items: ConsoleItem[] = [];
|
|
43
43
|
|
|
44
|
+
protected _terminated = false;
|
|
45
|
+
|
|
44
46
|
protected _debugSession: DebugSession;
|
|
45
47
|
|
|
46
48
|
// content buffer for [append](#append) method
|
|
@@ -57,6 +59,17 @@ export class DebugConsoleSession extends ConsoleSession {
|
|
|
57
59
|
this.id = value.id;
|
|
58
60
|
}
|
|
59
61
|
|
|
62
|
+
get terminated(): boolean {
|
|
63
|
+
return this._terminated;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
markTerminated(): void {
|
|
67
|
+
if (!this._terminated) {
|
|
68
|
+
this._terminated = true;
|
|
69
|
+
this.fireDidChange();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
60
73
|
@postConstruct()
|
|
61
74
|
init(): void {
|
|
62
75
|
this.completionKinds.set('method', monaco.languages.CompletionItemKind.Method);
|
|
@@ -89,7 +102,58 @@ export class DebugConsoleSession extends ConsoleSession {
|
|
|
89
102
|
}
|
|
90
103
|
|
|
91
104
|
getElements(): IterableIterator<ConsoleItem> {
|
|
92
|
-
return this.items.filter(e =>
|
|
105
|
+
return this.items.filter(e => this.matchesFilter(e))[Symbol.iterator]();
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
protected matchesFilter(item: ConsoleItem): boolean {
|
|
109
|
+
if (this.severity && item.severity !== this.severity) {
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
if (this.filterText) {
|
|
113
|
+
const text = this.getItemText(item).toLowerCase();
|
|
114
|
+
const parsedFilters = this.parseFilterText(this.filterText.toLowerCase());
|
|
115
|
+
|
|
116
|
+
if (parsedFilters.include.length > 0) {
|
|
117
|
+
const matchesAnyInclude = parsedFilters.include.some(filter => text.includes(filter));
|
|
118
|
+
if (!matchesAnyInclude) {
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
for (const filter of parsedFilters.exclude) {
|
|
124
|
+
if (text.includes(filter)) {
|
|
125
|
+
return false;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
protected parseFilterText(filterText: string): { include: string[]; exclude: string[] } {
|
|
133
|
+
const include: string[] = [];
|
|
134
|
+
const exclude: string[] = [];
|
|
135
|
+
|
|
136
|
+
const terms = filterText.split(',').map(term => term.trim()).filter(term => term.length > 0);
|
|
137
|
+
|
|
138
|
+
for (const term of terms) {
|
|
139
|
+
if (term.startsWith('!') && term.length > 1) {
|
|
140
|
+
exclude.push(term.substring(1));
|
|
141
|
+
} else {
|
|
142
|
+
include.push(term);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
return { include, exclude };
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
protected getItemText(item: ConsoleItem): string {
|
|
150
|
+
if (item instanceof AnsiConsoleItem) {
|
|
151
|
+
return item.content;
|
|
152
|
+
}
|
|
153
|
+
if (item instanceof ExpressionItem) {
|
|
154
|
+
return `${item.expression} ${item.value}`;
|
|
155
|
+
}
|
|
156
|
+
return '';
|
|
93
157
|
}
|
|
94
158
|
|
|
95
159
|
protected async completions(model: monaco.editor.ITextModel, position: monaco.Position): Promise<monaco.languages.CompletionList | undefined> {
|
|
@@ -92,9 +92,12 @@ export class DisassemblyViewWidget extends BaseWidget {
|
|
|
92
92
|
this._fontInfo = BareFontInfo.createFromRawSettings(this.toFontInfo(), PixelRatio.getInstance(window).value);
|
|
93
93
|
this.editorPreferences.onPreferenceChanged(() => this._fontInfo = BareFontInfo.createFromRawSettings(this.toFontInfo(), PixelRatio.getInstance(window).value));
|
|
94
94
|
this.debugPreferences.onPreferenceChanged(e => {
|
|
95
|
-
if (e.preferenceName === 'debug.disassemblyView.showSourceCode'
|
|
96
|
-
|
|
97
|
-
this.
|
|
95
|
+
if (e.preferenceName === 'debug.disassemblyView.showSourceCode') {
|
|
96
|
+
const showSourceCode = this.debugPreferences['debug.disassemblyView.showSourceCode'];
|
|
97
|
+
if (showSourceCode !== this._enableSourceCodeRender) {
|
|
98
|
+
this._enableSourceCodeRender = showSourceCode;
|
|
99
|
+
this.reloadDisassembly(undefined);
|
|
100
|
+
}
|
|
98
101
|
} else {
|
|
99
102
|
this._disassembledInstructions?.rerender();
|
|
100
103
|
}
|
|
@@ -110,6 +110,7 @@ export class DebugEditorModel implements Disposable {
|
|
|
110
110
|
this.editor.onDidResize(e => this.breakpointWidget.inputSize = e),
|
|
111
111
|
this.sessions.onDidChange(() => this.update()),
|
|
112
112
|
this.toDisposeOnUpdate,
|
|
113
|
+
Disposable.create(() => this.toDisposeOnModelChange.dispose()),
|
|
113
114
|
this.sessionManager.onDidChangeBreakpoints(({ session, uri }) => {
|
|
114
115
|
if ((!session || session === this.sessionManager.currentSession) && uri.isEqual(this.uri)) {
|
|
115
116
|
this.render();
|
|
@@ -68,9 +68,12 @@ export class DebugInlineValueDecorator implements FrontendApplicationContributio
|
|
|
68
68
|
onStart(): void {
|
|
69
69
|
StandaloneServices.get(ICodeEditorService).registerDecorationType('Inline debug decorations', INLINE_VALUE_DECORATION_KEY, {});
|
|
70
70
|
this.enabled = !!this.preferences['debug.inlineValues'];
|
|
71
|
-
this.preferences.onPreferenceChanged(({ preferenceName
|
|
72
|
-
if (preferenceName === 'debug.inlineValues'
|
|
73
|
-
|
|
71
|
+
this.preferences.onPreferenceChanged(({ preferenceName }) => {
|
|
72
|
+
if (preferenceName === 'debug.inlineValues') {
|
|
73
|
+
const inlineValues = !!this.preferences['debug.inlineValues'];
|
|
74
|
+
if (inlineValues !== this.enabled) {
|
|
75
|
+
this.enabled = inlineValues;
|
|
76
|
+
}
|
|
74
77
|
}
|
|
75
78
|
});
|
|
76
79
|
}
|
|
@@ -52,7 +52,9 @@ export class DebugSourceBreakpoint extends DebugBreakpoint<SourceBreakpoint> imp
|
|
|
52
52
|
setEnabled(enabled: boolean): void {
|
|
53
53
|
const { uri, raw } = this;
|
|
54
54
|
let shouldUpdate = false;
|
|
55
|
-
|
|
55
|
+
const originLine = this.origin.raw.line;
|
|
56
|
+
const originColumn = this.origin.raw.column;
|
|
57
|
+
let breakpoints = raw && this.doRemove(this.origins.filter(origin => !(origin.raw.line === originLine && origin.raw.column === originColumn)));
|
|
56
58
|
// Check for breakpoints array with at least one entry
|
|
57
59
|
if (breakpoints && breakpoints.length) {
|
|
58
60
|
shouldUpdate = true;
|
|
@@ -17,3 +17,31 @@
|
|
|
17
17
|
#debugConsoleSeverity {
|
|
18
18
|
margin-right: 4px;
|
|
19
19
|
}
|
|
20
|
+
|
|
21
|
+
.debug-console-filter-container {
|
|
22
|
+
display: flex;
|
|
23
|
+
align-items: center;
|
|
24
|
+
background: var(--theia-input-background);
|
|
25
|
+
border: solid var(--theia-border-width) var(--theia-dropdown-border);
|
|
26
|
+
border-radius: var(--theia-search-box-radius);
|
|
27
|
+
height: var(--theia-content-line-height);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.debug-console-filter-container:focus-within {
|
|
31
|
+
border-color: var(--theia-focusBorder);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.debug-console-filter-container input.theia-input {
|
|
35
|
+
flex: 1;
|
|
36
|
+
min-width: 175px;
|
|
37
|
+
box-sizing: border-box;
|
|
38
|
+
background: none;
|
|
39
|
+
border: none !important;
|
|
40
|
+
outline: none;
|
|
41
|
+
text-overflow: ellipsis;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.debug-console-filter-btn {
|
|
45
|
+
box-sizing: border-box;
|
|
46
|
+
align-items: center;
|
|
47
|
+
}
|
|
@@ -43,11 +43,11 @@ export const debugPreferencesSchema: PreferenceSchema = {
|
|
|
43
43
|
'debug.showInStatusBar': {
|
|
44
44
|
enum: ['never', 'always', 'onFirstSessionStart'],
|
|
45
45
|
enumDescriptions: [
|
|
46
|
-
nls.localizeByDefault('Never show debug in
|
|
47
|
-
nls.localizeByDefault('Always show debug in
|
|
48
|
-
nls.localizeByDefault('Show debug in
|
|
46
|
+
nls.localizeByDefault('Never show debug item in status bar'),
|
|
47
|
+
nls.localizeByDefault('Always show debug item in status bar'),
|
|
48
|
+
nls.localizeByDefault('Show debug item in status bar only after debug was started for the first time')
|
|
49
49
|
],
|
|
50
|
-
description: nls.localizeByDefault('Controls when the debug
|
|
50
|
+
description: nls.localizeByDefault('Controls when the debug status bar item should be visible.'),
|
|
51
51
|
default: 'onFirstSessionStart'
|
|
52
52
|
},
|
|
53
53
|
'debug.confirmOnExit': {
|