mirror of
https://github.com/l0ng-ai/openidea.git
synced 2026-11-06 08:07:49 +00:00
While the debugger is suspended, hovering the start of a line shows a small button left of its text: Run to Cursor runs to that line, and on the execution line it resumes the program. Settings › Debugger › Show inlay Run to Cursor popup turns it off.
210 lines
5.2 KiB
CSS
210 lines
5.2 KiB
CSS
/*
|
||
* 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 / muted: hollow circle. */
|
||
.disabled::before {
|
||
background: transparent;
|
||
border: 1.5px solid var(--danger);
|
||
}
|
||
|
||
/* 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);
|
||
}
|