Files
openidea/src/features/debugger/editor/editor.module.css
T
l0ng-ai f148c1ac6b fix(debugger): muted breakpoints show as grey dots, not as disabled ones (#1104)
With Mute Breakpoints on (remembered per project), every breakpoint was drawn as a hollow red circle, the disabled look. Muted breakpoints now use the grey muted icon; disabled ones keep the hollow circle. Method breakpoints and field watchpoints follow the same rule.
2026-11-04 04:56:21 +08:00

220 lines
5.5 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* Line-number gutter element class; the marker is a pseudo-element that, like
* IDEA, replaces the number (centred on the element's content box).
*/
.bp {
position: relative;
color: transparent !important;
}
.bp::before {
content: "";
position: absolute;
left: calc(50% + 1px);
top: 50%;
width: 1em;
height: 1em;
transform: translate(-50%, -50%);
border-radius: 50%;
background: var(--danger);
box-sizing: border-box;
pointer-events: none;
}
.normal::before {
background: var(--danger);
}
/* Disabled: hollow circle. */
.disabled::before {
background: transparent;
border: 1.5px solid var(--danger);
}
/* Mute Breakpoints (expui breakpointMuted). */
.muted::before {
border-radius: 0;
background: url("../../../ui/expui/breakpoints/breakpointMuted.svg") center / contain no-repeat;
}
:global(:root[data-theme^="dark"]) .muted::before {
background-image: url("../../../ui/expui/breakpoints/breakpointMuted_dark.svg");
}
/* Not bound by the adapter. */
.unverified::before {
background: var(--fg-gutter);
}
/* Condition / hit count: dot with a small notch. */
.conditional::before {
background: radial-gradient(circle at 50% 50%, var(--bg-app) 0 0.16em, var(--danger) 0.18em);
}
/* Logpoint: diamond. */
.log::before {
border-radius: 1.5px;
width: 0.8em;
height: 0.8em;
transform: translate(-50%, -50%) rotate(45deg);
}
/* Bound by the debugger in a running session (expui breakpointValid). */
.verified::before {
border-radius: 0;
background: url("../../../ui/expui/breakpoints/breakpointValid.svg") center / contain no-repeat;
}
:global(:root[data-theme^="dark"]) .verified::before {
background-image: url("../../../ui/expui/breakpoints/breakpointValid_dark.svg");
}
/* Method breakpoints / field watchpoints (expui icons). */
.method::before {
border-radius: 0;
background: url("../../../ui/expui/breakpoints/breakpointMethod.svg") center / contain no-repeat;
}
:global(:root[data-theme^="dark"]) .method::before {
background-image: url("../../../ui/expui/breakpoints/breakpointMethod_dark.svg");
}
.methodDisabled::before {
border-radius: 0;
background: url("../../../ui/expui/breakpoints/breakpointMethodDisabled.svg") center / contain no-repeat;
}
:global(:root[data-theme^="dark"]) .methodDisabled::before {
background-image: url("../../../ui/expui/breakpoints/breakpointMethodDisabled_dark.svg");
}
.methodVerified::before {
border-radius: 0;
background: url("../../../ui/expui/breakpoints/breakpointMethodValid.svg") center / contain no-repeat;
}
:global(:root[data-theme^="dark"]) .methodVerified::before {
background-image: url("../../../ui/expui/breakpoints/breakpointMethodValid_dark.svg");
}
.field::before {
border-radius: 0;
background: url("../../../ui/expui/breakpoints/breakpointField.svg") center / contain no-repeat;
}
:global(:root[data-theme^="dark"]) .field::before {
background-image: url("../../../ui/expui/breakpoints/breakpointField_dark.svg");
}
.fieldDisabled::before {
border-radius: 0;
background: url("../../../ui/expui/breakpoints/breakpointFieldDisabled.svg") center / contain no-repeat;
}
:global(:root[data-theme^="dark"]) .fieldDisabled::before {
background-image: url("../../../ui/expui/breakpoints/breakpointFieldDisabled_dark.svg");
}
.fieldVerified::before {
border-radius: 0;
background: url("../../../ui/expui/breakpoints/breakpointFieldValid.svg") center / contain no-repeat;
}
:global(:root[data-theme^="dark"]) .fieldVerified::before {
background-image: url("../../../ui/expui/breakpoints/breakpointFieldValid_dark.svg");
}
/* Beat the caret row (`.cm-activeLine`), as IDEA does; the suspended line wins over a breakpoint. */
:global(.cm-editor) :global(.cm-line).bpLine {
background: var(--bg-breakpoint-line);
}
:global(.cm-editor) :global(.cm-line).execLine {
background: var(--bg-debug-line);
}
.inlineValue {
margin-left: 24px;
color: var(--syn-inline-value);
font-size: var(--fs-ui);
font-family: var(--font-mono);
white-space: pre;
pointer-events: none;
-webkit-user-select: none;
user-select: none;
}
/* Data Views › Show value tooltip on mouse hover. */
.valueTooltip {
max-width: 520px;
padding: 4px 8px;
font-family: var(--font-mono);
font-weight: var(--fw-code);
font-size: var(--fs-code);
white-space: pre-wrap;
word-break: break-word;
}
.valueTooltipTree {
padding: 2px 0;
white-space: normal;
}
.valueExpand {
display: inline-flex;
align-items: center;
justify-content: center;
width: 16px;
height: 16px;
margin-right: 4px;
padding: 0;
border: 0;
border-radius: var(--radius-small);
background: transparent;
color: var(--fg-muted);
vertical-align: -3px;
cursor: pointer;
}
.valueExpand:hover {
background: var(--bg-hover, transparent);
color: var(--fg-strong);
}
.valueName {
color: var(--fg-strong);
}
.valueType {
color: var(--fg-subtle);
}
/* Smart Step Into: calls on the paused line framed, the selected one filled. */
.stepTarget {
border-radius: 2px;
box-shadow: inset 0 0 0 1px var(--border-strong);
cursor: pointer;
}
.stepTargetSelected {
background: var(--accent-soft);
box-shadow: inset 0 0 0 1px var(--accent);
}
/* Inlay Run to Cursor button, left of a hovered line's text. */
.runToCursor {
position: absolute;
z-index: 5;
display: flex;
align-items: center;
justify-content: center;
width: 20px;
height: 20px;
padding: 0;
border: 1px solid var(--border-popup);
border-radius: var(--radius-small);
background: var(--bg-popup);
box-shadow: var(--shadow-tooltip);
color: var(--fg);
cursor: pointer;
}
.runToCursor:hover {
background: var(--bg-hover);
}