@theia/debug 1.45.0 → 1.46.0-next.72
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/README.md +62 -62
- package/lib/browser/breakpoint/breakpoint-manager.d.ts +70 -70
- package/lib/browser/breakpoint/breakpoint-manager.js +328 -328
- package/lib/browser/breakpoint/breakpoint-marker.d.ts +41 -41
- package/lib/browser/breakpoint/breakpoint-marker.js +87 -87
- package/lib/browser/console/debug-console-contribution.d.ts +40 -40
- package/lib/browser/console/debug-console-contribution.js +231 -231
- package/lib/browser/console/debug-console-items.d.ts +93 -93
- package/lib/browser/console/debug-console-items.js +319 -319
- package/lib/browser/console/debug-console-session.d.ts +31 -31
- package/lib/browser/console/debug-console-session.js +199 -199
- package/lib/browser/debug-call-stack-item-type-key.d.ts +3 -3
- package/lib/browser/debug-call-stack-item-type-key.js +19 -19
- package/lib/browser/debug-configuration-manager.d.ts +102 -102
- package/lib/browser/debug-configuration-manager.js +552 -552
- package/lib/browser/debug-configuration-model.d.ts +29 -29
- package/lib/browser/debug-configuration-model.js +79 -79
- package/lib/browser/debug-contribution.d.ts +22 -22
- package/lib/browser/debug-contribution.js +19 -19
- package/lib/browser/debug-frontend-application-contribution.d.ts +222 -222
- package/lib/browser/debug-frontend-application-contribution.js +1404 -1404
- package/lib/browser/debug-frontend-module.d.ts +4 -4
- package/lib/browser/debug-frontend-module.d.ts.map +1 -1
- package/lib/browser/debug-frontend-module.js +105 -104
- package/lib/browser/debug-frontend-module.js.map +1 -1
- package/lib/browser/debug-package.spec.js +18 -18
- package/lib/browser/debug-preferences.d.ts +17 -17
- package/lib/browser/debug-preferences.js +89 -89
- package/lib/browser/debug-prefix-configuration.d.ts +51 -51
- package/lib/browser/debug-prefix-configuration.js +208 -208
- package/lib/browser/debug-resource.d.ts +14 -14
- package/lib/browser/debug-resource.js +65 -65
- package/lib/browser/debug-schema-updater.d.ts +15 -15
- package/lib/browser/debug-schema-updater.js +168 -168
- package/lib/browser/debug-session-connection.d.ts +110 -110
- package/lib/browser/debug-session-connection.js +258 -258
- package/lib/browser/debug-session-contribution.d.ts +73 -73
- package/lib/browser/debug-session-contribution.js +145 -145
- package/lib/browser/debug-session-manager.d.ts +137 -137
- package/lib/browser/debug-session-manager.js +599 -599
- package/lib/browser/debug-session-manager.js.map +1 -1
- package/lib/browser/debug-session-options.d.ts +48 -48
- package/lib/browser/debug-session-options.js +85 -85
- package/lib/browser/debug-session.d.ts +178 -178
- package/lib/browser/debug-session.js +871 -871
- package/lib/browser/debug-tab-bar-decorator.d.ts +16 -16
- package/lib/browser/debug-tab-bar-decorator.js +70 -70
- package/lib/browser/debug-watch-manager.d.ts +21 -21
- package/lib/browser/debug-watch-manager.js +93 -93
- package/lib/browser/disassembly-view/disassembly-view-accessibility-provider.d.ts +6 -6
- package/lib/browser/disassembly-view/disassembly-view-accessibility-provider.js +38 -38
- package/lib/browser/disassembly-view/disassembly-view-breakpoint-renderer.d.ts +19 -19
- package/lib/browser/disassembly-view/disassembly-view-breakpoint-renderer.js +110 -110
- package/lib/browser/disassembly-view/disassembly-view-contribution.d.ts +24 -24
- package/lib/browser/disassembly-view/disassembly-view-contribution.js +131 -131
- package/lib/browser/disassembly-view/disassembly-view-instruction-renderer.d.ts +38 -38
- package/lib/browser/disassembly-view/disassembly-view-instruction-renderer.js +222 -222
- package/lib/browser/disassembly-view/disassembly-view-instruction-renderer.js.map +1 -1
- package/lib/browser/disassembly-view/disassembly-view-table-delegate.d.ts +15 -15
- package/lib/browser/disassembly-view/disassembly-view-table-delegate.js +38 -38
- package/lib/browser/disassembly-view/disassembly-view-utilities.d.ts +37 -37
- package/lib/browser/disassembly-view/disassembly-view-utilities.js +17 -17
- package/lib/browser/disassembly-view/disassembly-view-widget.d.ts +60 -60
- package/lib/browser/disassembly-view/disassembly-view-widget.js +453 -452
- package/lib/browser/disassembly-view/disassembly-view-widget.js.map +1 -1
- package/lib/browser/editor/debug-breakpoint-widget.d.ts +53 -53
- package/lib/browser/editor/debug-breakpoint-widget.js +261 -261
- package/lib/browser/editor/debug-editor-model.d.ts +91 -93
- package/lib/browser/editor/debug-editor-model.d.ts.map +1 -1
- package/lib/browser/editor/debug-editor-model.js +515 -516
- package/lib/browser/editor/debug-editor-model.js.map +1 -1
- package/lib/browser/editor/debug-editor-service.d.ts +35 -35
- package/lib/browser/editor/debug-editor-service.js +202 -202
- package/lib/browser/editor/debug-editor.d.ts +3 -3
- package/lib/browser/editor/debug-editor.js +19 -19
- package/lib/browser/editor/debug-exception-widget.d.ts +29 -29
- package/lib/browser/editor/debug-exception-widget.js +114 -114
- package/lib/browser/editor/debug-expression-provider.d.ts +11 -11
- package/lib/browser/editor/debug-expression-provider.js +81 -81
- package/lib/browser/editor/debug-hover-source.d.ts +18 -18
- package/lib/browser/editor/debug-hover-source.js +117 -117
- package/lib/browser/editor/debug-hover-widget.d.ts +47 -47
- package/lib/browser/editor/debug-hover-widget.js +276 -276
- package/lib/browser/editor/debug-inline-value-decorator.d.ts +19 -21
- package/lib/browser/editor/debug-inline-value-decorator.d.ts.map +1 -1
- package/lib/browser/editor/debug-inline-value-decorator.js +333 -337
- package/lib/browser/editor/debug-inline-value-decorator.js.map +1 -1
- package/lib/browser/model/debug-breakpoint.d.ts +47 -47
- package/lib/browser/model/debug-breakpoint.js +109 -109
- package/lib/browser/model/debug-function-breakpoint.d.ts +18 -18
- package/lib/browser/model/debug-function-breakpoint.js +92 -92
- package/lib/browser/model/debug-instruction-breakpoint.d.ts +14 -14
- package/lib/browser/model/debug-instruction-breakpoint.js +65 -65
- package/lib/browser/model/debug-source-breakpoint.d.ts +37 -37
- package/lib/browser/model/debug-source-breakpoint.js +217 -217
- package/lib/browser/model/debug-source.d.ts +24 -24
- package/lib/browser/model/debug-source.js +80 -80
- package/lib/browser/model/debug-stack-frame.d.ts +41 -41
- package/lib/browser/model/debug-stack-frame.js +150 -150
- package/lib/browser/model/debug-thread.d.ts +62 -62
- package/lib/browser/model/debug-thread.js +237 -237
- package/lib/browser/preferences/launch-preferences.d.ts +4 -4
- package/lib/browser/preferences/launch-preferences.js +38 -38
- package/lib/browser/view/debug-action.d.ts +16 -16
- package/lib/browser/view/debug-action.js +43 -43
- package/lib/browser/view/debug-breakpoints-source.d.ts +9 -9
- package/lib/browser/view/debug-breakpoints-source.js +70 -70
- package/lib/browser/view/debug-breakpoints-widget.d.ts +22 -22
- package/lib/browser/view/debug-breakpoints-widget.js +87 -87
- package/lib/browser/view/debug-configuration-select.d.ts +64 -64
- package/lib/browser/view/debug-configuration-select.js +216 -216
- package/lib/browser/view/debug-configuration-widget.d.ts +30 -30
- package/lib/browser/view/debug-configuration-widget.js +135 -135
- package/lib/browser/view/debug-exception-breakpoint.d.ts +14 -14
- package/lib/browser/view/debug-exception-breakpoint.js +61 -61
- package/lib/browser/view/debug-session-widget.d.ts +28 -28
- package/lib/browser/view/debug-session-widget.js +134 -134
- package/lib/browser/view/debug-stack-frames-source.d.ts +17 -17
- package/lib/browser/view/debug-stack-frames-source.js +89 -89
- package/lib/browser/view/debug-stack-frames-widget.d.ts +24 -24
- package/lib/browser/view/debug-stack-frames-widget.js +154 -154
- package/lib/browser/view/debug-threads-source.d.ts +8 -8
- package/lib/browser/view/debug-threads-source.js +63 -63
- package/lib/browser/view/debug-threads-widget.d.ts +26 -26
- package/lib/browser/view/debug-threads-widget.js +145 -145
- package/lib/browser/view/debug-toolbar-widget.d.ts +34 -34
- package/lib/browser/view/debug-toolbar-widget.js +156 -156
- package/lib/browser/view/debug-variables-source.d.ts +9 -9
- package/lib/browser/view/debug-variables-source.js +60 -60
- package/lib/browser/view/debug-variables-widget.d.ts +16 -16
- package/lib/browser/view/debug-variables-widget.js +78 -78
- package/lib/browser/view/debug-view-model.d.ts +51 -51
- package/lib/browser/view/debug-view-model.js +220 -220
- package/lib/browser/view/debug-watch-expression.d.ts +30 -30
- package/lib/browser/view/debug-watch-expression.js +73 -73
- package/lib/browser/view/debug-watch-source.d.ts +9 -9
- package/lib/browser/view/debug-watch-source.js +58 -58
- package/lib/browser/view/debug-watch-widget.d.ts +16 -16
- package/lib/browser/view/debug-watch-widget.js +78 -78
- package/lib/browser/view/debug-widget.d.ts +23 -23
- package/lib/browser/view/debug-widget.js +108 -108
- package/lib/common/debug-adapter-contribution-registry.d.ts +59 -59
- package/lib/common/debug-adapter-contribution-registry.js +212 -212
- package/lib/common/debug-adapter-session.d.ts +18 -18
- package/lib/common/debug-adapter-session.js +78 -78
- package/lib/common/debug-common.d.ts +1 -1
- package/lib/common/debug-common.js +29 -29
- package/lib/common/debug-compound.d.ts +14 -14
- package/lib/common/debug-compound.js +27 -27
- package/lib/common/debug-configuration.d.ts +70 -70
- package/lib/common/debug-configuration.js +31 -31
- package/lib/common/debug-model.d.ts +152 -152
- package/lib/common/debug-model.js +35 -35
- package/lib/common/debug-service.d.ts +123 -123
- package/lib/common/debug-service.js +66 -66
- package/lib/common/debug-uri-utils.d.ts +23 -23
- package/lib/common/debug-uri-utils.js +26 -26
- package/lib/common/inline-debug-adapter.d.ts +18 -18
- package/lib/common/inline-debug-adapter.js +44 -44
- package/lib/node/debug-adapter-factory.d.ts +19 -19
- package/lib/node/debug-adapter-factory.js +96 -96
- package/lib/node/debug-adapter-session-manager.d.ts +37 -37
- package/lib/node/debug-adapter-session-manager.js +111 -111
- package/lib/node/debug-backend-module.d.ts +3 -3
- package/lib/node/debug-backend-module.js +41 -41
- package/lib/node/debug-service-impl.d.ts +30 -30
- package/lib/node/debug-service-impl.js +124 -124
- package/lib/node/stream-debug-adapter.d.ts +36 -36
- package/lib/node/stream-debug-adapter.js +112 -112
- package/package.json +16 -16
- package/src/browser/breakpoint/breakpoint-manager.ts +369 -369
- package/src/browser/breakpoint/breakpoint-marker.ts +104 -104
- package/src/browser/console/debug-console-contribution.tsx +240 -240
- package/src/browser/console/debug-console-items.tsx +384 -384
- package/src/browser/console/debug-console-session.ts +205 -205
- package/src/browser/debug-call-stack-item-type-key.ts +20 -20
- package/src/browser/debug-configuration-manager.ts +591 -591
- package/src/browser/debug-configuration-model.ts +100 -100
- package/src/browser/debug-contribution.ts +43 -43
- package/src/browser/debug-frontend-application-contribution.ts +1551 -1551
- package/src/browser/debug-frontend-module.ts +133 -132
- package/src/browser/debug-package.spec.ts +20 -20
- package/src/browser/debug-preferences.ts +98 -98
- package/src/browser/debug-prefix-configuration.ts +195 -195
- package/src/browser/debug-resource.ts +59 -59
- package/src/browser/debug-schema-updater.ts +149 -149
- package/src/browser/debug-session-connection.ts +357 -357
- package/src/browser/debug-session-contribution.ts +150 -150
- package/src/browser/debug-session-manager.ts +682 -682
- package/src/browser/debug-session-options.ts +114 -114
- package/src/browser/debug-session.tsx +947 -947
- package/src/browser/debug-tab-bar-decorator.ts +57 -57
- package/src/browser/debug-watch-manager.ts +93 -93
- package/src/browser/disassembly-view/disassembly-view-accessibility-provider.ts +43 -43
- package/src/browser/disassembly-view/disassembly-view-breakpoint-renderer.ts +119 -119
- package/src/browser/disassembly-view/disassembly-view-contribution.ts +109 -109
- package/src/browser/disassembly-view/disassembly-view-instruction-renderer.ts +245 -245
- package/src/browser/disassembly-view/disassembly-view-table-delegate.ts +39 -39
- package/src/browser/disassembly-view/disassembly-view-utilities.ts +55 -55
- package/src/browser/disassembly-view/disassembly-view-widget.ts +463 -463
- package/src/browser/editor/debug-breakpoint-widget.tsx +293 -293
- package/src/browser/editor/debug-editor-model.ts +529 -528
- package/src/browser/editor/debug-editor-service.ts +192 -192
- package/src/browser/editor/debug-editor.ts +20 -20
- package/src/browser/editor/debug-exception-widget.tsx +122 -122
- package/src/browser/editor/debug-expression-provider.ts +78 -78
- package/src/browser/editor/debug-hover-source.tsx +105 -105
- package/src/browser/editor/debug-hover-widget.ts +298 -298
- package/src/browser/editor/debug-inline-value-decorator.ts +373 -377
- package/src/browser/model/debug-breakpoint.tsx +151 -151
- package/src/browser/model/debug-function-breakpoint.tsx +101 -101
- package/src/browser/model/debug-instruction-breakpoint.tsx +68 -68
- package/src/browser/model/debug-source-breakpoint.tsx +237 -237
- package/src/browser/model/debug-source.ts +93 -93
- package/src/browser/model/debug-stack-frame.tsx +170 -170
- package/src/browser/model/debug-thread.tsx +285 -285
- package/src/browser/preferences/launch-preferences.ts +38 -38
- package/src/browser/style/index.css +453 -453
- package/src/browser/view/debug-action.tsx +57 -57
- package/src/browser/view/debug-breakpoints-source.tsx +53 -53
- package/src/browser/view/debug-breakpoints-widget.ts +71 -71
- package/src/browser/view/debug-configuration-select.tsx +269 -269
- package/src/browser/view/debug-configuration-widget.tsx +121 -121
- package/src/browser/view/debug-exception-breakpoint.tsx +68 -68
- package/src/browser/view/debug-session-widget.ts +124 -124
- package/src/browser/view/debug-stack-frames-source.tsx +75 -75
- package/src/browser/view/debug-stack-frames-widget.ts +135 -135
- package/src/browser/view/debug-threads-source.tsx +48 -48
- package/src/browser/view/debug-threads-widget.ts +125 -125
- package/src/browser/view/debug-toolbar-widget.tsx +145 -145
- package/src/browser/view/debug-variables-source.ts +43 -43
- package/src/browser/view/debug-variables-widget.ts +61 -61
- package/src/browser/view/debug-view-model.ts +230 -230
- package/src/browser/view/debug-watch-expression.tsx +88 -88
- package/src/browser/view/debug-watch-source.ts +41 -41
- package/src/browser/view/debug-watch-widget.ts +61 -61
- package/src/browser/view/debug-widget.ts +97 -97
- package/src/common/debug-adapter-contribution-registry.ts +206 -206
- package/src/common/debug-adapter-session.ts +102 -102
- package/src/common/debug-common.ts +19 -19
- package/src/common/debug-compound.ts +33 -33
- package/src/common/debug-configuration.ts +108 -108
- package/src/common/debug-model.ts +200 -200
- package/src/common/debug-service.ts +184 -184
- package/src/common/debug-uri-utils.ts +24 -24
- package/src/common/inline-debug-adapter.ts +47 -47
- package/src/node/debug-adapter-factory.ts +107 -107
- package/src/node/debug-adapter-session-manager.ts +106 -106
- package/src/node/debug-backend-module.ts +57 -57
- package/src/node/debug-service-impl.ts +119 -119
- package/src/node/stream-debug-adapter.ts +126 -126
|
@@ -1,192 +1,192 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2018 TypeFox and others.
|
|
3
|
-
//
|
|
4
|
-
// This program and the accompanying materials are made available under the
|
|
5
|
-
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
-
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
-
//
|
|
8
|
-
// This Source Code may also be made available under the following Secondary
|
|
9
|
-
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
-
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
-
// with the GNU Classpath Exception which is available at
|
|
12
|
-
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
-
//
|
|
14
|
-
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
-
// *****************************************************************************
|
|
16
|
-
|
|
17
|
-
import { injectable, inject, postConstruct } from '@theia/core/shared/inversify';
|
|
18
|
-
import * as monaco from '@theia/monaco-editor-core';
|
|
19
|
-
import { EditorManager, EditorWidget } from '@theia/editor/lib/browser';
|
|
20
|
-
import { ContextMenuRenderer } from '@theia/core/lib/browser';
|
|
21
|
-
import { MonacoEditor } from '@theia/monaco/lib/browser/monaco-editor';
|
|
22
|
-
import { DebugSessionManager } from '../debug-session-manager';
|
|
23
|
-
import { DebugEditorModel, DebugEditorModelFactory } from './debug-editor-model';
|
|
24
|
-
import { BreakpointManager, SourceBreakpointsChangeEvent } from '../breakpoint/breakpoint-manager';
|
|
25
|
-
import { DebugSourceBreakpoint } from '../model/debug-source-breakpoint';
|
|
26
|
-
import { DebugBreakpointWidget } from './debug-breakpoint-widget';
|
|
27
|
-
|
|
28
|
-
@injectable()
|
|
29
|
-
export class DebugEditorService {
|
|
30
|
-
|
|
31
|
-
@inject(EditorManager)
|
|
32
|
-
protected readonly editors: EditorManager;
|
|
33
|
-
|
|
34
|
-
@inject(BreakpointManager)
|
|
35
|
-
protected readonly breakpoints: BreakpointManager;
|
|
36
|
-
|
|
37
|
-
@inject(DebugSessionManager)
|
|
38
|
-
protected readonly sessionManager: DebugSessionManager;
|
|
39
|
-
|
|
40
|
-
@inject(ContextMenuRenderer)
|
|
41
|
-
protected readonly contextMenu: ContextMenuRenderer;
|
|
42
|
-
|
|
43
|
-
@inject(DebugEditorModelFactory)
|
|
44
|
-
protected readonly factory: DebugEditorModelFactory;
|
|
45
|
-
|
|
46
|
-
protected readonly models = new Map<string, DebugEditorModel>();
|
|
47
|
-
|
|
48
|
-
@postConstruct()
|
|
49
|
-
protected init(): void {
|
|
50
|
-
this.editors.all.forEach(widget => this.push(widget));
|
|
51
|
-
this.editors.onCreated(widget => this.push(widget));
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
protected push(widget: EditorWidget): void {
|
|
55
|
-
const { editor } = widget;
|
|
56
|
-
if (!(editor instanceof MonacoEditor)) {
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
const uri = editor.getControl().getModel()!.uri.toString();
|
|
60
|
-
const debugModel = this.factory(editor);
|
|
61
|
-
this.models.set(uri, debugModel);
|
|
62
|
-
editor.getControl().onDidDispose(() => {
|
|
63
|
-
debugModel.dispose();
|
|
64
|
-
this.models.delete(uri);
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
get model(): DebugEditorModel | undefined {
|
|
69
|
-
const { currentEditor } = this.editors;
|
|
70
|
-
const uri = currentEditor && currentEditor.getResourceUri();
|
|
71
|
-
return uri && this.models.get(uri.toString());
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
getLogpoint(position: monaco.Position): DebugSourceBreakpoint | undefined {
|
|
75
|
-
const logpoint = this.anyBreakpoint(position);
|
|
76
|
-
return logpoint && logpoint.logMessage ? logpoint : undefined;
|
|
77
|
-
}
|
|
78
|
-
getLogpointEnabled(position: monaco.Position): boolean | undefined {
|
|
79
|
-
const logpoint = this.getLogpoint(position);
|
|
80
|
-
return logpoint && logpoint.enabled;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
getBreakpoint(position: monaco.Position): DebugSourceBreakpoint | undefined {
|
|
84
|
-
const breakpoint = this.anyBreakpoint(position);
|
|
85
|
-
return breakpoint && breakpoint.logMessage ? undefined : breakpoint;
|
|
86
|
-
}
|
|
87
|
-
getBreakpointEnabled(position: monaco.Position): boolean | undefined {
|
|
88
|
-
const breakpoint = this.getBreakpoint(position);
|
|
89
|
-
return breakpoint && breakpoint.enabled;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
anyBreakpoint(position?: monaco.Position): DebugSourceBreakpoint | undefined {
|
|
93
|
-
return this.model && this.model.getBreakpoint(position);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
getInlineBreakpoint(position?: monaco.Position): DebugSourceBreakpoint | undefined {
|
|
97
|
-
return this.model && this.model.getInlineBreakpoint(position);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
toggleBreakpoint(position?: monaco.Position): void {
|
|
101
|
-
const { model } = this;
|
|
102
|
-
if (model) {
|
|
103
|
-
model.toggleBreakpoint(position);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
setBreakpointEnabled(position: monaco.Position, enabled: boolean): void {
|
|
107
|
-
const breakpoint = this.anyBreakpoint(position);
|
|
108
|
-
if (breakpoint) {
|
|
109
|
-
breakpoint.setEnabled(enabled);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
addInlineBreakpoint(): void {
|
|
114
|
-
const { model } = this;
|
|
115
|
-
if (model) {
|
|
116
|
-
model.addInlineBreakpoint();
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
showHover(): void {
|
|
121
|
-
const { model } = this;
|
|
122
|
-
if (model) {
|
|
123
|
-
const selection = model.editor.getControl().getSelection()!;
|
|
124
|
-
model.hover.show({ selection, focus: true });
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
canShowHover(): boolean {
|
|
128
|
-
const { model } = this;
|
|
129
|
-
if (model) {
|
|
130
|
-
const selection = model.editor.getControl().getSelection()!;
|
|
131
|
-
return !!model.editor.getControl().getModel()!.getWordAtPosition(selection.getStartPosition());
|
|
132
|
-
}
|
|
133
|
-
return false;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
addBreakpoint(context: DebugBreakpointWidget.Context, position?: monaco.Position): void {
|
|
137
|
-
const { model } = this;
|
|
138
|
-
if (model) {
|
|
139
|
-
position = position || model.position;
|
|
140
|
-
const breakpoint = model.getBreakpoint(position);
|
|
141
|
-
if (breakpoint) {
|
|
142
|
-
model.breakpointWidget.show({ breakpoint, context });
|
|
143
|
-
} else {
|
|
144
|
-
model.breakpointWidget.show({
|
|
145
|
-
position,
|
|
146
|
-
context
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
async editBreakpoint(breakpointOrPosition?: DebugSourceBreakpoint | monaco.Position): Promise<void> {
|
|
152
|
-
if (breakpointOrPosition instanceof monaco.Position) {
|
|
153
|
-
breakpointOrPosition = this.anyBreakpoint(breakpointOrPosition);
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
if (breakpointOrPosition) {
|
|
157
|
-
await breakpointOrPosition.open();
|
|
158
|
-
const model = this.models.get(breakpointOrPosition.uri.toString());
|
|
159
|
-
if (model) {
|
|
160
|
-
model.breakpointWidget.show(breakpointOrPosition);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
closeBreakpoint(): void {
|
|
165
|
-
const { model } = this;
|
|
166
|
-
if (model) {
|
|
167
|
-
model.breakpointWidget.hide();
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
acceptBreakpoint(): void {
|
|
171
|
-
const { model } = this;
|
|
172
|
-
if (model) {
|
|
173
|
-
model.acceptBreakpoint();
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
protected closeBreakpointIfAffected({ uri, removed }: SourceBreakpointsChangeEvent): void {
|
|
177
|
-
const model = this.models.get(uri.toString());
|
|
178
|
-
if (!model) {
|
|
179
|
-
return;
|
|
180
|
-
}
|
|
181
|
-
const position = model.breakpointWidget.position;
|
|
182
|
-
if (!position) {
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
185
|
-
for (const breakpoint of removed) {
|
|
186
|
-
if (breakpoint.raw.line === position.lineNumber) {
|
|
187
|
-
model.breakpointWidget.hide();
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
}
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2018 TypeFox and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { injectable, inject, postConstruct } from '@theia/core/shared/inversify';
|
|
18
|
+
import * as monaco from '@theia/monaco-editor-core';
|
|
19
|
+
import { EditorManager, EditorWidget } from '@theia/editor/lib/browser';
|
|
20
|
+
import { ContextMenuRenderer } from '@theia/core/lib/browser';
|
|
21
|
+
import { MonacoEditor } from '@theia/monaco/lib/browser/monaco-editor';
|
|
22
|
+
import { DebugSessionManager } from '../debug-session-manager';
|
|
23
|
+
import { DebugEditorModel, DebugEditorModelFactory } from './debug-editor-model';
|
|
24
|
+
import { BreakpointManager, SourceBreakpointsChangeEvent } from '../breakpoint/breakpoint-manager';
|
|
25
|
+
import { DebugSourceBreakpoint } from '../model/debug-source-breakpoint';
|
|
26
|
+
import { DebugBreakpointWidget } from './debug-breakpoint-widget';
|
|
27
|
+
|
|
28
|
+
@injectable()
|
|
29
|
+
export class DebugEditorService {
|
|
30
|
+
|
|
31
|
+
@inject(EditorManager)
|
|
32
|
+
protected readonly editors: EditorManager;
|
|
33
|
+
|
|
34
|
+
@inject(BreakpointManager)
|
|
35
|
+
protected readonly breakpoints: BreakpointManager;
|
|
36
|
+
|
|
37
|
+
@inject(DebugSessionManager)
|
|
38
|
+
protected readonly sessionManager: DebugSessionManager;
|
|
39
|
+
|
|
40
|
+
@inject(ContextMenuRenderer)
|
|
41
|
+
protected readonly contextMenu: ContextMenuRenderer;
|
|
42
|
+
|
|
43
|
+
@inject(DebugEditorModelFactory)
|
|
44
|
+
protected readonly factory: DebugEditorModelFactory;
|
|
45
|
+
|
|
46
|
+
protected readonly models = new Map<string, DebugEditorModel>();
|
|
47
|
+
|
|
48
|
+
@postConstruct()
|
|
49
|
+
protected init(): void {
|
|
50
|
+
this.editors.all.forEach(widget => this.push(widget));
|
|
51
|
+
this.editors.onCreated(widget => this.push(widget));
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
protected push(widget: EditorWidget): void {
|
|
55
|
+
const { editor } = widget;
|
|
56
|
+
if (!(editor instanceof MonacoEditor)) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const uri = editor.getControl().getModel()!.uri.toString();
|
|
60
|
+
const debugModel = this.factory(editor);
|
|
61
|
+
this.models.set(uri, debugModel);
|
|
62
|
+
editor.getControl().onDidDispose(() => {
|
|
63
|
+
debugModel.dispose();
|
|
64
|
+
this.models.delete(uri);
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
get model(): DebugEditorModel | undefined {
|
|
69
|
+
const { currentEditor } = this.editors;
|
|
70
|
+
const uri = currentEditor && currentEditor.getResourceUri();
|
|
71
|
+
return uri && this.models.get(uri.toString());
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
getLogpoint(position: monaco.Position): DebugSourceBreakpoint | undefined {
|
|
75
|
+
const logpoint = this.anyBreakpoint(position);
|
|
76
|
+
return logpoint && logpoint.logMessage ? logpoint : undefined;
|
|
77
|
+
}
|
|
78
|
+
getLogpointEnabled(position: monaco.Position): boolean | undefined {
|
|
79
|
+
const logpoint = this.getLogpoint(position);
|
|
80
|
+
return logpoint && logpoint.enabled;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
getBreakpoint(position: monaco.Position): DebugSourceBreakpoint | undefined {
|
|
84
|
+
const breakpoint = this.anyBreakpoint(position);
|
|
85
|
+
return breakpoint && breakpoint.logMessage ? undefined : breakpoint;
|
|
86
|
+
}
|
|
87
|
+
getBreakpointEnabled(position: monaco.Position): boolean | undefined {
|
|
88
|
+
const breakpoint = this.getBreakpoint(position);
|
|
89
|
+
return breakpoint && breakpoint.enabled;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
anyBreakpoint(position?: monaco.Position): DebugSourceBreakpoint | undefined {
|
|
93
|
+
return this.model && this.model.getBreakpoint(position);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
getInlineBreakpoint(position?: monaco.Position): DebugSourceBreakpoint | undefined {
|
|
97
|
+
return this.model && this.model.getInlineBreakpoint(position);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
toggleBreakpoint(position?: monaco.Position): void {
|
|
101
|
+
const { model } = this;
|
|
102
|
+
if (model) {
|
|
103
|
+
model.toggleBreakpoint(position);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
setBreakpointEnabled(position: monaco.Position, enabled: boolean): void {
|
|
107
|
+
const breakpoint = this.anyBreakpoint(position);
|
|
108
|
+
if (breakpoint) {
|
|
109
|
+
breakpoint.setEnabled(enabled);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
addInlineBreakpoint(): void {
|
|
114
|
+
const { model } = this;
|
|
115
|
+
if (model) {
|
|
116
|
+
model.addInlineBreakpoint();
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
showHover(): void {
|
|
121
|
+
const { model } = this;
|
|
122
|
+
if (model) {
|
|
123
|
+
const selection = model.editor.getControl().getSelection()!;
|
|
124
|
+
model.hover.show({ selection, focus: true });
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
canShowHover(): boolean {
|
|
128
|
+
const { model } = this;
|
|
129
|
+
if (model) {
|
|
130
|
+
const selection = model.editor.getControl().getSelection()!;
|
|
131
|
+
return !!model.editor.getControl().getModel()!.getWordAtPosition(selection.getStartPosition());
|
|
132
|
+
}
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
addBreakpoint(context: DebugBreakpointWidget.Context, position?: monaco.Position): void {
|
|
137
|
+
const { model } = this;
|
|
138
|
+
if (model) {
|
|
139
|
+
position = position || model.position;
|
|
140
|
+
const breakpoint = model.getBreakpoint(position);
|
|
141
|
+
if (breakpoint) {
|
|
142
|
+
model.breakpointWidget.show({ breakpoint, context });
|
|
143
|
+
} else {
|
|
144
|
+
model.breakpointWidget.show({
|
|
145
|
+
position,
|
|
146
|
+
context
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
async editBreakpoint(breakpointOrPosition?: DebugSourceBreakpoint | monaco.Position): Promise<void> {
|
|
152
|
+
if (breakpointOrPosition instanceof monaco.Position) {
|
|
153
|
+
breakpointOrPosition = this.anyBreakpoint(breakpointOrPosition);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
if (breakpointOrPosition) {
|
|
157
|
+
await breakpointOrPosition.open();
|
|
158
|
+
const model = this.models.get(breakpointOrPosition.uri.toString());
|
|
159
|
+
if (model) {
|
|
160
|
+
model.breakpointWidget.show(breakpointOrPosition);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
closeBreakpoint(): void {
|
|
165
|
+
const { model } = this;
|
|
166
|
+
if (model) {
|
|
167
|
+
model.breakpointWidget.hide();
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
acceptBreakpoint(): void {
|
|
171
|
+
const { model } = this;
|
|
172
|
+
if (model) {
|
|
173
|
+
model.acceptBreakpoint();
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
protected closeBreakpointIfAffected({ uri, removed }: SourceBreakpointsChangeEvent): void {
|
|
177
|
+
const model = this.models.get(uri.toString());
|
|
178
|
+
if (!model) {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
const position = model.breakpointWidget.position;
|
|
182
|
+
if (!position) {
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
for (const breakpoint of removed) {
|
|
186
|
+
if (breakpoint.raw.line === position.lineNumber) {
|
|
187
|
+
model.breakpointWidget.hide();
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2018 TypeFox and others.
|
|
3
|
-
//
|
|
4
|
-
// This program and the accompanying materials are made available under the
|
|
5
|
-
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
-
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
-
//
|
|
8
|
-
// This Source Code may also be made available under the following Secondary
|
|
9
|
-
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
-
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
-
// with the GNU Classpath Exception which is available at
|
|
12
|
-
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
-
//
|
|
14
|
-
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
-
// *****************************************************************************
|
|
16
|
-
|
|
17
|
-
import { MonacoEditor } from '@theia/monaco/lib/browser/monaco-editor';
|
|
18
|
-
|
|
19
|
-
export const DebugEditor = Symbol('DebugEditor');
|
|
20
|
-
export type DebugEditor = MonacoEditor;
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2018 TypeFox and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { MonacoEditor } from '@theia/monaco/lib/browser/monaco-editor';
|
|
18
|
+
|
|
19
|
+
export const DebugEditor = Symbol('DebugEditor');
|
|
20
|
+
export type DebugEditor = MonacoEditor;
|