Add breakpoint color tokens

This commit is contained in:
Miguel Solorio 2019-11-13 15:20:02 -08:00
parent 4de7b940f5
commit 3091f55e3e
7 changed files with 162 additions and 122 deletions

View file

@ -5,7 +5,7 @@
@font-face {
font-family: "codicon";
src: url("./codicon.ttf?3443fb4013ab5a04c23a30f912dd6627") format("truetype");
src: url("./codicon.ttf?d02baa177e0c5b865597b4e28fca9e07") format("truetype");
}
.codicon[class*='codicon-'] {
@ -69,6 +69,9 @@
.codicon-eye-watch:before { content: "\ea70" }
.codicon-circle-filled:before { content: "\ea71" }
.codicon-primitive-dot:before { content: "\ea71" }
.codicon-debug-breakpoint:before { content: "\ea71" }
.codicon-debug-breakpoint-disabled:before { content: "\ea71" }
.codicon-debug-hint:before { content: "\ea71" }
.codicon-primitive-square:before { content: "\ea72" }
.codicon-edit:before { content: "\ea73" }
.codicon-pencil:before { content: "\ea73" }
@ -162,12 +165,15 @@
.codicon-bold:before { content: "\eaa3" }
.codicon-book:before { content: "\eaa4" }
.codicon-bookmark:before { content: "\eaa5" }
.codicon-breakpoint-conditional-unverified:before { content: "\eaa6" }
.codicon-breakpoint-conditional:before { content: "\eaa7" }
.codicon-breakpoint-data-unverified:before { content: "\eaa8" }
.codicon-breakpoint-data:before { content: "\eaa9" }
.codicon-breakpoint-log-unverified:before { content: "\eaaa" }
.codicon-breakpoint-log:before { content: "\eaab" }
.codicon-debug-breakpoint-conditional-unverified:before { content: "\eaa6" }
.codicon-debug-breakpoint-conditional:before { content: "\eaa7" }
.codicon-debug-breakpoint-conditional-disabled:before { content: "\eaa7" }
.codicon-debug-breakpoint-data-unverified:before { content: "\eaa8" }
.codicon-debug-breakpoint-data:before { content: "\eaa9" }
.codicon-debug-breakpoint-data-disabled:before { content: "\eaa9" }
.codicon-debug-breakpoint-log-unverified:before { content: "\eaaa" }
.codicon-debug-breakpoint-log:before { content: "\eaab" }
.codicon-debug-breakpoint-log-disabled:before { content: "\eaab" }
.codicon-briefcase:before { content: "\eaac" }
.codicon-broadcast:before { content: "\eaad" }
.codicon-browser:before { content: "\eaae" }
@ -185,6 +191,7 @@
.codicon-chrome-minimize:before { content: "\eaba" }
.codicon-chrome-restore:before { content: "\eabb" }
.codicon-circle-outline:before { content: "\eabc" }
.codicon-debug-breakpoint-unverified:before { content: "\eabc" }
.codicon-circle-slash:before { content: "\eabd" }
.codicon-circuit-board:before { content: "\eabe" }
.codicon-clear-all:before { content: "\eabf" }
@ -198,8 +205,6 @@
.codicon-comment-discussion:before { content: "\eac7" }
.codicon-compare-changes:before { content: "\eac8" }
.codicon-credit-card:before { content: "\eac9" }
.codicon-current-and-breakpoint:before { content: "\eaca" }
.codicon-current:before { content: "\eacb" }
.codicon-dash:before { content: "\eacc" }
.codicon-dashboard:before { content: "\eacd" }
.codicon-database:before { content: "\eace" }
@ -386,3 +391,11 @@
.codicon-list-flat:before { content: "\eb84" }
.codicon-list-selection:before { content: "\eb85" }
.codicon-list-tree:before { content: "\eb86" }
.codicon-debug-breakpoint-function-unverified:before { content: "\eb87" }
.codicon-debug-breakpoint-function:before { content: "\eb88" }
.codicon-debug-breakpoint-function-disabled:before { content: "\eb88" }
.codicon-debug-breakpoint-stackframe-active:before { content: "\eb89" }
.codicon-debug-breakpoint-stackframe-dot:before { content: "\eb8a" }
.codicon-debug-breakpoint-stackframe:before { content: "\eb8b" }
.codicon-debug-breakpoint-stackframe-focused:before { content: "\eb8b" }
.codicon-debug-breakpoint-unsupported:before { content: "\eb8c" }

View file

@ -43,7 +43,7 @@ interface IBreakpointDecoration {
}
const breakpointHelperDecoration: IModelDecorationOptions = {
glyphMarginClassName: 'debug-breakpoint-hint',
glyphMarginClassName: 'codicon-debug-hint',
stickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges
};
@ -91,7 +91,7 @@ function getBreakpointDecorationOptions(model: ITextModel, breakpoint: IBreakpoi
}
return {
glyphMarginClassName: className,
glyphMarginClassName: `${className}`,
glyphMarginHoverMessage,
stickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
beforeContentClassName: breakpoint.column ? `debug-breakpoint-placeholder` : undefined,
@ -344,7 +344,7 @@ class BreakpointEditorContribution implements IBreakpointEditorContribution {
const decorations = this.editor.getLineDecorations(line);
if (decorations) {
for (const { options } of decorations) {
if (options.glyphMarginClassName && options.glyphMarginClassName.indexOf('debug') === -1) {
if (options.glyphMarginClassName && options.glyphMarginClassName.indexOf('codicon-') === -1) {
return false;
}
}
@ -422,7 +422,7 @@ class BreakpointEditorContribution implements IBreakpointEditorContribution {
// Candidate decoration has a breakpoint attached when a breakpoint is already at that location and we did not yet set a decoration there
// In practice this happens for the first breakpoint that was set on a line
// We could have also rendered this first decoration as part of desiredBreakpointDecorations however at that moment we have no location information
const cssClass = candidate.breakpoint ? getBreakpointMessageAndClassName(this.debugService, candidate.breakpoint).className : 'debug-breakpoint-disabled';
const cssClass = candidate.breakpoint ? getBreakpointMessageAndClassName(this.debugService, candidate.breakpoint).className : 'codicon-debug-breakpoint-disabled';
const contextMenuActions = () => this.getContextMenuActions(candidate.breakpoint ? [candidate.breakpoint] : [], activeCodeEditor.getModel().uri, candidate.range.startLineNumber, candidate.range.startColumn);
const inlineWidget = new InlineBreakpointWidget(activeCodeEditor, decorationId, cssClass, candidate.breakpoint, this.debugService, this.contextMenuService, contextMenuActions);
@ -543,6 +543,7 @@ class InlineBreakpointWidget implements IContentWidget, IDisposable {
private create(cssClass: string | null | undefined): void {
this.domNode = $('.inline-breakpoint-widget');
this.domNode.classList.add('codicon');
if (cssClass) {
this.domNode.classList.add(cssClass);
}

View file

@ -346,7 +346,7 @@ class BreakpointsRenderer implements IListRenderer<IBreakpoint, IBreakpointTempl
data.checkbox.checked = breakpoint.enabled;
const { message, className } = getBreakpointMessageAndClassName(this.debugService, breakpoint);
data.icon.className = className + ' icon';
data.icon.className = `codicon ${className}`;
data.breakpoint.title = breakpoint.message || message || '';
const debugActive = this.debugService.state === State.Running || this.debugService.state === State.Stopped;
@ -441,7 +441,7 @@ class FunctionBreakpointsRenderer implements IListRenderer<FunctionBreakpoint, I
data.context = functionBreakpoint;
data.name.textContent = functionBreakpoint.name;
const { className, message } = getBreakpointMessageAndClassName(this.debugService, functionBreakpoint);
data.icon.className = className + ' icon';
data.icon.className = `codicon ${className}`;
data.icon.title = message ? message : '';
data.checkbox.checked = functionBreakpoint.enabled;
data.breakpoint.title = message ? message : '';
@ -496,7 +496,7 @@ class DataBreakpointsRenderer implements IListRenderer<DataBreakpoint, IBaseBrea
data.context = dataBreakpoint;
data.name.textContent = dataBreakpoint.label;
const { className, message } = getBreakpointMessageAndClassName(this.debugService, dataBreakpoint);
data.icon.className = className + ' icon';
data.icon.className = `codicon ${className}`;
data.icon.title = message ? message : '';
data.checkbox.checked = dataBreakpoint.enabled;
data.breakpoint.title = message ? message : '';
@ -587,7 +587,7 @@ class FunctionBreakpointInputRenderer implements IListRenderer<IFunctionBreakpoi
data.reactedOnEvent = false;
const { className, message } = getBreakpointMessageAndClassName(this.debugService, functionBreakpoint);
data.icon.className = className + ' icon';
data.icon.className = `codicon ${className}`;
data.icon.title = message ? message : '';
data.checkbox.checked = functionBreakpoint.enabled;
data.checkbox.disabled = true;
@ -638,7 +638,7 @@ export function getBreakpointMessageAndClassName(debugService: IDebugService, br
if (!breakpoint.enabled || !debugService.getModel().areBreakpointsActivated()) {
return {
className: breakpoint instanceof DataBreakpoint ? 'debug-data-breakpoint-disabled' : breakpoint instanceof FunctionBreakpoint ? 'debug-function-breakpoint-disabled' : breakpoint.logMessage ? 'codicon-breakpoint-log-disabled' : 'codicon-breakpoint-disabled',
className: breakpoint instanceof DataBreakpoint ? 'codicon-debug-breakpoint-data-disabled' : breakpoint instanceof FunctionBreakpoint ? 'codicon-debug-breakpoint-function-disabled' : breakpoint.logMessage ? 'codicon-debug-breakpoint-log-disabled' : 'codicon-debug-breakpoint-disabled',
message: breakpoint.logMessage ? nls.localize('disabledLogpoint', "Disabled Logpoint") : nls.localize('disabledBreakpoint', "Disabled Breakpoint"),
};
}
@ -648,7 +648,7 @@ export function getBreakpointMessageAndClassName(debugService: IDebugService, br
};
if (debugActive && !breakpoint.verified) {
return {
className: breakpoint instanceof DataBreakpoint ? 'debug-data-breakpoint-unverified' : breakpoint instanceof FunctionBreakpoint ? 'debug-function-breakpoint-unverified' : breakpoint.logMessage ? 'codicon-breakpoint-log-unverified' : 'debug-breakpoint-unverified',
className: breakpoint instanceof DataBreakpoint ? 'codicon-debug-breakpoint-data-unverified' : breakpoint instanceof FunctionBreakpoint ? 'codicon-debug-breakpoint-function-unverified' : breakpoint.logMessage ? 'codicon-debug-breakpoint-log-unverified' : 'codicon-debug-breakpoint-unverified',
message: breakpoint.message || (breakpoint.logMessage ? nls.localize('unverifiedLogpoint', "Unverified Logpoint") : nls.localize('unverifiedBreakopint', "Unverified Breakpoint")),
};
}
@ -656,13 +656,13 @@ export function getBreakpointMessageAndClassName(debugService: IDebugService, br
if (breakpoint instanceof FunctionBreakpoint) {
if (!breakpoint.supported) {
return {
className: 'debug-function-breakpoint-unverified',
className: 'codicon-debug-breakpoint-function-unverified',
message: nls.localize('functionBreakpointUnsupported', "Function breakpoints not supported by this debug type"),
};
}
return {
className: 'debug-function-breakpoint',
className: 'codicon-debug-breakpoint-function',
message: breakpoint.message || nls.localize('functionBreakpoint', "Function Breakpoint")
};
}
@ -670,13 +670,13 @@ export function getBreakpointMessageAndClassName(debugService: IDebugService, br
if (breakpoint instanceof DataBreakpoint) {
if (!breakpoint.supported) {
return {
className: 'debug-data-breakpoint-unverified',
className: 'codicon-debug-breakpoint-data-unverified',
message: nls.localize('dataBreakpointUnsupported', "Data breakpoints not supported by this debug type"),
};
}
return {
className: 'debug-data-breakpoint',
className: 'codicon-debug-breakpoint-data',
message: breakpoint.message || nls.localize('dataBreakpoint', "Data Breakpoint")
};
}
@ -686,7 +686,7 @@ export function getBreakpointMessageAndClassName(debugService: IDebugService, br
if (!breakpoint.supported) {
return {
className: 'debug-breakpoint-unsupported',
className: 'codicon-debug-breakpoint-unsupported',
message: nls.localize('breakpointUnsupported', "Breakpoints of this type are not supported by the debugger"),
};
}
@ -702,7 +702,7 @@ export function getBreakpointMessageAndClassName(debugService: IDebugService, br
}
return {
className: breakpoint.logMessage ? 'codicon-breakpoint-log' : 'codicon-breakpoint-conditional',
className: breakpoint.logMessage ? 'codicon-debug-breakpoint-log' : 'codicon-debug-breakpoint-conditional',
message: appendMessage(messages.join('\n'))
};
}
@ -714,12 +714,12 @@ export function getBreakpointMessageAndClassName(debugService: IDebugService, br
if (topStackFrame && topStackFrame.source.uri.toString() === breakpoint.uri.toString() && topStackFrame.range.startLineNumber === breakpoint.lineNumber) {
if (topStackFrame.range.startColumn === breakpoint.column) {
return {
className: 'debug-breakpoint-and-top-stack-frame-at-column',
className: 'codicon-debug-breakpoint-stackframe-dot',
message: breakpoint.message || nls.localize('breakpoint', "Breakpoint")
};
} else if (breakpoint.column === undefined) {
return {
className: 'debug-breakpoint-and-top-stack-frame',
className: 'codicon-debug-breakpoint',
message: breakpoint.message || nls.localize('breakpoint', "Breakpoint")
};
}
@ -727,7 +727,7 @@ export function getBreakpointMessageAndClassName(debugService: IDebugService, br
}
return {
className: 'debug-breakpoint, codicon-circle-filled',
className: 'codicon-debug-breakpoint',
message: breakpoint.message || nls.localize('breakpoint', "Breakpoint")
};
}

View file

@ -128,12 +128,12 @@ export class DebugCallStackContribution implements IWorkbenchContribution {
static readonly STICKINESS = TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges;
// we need a separate decoration for glyph margin, since we do not want it on each line of a multi line statement.
private static TOP_STACK_FRAME_MARGIN: IModelDecorationOptions = {
glyphMarginClassName: 'debug-top-stack-frame',
glyphMarginClassName: 'codicon-debug-breakpoint-stackframe',
stickiness
};
private static FOCUSED_STACK_FRAME_MARGIN: IModelDecorationOptions = {
glyphMarginClassName: 'debug-focused-stack-frame',
glyphMarginClassName: 'codicon-debug-breakpoint-stackframe-focused',
stickiness
};
@ -176,7 +176,93 @@ registerThemingParticipant((theme, collector) => {
if (focusedStackFrame) {
collector.addRule(`.monaco-editor .view-overlays .debug-focused-stack-frame-line { background: ${focusedStackFrame}; }`);
}
const debugIconBreakpointColor = theme.getColor(debugIconBreakpointForeground);
if (debugIconBreakpointColor) {
collector.addRule(`
.monaco-workbench .codicon-debug-breakpoint,
.monaco-workbench .codicon-debug-hint:not(*[class*='codicon-debug-breakpoint']) ,
.monaco-workbench .codicon-debug-breakpoint-stackframe-dot,
.monaco-workbench .codicon-debug-breakpoint.codicon-debug-breakpoint-stackframe-focused::after {
color: ${debugIconBreakpointColor} !important;
}
`);
}
const debugIconBreakpointDisabledColor = theme.getColor(debugIconBreakpointDisabledForeground);
if (debugIconBreakpointDisabledColor) {
collector.addRule(`
.monaco-workbench .codicon[class*='-disabled'] {
color: ${debugIconBreakpointDisabledColor} !important;
}
`);
}
const debugIconBreakpointUnverifiedColor = theme.getColor(debugIconBreakpointUnverifiedForeground);
if (debugIconBreakpointUnverifiedColor) {
collector.addRule(`
.monaco-workbench .codicon[class*='-unverified'] {
color: ${debugIconBreakpointUnverifiedColor} !important;
}
`);
}
const debugIconBreakpointConditionalColor = theme.getColor(debugIconBreakpointConditionalForeground);
if (debugIconBreakpointConditionalColor) {
collector.addRule(`
.monaco-workbench .codicon-debug-breakpoint-conditional {
color: ${debugIconBreakpointConditionalColor} !important;
}
`);
}
const debugIconBreakpointLogColor = theme.getColor(debugIconBreakpointLogForeground);
if (debugIconBreakpointLogColor) {
collector.addRule(`
.monaco-workbench .codicon-debug-breakpoint-log {
color: ${debugIconBreakpointLogColor} !important;
}
`);
}
const debugIconBreakpointFunctionColor = theme.getColor(debugIconBreakpointFunctionForeground);
if (debugIconBreakpointFunctionColor) {
collector.addRule(`
.monaco-workbench .codicon-debug-breakpoint-function {
color: ${debugIconBreakpointFunctionColor} !important;
}
`);
}
const debugIconBreakpointStackframeColor = theme.getColor(debugIconBreakpointStackframeForeground);
if (debugIconBreakpointStackframeColor) {
collector.addRule(`
.monaco-workbench .codicon-debug-breakpoint-stackframe,
.monaco-workbench .codicon-debug-breakpoint-stackframe-dot::after {
color: ${debugIconBreakpointStackframeColor} !important;
}
`);
}
const debugIconBreakpointStackframeFocusedColor = theme.getColor(debugIconBreakpointStackframeFocusedForeground);
if (debugIconBreakpointStackframeFocusedColor) {
collector.addRule(`
.monaco-workbench .codicon-debug-breakpoint-stackframe-focused {
color: ${debugIconBreakpointStackframeFocusedColor} !important;
}
`);
}
});
const topStackFrameColor = registerColor('editor.stackFrameHighlightBackground', { dark: '#ffff0033', light: '#ffff6673', hc: '#fff600' }, localize('topStackFrameLineHighlight', 'Background color for the highlight of line at the top stack frame position.'));
const focusedStackFrameColor = registerColor('editor.focusedStackFrameHighlightBackground', { dark: '#7abd7a4d', light: '#cee7ce73', hc: '#cee7ce' }, localize('focusedStackFrameLineHighlight', 'Background color for the highlight of line at focused stack frame position.'));
const debugIconBreakpointForeground = registerColor('debugIcon.breakpointForeground', { dark: '#E51400', light: '#E51400', hc: '#E51400' }, localize('debugIcon.breakpointForeground', 'Icon color for breakpoints.'));
const debugIconBreakpointDisabledForeground = registerColor('debugIcon.breakpointDisabledForeground', { dark: '#848484', light: '#848484', hc: '#848484' }, localize('debugIcon.breakpointDisabledForeground', 'Icon color for disabled breakpoints.'));
const debugIconBreakpointUnverifiedForeground = registerColor('debugIcon.breakpointUnverifiedForeground', { dark: '#848484', light: '#848484', hc: '#848484' }, localize('debugIcon.breakpointUnverifiedForeground', 'Icon color for unverified breakpoints.'));
const debugIconBreakpointConditionalForeground = registerColor('debugIcon.breakpointConditionalForeground', { dark: debugIconBreakpointForeground, light: debugIconBreakpointForeground, hc: debugIconBreakpointForeground }, localize('debugIcon.breakpointConditionalForeground', 'Icon color for conditional breakpoints.'));
const debugIconBreakpointLogForeground = registerColor('debugIcon.breakpointLogForeground', { dark: debugIconBreakpointForeground, light: debugIconBreakpointForeground, hc: debugIconBreakpointForeground }, localize('debugIcon.breakpointLogForeground', 'Icon color for log breakpoints.'));
const debugIconBreakpointFunctionForeground = registerColor('debugIcon.breakpointFunctionForeground', { dark: debugIconBreakpointForeground, light: debugIconBreakpointForeground, hc: debugIconBreakpointForeground }, localize('debugIcon.breakpointFunctionForeground', 'Icon color for function breakpoints.'));
const debugIconBreakpointStackframeForeground = registerColor('debugIcon.breakpointStackframeForeground', { dark: '#FFCC00', light: '#FFCC00', hc: '#FFCC00' }, localize('debugIcon.breakpointStackframeForeground', 'Icon color for breakpoints.'));
const debugIconBreakpointStackframeFocusedForeground = registerColor('debugIcon.breakpointStackframeFocusedForeground', { dark: '#89D185', light: '#89D185', hc: '#89D185' }, localize('debugIcon.breakpointStackframeFocusedForeground', 'Icon color for breakpoints.'));

View file

@ -3,47 +3,37 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
/* Activity Bar */
.monaco-editor .debug-top-stack-frame-column::before {
background: url('current-arrow.svg') center center no-repeat;
}
.debug-breakpoint-hint {
background: url('breakpoint-hint.svg') center center no-repeat;
.codicon-debug-hint {
cursor: pointer;
}
.debug-breakpoint-disabled,
.monaco-editor .inline-breakpoint-widget.debug-breakpoint-disabled {
background: url('breakpoint-disabled.svg') center center no-repeat;
.codicon-debug-hint:not(*[class*='codicon-debug-breakpoint']) {
opacity: .4 !important;
}
.monaco-editor .inline-breakpoint-widget.debug-breakpoint-disabled:hover {
background: url('breakpoint-hint.svg') center center no-repeat;
/* overlapped icons */
.inline-breakpoint-widget.codicon-debug-breakpoint-stackframe-dot::after {
position: absolute;
top: 0;
left: 0;
}
.codicon-debug-breakpoint.codicon-debug-breakpoint-stackframe-focused::after {
position: absolute;
}
.inline-breakpoint-widget.codicon-debug-breakpoint-stackframe-dot::after {
content: "\eb8b";
}
.codicon-debug-breakpoint.codicon-debug-breakpoint-stackframe-focused::after {
content: "\eb8a";
}
.monaco-editor .inline-breakpoint-widget.line-start {
left: -0.45em !important;
}
.debug-breakpoint-unverified,
.monaco-editor .inline-breakpoint-widget.debug-breakpoint-unverified {
background: url('breakpoint-unverified.svg') center center no-repeat;
}
.monaco-editor .debug-top-stack-frame {
background: url('current-arrow.svg') center center no-repeat;
}
.monaco-editor .debug-focused-stack-frame {
background: url('stackframe-arrow.svg') center center no-repeat;
}
.debug-breakpoint,
.monaco-editor .inline-breakpoint-widget {
background: url('breakpoint.svg') center center no-repeat;
}
.monaco-editor .debug-breakpoint-placeholder::before,
.monaco-editor .debug-top-stack-frame-column::before {
content: " ";
@ -70,67 +60,6 @@
cursor: pointer;
}
.debug-function-breakpoint {
background: url('breakpoint-function.svg') center center no-repeat;
}
.debug-function-breakpoint-unverified {
background: url('breakpoint-function-unverified.svg') center center no-repeat;
}
.debug-function-breakpoint-disabled {
background: url('breakpoint-function-disabled.svg') center center no-repeat;
}
.debug-data-breakpoint {
background: url('breakpoint-data.svg') center center no-repeat;
}
.debug-data-breakpoint-unverified {
background: url('breakpoint-data-unverified.svg') center center no-repeat;
}
.debug-data-breakpoint-disabled {
background: url('breakpoint-data-disabled.svg') center center no-repeat;
}
.debug-breakpoint-conditional,
.monaco-editor .inline-breakpoint-widget.debug-breakpoint-conditional {
background: url('breakpoint-conditional.svg') center center no-repeat;
}
.debug-breakpoint-log,
.monaco-editor .inline-breakpoint-widget.debug-breakpoint-log {
background: url('breakpoint-log.svg') center center no-repeat;
}
.debug-breakpoint-log-disabled,
.monaco-editor .inline-breakpoint-widget.debug-breakpoint-log-disabled {
background: url('breakpoint-log-disabled.svg') center center no-repeat;
}
.debug-breakpoint-log-unverified,
.monaco-editor .inline-breakpoint-widget.debug-breakpoint-log-unverified {
background: url('breakpoint-log-unverified.svg') center center no-repeat;
}
.debug-breakpoint-unsupported,
.monaco-editor .inline-breakpoint-widget.debug-breakpoint-unsupported {
background: url('breakpoint-unsupported.svg') center center no-repeat;
}
.monaco-editor .debug-top-stack-frame.debug-breakpoint-and-top-stack-frame,
.monaco-editor .debug-breakpoint.debug-top-stack-frame,
.monaco-editor .debug-breakpoint-and-top-stack-frame-at-column {
background: url('current-and-breakpoint.svg') center center no-repeat;
}
.monaco-editor .debug-focused-stack-frame.debug-breakpoint,
.monaco-editor .debug-focused-stack-frame.debug-breakpoint-conditional,
.monaco-editor .debug-focused-stack-frame.debug-breakpoint-log {
background: url('stackframe-and-breakpoint.svg') center center no-repeat;
}
/* Error editor */
.debug-error-editor:focus {
outline: none !important;

View file

@ -78,6 +78,10 @@
color: #666;
}
.debug-viewlet .monaco-list:focus .monaco-list-row.selected.focused .codicon {
color: inherit !important;
}
.debug-viewlet .disabled {
opacity: 0.35;
}
@ -333,10 +337,17 @@
flex-shrink: 0;
}
.debug-viewlet .debug-breakpoints .breakpoint > .icon {
.debug-viewlet .debug-breakpoints .breakpoint > .codicon {
width: 19px;
height: 19px;
min-width: 19px;
display: flex;
align-items: center;
justify-content: center;
}
.debug-viewlet .debug-breakpoints .breakpoint > .codicon-debug-breakpoint-stackframe-dot::before {
content: "\ea71";
}
.debug-viewlet .debug-breakpoints .breakpoint > .file-path {