101 lines
1.9 KiB
TypeScript
101 lines
1.9 KiB
TypeScript
import { tags as t } from "@lezer/highlight"
|
|
import { EditorView } from "@codemirror/view"
|
|
import type { Extension } from "@codemirror/state"
|
|
import { createTheme } from "./createTheme"
|
|
|
|
const tooltipTheme = EditorView.theme({
|
|
".cm-tooltip": {
|
|
border: "1px solid #e0e0e0",
|
|
backgroundColor: "#f8f8f8",
|
|
},
|
|
".cm-tooltip-autocomplete": {
|
|
"& > ul > li[aria-selected]": {
|
|
backgroundColor: "#e8e8e8",
|
|
color: "#000000",
|
|
},
|
|
},
|
|
})
|
|
|
|
// Author: Kenneth Reitz
|
|
const smoothyBase = createTheme({
|
|
variant: "light",
|
|
settings: {
|
|
background: "#FFFFFF",
|
|
foreground: "#000000",
|
|
caret: "#000000",
|
|
selection: "#FFFD0054",
|
|
gutterBackground: "#FFFFFF",
|
|
gutterForeground: "#00000070",
|
|
gutterBorderRight: "none",
|
|
lineHighlight: "#00000008",
|
|
},
|
|
styles: [
|
|
{
|
|
tag: t.comment,
|
|
color: "#CFCFCF",
|
|
},
|
|
{
|
|
tag: [t.number, t.bool, t.null],
|
|
color: "#E66C29",
|
|
},
|
|
{
|
|
tag: [
|
|
t.className,
|
|
t.definition(t.propertyName),
|
|
t.function(t.variableName),
|
|
t.labelName,
|
|
t.definition(t.typeName),
|
|
],
|
|
color: "#2EB43B",
|
|
},
|
|
{
|
|
tag: t.keyword,
|
|
color: "#D8B229",
|
|
},
|
|
{
|
|
tag: t.operator,
|
|
color: "#4EA44E",
|
|
fontWeight: "bold",
|
|
},
|
|
{
|
|
tag: [t.definitionKeyword, t.modifier],
|
|
color: "#925A47",
|
|
},
|
|
{
|
|
tag: t.string,
|
|
color: "#704D3D",
|
|
},
|
|
{
|
|
tag: t.typeName,
|
|
color: "#2F8996",
|
|
},
|
|
{
|
|
tag: [t.variableName, t.propertyName],
|
|
color: "#77ACB0",
|
|
},
|
|
{
|
|
tag: t.self,
|
|
color: "#77ACB0",
|
|
fontWeight: "bold",
|
|
},
|
|
{
|
|
tag: t.regexp,
|
|
color: "#E3965E",
|
|
},
|
|
{
|
|
tag: [t.tagName, t.angleBracket],
|
|
color: "#BAA827",
|
|
},
|
|
{
|
|
tag: t.attributeName,
|
|
color: "#B06520",
|
|
},
|
|
{
|
|
tag: t.derefOperator,
|
|
color: "#000",
|
|
},
|
|
],
|
|
})
|
|
|
|
export const smoothy: Extension = [smoothyBase, tooltipTheme]
|