mirror of
https://github.com/prometheus/prometheus.git
synced 2025-03-05 20:59:13 -08:00
296 lines
6.8 KiB
TypeScript
296 lines
6.8 KiB
TypeScript
|
import { HighlightStyle } from "@codemirror/language";
|
|||
|
import { EditorView } from "@codemirror/view";
|
|||
|
import { tags } from "@lezer/highlight";
|
|||
|
|
|||
|
export const baseTheme = EditorView.theme({
|
|||
|
"&.cm-editor": {
|
|||
|
"&.cm-focused": {
|
|||
|
outline: "none",
|
|||
|
outline_fallback: "none",
|
|||
|
},
|
|||
|
backgroundColor: "transparent",
|
|||
|
},
|
|||
|
".cm-scroller": {
|
|||
|
overflow: "hidden",
|
|||
|
fontFamily: '"DejaVu Sans Mono", monospace',
|
|||
|
},
|
|||
|
".cm-placeholder": {
|
|||
|
fontFamily:
|
|||
|
'-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"',
|
|||
|
},
|
|||
|
|
|||
|
".cm-matchingBracket": {
|
|||
|
fontWeight: "bold",
|
|||
|
outline: "1px dashed transparent",
|
|||
|
},
|
|||
|
".cm-nonmatchingBracket": { borderColor: "red" },
|
|||
|
|
|||
|
".cm-tooltip.cm-tooltip-autocomplete": {
|
|||
|
"& > ul": {
|
|||
|
maxHeight: "350px",
|
|||
|
fontFamily: '"DejaVu Sans Mono", monospace',
|
|||
|
maxWidth: "unset",
|
|||
|
},
|
|||
|
"& > ul > li": {
|
|||
|
padding: "2px 1em 2px 3px",
|
|||
|
},
|
|||
|
minWidth: "30%",
|
|||
|
},
|
|||
|
|
|||
|
".cm-completionDetail": {
|
|||
|
float: "right",
|
|||
|
color: "#999",
|
|||
|
},
|
|||
|
|
|||
|
".cm-tooltip.cm-completionInfo": {
|
|||
|
marginTop: "-11px",
|
|||
|
padding: "10px",
|
|||
|
fontFamily:
|
|||
|
"'Open Sans', 'Lucida Sans Unicode', 'Lucida Grande', sans-serif;",
|
|||
|
border: "none",
|
|||
|
minWidth: "250px",
|
|||
|
maxWidth: "min-content",
|
|||
|
},
|
|||
|
|
|||
|
".cm-completionInfo.cm-completionInfo-right": {
|
|||
|
"&:before": {
|
|||
|
content: "' '",
|
|||
|
height: "0",
|
|||
|
position: "absolute",
|
|||
|
width: "0",
|
|||
|
left: "-20px",
|
|||
|
borderWidth: "10px",
|
|||
|
borderStyle: "solid",
|
|||
|
borderColor: "transparent",
|
|||
|
},
|
|||
|
marginLeft: "12px",
|
|||
|
},
|
|||
|
".cm-completionInfo.cm-completionInfo-left": {
|
|||
|
"&:before": {
|
|||
|
content: "' '",
|
|||
|
height: "0",
|
|||
|
position: "absolute",
|
|||
|
width: "0",
|
|||
|
right: "-20px",
|
|||
|
borderWidth: "10px",
|
|||
|
borderStyle: "solid",
|
|||
|
borderColor: "transparent",
|
|||
|
},
|
|||
|
marginRight: "12px",
|
|||
|
},
|
|||
|
|
|||
|
".cm-completionMatchedText": {
|
|||
|
textDecoration: "none",
|
|||
|
fontWeight: "bold",
|
|||
|
},
|
|||
|
|
|||
|
".cm-selectionMatch": {
|
|||
|
backgroundColor: "#e6f3ff",
|
|||
|
},
|
|||
|
|
|||
|
".cm-diagnostic": {
|
|||
|
"&.cm-diagnostic-error": {
|
|||
|
borderLeft: "3px solid #e65013",
|
|||
|
},
|
|||
|
},
|
|||
|
|
|||
|
".cm-completionIcon": {
|
|||
|
boxSizing: "content-box",
|
|||
|
fontSize: "16px",
|
|||
|
lineHeight: "1",
|
|||
|
marginRight: "10px",
|
|||
|
verticalAlign: "top",
|
|||
|
"&:after": { content: "'\\ea88'" },
|
|||
|
fontFamily: "codicon",
|
|||
|
paddingRight: "0",
|
|||
|
opacity: "1",
|
|||
|
},
|
|||
|
|
|||
|
".cm-completionIcon-function, .cm-completionIcon-method": {
|
|||
|
"&:after": { content: "'\\ea8c'" },
|
|||
|
},
|
|||
|
".cm-completionIcon-class": {
|
|||
|
"&:after": { content: "'○'" },
|
|||
|
},
|
|||
|
".cm-completionIcon-interface": {
|
|||
|
"&:after": { content: "'◌'" },
|
|||
|
},
|
|||
|
".cm-completionIcon-variable": {
|
|||
|
"&:after": { content: "'𝑥'" },
|
|||
|
},
|
|||
|
".cm-completionIcon-constant": {
|
|||
|
"&:after": { content: "'\\eb5f'" },
|
|||
|
},
|
|||
|
".cm-completionIcon-type": {
|
|||
|
"&:after": { content: "'𝑡'" },
|
|||
|
},
|
|||
|
".cm-completionIcon-enum": {
|
|||
|
"&:after": { content: "'∪'" },
|
|||
|
},
|
|||
|
".cm-completionIcon-property": {
|
|||
|
"&:after": { content: "'□'" },
|
|||
|
},
|
|||
|
".cm-completionIcon-keyword": {
|
|||
|
"&:after": { content: "'\\eb62'" },
|
|||
|
},
|
|||
|
".cm-completionIcon-namespace": {
|
|||
|
"&:after": { content: "'▢'" },
|
|||
|
},
|
|||
|
".cm-completionIcon-text": {
|
|||
|
"&:after": { content: "'\\ea95'" },
|
|||
|
color: "#ee9d28",
|
|||
|
},
|
|||
|
});
|
|||
|
|
|||
|
export const lightTheme = EditorView.theme(
|
|||
|
{
|
|||
|
".cm-tooltip": {
|
|||
|
backgroundColor: "#f8f8f8",
|
|||
|
borderColor: "rgba(52, 79, 113, 0.2)",
|
|||
|
},
|
|||
|
|
|||
|
".cm-tooltip.cm-tooltip-autocomplete": {
|
|||
|
"& li:hover": {
|
|||
|
backgroundColor: "#ddd",
|
|||
|
},
|
|||
|
"& > ul > li[aria-selected]": {
|
|||
|
backgroundColor: "#d6ebff",
|
|||
|
color: "unset",
|
|||
|
},
|
|||
|
},
|
|||
|
|
|||
|
".cm-tooltip.cm-completionInfo": {
|
|||
|
backgroundColor: "#d6ebff",
|
|||
|
},
|
|||
|
|
|||
|
".cm-tooltip > .cm-completionInfo.cm-completionInfo-right": {
|
|||
|
"&:before": {
|
|||
|
borderRightColor: "#d6ebff",
|
|||
|
},
|
|||
|
},
|
|||
|
".cm-tooltip > .cm-completionInfo.cm-completionInfo-left": {
|
|||
|
"&:before": {
|
|||
|
borderLeftColor: "#d6ebff",
|
|||
|
},
|
|||
|
},
|
|||
|
|
|||
|
".cm-line": {
|
|||
|
"&::selection": {
|
|||
|
backgroundColor: "#add6ff",
|
|||
|
},
|
|||
|
"& > span::selection": {
|
|||
|
backgroundColor: "#add6ff",
|
|||
|
},
|
|||
|
},
|
|||
|
|
|||
|
".cm-matchingBracket": {
|
|||
|
color: "#000",
|
|||
|
backgroundColor: "#dedede",
|
|||
|
},
|
|||
|
|
|||
|
".cm-completionMatchedText": {
|
|||
|
color: "#0066bf",
|
|||
|
},
|
|||
|
|
|||
|
".cm-completionIcon": {
|
|||
|
color: "#007acc",
|
|||
|
},
|
|||
|
|
|||
|
".cm-completionIcon-constant": {
|
|||
|
color: "#007acc",
|
|||
|
},
|
|||
|
|
|||
|
".cm-completionIcon-function, .cm-completionIcon-method": {
|
|||
|
color: "#652d90",
|
|||
|
},
|
|||
|
|
|||
|
".cm-completionIcon-keyword": {
|
|||
|
color: "#616161",
|
|||
|
},
|
|||
|
},
|
|||
|
{ dark: false }
|
|||
|
);
|
|||
|
|
|||
|
export const darkTheme = EditorView.theme(
|
|||
|
{
|
|||
|
".cm-content": {
|
|||
|
caretColor: "#fff",
|
|||
|
},
|
|||
|
|
|||
|
".cm-tooltip.cm-completionInfo": {
|
|||
|
backgroundColor: "#333338",
|
|||
|
},
|
|||
|
|
|||
|
".cm-tooltip > .cm-completionInfo.cm-completionInfo-right": {
|
|||
|
"&:before": {
|
|||
|
borderRightColor: "#333338",
|
|||
|
},
|
|||
|
},
|
|||
|
".cm-tooltip > .cm-completionInfo.cm-completionInfo-left": {
|
|||
|
"&:before": {
|
|||
|
borderLeftColor: "#333338",
|
|||
|
},
|
|||
|
},
|
|||
|
|
|||
|
".cm-line": {
|
|||
|
"&::selection": {
|
|||
|
backgroundColor: "#767676",
|
|||
|
},
|
|||
|
"& > span::selection": {
|
|||
|
backgroundColor: "#767676",
|
|||
|
},
|
|||
|
},
|
|||
|
|
|||
|
".cm-matchingBracket, &.cm-focused .cm-matchingBracket": {
|
|||
|
backgroundColor: "#616161",
|
|||
|
},
|
|||
|
|
|||
|
".cm-completionMatchedText": {
|
|||
|
color: "#7dd3fc",
|
|||
|
},
|
|||
|
|
|||
|
".cm-completionIcon, .cm-completionIcon-constant": {
|
|||
|
color: "#7dd3fc",
|
|||
|
},
|
|||
|
|
|||
|
".cm-completionIcon-function, .cm-completionIcon-method": {
|
|||
|
color: "#d8b4fe",
|
|||
|
},
|
|||
|
|
|||
|
".cm-completionIcon-keyword": {
|
|||
|
color: "#cbd5e1 !important",
|
|||
|
},
|
|||
|
},
|
|||
|
{ dark: true }
|
|||
|
);
|
|||
|
|
|||
|
export const promqlHighlighter = HighlightStyle.define([
|
|||
|
{ tag: tags.number, color: "#09885a" },
|
|||
|
{ tag: tags.string, color: "#a31515" },
|
|||
|
{ tag: tags.keyword, color: "#008080" },
|
|||
|
{ tag: tags.function(tags.variableName), color: "#008080" },
|
|||
|
{ tag: tags.labelName, color: "#800000" },
|
|||
|
{ tag: tags.operator },
|
|||
|
{ tag: tags.modifier, color: "#008080" },
|
|||
|
{ tag: tags.paren },
|
|||
|
{ tag: tags.squareBracket },
|
|||
|
{ tag: tags.brace },
|
|||
|
{ tag: tags.invalid, color: "red" },
|
|||
|
{ tag: tags.comment, color: "#888", fontStyle: "italic" },
|
|||
|
]);
|
|||
|
|
|||
|
export const darkPromqlHighlighter = HighlightStyle.define([
|
|||
|
{ tag: tags.number, color: "#22c55e" },
|
|||
|
{ tag: tags.string, color: "#fca5a5" },
|
|||
|
{ tag: tags.keyword, color: "#14bfad" },
|
|||
|
{ tag: tags.function(tags.variableName), color: "#14bfad" },
|
|||
|
{ tag: tags.labelName, color: "#ff8585" },
|
|||
|
{ tag: tags.operator },
|
|||
|
{ tag: tags.modifier, color: "#14bfad" },
|
|||
|
{ tag: tags.paren },
|
|||
|
{ tag: tags.squareBracket },
|
|||
|
{ tag: tags.brace },
|
|||
|
{ tag: tags.invalid, color: "#ff3d3d" },
|
|||
|
{ tag: tags.comment, color: "#9ca3af", fontStyle: "italic" },
|
|||
|
]);
|