82 lines
1.8 KiB
TypeScript
82 lines
1.8 KiB
TypeScript
import { tags as t } from "@lezer/highlight";
|
|
import createTheme from "./create-theme";
|
|
|
|
// Original theme: thememirror (dracula)
|
|
export const devRun = createTheme({
|
|
variant: "dark",
|
|
settings: {
|
|
background: "var(--card)", // stays app-integrated
|
|
foreground: "#e6e6eb",
|
|
caret: "var(--primary)",
|
|
selection: "rgba(120, 120, 150, 0.25)",
|
|
gutterBackground: "var(--card)",
|
|
gutterForeground: "rgb(120, 122, 128)",
|
|
lineHighlight: "rgba(255, 255, 255, 0.03)",
|
|
},
|
|
styles: [
|
|
// Comments — low priority, low contrast
|
|
{
|
|
tag: t.comment,
|
|
color: "#5f6a8a",
|
|
fontStyle: "italic",
|
|
},
|
|
|
|
// Strings & literals — data, not logic
|
|
{
|
|
tag: [t.string, t.special(t.brace)],
|
|
color: "#f4e58c",
|
|
},
|
|
|
|
// Numbers / booleans — benchmarks & truth
|
|
{
|
|
tag: [t.number, t.bool, t.null],
|
|
color: "#c792ea",
|
|
fontWeight: "500",
|
|
},
|
|
|
|
// Keywords & operators — decisions & flow
|
|
{
|
|
tag: [t.keyword, t.operator],
|
|
color: "#ff5fa2",
|
|
fontWeight: "600",
|
|
},
|
|
|
|
// Types & definitions — structure
|
|
{
|
|
tag: [t.definitionKeyword, t.typeName],
|
|
color: "#6be6ff",
|
|
},
|
|
|
|
// Type definitions — neutral, readable
|
|
{
|
|
tag: t.definition(t.typeName),
|
|
color: "#e6e6eb",
|
|
},
|
|
|
|
// Functions, classes, props — execution paths
|
|
{
|
|
tag: [
|
|
t.className,
|
|
t.definition(t.propertyName),
|
|
t.function(t.variableName),
|
|
t.attributeName,
|
|
],
|
|
color: "#4dff9f",
|
|
fontWeight: "500",
|
|
},
|
|
|
|
// Variables — slightly muted, context-aware
|
|
{
|
|
tag: t.variableName,
|
|
color: "#cfd3dc",
|
|
},
|
|
|
|
// Invalid / errors — instant attention
|
|
{
|
|
tag: t.invalid,
|
|
color: "#ff5555",
|
|
fontWeight: "700",
|
|
},
|
|
],
|
|
});
|