| import chalk from "chalk"; |
|
|
| type HighlightTheme = Record<string, (text: string) => string>; |
|
|
| |
| |
| |
| |
| export function createSyntaxTheme( |
| fallback: (text: string) => string, |
| light = false, |
| ): HighlightTheme { |
| if (light) { |
| return { |
| keyword: chalk.hex("#AF00DB"), |
| built_in: chalk.hex("#267F99"), |
| type: chalk.hex("#267F99"), |
| literal: chalk.hex("#0000FF"), |
| number: chalk.hex("#098658"), |
| string: chalk.hex("#A31515"), |
| regexp: chalk.hex("#811F3F"), |
| symbol: chalk.hex("#098658"), |
| class: chalk.hex("#267F99"), |
| function: chalk.hex("#795E26"), |
| title: chalk.hex("#795E26"), |
| params: chalk.hex("#001080"), |
| comment: chalk.hex("#008000"), |
| doctag: chalk.hex("#008000"), |
| meta: chalk.hex("#001080"), |
| "meta-keyword": chalk.hex("#AF00DB"), |
| "meta-string": chalk.hex("#A31515"), |
| section: chalk.hex("#795E26"), |
| tag: chalk.hex("#800000"), |
| name: chalk.hex("#001080"), |
| attr: chalk.hex("#C50000"), |
| attribute: chalk.hex("#C50000"), |
| variable: chalk.hex("#001080"), |
| bullet: chalk.hex("#795E26"), |
| code: chalk.hex("#A31515"), |
| emphasis: chalk.italic, |
| strong: chalk.bold, |
| formula: chalk.hex("#AF00DB"), |
| link: chalk.hex("#267F99"), |
| quote: chalk.hex("#008000"), |
| addition: chalk.hex("#098658"), |
| deletion: chalk.hex("#A31515"), |
| "selector-tag": chalk.hex("#800000"), |
| "selector-id": chalk.hex("#800000"), |
| "selector-class": chalk.hex("#800000"), |
| "selector-attr": chalk.hex("#800000"), |
| "selector-pseudo": chalk.hex("#800000"), |
| "template-tag": chalk.hex("#AF00DB"), |
| "template-variable": chalk.hex("#001080"), |
| default: fallback, |
| }; |
| } |
|
|
| return { |
| keyword: chalk.hex("#C586C0"), |
| built_in: chalk.hex("#4EC9B0"), |
| type: chalk.hex("#4EC9B0"), |
| literal: chalk.hex("#569CD6"), |
| number: chalk.hex("#B5CEA8"), |
| string: chalk.hex("#CE9178"), |
| regexp: chalk.hex("#D16969"), |
| symbol: chalk.hex("#B5CEA8"), |
| class: chalk.hex("#4EC9B0"), |
| function: chalk.hex("#DCDCAA"), |
| title: chalk.hex("#DCDCAA"), |
| params: chalk.hex("#9CDCFE"), |
| comment: chalk.hex("#6A9955"), |
| doctag: chalk.hex("#608B4E"), |
| meta: chalk.hex("#9CDCFE"), |
| "meta-keyword": chalk.hex("#C586C0"), |
| "meta-string": chalk.hex("#CE9178"), |
| section: chalk.hex("#DCDCAA"), |
| tag: chalk.hex("#569CD6"), |
| name: chalk.hex("#9CDCFE"), |
| attr: chalk.hex("#9CDCFE"), |
| attribute: chalk.hex("#9CDCFE"), |
| variable: chalk.hex("#9CDCFE"), |
| bullet: chalk.hex("#D7BA7D"), |
| code: chalk.hex("#CE9178"), |
| emphasis: chalk.italic, |
| strong: chalk.bold, |
| formula: chalk.hex("#C586C0"), |
| link: chalk.hex("#4EC9B0"), |
| quote: chalk.hex("#6A9955"), |
| addition: chalk.hex("#B5CEA8"), |
| deletion: chalk.hex("#F44747"), |
| "selector-tag": chalk.hex("#D7BA7D"), |
| "selector-id": chalk.hex("#D7BA7D"), |
| "selector-class": chalk.hex("#D7BA7D"), |
| "selector-attr": chalk.hex("#D7BA7D"), |
| "selector-pseudo": chalk.hex("#D7BA7D"), |
| "template-tag": chalk.hex("#C586C0"), |
| "template-variable": chalk.hex("#9CDCFE"), |
| default: fallback, |
| }; |
| } |
|
|