@codingame/monaco-vscode-debug-service-override 20.1.1 → 20.2.1
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/package.json +16 -16
- package/vscode/src/vs/workbench/contrib/debug/browser/debugAdapterManager.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/debug/browser/debugConfigurationManager.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/debug/browser/debugMemory.d.ts +14 -0
- package/vscode/src/vs/workbench/contrib/debug/browser/debugService.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/debug/browser/debugSession.d.ts +55 -0
- package/vscode/src/vs/workbench/contrib/debug/browser/debugToolBar.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/debug/browser/disassemblyView.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/debug/browser/media/debug.contribution.css +40 -2
- package/vscode/src/vs/workbench/contrib/debug/browser/media/debugHover.css +17 -0
- package/vscode/src/vs/workbench/contrib/debug/browser/media/debugToolBar.css +12 -1
- package/vscode/src/vs/workbench/contrib/debug/browser/media/debugViewlet.css +74 -0
- package/vscode/src/vs/workbench/contrib/debug/browser/media/repl.css +36 -1
- package/vscode/src/vs/workbench/contrib/debug/browser/rawDebugSession.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/debug/browser/replViewer.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/debug/common/debugContentProvider.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/debug/common/debugVisualizers.d.ts +6 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-debug-service-override",
|
|
3
|
-
"version": "20.
|
|
3
|
+
"version": "20.2.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "VSCode public API plugged on the monaco editor - debug service-override",
|
|
6
6
|
"keywords": [],
|
|
@@ -15,21 +15,21 @@
|
|
|
15
15
|
},
|
|
16
16
|
"type": "module",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@codingame/monaco-vscode-262ed59d-4f76-57cd-9e9f-1877f26ae049-common": "20.
|
|
19
|
-
"@codingame/monaco-vscode-34a0ffd3-b9f5-5699-b43b-38af5732f38a-common": "20.
|
|
20
|
-
"@codingame/monaco-vscode-501b06ab-3f58-516b-8a1a-c29d375d3da4-common": "20.
|
|
21
|
-
"@codingame/monaco-vscode-60014c9d-b815-501d-83a9-4b08725c2ec2-common": "20.
|
|
22
|
-
"@codingame/monaco-vscode-88aa9a78-75f5-5aaa-89e9-bbdd580b3b5c-common": "20.
|
|
23
|
-
"@codingame/monaco-vscode-a17e9d37-b6c1-5556-8402-5db73960fae3-common": "20.
|
|
24
|
-
"@codingame/monaco-vscode-a8d3bd74-e63e-5327-96e8-4f931661e329-common": "20.
|
|
25
|
-
"@codingame/monaco-vscode-ab07af84-42e8-5a0f-8aef-b83fb90ede21-common": "20.
|
|
26
|
-
"@codingame/monaco-vscode-api": "20.
|
|
27
|
-
"@codingame/monaco-vscode-b99aef83-0d60-5e8c-a62e-9908b6256f35-common": "20.
|
|
28
|
-
"@codingame/monaco-vscode-ce7c734f-7712-563c-9335-d7acb43306af-common": "20.
|
|
29
|
-
"@codingame/monaco-vscode-d941ac7b-412f-57e3-b1bf-f6b0eb253b21-common": "20.
|
|
30
|
-
"@codingame/monaco-vscode-e59ecb8c-db32-5324-8fe4-cf9921fd92b8-common": "20.
|
|
31
|
-
"@codingame/monaco-vscode-f24e325c-2ce0-5bba-8236-bfc4f53180ab-common": "20.
|
|
32
|
-
"@codingame/monaco-vscode-fc42f049-7883-579d-bb0b-2aa1010a19a8-common": "20.
|
|
18
|
+
"@codingame/monaco-vscode-262ed59d-4f76-57cd-9e9f-1877f26ae049-common": "20.2.1",
|
|
19
|
+
"@codingame/monaco-vscode-34a0ffd3-b9f5-5699-b43b-38af5732f38a-common": "20.2.1",
|
|
20
|
+
"@codingame/monaco-vscode-501b06ab-3f58-516b-8a1a-c29d375d3da4-common": "20.2.1",
|
|
21
|
+
"@codingame/monaco-vscode-60014c9d-b815-501d-83a9-4b08725c2ec2-common": "20.2.1",
|
|
22
|
+
"@codingame/monaco-vscode-88aa9a78-75f5-5aaa-89e9-bbdd580b3b5c-common": "20.2.1",
|
|
23
|
+
"@codingame/monaco-vscode-a17e9d37-b6c1-5556-8402-5db73960fae3-common": "20.2.1",
|
|
24
|
+
"@codingame/monaco-vscode-a8d3bd74-e63e-5327-96e8-4f931661e329-common": "20.2.1",
|
|
25
|
+
"@codingame/monaco-vscode-ab07af84-42e8-5a0f-8aef-b83fb90ede21-common": "20.2.1",
|
|
26
|
+
"@codingame/monaco-vscode-api": "20.2.1",
|
|
27
|
+
"@codingame/monaco-vscode-b99aef83-0d60-5e8c-a62e-9908b6256f35-common": "20.2.1",
|
|
28
|
+
"@codingame/monaco-vscode-ce7c734f-7712-563c-9335-d7acb43306af-common": "20.2.1",
|
|
29
|
+
"@codingame/monaco-vscode-d941ac7b-412f-57e3-b1bf-f6b0eb253b21-common": "20.2.1",
|
|
30
|
+
"@codingame/monaco-vscode-e59ecb8c-db32-5324-8fe4-cf9921fd92b8-common": "20.2.1",
|
|
31
|
+
"@codingame/monaco-vscode-f24e325c-2ce0-5bba-8236-bfc4f53180ab-common": "20.2.1",
|
|
32
|
+
"@codingame/monaco-vscode-fc42f049-7883-579d-bb0b-2aa1010a19a8-common": "20.2.1"
|
|
33
33
|
},
|
|
34
34
|
"main": "index.js",
|
|
35
35
|
"module": "index.js",
|
|
@@ -44,6 +44,7 @@ export declare class AdapterManager extends Disposable implements IAdapterManage
|
|
|
44
44
|
private breakpointContributions;
|
|
45
45
|
private debuggerWhenKeys;
|
|
46
46
|
private taskLabels;
|
|
47
|
+
/** Extensions that were already active before any debugger activation events */
|
|
47
48
|
private earlyActivatedExtensions;
|
|
48
49
|
private usedDebugTypes;
|
|
49
50
|
constructor(delegate: IAdapterManagerDelegate, editorService: IEditorService, configurationService: IConfigurationService, quickInputService: IQuickInputService, instantiationService: IInstantiationService, commandService: ICommandService, extensionService: IExtensionService, contextKeyService: IContextKeyService, languageService: ILanguageService, dialogService: IDialogService, lifecycleService: ILifecycleService, tasksService: ITaskService, menuService: IMenuService);
|
|
@@ -44,6 +44,9 @@ export declare class ConfigurationManager implements IConfigurationManager {
|
|
|
44
44
|
constructor(adapterManager: IAdapterManager, contextService: IWorkspaceContextService, configurationService: IConfigurationService, quickInputService: IQuickInputService, instantiationService: IInstantiationService, storageService: IStorageService, extensionService: IExtensionService, historyService: IHistoryService, uriIdentityService: IUriIdentityService, contextKeyService: IContextKeyService, logService: ILogService);
|
|
45
45
|
registerDebugConfigurationProvider(debugConfigurationProvider: IDebugConfigurationProvider): IDisposable;
|
|
46
46
|
unregisterDebugConfigurationProvider(debugConfigurationProvider: IDebugConfigurationProvider): void;
|
|
47
|
+
/**
|
|
48
|
+
* if scope is not specified,a value of DebugConfigurationProvideTrigger.Initial is assumed.
|
|
49
|
+
*/
|
|
47
50
|
hasDebugConfigurationProvider(debugType: string, triggerKind?: DebugConfigurationProviderTriggerKind): boolean;
|
|
48
51
|
resolveConfigurationByProviders(folderUri: uri | undefined, type: string | undefined, config: IConfig, token: CancellationToken): Promise<IConfig | null | undefined>;
|
|
49
52
|
resolveDebugConfigurationWithSubstitutedVariables(folderUri: uri | undefined, type: string | undefined, config: IConfig, token: CancellationToken): Promise<IConfig | null | undefined>;
|
|
@@ -9,21 +9,35 @@ export declare class DebugMemoryFileSystemProvider extends Disposable implements
|
|
|
9
9
|
private memoryFdCounter;
|
|
10
10
|
private readonly fdMemory;
|
|
11
11
|
private readonly changeEmitter;
|
|
12
|
+
/** @inheritdoc */
|
|
12
13
|
readonly onDidChangeCapabilities: Event<any>;
|
|
14
|
+
/** @inheritdoc */
|
|
13
15
|
readonly onDidChangeFile: Event<readonly IFileChange[]>;
|
|
16
|
+
/** @inheritdoc */
|
|
14
17
|
readonly capabilities: number;
|
|
15
18
|
constructor(debugService: IDebugService);
|
|
16
19
|
watch(resource: URI, opts: IWatchOptions): import("@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle").IDisposable;
|
|
20
|
+
/** @inheritdoc */
|
|
17
21
|
stat(file: URI): Promise<IStat>;
|
|
22
|
+
/** @inheritdoc */
|
|
18
23
|
mkdir(): never;
|
|
24
|
+
/** @inheritdoc */
|
|
19
25
|
readdir(): never;
|
|
26
|
+
/** @inheritdoc */
|
|
20
27
|
delete(): never;
|
|
28
|
+
/** @inheritdoc */
|
|
21
29
|
rename(): never;
|
|
30
|
+
/** @inheritdoc */
|
|
22
31
|
open(resource: URI, _opts: IFileOpenOptions): Promise<number>;
|
|
32
|
+
/** @inheritdoc */
|
|
23
33
|
close(fd: number): Promise<void>;
|
|
34
|
+
/** @inheritdoc */
|
|
24
35
|
writeFile(resource: URI, content: Uint8Array): Promise<void>;
|
|
36
|
+
/** @inheritdoc */
|
|
25
37
|
readFile(resource: URI): Promise<Uint8Array<ArrayBuffer>>;
|
|
38
|
+
/** @inheritdoc */
|
|
26
39
|
read(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number>;
|
|
40
|
+
/** @inheritdoc */
|
|
27
41
|
write(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number>;
|
|
28
42
|
protected parseUri(uri: URI): {
|
|
29
43
|
session: IDebugSession;
|
|
@@ -98,8 +98,18 @@ export declare class DebugService implements IDebugService {
|
|
|
98
98
|
restart: boolean;
|
|
99
99
|
}>;
|
|
100
100
|
private lazySetup;
|
|
101
|
+
/**
|
|
102
|
+
* main entry point
|
|
103
|
+
* properly manages compounds, checks for errors and handles the initializing state.
|
|
104
|
+
*/
|
|
101
105
|
startDebugging(launch: ILaunch | undefined, configOrName?: IConfig | string, options?: IDebugSessionOptions, saveBeforeStart?: boolean): Promise<boolean>;
|
|
106
|
+
/**
|
|
107
|
+
* gets the debugger for the type, resolves configurations by providers, substitutes variables and runs prelaunch tasks
|
|
108
|
+
*/
|
|
102
109
|
private createSession;
|
|
110
|
+
/**
|
|
111
|
+
* instantiates the new session, initializes the session, registers session listeners and reports telemetry
|
|
112
|
+
*/
|
|
103
113
|
private doCreateSession;
|
|
104
114
|
private launchOrAttachToSession;
|
|
105
115
|
private registerSessionListeners;
|
|
@@ -142,6 +152,11 @@ export declare class DebugService implements IDebugService {
|
|
|
142
152
|
setExceptionBreakpointsForSession(session: IDebugSession, filters: DebugProtocol.ExceptionBreakpointsFilter[]): void;
|
|
143
153
|
setExceptionBreakpointCondition(exceptionBreakpoint: IExceptionBreakpoint, condition: string | undefined): Promise<void>;
|
|
144
154
|
sendAllBreakpoints(session?: IDebugSession): Promise<void>;
|
|
155
|
+
/**
|
|
156
|
+
* Removes the condition of triggered breakpoints that depended on
|
|
157
|
+
* breakpoints in `removedBreakpoints`. Returns the URIs of resources that
|
|
158
|
+
* had their breakpoints changed in this way.
|
|
159
|
+
*/
|
|
145
160
|
private unlinkTriggeredBreakpoints;
|
|
146
161
|
private makeTriggeredBreakpointsMatchEnablement;
|
|
147
162
|
sendBreakpoints(modelUri: uri, sourceModified?: boolean, session?: IDebugSession): Promise<void>;
|
|
@@ -66,7 +66,9 @@ export declare class DebugSession implements IDebugSession {
|
|
|
66
66
|
private repl;
|
|
67
67
|
private stoppedDetails;
|
|
68
68
|
private readonly statusQueue;
|
|
69
|
+
/** Test run this debug session was spawned by */
|
|
69
70
|
readonly correlatedTestRun?: LiveTestResult;
|
|
71
|
+
/** Whether we terminated the correlated run yet. Used so a 2nd terminate request goes through to the underlying session. */
|
|
70
72
|
private didTerminateTestRun?;
|
|
71
73
|
private readonly _onDidChangeState;
|
|
72
74
|
private readonly _onDidEndAdapter;
|
|
@@ -79,6 +81,10 @@ export declare class DebugSession implements IDebugSession {
|
|
|
79
81
|
private readonly _onDidChangeREPLElements;
|
|
80
82
|
private _name;
|
|
81
83
|
private readonly _onDidChangeName;
|
|
84
|
+
/**
|
|
85
|
+
* Promise set while enabling dependent breakpoints to block the debugger
|
|
86
|
+
* from continuing from a stopped state.
|
|
87
|
+
*/
|
|
82
88
|
private _waitToResume?;
|
|
83
89
|
constructor(id: string, _configuration: {
|
|
84
90
|
resolved: IConfig;
|
|
@@ -117,11 +123,29 @@ export declare class DebugSession implements IDebugSession {
|
|
|
117
123
|
get onDidProgressUpdate(): Event<DebugProtocol.ProgressUpdateEvent>;
|
|
118
124
|
get onDidProgressEnd(): Event<DebugProtocol.ProgressEndEvent>;
|
|
119
125
|
get onDidInvalidateMemory(): Event<DebugProtocol.MemoryEvent>;
|
|
126
|
+
/**
|
|
127
|
+
* create and initialize a new debug adapter for this session
|
|
128
|
+
*/
|
|
120
129
|
initialize(dbgr: IDebugger): Promise<void>;
|
|
130
|
+
/**
|
|
131
|
+
* launch or attach to the debuggee
|
|
132
|
+
*/
|
|
121
133
|
launchOrAttach(config: IConfig): Promise<void>;
|
|
134
|
+
/**
|
|
135
|
+
* Terminate any linked test run.
|
|
136
|
+
*/
|
|
122
137
|
cancelCorrelatedTestRun(): void;
|
|
138
|
+
/**
|
|
139
|
+
* terminate the current debug adapter session
|
|
140
|
+
*/
|
|
123
141
|
terminate(restart?: boolean): Promise<void>;
|
|
142
|
+
/**
|
|
143
|
+
* end the current debug adapter session
|
|
144
|
+
*/
|
|
124
145
|
disconnect(restart?: boolean, suspend?: boolean): Promise<void>;
|
|
146
|
+
/**
|
|
147
|
+
* restart debug adapter session
|
|
148
|
+
*/
|
|
125
149
|
restart(): Promise<void>;
|
|
126
150
|
sendBreakpoints(modelUri: URI, breakpointsToSend: IBreakpoint[], sourceModified: boolean): Promise<void>;
|
|
127
151
|
sendFunctionBreakpoints(fbpts: IFunctionBreakpoint[]): Promise<void>;
|
|
@@ -199,9 +223,40 @@ export declare class DebugSession implements IDebugSession {
|
|
|
199
223
|
addReplExpression(stackFrame: IStackFrame | undefined, expression: string): Promise<void>;
|
|
200
224
|
appendToRepl(data: INewReplElementData, isImportant?: boolean): void;
|
|
201
225
|
}
|
|
226
|
+
/**
|
|
227
|
+
* Keeps track of events for threads, and cancels any previous operations for
|
|
228
|
+
* a thread when the thread goes into a new state. Currently, the operations a thread has are:
|
|
229
|
+
*
|
|
230
|
+
* - started
|
|
231
|
+
* - stopped
|
|
232
|
+
* - continue
|
|
233
|
+
* - exited
|
|
234
|
+
*
|
|
235
|
+
* In each case, the new state preempts the old state, so we don't need to
|
|
236
|
+
* queue work, just cancel old work. It's up to the caller to make sure that
|
|
237
|
+
* no UI effects happen at the point when the `token` is cancelled.
|
|
238
|
+
*/
|
|
202
239
|
export declare class ThreadStatusScheduler extends Disposable {
|
|
240
|
+
/**
|
|
241
|
+
* An array of set of thread IDs. When a 'stopped' event is encountered, the
|
|
242
|
+
* editor refreshes its thread IDs. In the meantime, the thread may change
|
|
243
|
+
* state it again. So the editor puts a Set into this array when it starts
|
|
244
|
+
* the refresh, and checks it after the refresh is finished, to see if
|
|
245
|
+
* any of the threads it looked up should now be invalidated.
|
|
246
|
+
*/
|
|
203
247
|
private pendingCancellations;
|
|
248
|
+
/**
|
|
249
|
+
* Cancellation tokens for currently-running operations on threads.
|
|
250
|
+
*/
|
|
204
251
|
private readonly threadOps;
|
|
252
|
+
/**
|
|
253
|
+
* Runs the operation.
|
|
254
|
+
* If thread is undefined it affects all threads.
|
|
255
|
+
*/
|
|
205
256
|
run(threadIdsP: Promise<number[]>, operation: (threadId: number, ct: CancellationToken) => Promise<unknown>): Promise<void>;
|
|
257
|
+
/**
|
|
258
|
+
* Cancels all ongoing state operations on the given threads.
|
|
259
|
+
* If threads is undefined it cancel all threads.
|
|
260
|
+
*/
|
|
206
261
|
cancel(threadIds?: readonly number[]): void;
|
|
207
262
|
}
|
|
@@ -32,15 +32,25 @@ export declare class DebugToolBar extends Themable implements IWorkbenchContribu
|
|
|
32
32
|
private isVisible;
|
|
33
33
|
private isBuilt;
|
|
34
34
|
private readonly stopActionViewItemDisposables;
|
|
35
|
+
/** coordinate of the debug toolbar per aux window */
|
|
35
36
|
private readonly auxWindowCoordinates;
|
|
36
37
|
private readonly trackPixelRatioListener;
|
|
37
38
|
constructor(notificationService: INotificationService, telemetryService: ITelemetryService, debugService: IDebugService, layoutService: IWorkbenchLayoutService, storageService: IStorageService, configurationService: IConfigurationService, themeService: IThemeService, instantiationService: IInstantiationService, menuService: IMenuService, contextKeyService: IContextKeyService);
|
|
38
39
|
private registerListeners;
|
|
40
|
+
/**
|
|
41
|
+
* Computes the x percent position at which the toolbar is currently displayed.
|
|
42
|
+
*/
|
|
39
43
|
private computeCurrentXPercent;
|
|
44
|
+
/**
|
|
45
|
+
* Gets the x position set in the style of the toolbar. This may not be its
|
|
46
|
+
* actual position on screen depending on toolbar locations.
|
|
47
|
+
*/
|
|
40
48
|
private getCurrentXPercent;
|
|
49
|
+
/** Gets the y position set in the style of the toolbar */
|
|
41
50
|
private getCurrentYPosition;
|
|
42
51
|
private storePosition;
|
|
43
52
|
updateStyles(): void;
|
|
53
|
+
/** Gets the stored X position of the middle of the toolbar based on the current window width */
|
|
44
54
|
private getStoredXPosition;
|
|
45
55
|
private getStoredYPosition;
|
|
46
56
|
private setCoordinates;
|
|
@@ -18,11 +18,17 @@ export interface IDisassembledInstructionEntry {
|
|
|
18
18
|
allowBreakpoint: boolean;
|
|
19
19
|
isBreakpointSet: boolean;
|
|
20
20
|
isBreakpointEnabled: boolean;
|
|
21
|
+
/** Instruction reference from the DA */
|
|
21
22
|
instructionReference: string;
|
|
23
|
+
/** Offset from the instructionReference that's the basis for the `instructionOffset` */
|
|
22
24
|
instructionReferenceOffset: number;
|
|
25
|
+
/** The number of instructions (+/-) away from the instructionReference and instructionReferenceOffset this instruction lies */
|
|
23
26
|
instructionOffset: number;
|
|
27
|
+
/** Whether this is the first instruction on the target line. */
|
|
24
28
|
showSourceLocation?: boolean;
|
|
29
|
+
/** Original instruction from the debugger */
|
|
25
30
|
instruction: DebugProtocol.DisassembledInstruction;
|
|
31
|
+
/** Parsed instruction address */
|
|
26
32
|
address: bigint;
|
|
27
33
|
}
|
|
28
34
|
export declare class DisassemblyView extends EditorPane {
|
|
@@ -64,14 +70,28 @@ export declare class DisassemblyView extends EditorPane {
|
|
|
64
70
|
protected createEditor(parent: HTMLElement): void;
|
|
65
71
|
layout(dimension: Dimension): void;
|
|
66
72
|
goToInstructionAndOffset(instructionReference: string, offset: number, focus?: boolean): Promise<void>;
|
|
73
|
+
/** Gets the address associated with the instruction reference. */
|
|
67
74
|
getReferenceAddress(instructionReference: string): bigint | undefined;
|
|
75
|
+
/**
|
|
76
|
+
* Go to the address provided. If no address is provided, reveal the address of the currently focused stack frame. Returns false if that address is not available.
|
|
77
|
+
*/
|
|
68
78
|
private goToAddress;
|
|
69
79
|
private scrollUp_LoadDisassembledInstructions;
|
|
70
80
|
private scrollDown_LoadDisassembledInstructions;
|
|
81
|
+
/**
|
|
82
|
+
* Sets the memory reference address. We don't just loadDisassembledInstructions
|
|
83
|
+
* for this, since we can't really deal with discontiguous ranges (we can't
|
|
84
|
+
* detect _if_ a range is discontiguous since we don't know how much memory
|
|
85
|
+
* comes between instructions.)
|
|
86
|
+
*/
|
|
71
87
|
private primeMemoryReference;
|
|
88
|
+
/** Loads disasembled instructions. Returns the number of instructions that were loaded. */
|
|
72
89
|
private loadDisassembledInstructions;
|
|
73
90
|
private getIndexFromReferenceAndOffset;
|
|
74
91
|
private getIndexFromAddress;
|
|
92
|
+
/**
|
|
93
|
+
* Clears the table and reload instructions near the target address
|
|
94
|
+
*/
|
|
75
95
|
private reloadDisassembly;
|
|
76
96
|
private clear;
|
|
77
97
|
private onContextMenu;
|
|
@@ -1,25 +1,37 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
|
|
1
6
|
.codicon-debug-hint {
|
|
2
7
|
cursor: pointer;
|
|
3
8
|
}
|
|
9
|
+
|
|
4
10
|
.codicon-debug-hint:not([class*='codicon-debug-breakpoint']):not([class*='codicon-debug-stackframe']) {
|
|
5
11
|
opacity: 0.4 !important;
|
|
6
12
|
}
|
|
13
|
+
|
|
7
14
|
.inline-breakpoint-widget.codicon {
|
|
8
15
|
display: flex !important;
|
|
9
16
|
align-items: center;
|
|
10
17
|
}
|
|
18
|
+
|
|
11
19
|
.inline-breakpoint-widget.codicon-debug-breakpoint-disabled {
|
|
12
20
|
opacity: 0.7;
|
|
13
21
|
}
|
|
22
|
+
|
|
14
23
|
.monaco-editor .inline-breakpoint-widget.line-start {
|
|
15
24
|
left: -8px !important;
|
|
16
25
|
}
|
|
26
|
+
|
|
17
27
|
.monaco-editor .debug-breakpoint-placeholder {
|
|
18
28
|
width: 0.9em;
|
|
19
29
|
display: inline-flex;
|
|
20
30
|
vertical-align: middle;
|
|
21
31
|
margin-top: -1px;
|
|
22
32
|
}
|
|
33
|
+
|
|
34
|
+
|
|
23
35
|
.codicon-debug-breakpoint-conditional.codicon-debug-stackframe-focused::after,
|
|
24
36
|
.codicon-debug-breakpoint-conditional.codicon-debug-stackframe::after,
|
|
25
37
|
.codicon-debug-breakpoint.codicon-debug-stackframe-focused::after,
|
|
@@ -28,6 +40,7 @@
|
|
|
28
40
|
font-family: var(--vscode-icon-debug-stackframe-dot-font-family);
|
|
29
41
|
position: absolute;
|
|
30
42
|
}
|
|
43
|
+
|
|
31
44
|
.monaco-editor .debug-top-stack-frame-column {
|
|
32
45
|
font: normal normal normal 16px/1 codicon;
|
|
33
46
|
text-rendering: auto;
|
|
@@ -35,34 +48,45 @@
|
|
|
35
48
|
-moz-osx-font-smoothing: grayscale;
|
|
36
49
|
margin-left: 0;
|
|
37
50
|
margin-right: 4px;
|
|
38
|
-
margin-top: -1px;
|
|
51
|
+
margin-top: -1px; /* TODO @misolori: figure out a way to not use negative margin for alignment */
|
|
39
52
|
align-items: center;
|
|
40
53
|
width: 0.9em;
|
|
41
54
|
display: inline-flex;
|
|
42
55
|
vertical-align: middle;
|
|
43
56
|
}
|
|
57
|
+
|
|
44
58
|
.debug-var-hover-pre {
|
|
45
59
|
margin: 0;
|
|
46
60
|
}
|
|
61
|
+
|
|
47
62
|
.debug-var-hover-pre span {
|
|
48
63
|
display: inline !important;
|
|
49
64
|
}
|
|
65
|
+
|
|
66
|
+
/* Do not push text with inline decoration when decoration on start of line */
|
|
50
67
|
.monaco-editor .debug-top-stack-frame-column.start-of-line {
|
|
51
68
|
position: absolute;
|
|
52
69
|
top: 50%;
|
|
53
70
|
transform: translate(-17px, -50%);
|
|
54
|
-
margin-top: 0px;
|
|
71
|
+
margin-top: 0px; /* TODO @misolori: figure out a way to not use negative margin for alignment */
|
|
55
72
|
}
|
|
73
|
+
|
|
56
74
|
.monaco-editor .inline-breakpoint-widget {
|
|
57
75
|
cursor: pointer;
|
|
58
76
|
}
|
|
77
|
+
|
|
59
78
|
.monaco-workbench .debug-view-content .monaco-list-row .monaco-tl-contents {
|
|
60
79
|
overflow: hidden;
|
|
61
80
|
text-overflow: ellipsis;
|
|
62
81
|
}
|
|
82
|
+
|
|
83
|
+
/* Expressions */
|
|
84
|
+
|
|
85
|
+
|
|
63
86
|
.monaco-workbench .monaco-list-row .expression {
|
|
64
87
|
display: flex;
|
|
65
88
|
}
|
|
89
|
+
|
|
66
90
|
.monaco-workbench .debug-pane .monaco-list-row .expression,
|
|
67
91
|
.monaco-workbench .debug-hover-widget .monaco-list-row .expression {
|
|
68
92
|
font-size: 13px;
|
|
@@ -71,41 +95,55 @@
|
|
|
71
95
|
font-family: var(--monaco-monospace-font);
|
|
72
96
|
white-space: pre;
|
|
73
97
|
}
|
|
98
|
+
|
|
74
99
|
.monaco-workbench.mac .debug-pane .monaco-list-row .expression,
|
|
75
100
|
.monaco-workbench.mac .debug-hover-widget .monaco-list-row .expression {
|
|
76
101
|
font-size: 11px;
|
|
77
102
|
}
|
|
103
|
+
|
|
78
104
|
.monaco-workbench .monaco-list-row .expression .value {
|
|
79
105
|
margin-left: 6px;
|
|
80
106
|
}
|
|
107
|
+
|
|
81
108
|
.monaco-workbench .monaco-list-row .expression .lazy-button {
|
|
82
109
|
margin-left: 3px;
|
|
83
110
|
display: none;
|
|
84
111
|
border-radius: 5px;
|
|
85
112
|
align-self: center;
|
|
86
113
|
}
|
|
114
|
+
|
|
87
115
|
.monaco-workbench .monaco-list-row .expression.lazy .lazy-button {
|
|
88
116
|
display: inline;
|
|
89
117
|
}
|
|
118
|
+
|
|
119
|
+
/* Links */
|
|
120
|
+
|
|
90
121
|
.monaco-workbench .monaco-list-row .expression .value a.link:hover {
|
|
91
122
|
text-decoration: underline;
|
|
92
123
|
}
|
|
124
|
+
|
|
93
125
|
.monaco-workbench .monaco-list-row .expression .value a.link.pointer {
|
|
94
126
|
cursor: pointer;
|
|
95
127
|
}
|
|
128
|
+
|
|
129
|
+
/* White color when element is selected and list is focused. White looks better on blue selection background. */
|
|
96
130
|
.monaco-workbench .monaco-list:focus .monaco-list-row.selected .expression .name,
|
|
97
131
|
.monaco-workbench .monaco-list:focus .monaco-list-row.selected .expression .value {
|
|
98
132
|
color: inherit;
|
|
99
133
|
}
|
|
134
|
+
|
|
100
135
|
.monaco-workbench .monaco-list-row .expression .name.virtual {
|
|
101
136
|
opacity: 0.5;
|
|
102
137
|
}
|
|
138
|
+
|
|
103
139
|
.monaco-workbench .monaco-list-row .expression .name.internal {
|
|
104
140
|
opacity: 0.5;
|
|
105
141
|
}
|
|
142
|
+
|
|
106
143
|
.monaco-workbench .monaco-list-row .expression .unavailable {
|
|
107
144
|
font-style: italic;
|
|
108
145
|
}
|
|
146
|
+
|
|
109
147
|
.monaco-workbench .debug-inline-value {
|
|
110
148
|
background-color: var(--vscode-editor-inlineValuesBackground);
|
|
111
149
|
color: var(--vscode-editor-inlineValuesForeground);
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
|
|
1
6
|
.monaco-editor .debug-hover-widget {
|
|
2
7
|
position: absolute;
|
|
3
8
|
z-index: 50;
|
|
@@ -8,9 +13,11 @@
|
|
|
8
13
|
word-break: break-all;
|
|
9
14
|
white-space: pre;
|
|
10
15
|
}
|
|
16
|
+
|
|
11
17
|
.monaco-editor .debug-hover-widget .complex-value {
|
|
12
18
|
max-width: 550px;
|
|
13
19
|
}
|
|
20
|
+
|
|
14
21
|
.monaco-editor .debug-hover-widget .complex-value .title,
|
|
15
22
|
.monaco-editor .debug-hover-widget .complex-value .tip {
|
|
16
23
|
padding-left: 15px;
|
|
@@ -23,32 +30,41 @@
|
|
|
23
30
|
overflow: hidden;
|
|
24
31
|
white-space: pre;
|
|
25
32
|
}
|
|
33
|
+
|
|
26
34
|
.monaco-editor .debug-hover-widget .complex-value .title {
|
|
27
35
|
border-bottom: 1px solid rgba(128, 128, 128, 0.35);
|
|
28
36
|
}
|
|
37
|
+
|
|
29
38
|
.monaco-editor .debug-hover-widget .complex-value .tip {
|
|
30
39
|
border-top: 1px solid rgba(128, 128, 128, 0.35);
|
|
31
40
|
opacity: 0.5;
|
|
32
41
|
}
|
|
42
|
+
|
|
33
43
|
.monaco-editor .debug-hover-widget .debug-hover-tree {
|
|
34
44
|
line-height: 18px;
|
|
35
45
|
cursor: pointer;
|
|
36
46
|
}
|
|
47
|
+
|
|
37
48
|
.monaco-editor .debug-hover-widget .debug-hover-tree .monaco-list-row .monaco-tl-contents {
|
|
38
49
|
user-select: text;
|
|
39
50
|
-webkit-user-select: text;
|
|
40
51
|
white-space: pre;
|
|
41
52
|
}
|
|
53
|
+
|
|
54
|
+
/* Disable tree highlight in debug hover tree. */
|
|
42
55
|
.monaco-editor .debug-hover-widget .debug-hover-tree .monaco-list-rows .monaco-list-row:hover:not(.highlighted):not(.selected):not(.focused) {
|
|
43
56
|
background-color: inherit;
|
|
44
57
|
}
|
|
58
|
+
|
|
45
59
|
.monaco-editor .debug-hover-widget pre {
|
|
46
60
|
margin-top: 0;
|
|
47
61
|
margin-bottom: 0;
|
|
48
62
|
}
|
|
63
|
+
|
|
49
64
|
.monaco-editor .debugHoverHighlight {
|
|
50
65
|
background-color: rgba(173, 214, 255, 0.15);
|
|
51
66
|
}
|
|
67
|
+
|
|
52
68
|
.monaco-editor .debug-hover-widget > .monaco-scrollable-element > .value {
|
|
53
69
|
color: rgba(108, 108, 108, 0.8);
|
|
54
70
|
overflow: auto;
|
|
@@ -57,6 +73,7 @@
|
|
|
57
73
|
padding: 4px 5px;
|
|
58
74
|
white-space: pre-wrap;
|
|
59
75
|
}
|
|
76
|
+
|
|
60
77
|
.monaco-editor.vs-dark .debugHoverHighlight,
|
|
61
78
|
.monaco-editor.hc-theme .debugHoverHighlight {
|
|
62
79
|
background-color: rgba(38, 79, 120, 0.25);
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
|
|
1
6
|
.monaco-workbench .debug-toolbar {
|
|
2
7
|
position: absolute;
|
|
3
|
-
z-index: 2520;
|
|
8
|
+
z-index: 2520; /* Below quick input at 2550, above custom titlebar toolbar at 2500 */
|
|
4
9
|
height: 26px;
|
|
5
10
|
display: flex;
|
|
6
11
|
padding-left: 7px;
|
|
@@ -9,16 +14,20 @@
|
|
|
9
14
|
top: 0;
|
|
10
15
|
-webkit-app-region: no-drag;
|
|
11
16
|
}
|
|
17
|
+
|
|
12
18
|
.monaco-workbench .debug-toolbar .monaco-action-bar .action-item {
|
|
13
19
|
margin-right: 4px;
|
|
14
20
|
}
|
|
21
|
+
|
|
15
22
|
.monaco-workbench .debug-toolbar .monaco-action-bar .action-item.select-container {
|
|
16
23
|
margin-right: 7px;
|
|
17
24
|
}
|
|
25
|
+
|
|
18
26
|
.monaco-workbench .debug-toolbar .monaco-action-bar .action-item.select-container .monaco-select-box,
|
|
19
27
|
.monaco-workbench .start-debug-action-item .select-container .monaco-select-box {
|
|
20
28
|
padding: 0 22px 0 6px;
|
|
21
29
|
}
|
|
30
|
+
|
|
22
31
|
.monaco-workbench .debug-toolbar .drag-area {
|
|
23
32
|
cursor: grab;
|
|
24
33
|
width: 16px;
|
|
@@ -27,9 +36,11 @@
|
|
|
27
36
|
align-items: center;
|
|
28
37
|
justify-content: center;
|
|
29
38
|
}
|
|
39
|
+
|
|
30
40
|
.monaco-workbench .debug-toolbar .drag-area.dragged {
|
|
31
41
|
cursor: grabbing;
|
|
32
42
|
}
|
|
43
|
+
|
|
33
44
|
.monaco-workbench .debug-toolbar .monaco-action-bar .action-item .action-label {
|
|
34
45
|
margin-right: 0;
|
|
35
46
|
background-size: 16px;
|
|
@@ -1,9 +1,18 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
|
|
6
|
+
/* Debug viewlet */
|
|
7
|
+
|
|
1
8
|
.debug-pane {
|
|
2
9
|
height: 100%;
|
|
3
10
|
}
|
|
11
|
+
|
|
4
12
|
.debug-view-content {
|
|
5
13
|
height: 100%;
|
|
6
14
|
}
|
|
15
|
+
|
|
7
16
|
.monaco-workbench .debug-action.notification:after {
|
|
8
17
|
content: '';
|
|
9
18
|
width: 6px;
|
|
@@ -15,24 +24,29 @@
|
|
|
15
24
|
border-radius: 10px;
|
|
16
25
|
border: 1px solid white;
|
|
17
26
|
}
|
|
27
|
+
|
|
18
28
|
.monaco-workbench .part > .title > .title-actions .start-debug-action-item {
|
|
19
29
|
display: flex;
|
|
20
30
|
align-items: center;
|
|
21
31
|
line-height: 20px;
|
|
22
32
|
flex-shrink: 1;
|
|
23
33
|
}
|
|
34
|
+
|
|
24
35
|
.monaco-workbench.mac .part > .title > .title-actions .start-debug-action-item {
|
|
25
36
|
border-radius: 4px;
|
|
26
37
|
}
|
|
38
|
+
|
|
27
39
|
.monaco-workbench .part > .title > .title-actions .start-debug-action-item .codicon {
|
|
28
40
|
line-height: inherit;
|
|
29
41
|
flex-shrink: 0;
|
|
30
42
|
}
|
|
43
|
+
|
|
31
44
|
.monaco-workbench .part > .title > .title-actions .start-debug-action-item .codicon-debug-start {
|
|
32
45
|
width: 18px;
|
|
33
46
|
height: 21px;
|
|
34
47
|
padding-left: 2px;
|
|
35
48
|
}
|
|
49
|
+
|
|
36
50
|
.monaco-workbench .monaco-action-bar .start-debug-action-item .configuration .monaco-select-box {
|
|
37
51
|
border: none;
|
|
38
52
|
margin-top: 0px;
|
|
@@ -40,29 +54,42 @@
|
|
|
40
54
|
line-height: inherit;
|
|
41
55
|
padding-top: 0;
|
|
42
56
|
padding-bottom: 0;
|
|
57
|
+
|
|
58
|
+
/* The debug view title is crowded, let this one get narrower than others */
|
|
43
59
|
min-width: 90px;
|
|
44
60
|
}
|
|
61
|
+
|
|
62
|
+
|
|
45
63
|
.monaco-workbench.safari .monaco-action-bar .start-debug-action-item .configuration .monaco-select-box {
|
|
46
64
|
margin-bottom: 0px;
|
|
47
65
|
}
|
|
66
|
+
|
|
48
67
|
.monaco-workbench .monaco-action-bar .start-debug-action-item .configuration.disabled .monaco-select-box {
|
|
49
68
|
opacity: 0.7;
|
|
50
69
|
font-style: italic;
|
|
51
70
|
cursor: initial;
|
|
52
71
|
}
|
|
72
|
+
|
|
73
|
+
/* Debug viewlet trees */
|
|
74
|
+
|
|
53
75
|
.debug-pane .line-number {
|
|
54
76
|
padding-left: 4px;
|
|
55
77
|
padding-right: 4px;
|
|
56
78
|
}
|
|
79
|
+
|
|
57
80
|
.debug-pane .disabled {
|
|
58
81
|
opacity: 0.65;
|
|
59
82
|
cursor: initial;
|
|
60
83
|
}
|
|
84
|
+
|
|
61
85
|
.debug-pane .monaco-list:focus .monaco-list-row.selected .state.label,
|
|
62
86
|
.debug-pane .monaco-list:focus .monaco-list-row.selected .load-all,
|
|
63
87
|
.debug-pane .monaco-list:focus .monaco-list-row.selected.focused .state.label {
|
|
64
88
|
color: inherit;
|
|
65
89
|
}
|
|
90
|
+
|
|
91
|
+
/* Call stack */
|
|
92
|
+
|
|
66
93
|
.debug-pane .call-stack-state-message {
|
|
67
94
|
flex: 1;
|
|
68
95
|
text-align: right;
|
|
@@ -71,22 +98,26 @@
|
|
|
71
98
|
white-space: nowrap;
|
|
72
99
|
margin: 0px 10px;
|
|
73
100
|
}
|
|
101
|
+
|
|
74
102
|
.debug-pane .call-stack-state-message > .label {
|
|
75
103
|
border-radius: 3px;
|
|
76
104
|
padding: 1px 2px;
|
|
77
105
|
font-size: 9px;
|
|
78
106
|
}
|
|
107
|
+
|
|
79
108
|
.debug-pane .debug-call-stack .thread,
|
|
80
109
|
.debug-pane .debug-call-stack .session {
|
|
81
110
|
display: flex;
|
|
82
111
|
align-items: center;
|
|
83
112
|
}
|
|
113
|
+
|
|
84
114
|
.debug-pane .debug-call-stack .thread > .name,
|
|
85
115
|
.debug-pane .debug-call-stack .session > .name {
|
|
86
116
|
flex: 1;
|
|
87
117
|
overflow: hidden;
|
|
88
118
|
text-overflow: ellipsis;
|
|
89
119
|
}
|
|
120
|
+
|
|
90
121
|
.debug-pane .debug-call-stack .thread > .state.label,
|
|
91
122
|
.debug-pane .debug-call-stack .session > .state.label {
|
|
92
123
|
overflow: hidden;
|
|
@@ -96,115 +127,146 @@
|
|
|
96
127
|
align-self: center;
|
|
97
128
|
font-size: 0.8em;
|
|
98
129
|
}
|
|
130
|
+
|
|
99
131
|
.debug-pane .debug-call-stack .monaco-list-row:hover .state.label {
|
|
100
132
|
display: none;
|
|
101
133
|
}
|
|
134
|
+
|
|
102
135
|
.debug-pane .debug-call-stack .monaco-list-row:hover .stack-frame.has-actions .file .line-number {
|
|
103
136
|
display: none;
|
|
104
137
|
}
|
|
138
|
+
|
|
105
139
|
.debug-pane .monaco-list-row .monaco-action-bar {
|
|
106
140
|
display: none;
|
|
107
141
|
flex-shrink: 0;
|
|
108
142
|
margin-right: 6px;
|
|
109
143
|
}
|
|
144
|
+
|
|
110
145
|
.debug-pane .monaco-list-row:hover .monaco-action-bar,
|
|
111
146
|
.debug-pane .monaco-list-row.focused .monaco-action-bar {
|
|
112
147
|
display: initial;
|
|
113
148
|
}
|
|
149
|
+
|
|
114
150
|
.debug-pane .monaco-list-row .monaco-action-bar .action-label {
|
|
115
151
|
padding: 2px;
|
|
116
152
|
}
|
|
153
|
+
|
|
117
154
|
.debug-pane .session .codicon {
|
|
118
155
|
line-height: 22px;
|
|
119
156
|
margin-right: 2px;
|
|
120
157
|
}
|
|
158
|
+
|
|
121
159
|
.debug-pane .debug-call-stack .stack-frame {
|
|
122
160
|
overflow: hidden;
|
|
123
161
|
text-overflow: ellipsis;
|
|
124
162
|
padding-right: 0.8em;
|
|
125
163
|
display: flex;
|
|
126
164
|
}
|
|
165
|
+
|
|
127
166
|
.debug-pane .debug-call-stack .stack-frame.label {
|
|
128
167
|
text-align: center;
|
|
129
168
|
font-style: italic;
|
|
130
169
|
}
|
|
170
|
+
|
|
131
171
|
.debug-pane .debug-call-stack .stack-frame .label {
|
|
132
172
|
flex: 1;
|
|
133
173
|
flex-shrink: 0;
|
|
134
174
|
min-width: fit-content;
|
|
135
175
|
}
|
|
176
|
+
|
|
136
177
|
.debug-pane .debug-call-stack .stack-frame.label > .file {
|
|
137
178
|
display: none;
|
|
138
179
|
}
|
|
180
|
+
|
|
139
181
|
.debug-pane .debug-call-stack .stack-frame > .file {
|
|
140
182
|
display: flex;
|
|
141
183
|
overflow: hidden;
|
|
142
184
|
flex-wrap: wrap;
|
|
143
185
|
justify-content: flex-end;
|
|
144
186
|
}
|
|
187
|
+
|
|
145
188
|
.debug-pane .debug-call-stack .stack-frame > .file > .line-number.unavailable {
|
|
146
189
|
display: none;
|
|
147
190
|
}
|
|
191
|
+
|
|
148
192
|
.debug-pane .debug-call-stack .stack-frame > .file > .file-name {
|
|
149
193
|
overflow: hidden;
|
|
150
194
|
text-overflow: ellipsis;
|
|
151
195
|
margin-right: 0.8em;
|
|
152
196
|
}
|
|
197
|
+
|
|
153
198
|
.debug-pane .debug-call-stack .stack-frame > .file:not(:first-child) {
|
|
154
199
|
margin-left: 0.8em;
|
|
155
200
|
}
|
|
201
|
+
|
|
156
202
|
.debug-pane .debug-call-stack .load-all {
|
|
157
203
|
text-align: center;
|
|
158
204
|
}
|
|
205
|
+
|
|
159
206
|
.debug-pane .debug-call-stack .show-more {
|
|
160
207
|
opacity: 0.5;
|
|
161
208
|
text-align: center;
|
|
162
209
|
}
|
|
210
|
+
|
|
163
211
|
.debug-pane .debug-call-stack .error {
|
|
164
212
|
font-style: italic;
|
|
165
213
|
text-overflow: ellipsis;
|
|
166
214
|
overflow: hidden;
|
|
167
215
|
}
|
|
216
|
+
|
|
217
|
+
/* Variables & Expression view */
|
|
218
|
+
|
|
168
219
|
.debug-pane .scope {
|
|
169
220
|
font-weight: bold;
|
|
170
221
|
font-size: 11px;
|
|
171
222
|
}
|
|
223
|
+
|
|
172
224
|
.debug-pane .monaco-list-row .expression .actionbar-spacer {
|
|
173
225
|
flex-grow: 1;
|
|
174
226
|
}
|
|
227
|
+
|
|
175
228
|
.debug-pane .monaco-list-row .expression .value {
|
|
176
229
|
height: 22px;
|
|
177
230
|
overflow: hidden;
|
|
178
231
|
white-space: pre;
|
|
179
232
|
text-overflow: ellipsis;
|
|
180
233
|
}
|
|
234
|
+
|
|
181
235
|
.debug-pane .monaco-list-row .expression .value.changed {
|
|
182
236
|
border-radius: 4px;
|
|
183
237
|
}
|
|
238
|
+
|
|
184
239
|
.debug-pane .monaco-inputbox {
|
|
185
240
|
width: 100%;
|
|
186
241
|
line-height: normal;
|
|
187
242
|
}
|
|
243
|
+
|
|
188
244
|
.debug-pane .inputBoxContainer {
|
|
189
245
|
box-sizing: border-box;
|
|
190
246
|
flex-grow: 1;
|
|
191
247
|
}
|
|
248
|
+
|
|
192
249
|
.debug-pane .debug-watch .monaco-inputbox {
|
|
193
250
|
font-family: var(--monaco-monospace-font);
|
|
194
251
|
}
|
|
252
|
+
|
|
195
253
|
.debug-pane .monaco-inputbox > .ibwrapper {
|
|
196
254
|
height: 19px;
|
|
197
255
|
}
|
|
256
|
+
|
|
198
257
|
.debug-pane .monaco-inputbox > .ibwrapper > .input {
|
|
199
258
|
padding: 0px;
|
|
200
259
|
color: initial;
|
|
201
260
|
}
|
|
261
|
+
|
|
202
262
|
.debug-pane .watch-expression {
|
|
203
263
|
display: flex;
|
|
204
264
|
}
|
|
265
|
+
|
|
205
266
|
.debug-pane .watch-expression .expression {
|
|
206
267
|
flex : 1;
|
|
207
268
|
}
|
|
269
|
+
|
|
208
270
|
.debug-pane .debug-variables .scope .error {
|
|
209
271
|
font-style: italic;
|
|
210
272
|
text-overflow: ellipsis;
|
|
@@ -218,24 +280,32 @@
|
|
|
218
280
|
outline: 1px dotted var(--vscode-list-filterMatchBorder);
|
|
219
281
|
outline-offset: -1px;
|
|
220
282
|
}
|
|
283
|
+
|
|
284
|
+
/* Breakpoints */
|
|
285
|
+
|
|
221
286
|
.debug-pane .monaco-list-row {
|
|
222
287
|
line-height: 22px;
|
|
223
288
|
}
|
|
289
|
+
|
|
224
290
|
.debug-pane .debug-breakpoints .monaco-list-row .breakpoint {
|
|
225
291
|
padding-left: 2px;
|
|
226
292
|
}
|
|
293
|
+
|
|
227
294
|
.debug-pane .debug-breakpoints .breakpoint.exception {
|
|
228
295
|
padding-left: 21px;
|
|
229
296
|
}
|
|
297
|
+
|
|
230
298
|
.debug-pane .debug-breakpoints .breakpoint {
|
|
231
299
|
display: flex;
|
|
232
300
|
padding-right: 0.8em;
|
|
233
301
|
flex: 1;
|
|
234
302
|
align-items: center;
|
|
235
303
|
}
|
|
304
|
+
|
|
236
305
|
.debug-pane .debug-breakpoints .breakpoint input {
|
|
237
306
|
flex-shrink: 0;
|
|
238
307
|
}
|
|
308
|
+
|
|
239
309
|
.debug-pane .debug-breakpoints .breakpoint > .codicon {
|
|
240
310
|
width: 19px;
|
|
241
311
|
height: 19px;
|
|
@@ -244,6 +314,7 @@
|
|
|
244
314
|
align-items: center;
|
|
245
315
|
justify-content: center;
|
|
246
316
|
}
|
|
317
|
+
|
|
247
318
|
.debug-pane .debug-breakpoints .breakpoint > .access-type {
|
|
248
319
|
opacity: 0.7;
|
|
249
320
|
margin-left: 0.9em;
|
|
@@ -258,13 +329,16 @@
|
|
|
258
329
|
text-overflow: ellipsis;
|
|
259
330
|
overflow: hidden;
|
|
260
331
|
}
|
|
332
|
+
|
|
261
333
|
.debug-pane .debug-breakpoints .breakpoint .name {
|
|
262
334
|
overflow: hidden;
|
|
263
335
|
text-overflow: ellipsis
|
|
264
336
|
}
|
|
337
|
+
|
|
265
338
|
.debug-pane .pane-header .breakpoint-warning {
|
|
266
339
|
margin-left: 3px;
|
|
267
340
|
}
|
|
341
|
+
|
|
268
342
|
.debug-pane .pane-header .breakpoint-warning .monaco-icon-label .codicon {
|
|
269
343
|
display: flex;
|
|
270
344
|
align-items: center;
|
|
@@ -1,53 +1,76 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
|
|
6
|
+
/* Debug repl */
|
|
7
|
+
|
|
1
8
|
.monaco-workbench .repl {
|
|
2
9
|
height: 100%;
|
|
3
10
|
box-sizing: border-box;
|
|
4
11
|
overflow: hidden;
|
|
5
12
|
}
|
|
13
|
+
|
|
6
14
|
.monaco-workbench .repl .repl-tree .monaco-tl-contents {
|
|
7
15
|
user-select: text;
|
|
8
16
|
-webkit-user-select: text;
|
|
9
17
|
white-space: pre;
|
|
10
18
|
}
|
|
19
|
+
|
|
11
20
|
.monaco-workbench .repl .repl-tree .monaco-tl-contents .expression {
|
|
12
21
|
font-family: var(--vscode-repl-font-family);
|
|
13
22
|
font-size: var(--vscode-repl-font-size);
|
|
14
23
|
line-height: var(--vscode-repl-line-height);
|
|
15
24
|
}
|
|
25
|
+
|
|
16
26
|
.monaco-workbench .repl .repl-tree .monaco-tl-contents .expression .lazy-button {
|
|
17
27
|
cursor: pointer;
|
|
18
28
|
}
|
|
29
|
+
|
|
19
30
|
.monaco-workbench .repl .repl-tree .monaco-tl-twistie {
|
|
20
31
|
background-position-y: calc(100% - (var(--vscode-repl-font-size-for-twistie)));
|
|
21
32
|
}
|
|
33
|
+
|
|
22
34
|
.monaco-workbench .repl .repl-tree.word-wrap .monaco-tl-contents {
|
|
35
|
+
/* Wrap words but also do not trim whitespace #6275 */
|
|
23
36
|
word-wrap: break-word;
|
|
24
37
|
white-space: pre-wrap;
|
|
38
|
+
/* Break on all #7533 */
|
|
25
39
|
word-break: break-all;
|
|
26
40
|
}
|
|
41
|
+
|
|
27
42
|
.monaco-workbench .repl .repl-tree.word-wrap .monaco-tl-contents .expression.nested-variable {
|
|
28
|
-
white-space: pre;
|
|
43
|
+
white-space: pre; /* Preserve whitespace but don't wrap */
|
|
29
44
|
}
|
|
45
|
+
|
|
30
46
|
.monaco-workbench .repl .repl-tree .monaco-tl-twistie.collapsible + .monaco-tl-contents,
|
|
31
47
|
.monaco-workbench .repl .repl-tree .monaco-tl-twistie {
|
|
32
48
|
cursor: pointer;
|
|
33
49
|
}
|
|
50
|
+
|
|
34
51
|
.monaco-workbench .repl .repl-tree .output.expression.value-and-source {
|
|
35
52
|
display: flex;
|
|
36
53
|
}
|
|
54
|
+
|
|
37
55
|
.monaco-workbench .repl .repl-tree .output.expression.value-and-source .label {
|
|
38
56
|
margin-right: 4px;
|
|
39
57
|
}
|
|
58
|
+
|
|
40
59
|
.monaco-workbench .repl .repl-tree .output.expression.value-and-source .count-badge-wrapper {
|
|
41
60
|
margin-right: 4px;
|
|
42
61
|
}
|
|
62
|
+
|
|
43
63
|
.monaco-workbench .repl .repl-tree .output.expression.value-and-source .count-badge-wrapper .monaco-count-badge {
|
|
64
|
+
/* Allow the badge to be a bit shorter so it does not look cut off */
|
|
44
65
|
min-height: 16px;
|
|
45
66
|
word-break: keep-all;
|
|
46
67
|
}
|
|
68
|
+
|
|
47
69
|
.monaco-workbench .repl .repl-tree .monaco-tl-contents .arrow {
|
|
48
70
|
position:absolute;
|
|
49
71
|
left: 2px;
|
|
50
72
|
}
|
|
73
|
+
|
|
51
74
|
.monaco-workbench .repl .repl-tree .output.expression.value-and-source .source,
|
|
52
75
|
.monaco-workbench .repl .repl-tree .group .source {
|
|
53
76
|
margin-left: auto;
|
|
@@ -58,23 +81,30 @@
|
|
|
58
81
|
text-overflow: ellipsis;
|
|
59
82
|
white-space: nowrap;
|
|
60
83
|
text-align: right;
|
|
84
|
+
/*Use direction so the source shows elipses on the left*/
|
|
61
85
|
direction: rtl;
|
|
62
86
|
max-width: 400px;
|
|
63
87
|
}
|
|
88
|
+
|
|
64
89
|
.monaco-workbench .repl .repl-tree .output.expression > .value,
|
|
65
90
|
.monaco-workbench .repl .repl-tree .evaluation-result.expression > .value {
|
|
66
91
|
margin-left: 0px;
|
|
67
92
|
}
|
|
93
|
+
|
|
68
94
|
.monaco-workbench .repl .repl-tree .output.expression .name:not(:empty) {
|
|
69
95
|
margin-right: 6px;
|
|
70
96
|
}
|
|
97
|
+
|
|
71
98
|
.monaco-workbench .repl .repl-input-wrapper {
|
|
72
99
|
display: flex;
|
|
73
100
|
align-items: center;
|
|
74
101
|
}
|
|
102
|
+
|
|
103
|
+
/* Do not render show more in REPL suggest widget status bar */
|
|
75
104
|
.monaco-workbench .repl .repl-input-wrapper .suggest-status-bar .monaco-action-bar.right {
|
|
76
105
|
display: none;
|
|
77
106
|
}
|
|
107
|
+
|
|
78
108
|
.monaco-workbench .repl .repl-input-wrapper .repl-input-chevron {
|
|
79
109
|
padding: 0 6px 0 8px;
|
|
80
110
|
width: 16px;
|
|
@@ -84,15 +114,20 @@
|
|
|
84
114
|
justify-content: center;
|
|
85
115
|
font-weight: 600;
|
|
86
116
|
}
|
|
117
|
+
|
|
118
|
+
/* Output coloring and styling */
|
|
87
119
|
.monaco-workbench .repl .repl-tree .output.expression > .ignore {
|
|
88
120
|
font-style: italic;
|
|
89
121
|
}
|
|
122
|
+
|
|
123
|
+
/* ANSI Codes */
|
|
90
124
|
.monaco-workbench .repl .repl-tree .output.expression .code-bold { font-weight: bold; }
|
|
91
125
|
.monaco-workbench .repl .repl-tree .output.expression .code-italic { font-style: italic; }
|
|
92
126
|
.monaco-workbench .repl .repl-tree .output.expression .code-underline { text-decoration: underline; text-decoration-style:solid; }
|
|
93
127
|
.monaco-workbench .repl .repl-tree .output.expression .code-double-underline { text-decoration: underline; text-decoration-style:double; }
|
|
94
128
|
.monaco-workbench .repl .repl-tree .output.expression .code-strike-through { text-decoration:line-through; text-decoration-style:solid; }
|
|
95
129
|
.monaco-workbench .repl .repl-tree .output.expression .code-overline { text-decoration:overline; text-decoration-style:solid; }
|
|
130
|
+
/* because they can exist at same time we need all the possible underline(or double-underline),overline and strike-through combinations */
|
|
96
131
|
.monaco-workbench .repl .repl-tree .output.expression .code-overline.code-underline.code-strike-through { text-decoration: overline underline line-through; text-decoration-style:solid; }
|
|
97
132
|
.monaco-workbench .repl .repl-tree .output.expression .code-overline.code-underline { text-decoration: overline underline; text-decoration-style:solid; }
|
|
98
133
|
.monaco-workbench .repl .repl-tree .output.expression .code-overline.code-strike-through { text-decoration: overline line-through; text-decoration-style:solid; }
|
|
@@ -6,6 +6,9 @@ import { IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/
|
|
|
6
6
|
import { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation";
|
|
7
7
|
import { INotificationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service";
|
|
8
8
|
import { IDialogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service";
|
|
9
|
+
/**
|
|
10
|
+
* Encapsulates the DebugAdapter lifecycle and some idiosyncrasies of the Debug Adapter Protocol.
|
|
11
|
+
*/
|
|
9
12
|
export declare class RawDebugSession implements IDisposable {
|
|
10
13
|
readonly dbgr: IDebugger;
|
|
11
14
|
private readonly sessionId;
|
|
@@ -47,6 +50,10 @@ export declare class RawDebugSession implements IDisposable {
|
|
|
47
50
|
get isInShutdown(): boolean;
|
|
48
51
|
get onDidExitAdapter(): Event<AdapterEndEvent>;
|
|
49
52
|
get capabilities(): DebugProtocol.Capabilities;
|
|
53
|
+
/**
|
|
54
|
+
* DA is ready to accepts setBreakpoint requests.
|
|
55
|
+
* Becomes true after "initialized" events has been received.
|
|
56
|
+
*/
|
|
50
57
|
get readyForBreakpoints(): boolean;
|
|
51
58
|
get onDidInitialize(): Event<DebugProtocol.InitializedEvent>;
|
|
52
59
|
get onDidStop(): Event<DebugProtocol.StoppedEvent>;
|
|
@@ -64,10 +71,22 @@ export declare class RawDebugSession implements IDisposable {
|
|
|
64
71
|
get onDidInvalidated(): Event<DebugProtocol.InvalidatedEvent>;
|
|
65
72
|
get onDidInvalidateMemory(): Event<DebugProtocol.MemoryEvent>;
|
|
66
73
|
get onDidEvent(): Event<DebugProtocol.Event>;
|
|
74
|
+
/**
|
|
75
|
+
* Starts the underlying debug adapter and tracks the session time for telemetry.
|
|
76
|
+
*/
|
|
67
77
|
start(): Promise<void>;
|
|
78
|
+
/**
|
|
79
|
+
* Send client capabilities to the debug adapter and receive DA capabilities in return.
|
|
80
|
+
*/
|
|
68
81
|
initialize(args: DebugProtocol.InitializeRequestArguments): Promise<DebugProtocol.InitializeResponse | undefined>;
|
|
82
|
+
/**
|
|
83
|
+
* Terminate the debuggee and shutdown the adapter
|
|
84
|
+
*/
|
|
69
85
|
disconnect(args: DebugProtocol.DisconnectArguments): Promise<any>;
|
|
70
86
|
launchOrAttach(config: IConfig): Promise<DebugProtocol.Response | undefined>;
|
|
87
|
+
/**
|
|
88
|
+
* Try killing the debuggee softly...
|
|
89
|
+
*/
|
|
71
90
|
terminate(restart?: boolean): Promise<DebugProtocol.TerminateResponse | undefined>;
|
|
72
91
|
restart(args: DebugProtocol.RestartArguments): Promise<DebugProtocol.RestartResponse | undefined>;
|
|
73
92
|
next(args: DebugProtocol.NextArguments): Promise<DebugProtocol.NextResponse | undefined>;
|
|
@@ -107,6 +107,9 @@ export declare class ReplDelegate extends CachedListVirtualDelegate<IReplElement
|
|
|
107
107
|
private readonly replOptions;
|
|
108
108
|
constructor(configurationService: IConfigurationService, replOptions: IReplOptions);
|
|
109
109
|
getHeight(element: IReplElement): number;
|
|
110
|
+
/**
|
|
111
|
+
* With wordWrap enabled, this is an estimate. With wordWrap disabled, this is the real height that the list will use.
|
|
112
|
+
*/
|
|
110
113
|
protected estimateHeight(element: IReplElement, ignoreValueLength?: boolean): number;
|
|
111
114
|
getTemplateId(element: IReplElement): string;
|
|
112
115
|
hasDynamicHeight(element: IReplElement): boolean;
|
|
@@ -8,6 +8,19 @@ import { IWorkbenchContribution } from "@codingame/monaco-vscode-api/vscode/vs/w
|
|
|
8
8
|
import { IDebugService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/debug/common/debug.service";
|
|
9
9
|
import { IEditorWorkerService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/editorWorker.service";
|
|
10
10
|
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
11
|
+
/**
|
|
12
|
+
* Debug URI format
|
|
13
|
+
*
|
|
14
|
+
* a debug URI represents a Source object and the debug session where the Source comes from.
|
|
15
|
+
*
|
|
16
|
+
* debug:arbitrary_path?session=123e4567-e89b-12d3-a456-426655440000&ref=1016
|
|
17
|
+
* \___/ \____________/ \__________________________________________/ \______/
|
|
18
|
+
* | | | |
|
|
19
|
+
* scheme source.path session id source.reference
|
|
20
|
+
*
|
|
21
|
+
* the arbitrary_path and the session id are encoded with 'encodeURIComponent'
|
|
22
|
+
*
|
|
23
|
+
*/
|
|
11
24
|
export declare class DebugContentProvider extends Disposable implements IWorkbenchContribution, ITextModelContentProvider {
|
|
12
25
|
private readonly debugService;
|
|
13
26
|
private readonly modelService;
|
|
@@ -18,6 +31,13 @@ export declare class DebugContentProvider extends Disposable implements IWorkben
|
|
|
18
31
|
constructor(textModelResolverService: ITextModelService, debugService: IDebugService, modelService: IModelService, languageService: ILanguageService, editorWorkerService: IEditorWorkerService);
|
|
19
32
|
dispose(): void;
|
|
20
33
|
provideTextContent(resource: uri): Promise<ITextModel> | null;
|
|
34
|
+
/**
|
|
35
|
+
* Reload the model content of the given resource.
|
|
36
|
+
* If there is no model for the given resource, this method does nothing.
|
|
37
|
+
*/
|
|
21
38
|
static refreshDebugContent(resource: uri): void;
|
|
39
|
+
/**
|
|
40
|
+
* Create or reload the model content of the given resource.
|
|
41
|
+
*/
|
|
22
42
|
private createOrUpdateContentModel;
|
|
23
43
|
}
|
|
@@ -44,11 +44,17 @@ export declare class DebugVisualizerService implements IDebugVisualizerService {
|
|
|
44
44
|
private readonly didActivate;
|
|
45
45
|
private registrations;
|
|
46
46
|
constructor(contextKeyService: IContextKeyService, extensionService: IExtensionService, logService: ILogService);
|
|
47
|
+
/** @inheritdoc */
|
|
47
48
|
getApplicableFor(variable: IExpression, token: CancellationToken): Promise<IReference<DebugVisualizer[]>>;
|
|
49
|
+
/** @inheritdoc */
|
|
48
50
|
register(handle: VisualizerHandle): IDisposable;
|
|
51
|
+
/** @inheritdoc */
|
|
49
52
|
registerTree(treeId: string, handle: VisualizerTreeHandle): IDisposable;
|
|
53
|
+
/** @inheritdoc */
|
|
50
54
|
getVisualizedNodeFor(treeId: string, expr: IExpression): Promise<VisualizedExpression | undefined>;
|
|
55
|
+
/** @inheritdoc */
|
|
51
56
|
getVisualizedChildren(session: IDebugSession | undefined, treeId: string, treeElementId: number): Promise<IExpression[]>;
|
|
57
|
+
/** @inheritdoc */
|
|
52
58
|
editTreeItem(treeId: string, treeItem: IDebugVisualizationTreeItem, newValue: string): Promise<void>;
|
|
53
59
|
private getVariableContext;
|
|
54
60
|
private processExtensionRegistration;
|