modern-monaco 0.1.6 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core.js +5 -5
- package/dist/shiki.js +62 -62
- package/package.json +1 -1
package/dist/core.js
CHANGED
|
@@ -11,7 +11,7 @@ function createWebWorker(url, name) {
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
// src/core.ts
|
|
14
|
-
import { getExtnameFromLanguageId, getLanguageIdFromPath, initShiki, setDefaultWasmLoader,
|
|
14
|
+
import { getExtnameFromLanguageId, getLanguageIdFromPath, grammars, initShiki, setDefaultWasmLoader, themes } from "./shiki.js";
|
|
15
15
|
import { initShikiMonacoTokenizer, registerShikiMonacoTokenizer } from "./shiki.js";
|
|
16
16
|
import { render } from "./shiki.js";
|
|
17
17
|
import { getWasmInstance } from "./shiki-wasm.js";
|
|
@@ -416,14 +416,14 @@ async function loadMonaco(highlighter, workspace, lsp, onDidEditorWorkerResolve)
|
|
|
416
416
|
command: "editor.action.quickCommand"
|
|
417
417
|
});
|
|
418
418
|
}
|
|
419
|
-
const allLanguages = new Set(
|
|
419
|
+
const allLanguages = new Set(grammars.filter((g) => !g.injectTo).map((g) => g.name));
|
|
420
420
|
allLanguages.forEach((id) => {
|
|
421
421
|
const languages = monaco.languages;
|
|
422
|
-
languages.register({ id, aliases:
|
|
422
|
+
languages.register({ id, aliases: grammars.find((g) => g.name === id)?.aliases });
|
|
423
423
|
languages.onLanguage(id, async () => {
|
|
424
424
|
const config = monaco.languageConfigurations[monaco.languageConfigurationAliases[id] ?? id];
|
|
425
425
|
const loadedGrammars = new Set(highlighter.getLoadedLanguages());
|
|
426
|
-
const reqiredGrammars = [id].concat(
|
|
426
|
+
const reqiredGrammars = [id].concat(grammars.find((g) => g.name === id)?.embedded ?? []).filter((id2) => !loadedGrammars.has(id2));
|
|
427
427
|
if (config) {
|
|
428
428
|
languages.setLanguageConfiguration(id, monaco.convertVscodeLanguageConfiguration(config));
|
|
429
429
|
}
|
|
@@ -455,7 +455,7 @@ function registerSyntax(...syntaxes) {
|
|
|
455
455
|
}
|
|
456
456
|
function registerTheme(theme) {
|
|
457
457
|
if (theme.name) {
|
|
458
|
-
|
|
458
|
+
themes.set(theme.name, theme);
|
|
459
459
|
}
|
|
460
460
|
}
|
|
461
461
|
setDefaultWasmLoader(getWasmInstance);
|
package/dist/shiki.js
CHANGED
|
@@ -4,11 +4,11 @@ var __export = (target, all2) => {
|
|
|
4
4
|
__defProp(target, name, { get: all2[name], enumerable: true });
|
|
5
5
|
};
|
|
6
6
|
|
|
7
|
-
// <define:
|
|
8
|
-
var define_TM_GRAMMARS_default = [{ name: "abap", scopeName: "source.abap" }, { name: "actionscript-3", scopeName: "source.actionscript.3" }, { name: "ada", scopeName: "source.ada" }, { name: "angular-html", scopeName: "text.html.derivative.ng", embedded: ["html", "angular-expression", "angular-let-declaration", "angular-template", "angular-template-blocks"] }, { name: "angular-ts", scopeName: "source.ts.ng", embedded: ["angular-expression", "angular-inline-style", "angular-inline-template", "angular-let-declaration", "angular-template", "angular-template-blocks"] }, { name: "apache", scopeName: "source.apacheconf" }, { name: "apex", scopeName: "source.apex" }, { name: "apl", scopeName: "source.apl", embedded: ["html", "xml", "css", "javascript", "json"] }, { name: "applescript", scopeName: "source.applescript" }, { name: "ara", scopeName: "source.ara" }, { name: "asciidoc", scopeName: "text.asciidoc", aliases: ["adoc"], embedded: ["html", "yaml", "csv", "css", "ini", "java", "lua", "make", "perl", "r", "ruby", "php", "sql", "vb", "xml", "xsl", "bat", "clojure", "coffee", "c", "cpp", "diff", "docker", "git-commit", "git-rebase", "go", "groovy", "pug", "javascript", "json", "jsonc", "less", "objective-c", "swift", "scss", "raku", "powershell", "python", "julia", "regexp", "rust", "scala", "shellscript", "typescript", "tsx", "csharp", "fsharp", "dart", "handlebars", "markdown", "log", "erlang", "elixir", "latex", "bibtex", "abap", "rst", "haskell", "kotlin"] }, { name: "asm", scopeName: "source.asm.x86_64" }, { name: "astro", scopeName: "source.astro", embedded: ["json", "javascript", "typescript", "stylus", "sass", "css", "scss", "less", "postcss", "tsx"] }, { name: "awk", scopeName: "source.awk" }, { name: "ballerina", scopeName: "source.ballerina" }, { name: "bat", scopeName: "source.batchfile", aliases: ["batch"] }, { name: "beancount", scopeName: "text.beancount" }, { name: "berry", scopeName: "source.berry", aliases: ["be"] }, { name: "bibtex", scopeName: "text.bibtex" }, { name: "bicep", scopeName: "source.bicep" }, { name: "blade", scopeName: "text.html.php.blade", embedded: ["html-derivative", "html", "xml", "sql", "javascript", "json", "css"] }, { name: "bsl", scopeName: "source.bsl", aliases: ["1c"], embedded: ["sdbl"] }, { name: "c", scopeName: "source.c" }, { name: "cadence", scopeName: "source.cadence", aliases: ["cdc"] }, { name: "cairo", scopeName: "source.cairo0", embedded: ["python"] }, { name: "clarity", scopeName: "source.clar" }, { name: "clojure", scopeName: "source.clojure", aliases: ["clj"] }, { name: "cmake", scopeName: "source.cmake" }, { name: "cobol", scopeName: "source.cobol", embedded: ["html", "java"] }, { name: "codeowners", scopeName: "text.codeowners" }, { name: "codeql", scopeName: "source.ql", aliases: ["ql"] }, { name: "coffee", scopeName: "source.coffee", aliases: ["coffeescript"], embedded: ["javascript"] }, { name: "common-lisp", scopeName: "source.commonlisp", aliases: ["lisp"] }, { name: "coq", scopeName: "source.coq" }, { name: "cpp", scopeName: "source.cpp", aliases: ["c++"], embedded: ["cpp-macro", "regexp", "glsl", "sql"] }, { name: "crystal", scopeName: "source.crystal", embedded: ["html", "sql", "css", "c", "javascript", "shellscript"] }, { name: "csharp", scopeName: "source.cs", aliases: ["c#", "cs"] }, { name: "css", scopeName: "source.css" }, { name: "csv", scopeName: "text.csv" }, { name: "cue", scopeName: "source.cue" }, { name: "cypher", scopeName: "source.cypher", aliases: ["cql"] }, { name: "d", scopeName: "source.d" }, { name: "dart", scopeName: "source.dart" }, { name: "dax", scopeName: "source.dax" }, { name: "desktop", scopeName: "source.desktop" }, { name: "diff", scopeName: "source.diff" }, { name: "docker", scopeName: "source.dockerfile", aliases: ["dockerfile"] }, { name: "dotenv", scopeName: "source.dotenv" }, { name: "dream-maker", scopeName: "source.dm" }, { name: "edge", scopeName: "text.html.edge", embedded: ["typescript", "html", "html-derivative"] }, { name: "elixir", scopeName: "source.elixir", embedded: ["html"] }, { name: "elm", scopeName: "source.elm", embedded: ["glsl"] }, { name: "emacs-lisp", scopeName: "source.emacs.lisp", aliases: ["elisp"] }, { name: "erb", scopeName: "text.html.erb", embedded: ["html", "ruby"] }, { name: "erlang", scopeName: "source.erlang", aliases: ["erl"], embedded: ["markdown"] }, { name: "fennel", scopeName: "source.fnl" }, { name: "fish", scopeName: "source.fish" }, { name: "fluent", scopeName: "source.ftl", aliases: ["ftl"] }, { name: "fortran-fixed-form", scopeName: "source.fortran.fixed", aliases: ["f", "for", "f77"], embedded: ["fortran-free-form"] }, { name: "fortran-free-form", scopeName: "source.fortran.free", aliases: ["f90", "f95", "f03", "f08", "f18"] }, { name: "fsharp", scopeName: "source.fsharp", aliases: ["f#", "fs"], embedded: ["markdown"] }, { name: "gdresource", scopeName: "source.gdresource", embedded: ["gdshader", "gdscript"] }, { name: "gdscript", scopeName: "source.gdscript" }, { name: "gdshader", scopeName: "source.gdshader" }, { name: "genie", scopeName: "source.genie" }, { name: "gherkin", scopeName: "text.gherkin.feature" }, { name: "git-commit", scopeName: "text.git-commit", embedded: ["diff"] }, { name: "git-rebase", scopeName: "text.git-rebase", embedded: ["shellscript"] }, { name: "gleam", scopeName: "source.gleam" }, { name: "glimmer-js", scopeName: "source.gjs", aliases: ["gjs"], embedded: ["javascript", "typescript", "css", "html"] }, { name: "glimmer-ts", scopeName: "source.gts", aliases: ["gts"], embedded: ["typescript", "css", "javascript", "html"] }, { name: "glsl", scopeName: "source.glsl", embedded: ["c"] }, { name: "gnuplot", scopeName: "source.gnuplot" }, { name: "go", scopeName: "source.go" }, { name: "graphql", scopeName: "source.graphql", aliases: ["gql"], embedded: ["javascript", "typescript", "jsx", "tsx"] }, { name: "groovy", scopeName: "source.groovy" }, { name: "hack", scopeName: "source.hack", embedded: ["html", "sql"] }, { name: "haml", scopeName: "text.haml", embedded: ["ruby", "javascript", "sass", "coffee", "markdown", "css"] }, { name: "handlebars", scopeName: "text.html.handlebars", aliases: ["hbs"], embedded: ["html", "css", "javascript", "yaml"] }, { name: "haskell", scopeName: "source.haskell", aliases: ["hs"] }, { name: "haxe", scopeName: "source.hx" }, { name: "hcl", scopeName: "source.hcl" }, { name: "hjson", scopeName: "source.hjson" }, { name: "hlsl", scopeName: "source.hlsl" }, { name: "html", scopeName: "text.html.basic", embedded: ["json", "css", "javascript"] }, { name: "html-derivative", scopeName: "text.html.derivative", embedded: ["html"] }, { name: "http", scopeName: "source.http", embedded: ["shellscript", "json", "xml", "graphql"] }, { name: "hxml", scopeName: "source.hxml", embedded: ["haxe"] }, { name: "hy", scopeName: "source.hy" }, { name: "imba", scopeName: "source.imba" }, { name: "ini", scopeName: "source.ini", aliases: ["properties"] }, { name: "java", scopeName: "source.java" }, { name: "javascript", scopeName: "source.js", aliases: ["js", "mjs", "cjs"], embedded: ["html", "css"] }, { name: "jinja", scopeName: "source.jinja", embedded: ["jinja-html"] }, { name: "jison", scopeName: "source.jison", embedded: ["javascript"] }, { name: "json", scopeName: "source.json" }, { name: "json5", scopeName: "source.json5" }, { name: "jsonc", scopeName: "source.json.comments" }, { name: "jsonl", scopeName: "source.json.lines" }, { name: "jsonnet", scopeName: "source.jsonnet" }, { name: "jssm", scopeName: "source.jssm", aliases: ["fsl"] }, { name: "jsx", scopeName: "source.js.jsx", embedded: ["html", "css"] }, { name: "julia", scopeName: "source.julia", aliases: ["jl"], embedded: ["cpp", "python", "javascript", "r", "sql"] }, { name: "kotlin", scopeName: "source.kotlin", aliases: ["kt", "kts"] }, { name: "kusto", scopeName: "source.kusto", aliases: ["kql"] }, { name: "latex", scopeName: "text.tex.latex", embedded: ["tex", "shellscript", "css", "gnuplot", "haskell", "html", "java", "julia", "javascript", "lua", "python", "ruby", "rust", "typescript", "xml", "yaml", "scala"] }, { name: "lean", scopeName: "source.lean4", aliases: ["lean4"] }, { name: "less", scopeName: "source.css.less" }, { name: "liquid", scopeName: "text.html.liquid", embedded: ["html", "css", "json", "javascript"] }, { name: "llvm", scopeName: "source.llvm" }, { name: "log", scopeName: "text.log" }, { name: "logo", scopeName: "source.logo" }, { name: "lua", scopeName: "source.lua", embedded: ["c"] }, { name: "luau", scopeName: "source.luau" }, { name: "make", scopeName: "source.makefile", aliases: ["makefile"] }, { name: "markdown", scopeName: "text.html.markdown", aliases: ["md"], embedded: ["css", "html", "ini", "java", "lua", "make", "perl", "r", "ruby", "php", "sql", "vb", "xml", "xsl", "yaml", "bat", "clojure", "coffee", "c", "cpp", "diff", "docker", "git-commit", "git-rebase", "go", "groovy", "pug", "javascript", "json", "jsonc", "less", "objective-c", "swift", "scss", "raku", "powershell", "python", "julia", "regexp", "rust", "scala", "shellscript", "typescript", "tsx", "csharp", "fsharp", "dart", "handlebars", "log", "erlang", "elixir", "latex", "bibtex", "html-derivative"] }, { name: "marko", scopeName: "text.marko", embedded: ["css", "less", "scss", "typescript"] }, { name: "matlab", scopeName: "source.matlab" }, { name: "mdc", scopeName: "text.markdown.mdc.standalone", embedded: ["markdown", "yaml", "html-derivative"] }, { name: "mdx", scopeName: "source.mdx", embedded: ["tsx", "toml", "yaml", "c", "clojure", "coffee", "cpp", "csharp", "css", "diff", "docker", "elixir", "elm", "erlang", "go", "graphql", "haskell", "html", "ini", "java", "javascript", "json", "julia", "kotlin", "less", "lua", "make", "markdown", "objective-c", "perl", "python", "r", "ruby", "rust", "scala", "scss", "shellscript", "shellsession", "sql", "xml", "swift", "typescript"] }, { name: "mermaid", scopeName: "markdown.mermaid.codeblock", aliases: ["mmd"] }, { name: "mipsasm", scopeName: "source.mips", aliases: ["mips"] }, { name: "mojo", scopeName: "source.mojo" }, { name: "move", scopeName: "source.move" }, { name: "narrat", scopeName: "source.narrat", aliases: ["nar"] }, { name: "nextflow", scopeName: "source.nextflow", aliases: ["nf"] }, { name: "nginx", scopeName: "source.nginx", embedded: ["lua"] }, { name: "nim", scopeName: "source.nim", embedded: ["c", "html", "xml", "javascript", "css", "glsl", "markdown"] }, { name: "nix", scopeName: "source.nix" }, { name: "nushell", scopeName: "source.nushell", aliases: ["nu"] }, { name: "objective-c", scopeName: "source.objc", aliases: ["objc"] }, { name: "objective-cpp", scopeName: "source.objcpp" }, { name: "ocaml", scopeName: "source.ocaml" }, { name: "pascal", scopeName: "source.pascal" }, { name: "perl", scopeName: "source.perl", embedded: ["html", "xml", "css", "javascript", "sql"] }, { name: "php", scopeName: "source.php", embedded: ["html", "xml", "sql", "javascript", "json", "css"] }, { name: "plsql", scopeName: "source.plsql.oracle" }, { name: "po", scopeName: "source.po", aliases: ["pot", "potx"] }, { name: "polar", scopeName: "source.polar" }, { name: "postcss", scopeName: "source.css.postcss" }, { name: "powerquery", scopeName: "source.powerquery" }, { name: "powershell", scopeName: "source.powershell", aliases: ["ps", "ps1"] }, { name: "prisma", scopeName: "source.prisma" }, { name: "prolog", scopeName: "source.prolog" }, { name: "proto", scopeName: "source.proto", aliases: ["protobuf"] }, { name: "pug", scopeName: "text.pug", aliases: ["jade"], embedded: ["javascript", "css", "sass", "scss", "stylus", "coffee", "html"] }, { name: "puppet", scopeName: "source.puppet" }, { name: "purescript", scopeName: "source.purescript" }, { name: "python", scopeName: "source.python", aliases: ["py"] }, { name: "qml", scopeName: "source.qml", embedded: ["javascript"] }, { name: "qmldir", scopeName: "source.qmldir" }, { name: "qss", scopeName: "source.qss" }, { name: "r", scopeName: "source.r" }, { name: "racket", scopeName: "source.racket" }, { name: "raku", scopeName: "source.perl.6", aliases: ["perl6"] }, { name: "razor", scopeName: "text.aspnetcorerazor", embedded: ["html", "csharp"] }, { name: "reg", scopeName: "source.reg" }, { name: "regexp", scopeName: "source.regexp.python", aliases: ["regex"] }, { name: "rel", scopeName: "source.rel" }, { name: "riscv", scopeName: "source.riscv" }, { name: "rst", scopeName: "source.rst", embedded: ["html-derivative", "cpp", "python", "javascript", "shellscript", "yaml", "cmake", "ruby"] }, { name: "ruby", scopeName: "source.ruby", aliases: ["rb"], embedded: ["html", "haml", "xml", "sql", "graphql", "css", "cpp", "c", "javascript", "shellscript", "lua", "yaml"] }, { name: "rust", scopeName: "source.rust", aliases: ["rs"] }, { name: "sas", scopeName: "source.sas", embedded: ["sql"] }, { name: "sass", scopeName: "source.sass" }, { name: "scala", scopeName: "source.scala" }, { name: "scheme", scopeName: "source.scheme" }, { name: "scss", scopeName: "source.css.scss", embedded: ["css"] }, { name: "sdbl", scopeName: "source.sdbl", aliases: ["1c-query"] }, { name: "shaderlab", scopeName: "source.shaderlab", aliases: ["shader"], embedded: ["hlsl"] }, { name: "shellscript", scopeName: "source.shell", aliases: ["bash", "sh", "shell", "zsh"] }, { name: "shellsession", scopeName: "text.shell-session", aliases: ["console"], embedded: ["shellscript"] }, { name: "smalltalk", scopeName: "source.smalltalk" }, { name: "solidity", scopeName: "source.solidity" }, { name: "soy", scopeName: "text.html.soy", aliases: ["closure-templates"], embedded: ["html"] }, { name: "sparql", scopeName: "source.sparql", embedded: ["turtle"] }, { name: "splunk", scopeName: "source.splunk_search", aliases: ["spl"] }, { name: "sql", scopeName: "source.sql" }, { name: "ssh-config", scopeName: "source.ssh-config" }, { name: "stata", scopeName: "source.stata", embedded: ["sql"] }, { name: "stylus", scopeName: "source.stylus", aliases: ["styl"] }, { name: "svelte", scopeName: "source.svelte", embedded: ["javascript", "typescript", "coffee", "stylus", "sass", "css", "scss", "less", "postcss", "pug", "markdown"] }, { name: "swift", scopeName: "source.swift" }, { name: "system-verilog", scopeName: "source.systemverilog" }, { name: "systemd", scopeName: "source.systemd" }, { name: "talonscript", scopeName: "source.talon", aliases: ["talon"] }, { name: "tasl", scopeName: "source.tasl" }, { name: "tcl", scopeName: "source.tcl" }, { name: "templ", scopeName: "source.templ", embedded: ["go", "javascript", "css"] }, { name: "terraform", scopeName: "source.hcl.terraform", aliases: ["tf", "tfvars"] }, { name: "tex", scopeName: "text.tex", embedded: ["r"] }, { name: "toml", scopeName: "source.toml" }, { name: "ts-tags", scopeName: "source.ts.tags", aliases: ["lit"], embedded: ["typescript", "es-tag-css", "es-tag-glsl", "es-tag-html", "es-tag-sql", "es-tag-xml"] }, { name: "tsv", scopeName: "text.tsv" }, { name: "tsx", scopeName: "source.tsx", embedded: ["html", "css"] }, { name: "turtle", scopeName: "source.turtle" }, { name: "twig", scopeName: "text.html.twig", embedded: ["css", "javascript", "scss", "php", "python", "ruby"] }, { name: "typescript", scopeName: "source.ts", aliases: ["ts", "mts", "cts"], embedded: ["html", "css"] }, { name: "typespec", scopeName: "source.tsp", aliases: ["tsp"] }, { name: "typst", scopeName: "source.typst", aliases: ["typ"] }, { name: "v", scopeName: "source.v" }, { name: "vala", scopeName: "source.vala" }, { name: "vb", scopeName: "source.asp.vb.net", aliases: ["cmd"] }, { name: "verilog", scopeName: "source.verilog" }, { name: "vhdl", scopeName: "source.vhdl" }, { name: "viml", scopeName: "source.viml", aliases: ["vim", "vimscript"] }, { name: "vue", scopeName: "source.vue", embedded: ["markdown", "pug", "stylus", "sass", "css", "scss", "less", "javascript", "typescript", "jsx", "tsx", "coffee", "json", "jsonc", "json5", "yaml", "toml", "graphql", "html-derivative", "html", "markdown-vue", "vue-directives", "vue-interpolations", "vue-sfc-style-variable-injection"] }, { name: "vue-html", scopeName: "text.html.vue-html", embedded: ["vue", "javascript"] }, { name: "vue-vine", scopeName: "source.vue-vine", embedded: ["css", "scss", "less", "stylus", "postcss", "vue", "javascript"] }, { name: "vyper", scopeName: "source.vyper", aliases: ["vy"] }, { name: "wasm", scopeName: "source.wat" }, { name: "wenyan", scopeName: "source.wenyan", aliases: ["\u6587\u8A00"] }, { name: "wgsl", scopeName: "source.wgsl" }, { name: "wikitext", scopeName: "source.wikitext", aliases: ["mediawiki", "wiki"], embedded: ["html", "css", "ini", "java", "lua", "make", "perl", "r", "ruby", "php", "sql", "vb", "xml", "xsl", "yaml", "bat", "clojure", "coffee", "c", "cpp", "diff", "docker", "go", "groovy", "pug", "javascript", "jsonc", "less", "objective-c", "swift", "scss", "raku", "powershell", "python", "julia", "rust", "scala", "shellscript", "typescript", "csharp", "fsharp", "dart", "handlebars", "markdown", "erlang", "elixir", "latex", "bibtex", "json"] }, { name: "wit", scopeName: "source.wit" }, { name: "wolfram", scopeName: "source.wolfram", aliases: ["wl"] }, { name: "xml", scopeName: "text.xml", embedded: ["java"] }, { name: "xsl", scopeName: "text.xml.xsl", embedded: ["xml"] }, { name: "yaml", scopeName: "source.yaml", aliases: ["yml"] }, { name: "zenscript", scopeName: "source.zenscript" }, { name: "zig", scopeName: "source.zig" }];
|
|
7
|
+
// <define:SHIKI_GRAMMARS>
|
|
8
|
+
var define_SHIKI_GRAMMARS_default = [{ name: "abap", scopeName: "source.abap" }, { name: "actionscript-3", scopeName: "source.actionscript.3" }, { name: "ada", scopeName: "source.ada" }, { name: "angular-html", scopeName: "text.html.derivative.ng", embedded: ["html", "angular-expression", "angular-let-declaration", "angular-template", "angular-template-blocks"] }, { name: "angular-ts", scopeName: "source.ts.ng", embedded: ["angular-expression", "angular-inline-style", "angular-inline-template", "angular-let-declaration", "angular-template", "angular-template-blocks"] }, { name: "apache", scopeName: "source.apacheconf" }, { name: "apex", scopeName: "source.apex" }, { name: "apl", scopeName: "source.apl", embedded: ["html", "xml", "css", "javascript", "json"] }, { name: "applescript", scopeName: "source.applescript" }, { name: "ara", scopeName: "source.ara" }, { name: "asciidoc", scopeName: "text.asciidoc", aliases: ["adoc"], embedded: ["html", "yaml", "csv", "css", "ini", "java", "lua", "make", "perl", "r", "ruby", "php", "sql", "vb", "xml", "xsl", "bat", "clojure", "coffee", "c", "cpp", "diff", "docker", "git-commit", "git-rebase", "go", "groovy", "pug", "javascript", "json", "jsonc", "less", "objective-c", "swift", "scss", "raku", "powershell", "python", "julia", "regexp", "rust", "scala", "shellscript", "typescript", "tsx", "csharp", "fsharp", "dart", "handlebars", "markdown", "log", "erlang", "elixir", "latex", "bibtex", "abap", "rst", "haskell", "kotlin"] }, { name: "asm", scopeName: "source.asm.x86_64" }, { name: "astro", scopeName: "source.astro", embedded: ["json", "javascript", "typescript", "stylus", "sass", "css", "scss", "less", "postcss", "tsx"] }, { name: "awk", scopeName: "source.awk" }, { name: "ballerina", scopeName: "source.ballerina" }, { name: "bat", scopeName: "source.batchfile", aliases: ["batch"] }, { name: "beancount", scopeName: "text.beancount" }, { name: "berry", scopeName: "source.berry", aliases: ["be"] }, { name: "bibtex", scopeName: "text.bibtex" }, { name: "bicep", scopeName: "source.bicep" }, { name: "blade", scopeName: "text.html.php.blade", embedded: ["html-derivative", "html", "xml", "sql", "javascript", "json", "css"] }, { name: "bsl", scopeName: "source.bsl", aliases: ["1c"], embedded: ["sdbl"] }, { name: "c", scopeName: "source.c" }, { name: "cadence", scopeName: "source.cadence", aliases: ["cdc"] }, { name: "cairo", scopeName: "source.cairo0", embedded: ["python"] }, { name: "clarity", scopeName: "source.clar" }, { name: "clojure", scopeName: "source.clojure", aliases: ["clj"] }, { name: "cmake", scopeName: "source.cmake" }, { name: "cobol", scopeName: "source.cobol", embedded: ["html", "java"] }, { name: "codeowners", scopeName: "text.codeowners" }, { name: "codeql", scopeName: "source.ql", aliases: ["ql"] }, { name: "coffee", scopeName: "source.coffee", aliases: ["coffeescript"], embedded: ["javascript"] }, { name: "common-lisp", scopeName: "source.commonlisp", aliases: ["lisp"] }, { name: "coq", scopeName: "source.coq" }, { name: "cpp", scopeName: "source.cpp", aliases: ["c++"], embedded: ["cpp-macro", "regexp", "glsl", "sql"] }, { name: "crystal", scopeName: "source.crystal", embedded: ["html", "sql", "css", "c", "javascript", "shellscript"] }, { name: "csharp", scopeName: "source.cs", aliases: ["c#", "cs"] }, { name: "css", scopeName: "source.css" }, { name: "csv", scopeName: "text.csv" }, { name: "cue", scopeName: "source.cue" }, { name: "cypher", scopeName: "source.cypher", aliases: ["cql"] }, { name: "d", scopeName: "source.d" }, { name: "dart", scopeName: "source.dart" }, { name: "dax", scopeName: "source.dax" }, { name: "desktop", scopeName: "source.desktop" }, { name: "diff", scopeName: "source.diff" }, { name: "docker", scopeName: "source.dockerfile", aliases: ["dockerfile"] }, { name: "dotenv", scopeName: "source.dotenv" }, { name: "dream-maker", scopeName: "source.dm" }, { name: "edge", scopeName: "text.html.edge", embedded: ["typescript", "html", "html-derivative"] }, { name: "elixir", scopeName: "source.elixir", embedded: ["html"] }, { name: "elm", scopeName: "source.elm", embedded: ["glsl"] }, { name: "emacs-lisp", scopeName: "source.emacs.lisp", aliases: ["elisp"] }, { name: "erb", scopeName: "text.html.erb", embedded: ["html", "ruby"] }, { name: "erlang", scopeName: "source.erlang", aliases: ["erl"], embedded: ["markdown"] }, { name: "fennel", scopeName: "source.fnl" }, { name: "fish", scopeName: "source.fish" }, { name: "fluent", scopeName: "source.ftl", aliases: ["ftl"] }, { name: "fortran-fixed-form", scopeName: "source.fortran.fixed", aliases: ["f", "for", "f77"], embedded: ["fortran-free-form"] }, { name: "fortran-free-form", scopeName: "source.fortran.free", aliases: ["f90", "f95", "f03", "f08", "f18"] }, { name: "fsharp", scopeName: "source.fsharp", aliases: ["f#", "fs"], embedded: ["markdown"] }, { name: "gdresource", scopeName: "source.gdresource", embedded: ["gdshader", "gdscript"] }, { name: "gdscript", scopeName: "source.gdscript" }, { name: "gdshader", scopeName: "source.gdshader" }, { name: "genie", scopeName: "source.genie" }, { name: "gherkin", scopeName: "text.gherkin.feature" }, { name: "git-commit", scopeName: "text.git-commit", embedded: ["diff"] }, { name: "git-rebase", scopeName: "text.git-rebase", embedded: ["shellscript"] }, { name: "gleam", scopeName: "source.gleam" }, { name: "glimmer-js", scopeName: "source.gjs", aliases: ["gjs"], embedded: ["javascript", "typescript", "css", "html"] }, { name: "glimmer-ts", scopeName: "source.gts", aliases: ["gts"], embedded: ["typescript", "css", "javascript", "html"] }, { name: "glsl", scopeName: "source.glsl", embedded: ["c"] }, { name: "gnuplot", scopeName: "source.gnuplot" }, { name: "go", scopeName: "source.go" }, { name: "graphql", scopeName: "source.graphql", aliases: ["gql"], embedded: ["javascript", "typescript", "jsx", "tsx"] }, { name: "groovy", scopeName: "source.groovy" }, { name: "hack", scopeName: "source.hack", embedded: ["html", "sql"] }, { name: "haml", scopeName: "text.haml", embedded: ["ruby", "javascript", "sass", "coffee", "markdown", "css"] }, { name: "handlebars", scopeName: "text.html.handlebars", aliases: ["hbs"], embedded: ["html", "css", "javascript", "yaml"] }, { name: "haskell", scopeName: "source.haskell", aliases: ["hs"] }, { name: "haxe", scopeName: "source.hx" }, { name: "hcl", scopeName: "source.hcl" }, { name: "hjson", scopeName: "source.hjson" }, { name: "hlsl", scopeName: "source.hlsl" }, { name: "html", scopeName: "text.html.basic", embedded: ["json", "css", "javascript"] }, { name: "html-derivative", scopeName: "text.html.derivative", embedded: ["html"] }, { name: "http", scopeName: "source.http", embedded: ["shellscript", "json", "xml", "graphql"] }, { name: "hxml", scopeName: "source.hxml", embedded: ["haxe"] }, { name: "hy", scopeName: "source.hy" }, { name: "imba", scopeName: "source.imba" }, { name: "ini", scopeName: "source.ini", aliases: ["properties"] }, { name: "java", scopeName: "source.java" }, { name: "javascript", scopeName: "source.js", aliases: ["js", "mjs", "cjs"], embedded: ["html", "css"] }, { name: "jinja", scopeName: "source.jinja", embedded: ["jinja-html"] }, { name: "jison", scopeName: "source.jison", embedded: ["javascript"] }, { name: "json", scopeName: "source.json" }, { name: "json5", scopeName: "source.json5" }, { name: "jsonc", scopeName: "source.json.comments" }, { name: "jsonl", scopeName: "source.json.lines" }, { name: "jsonnet", scopeName: "source.jsonnet" }, { name: "jssm", scopeName: "source.jssm", aliases: ["fsl"] }, { name: "jsx", scopeName: "source.js.jsx", embedded: ["html", "css"] }, { name: "julia", scopeName: "source.julia", aliases: ["jl"], embedded: ["cpp", "python", "javascript", "r", "sql"] }, { name: "kotlin", scopeName: "source.kotlin", aliases: ["kt", "kts"] }, { name: "kusto", scopeName: "source.kusto", aliases: ["kql"] }, { name: "latex", scopeName: "text.tex.latex", embedded: ["tex", "shellscript", "css", "gnuplot", "haskell", "html", "java", "julia", "javascript", "lua", "python", "ruby", "rust", "typescript", "xml", "yaml", "scala"] }, { name: "lean", scopeName: "source.lean4", aliases: ["lean4"] }, { name: "less", scopeName: "source.css.less" }, { name: "liquid", scopeName: "text.html.liquid", embedded: ["html", "css", "json", "javascript"] }, { name: "llvm", scopeName: "source.llvm" }, { name: "log", scopeName: "text.log" }, { name: "logo", scopeName: "source.logo" }, { name: "lua", scopeName: "source.lua", embedded: ["c"] }, { name: "luau", scopeName: "source.luau" }, { name: "make", scopeName: "source.makefile", aliases: ["makefile"] }, { name: "markdown", scopeName: "text.html.markdown", aliases: ["md"], embedded: ["css", "html", "ini", "java", "lua", "make", "perl", "r", "ruby", "php", "sql", "vb", "xml", "xsl", "yaml", "bat", "clojure", "coffee", "c", "cpp", "diff", "docker", "git-commit", "git-rebase", "go", "groovy", "pug", "javascript", "json", "jsonc", "less", "objective-c", "swift", "scss", "raku", "powershell", "python", "julia", "regexp", "rust", "scala", "shellscript", "typescript", "tsx", "csharp", "fsharp", "dart", "handlebars", "log", "erlang", "elixir", "latex", "bibtex", "html-derivative"] }, { name: "marko", scopeName: "text.marko", embedded: ["css", "less", "scss", "typescript"] }, { name: "matlab", scopeName: "source.matlab" }, { name: "mdc", scopeName: "text.markdown.mdc.standalone", embedded: ["markdown", "yaml", "html-derivative"] }, { name: "mdx", scopeName: "source.mdx", embedded: ["tsx", "toml", "yaml", "c", "clojure", "coffee", "cpp", "csharp", "css", "diff", "docker", "elixir", "elm", "erlang", "go", "graphql", "haskell", "html", "ini", "java", "javascript", "json", "julia", "kotlin", "less", "lua", "make", "markdown", "objective-c", "perl", "python", "r", "ruby", "rust", "scala", "scss", "shellscript", "shellsession", "sql", "xml", "swift", "typescript"] }, { name: "mermaid", scopeName: "markdown.mermaid.codeblock", aliases: ["mmd"] }, { name: "mipsasm", scopeName: "source.mips", aliases: ["mips"] }, { name: "mojo", scopeName: "source.mojo" }, { name: "move", scopeName: "source.move" }, { name: "narrat", scopeName: "source.narrat", aliases: ["nar"] }, { name: "nextflow", scopeName: "source.nextflow", aliases: ["nf"] }, { name: "nginx", scopeName: "source.nginx", embedded: ["lua"] }, { name: "nim", scopeName: "source.nim", embedded: ["c", "html", "xml", "javascript", "css", "glsl", "markdown"] }, { name: "nix", scopeName: "source.nix" }, { name: "nushell", scopeName: "source.nushell", aliases: ["nu"] }, { name: "objective-c", scopeName: "source.objc", aliases: ["objc"] }, { name: "objective-cpp", scopeName: "source.objcpp" }, { name: "ocaml", scopeName: "source.ocaml" }, { name: "pascal", scopeName: "source.pascal" }, { name: "perl", scopeName: "source.perl", embedded: ["html", "xml", "css", "javascript", "sql"] }, { name: "php", scopeName: "source.php", embedded: ["html", "xml", "sql", "javascript", "json", "css"] }, { name: "plsql", scopeName: "source.plsql.oracle" }, { name: "po", scopeName: "source.po", aliases: ["pot", "potx"] }, { name: "polar", scopeName: "source.polar" }, { name: "postcss", scopeName: "source.css.postcss" }, { name: "powerquery", scopeName: "source.powerquery" }, { name: "powershell", scopeName: "source.powershell", aliases: ["ps", "ps1"] }, { name: "prisma", scopeName: "source.prisma" }, { name: "prolog", scopeName: "source.prolog" }, { name: "proto", scopeName: "source.proto", aliases: ["protobuf"] }, { name: "pug", scopeName: "text.pug", aliases: ["jade"], embedded: ["javascript", "css", "sass", "scss", "stylus", "coffee", "html"] }, { name: "puppet", scopeName: "source.puppet" }, { name: "purescript", scopeName: "source.purescript" }, { name: "python", scopeName: "source.python", aliases: ["py"] }, { name: "qml", scopeName: "source.qml", embedded: ["javascript"] }, { name: "qmldir", scopeName: "source.qmldir" }, { name: "qss", scopeName: "source.qss" }, { name: "r", scopeName: "source.r" }, { name: "racket", scopeName: "source.racket" }, { name: "raku", scopeName: "source.perl.6", aliases: ["perl6"] }, { name: "razor", scopeName: "text.aspnetcorerazor", embedded: ["html", "csharp"] }, { name: "reg", scopeName: "source.reg" }, { name: "regexp", scopeName: "source.regexp.python", aliases: ["regex"] }, { name: "rel", scopeName: "source.rel" }, { name: "riscv", scopeName: "source.riscv" }, { name: "rst", scopeName: "source.rst", embedded: ["html-derivative", "cpp", "python", "javascript", "shellscript", "yaml", "cmake", "ruby"] }, { name: "ruby", scopeName: "source.ruby", aliases: ["rb"], embedded: ["html", "haml", "xml", "sql", "graphql", "css", "cpp", "c", "javascript", "shellscript", "lua", "yaml"] }, { name: "rust", scopeName: "source.rust", aliases: ["rs"] }, { name: "sas", scopeName: "source.sas", embedded: ["sql"] }, { name: "sass", scopeName: "source.sass" }, { name: "scala", scopeName: "source.scala" }, { name: "scheme", scopeName: "source.scheme" }, { name: "scss", scopeName: "source.css.scss", embedded: ["css"] }, { name: "sdbl", scopeName: "source.sdbl", aliases: ["1c-query"] }, { name: "shaderlab", scopeName: "source.shaderlab", aliases: ["shader"], embedded: ["hlsl"] }, { name: "shellscript", scopeName: "source.shell", aliases: ["bash", "sh", "shell", "zsh"] }, { name: "shellsession", scopeName: "text.shell-session", aliases: ["console"], embedded: ["shellscript"] }, { name: "smalltalk", scopeName: "source.smalltalk" }, { name: "solidity", scopeName: "source.solidity" }, { name: "soy", scopeName: "text.html.soy", aliases: ["closure-templates"], embedded: ["html"] }, { name: "sparql", scopeName: "source.sparql", embedded: ["turtle"] }, { name: "splunk", scopeName: "source.splunk_search", aliases: ["spl"] }, { name: "sql", scopeName: "source.sql" }, { name: "ssh-config", scopeName: "source.ssh-config" }, { name: "stata", scopeName: "source.stata", embedded: ["sql"] }, { name: "stylus", scopeName: "source.stylus", aliases: ["styl"] }, { name: "svelte", scopeName: "source.svelte", embedded: ["javascript", "typescript", "coffee", "stylus", "sass", "css", "scss", "less", "postcss", "pug", "markdown"] }, { name: "swift", scopeName: "source.swift" }, { name: "system-verilog", scopeName: "source.systemverilog" }, { name: "systemd", scopeName: "source.systemd" }, { name: "talonscript", scopeName: "source.talon", aliases: ["talon"] }, { name: "tasl", scopeName: "source.tasl" }, { name: "tcl", scopeName: "source.tcl" }, { name: "templ", scopeName: "source.templ", embedded: ["go", "javascript", "css"] }, { name: "terraform", scopeName: "source.hcl.terraform", aliases: ["tf", "tfvars"] }, { name: "tex", scopeName: "text.tex", embedded: ["r"] }, { name: "toml", scopeName: "source.toml" }, { name: "ts-tags", scopeName: "source.ts.tags", aliases: ["lit"], embedded: ["typescript", "es-tag-css", "es-tag-glsl", "es-tag-html", "es-tag-sql", "es-tag-xml"] }, { name: "tsv", scopeName: "text.tsv" }, { name: "tsx", scopeName: "source.tsx", embedded: ["html", "css"] }, { name: "turtle", scopeName: "source.turtle" }, { name: "twig", scopeName: "text.html.twig", embedded: ["css", "javascript", "scss", "php", "python", "ruby"] }, { name: "typescript", scopeName: "source.ts", aliases: ["ts", "mts", "cts"], embedded: ["html", "css"] }, { name: "typespec", scopeName: "source.tsp", aliases: ["tsp"] }, { name: "typst", scopeName: "source.typst", aliases: ["typ"] }, { name: "v", scopeName: "source.v" }, { name: "vala", scopeName: "source.vala" }, { name: "vb", scopeName: "source.asp.vb.net", aliases: ["cmd"] }, { name: "verilog", scopeName: "source.verilog" }, { name: "vhdl", scopeName: "source.vhdl" }, { name: "viml", scopeName: "source.viml", aliases: ["vim", "vimscript"] }, { name: "vue", scopeName: "source.vue", embedded: ["markdown", "pug", "stylus", "sass", "css", "scss", "less", "javascript", "typescript", "jsx", "tsx", "coffee", "json", "jsonc", "json5", "yaml", "toml", "graphql", "html-derivative", "html", "markdown-vue", "vue-directives", "vue-interpolations", "vue-sfc-style-variable-injection"] }, { name: "vue-html", scopeName: "text.html.vue-html", embedded: ["vue", "javascript"] }, { name: "vue-vine", scopeName: "source.vue-vine", embedded: ["css", "scss", "less", "stylus", "postcss", "vue", "javascript"] }, { name: "vyper", scopeName: "source.vyper", aliases: ["vy"] }, { name: "wasm", scopeName: "source.wat" }, { name: "wenyan", scopeName: "source.wenyan", aliases: ["\u6587\u8A00"] }, { name: "wgsl", scopeName: "source.wgsl" }, { name: "wikitext", scopeName: "source.wikitext", aliases: ["mediawiki", "wiki"], embedded: ["html", "css", "ini", "java", "lua", "make", "perl", "r", "ruby", "php", "sql", "vb", "xml", "xsl", "yaml", "bat", "clojure", "coffee", "c", "cpp", "diff", "docker", "go", "groovy", "pug", "javascript", "jsonc", "less", "objective-c", "swift", "scss", "raku", "powershell", "python", "julia", "rust", "scala", "shellscript", "typescript", "csharp", "fsharp", "dart", "handlebars", "markdown", "erlang", "elixir", "latex", "bibtex", "json"] }, { name: "wit", scopeName: "source.wit" }, { name: "wolfram", scopeName: "source.wolfram", aliases: ["wl"] }, { name: "xml", scopeName: "text.xml", embedded: ["java"] }, { name: "xsl", scopeName: "text.xml.xsl", embedded: ["xml"] }, { name: "yaml", scopeName: "source.yaml", aliases: ["yml"] }, { name: "zenscript", scopeName: "source.zenscript" }, { name: "zig", scopeName: "source.zig" }];
|
|
9
9
|
|
|
10
|
-
// <define:
|
|
11
|
-
var
|
|
10
|
+
// <define:SHIKI_THEMES>
|
|
11
|
+
var define_SHIKI_THEMES_default = ["andromeeda", "aurora-x", "ayu-dark", "catppuccin-frappe", "catppuccin-latte", "catppuccin-macchiato", "catppuccin-mocha", "dark-plus", "dracula", "dracula-soft", "everforest-dark", "everforest-light", "github-dark", "github-dark-default", "github-dark-dimmed", "github-dark-high-contrast", "github-light", "github-light-default", "github-light-high-contrast", "gruvbox-dark-hard", "gruvbox-dark-medium", "gruvbox-dark-soft", "gruvbox-light-hard", "gruvbox-light-medium", "gruvbox-light-soft", "houston", "kanagawa-dragon", "kanagawa-lotus", "kanagawa-wave", "laserwave", "light-plus", "material-theme", "material-theme-darker", "material-theme-lighter", "material-theme-ocean", "material-theme-palenight", "min-dark", "min-light", "monokai", "night-owl", "nord", "one-dark-pro", "one-light", "plastic", "poimandres", "red", "rose-pine", "rose-pine-dawn", "rose-pine-moon", "slack-dark", "slack-ochin", "snazzy-light", "solarized-dark", "solarized-light", "synthwave-84", "tokyo-night", "vesper", "vitesse-black", "vitesse-dark", "vitesse-light"];
|
|
12
12
|
|
|
13
13
|
// node_modules/.pnpm/@shikijs+types@3.11.0/node_modules/@shikijs/types/dist/index.mjs
|
|
14
14
|
var ShikiError = class extends Error {
|
|
@@ -5627,9 +5627,9 @@ var GrammarState = class _GrammarState {
|
|
|
5627
5627
|
/**
|
|
5628
5628
|
* Static method to create a initial grammar state.
|
|
5629
5629
|
*/
|
|
5630
|
-
static initial(lang,
|
|
5630
|
+
static initial(lang, themes2) {
|
|
5631
5631
|
return new _GrammarState(
|
|
5632
|
-
Object.fromEntries(toArray(
|
|
5632
|
+
Object.fromEntries(toArray(themes2).map((theme) => [theme, INITIAL])),
|
|
5633
5633
|
lang
|
|
5634
5634
|
);
|
|
5635
5635
|
}
|
|
@@ -6425,8 +6425,8 @@ function explainThemeScope(themeSettingsSelectors, scope, parentScopes) {
|
|
|
6425
6425
|
return result;
|
|
6426
6426
|
}
|
|
6427
6427
|
function codeToTokensWithThemes(internal, code, options) {
|
|
6428
|
-
const
|
|
6429
|
-
const themedTokens =
|
|
6428
|
+
const themes2 = Object.entries(options.themes).filter((i) => i[1]).map((i) => ({ color: i[0], theme: i[1] }));
|
|
6429
|
+
const themedTokens = themes2.map((t) => {
|
|
6430
6430
|
const tokens2 = codeToTokensBase(internal, code, {
|
|
6431
6431
|
...options,
|
|
6432
6432
|
theme: t.theme
|
|
@@ -6459,7 +6459,7 @@ function codeToTokensWithThemes(internal, code, options) {
|
|
|
6459
6459
|
offset: ___,
|
|
6460
6460
|
...styles
|
|
6461
6461
|
} = t[lineIdx][tokenIdx];
|
|
6462
|
-
mergedToken.variants[
|
|
6462
|
+
mergedToken.variants[themes2[themeIdx].color] = styles;
|
|
6463
6463
|
});
|
|
6464
6464
|
return mergedToken;
|
|
6465
6465
|
})
|
|
@@ -6472,11 +6472,11 @@ function codeToTokensWithThemes(internal, code, options) {
|
|
|
6472
6472
|
setLastGrammarStateToMap(mergedTokens, mergedGrammarState);
|
|
6473
6473
|
return mergedTokens;
|
|
6474
6474
|
}
|
|
6475
|
-
function syncThemesTokenization(...
|
|
6476
|
-
const outThemes =
|
|
6477
|
-
const count =
|
|
6478
|
-
for (let i = 0; i <
|
|
6479
|
-
const lines =
|
|
6475
|
+
function syncThemesTokenization(...themes2) {
|
|
6476
|
+
const outThemes = themes2.map(() => []);
|
|
6477
|
+
const count = themes2.length;
|
|
6478
|
+
for (let i = 0; i < themes2[0].length; i++) {
|
|
6479
|
+
const lines = themes2.map((t) => t[i]);
|
|
6480
6480
|
const outLines = outThemes.map(() => []);
|
|
6481
6481
|
outThemes.forEach((t, i2) => t.push(outLines[i2]));
|
|
6482
6482
|
const indexes = lines.map(() => 0);
|
|
@@ -6518,8 +6518,8 @@ function codeToTokens(internal, code, options) {
|
|
|
6518
6518
|
cssVariablePrefix = "--shiki-",
|
|
6519
6519
|
colorsRendering = "css-vars"
|
|
6520
6520
|
} = options;
|
|
6521
|
-
const
|
|
6522
|
-
if (
|
|
6521
|
+
const themes2 = Object.entries(options.themes).filter((i) => i[1]).map((i) => ({ color: i[0], theme: i[1] })).sort((a, b) => a.color === defaultColor ? -1 : b.color === defaultColor ? 1 : 0);
|
|
6522
|
+
if (themes2.length === 0)
|
|
6523
6523
|
throw new ShikiError("`themes` option must not be empty");
|
|
6524
6524
|
const themeTokens = codeToTokensWithThemes(
|
|
6525
6525
|
internal,
|
|
@@ -6527,16 +6527,16 @@ function codeToTokens(internal, code, options) {
|
|
|
6527
6527
|
options
|
|
6528
6528
|
);
|
|
6529
6529
|
grammarState = getLastGrammarStateFromMap(themeTokens);
|
|
6530
|
-
if (defaultColor && DEFAULT_COLOR_LIGHT_DARK !== defaultColor && !
|
|
6530
|
+
if (defaultColor && DEFAULT_COLOR_LIGHT_DARK !== defaultColor && !themes2.find((t) => t.color === defaultColor))
|
|
6531
6531
|
throw new ShikiError(`\`themes\` option must contain the defaultColor key \`${defaultColor}\``);
|
|
6532
|
-
const themeRegs =
|
|
6533
|
-
const themesOrder =
|
|
6532
|
+
const themeRegs = themes2.map((t) => internal.getTheme(t.theme));
|
|
6533
|
+
const themesOrder = themes2.map((t) => t.color);
|
|
6534
6534
|
tokens = themeTokens.map((line) => line.map((token) => flatTokenVariants(token, themesOrder, cssVariablePrefix, defaultColor, colorsRendering)));
|
|
6535
6535
|
if (grammarState)
|
|
6536
6536
|
setLastGrammarStateToMap(tokens, grammarState);
|
|
6537
|
-
const themeColorReplacements =
|
|
6538
|
-
fg = mapThemeColors(
|
|
6539
|
-
bg = mapThemeColors(
|
|
6537
|
+
const themeColorReplacements = themes2.map((t) => resolveColorReplacements(t.theme, options));
|
|
6538
|
+
fg = mapThemeColors(themes2, themeRegs, themeColorReplacements, cssVariablePrefix, defaultColor, "fg", colorsRendering);
|
|
6539
|
+
bg = mapThemeColors(themes2, themeRegs, themeColorReplacements, cssVariablePrefix, defaultColor, "bg", colorsRendering);
|
|
6540
6540
|
themeName = `shiki-themes ${themeRegs.map((t) => t.name).join(" ")}`;
|
|
6541
6541
|
rootStyle = defaultColor ? void 0 : [fg, bg].join(";");
|
|
6542
6542
|
} else if ("theme" in options) {
|
|
@@ -6563,14 +6563,14 @@ function codeToTokens(internal, code, options) {
|
|
|
6563
6563
|
grammarState
|
|
6564
6564
|
};
|
|
6565
6565
|
}
|
|
6566
|
-
function mapThemeColors(
|
|
6567
|
-
return
|
|
6566
|
+
function mapThemeColors(themes2, themeRegs, themeColorReplacements, cssVariablePrefix, defaultColor, property, colorsRendering) {
|
|
6567
|
+
return themes2.map((t, idx) => {
|
|
6568
6568
|
const value = applyColorReplacements(themeRegs[idx][property], themeColorReplacements[idx]) || "inherit";
|
|
6569
6569
|
const cssVar = `${cssVariablePrefix + t.color}${property === "bg" ? "-bg" : ""}:${value}`;
|
|
6570
6570
|
if (idx === 0 && defaultColor) {
|
|
6571
|
-
if (defaultColor === DEFAULT_COLOR_LIGHT_DARK &&
|
|
6572
|
-
const lightIndex =
|
|
6573
|
-
const darkIndex =
|
|
6571
|
+
if (defaultColor === DEFAULT_COLOR_LIGHT_DARK && themes2.length > 1) {
|
|
6572
|
+
const lightIndex = themes2.findIndex((t2) => t2.color === "light");
|
|
6573
|
+
const darkIndex = themes2.findIndex((t2) => t2.color === "dark");
|
|
6574
6574
|
if (lightIndex === -1 || darkIndex === -1)
|
|
6575
6575
|
throw new ShikiError('When using `defaultColor: "light-dark()"`, you must provide both `light` and `dark` themes');
|
|
6576
6576
|
const lightValue = applyColorReplacements(themeRegs[lightIndex][property], themeColorReplacements[lightIndex]) || "inherit";
|
|
@@ -6955,9 +6955,9 @@ async function resolveLangs(langs) {
|
|
|
6955
6955
|
langs.filter((l) => !isSpecialLang(l)).map(async (lang) => await normalizeGetter(lang).then((r) => Array.isArray(r) ? r : [r]))
|
|
6956
6956
|
)).flat()));
|
|
6957
6957
|
}
|
|
6958
|
-
async function resolveThemes(
|
|
6958
|
+
async function resolveThemes(themes2) {
|
|
6959
6959
|
const resolved = await Promise.all(
|
|
6960
|
-
|
|
6960
|
+
themes2.map(
|
|
6961
6961
|
async (theme) => isSpecialTheme(theme) ? null : normalizeTheme(await normalizeGetter(theme))
|
|
6962
6962
|
)
|
|
6963
6963
|
);
|
|
@@ -7169,9 +7169,9 @@ function createShikiInternalSync(options) {
|
|
|
7169
7169
|
if (!options.engine)
|
|
7170
7170
|
throw new ShikiError2("`engine` option is required for synchronous mode");
|
|
7171
7171
|
const langs = (options.langs || []).flat(1);
|
|
7172
|
-
const
|
|
7172
|
+
const themes2 = (options.themes || []).flat(1).map(normalizeTheme);
|
|
7173
7173
|
const resolver = new Resolver(options.engine, langs);
|
|
7174
|
-
const _registry = new Registry2(resolver,
|
|
7174
|
+
const _registry = new Registry2(resolver, themes2, langs, options.langAlias);
|
|
7175
7175
|
let _lastTheme;
|
|
7176
7176
|
function getLanguage(name) {
|
|
7177
7177
|
ensureNotDisposed();
|
|
@@ -7217,15 +7217,15 @@ function createShikiInternalSync(options) {
|
|
|
7217
7217
|
async function loadLanguage(...langs2) {
|
|
7218
7218
|
return loadLanguageSync(await resolveLangs(langs2));
|
|
7219
7219
|
}
|
|
7220
|
-
function loadThemeSync(...
|
|
7220
|
+
function loadThemeSync(...themes22) {
|
|
7221
7221
|
ensureNotDisposed();
|
|
7222
|
-
for (const theme of
|
|
7222
|
+
for (const theme of themes22.flat(1)) {
|
|
7223
7223
|
_registry.loadTheme(theme);
|
|
7224
7224
|
}
|
|
7225
7225
|
}
|
|
7226
|
-
async function loadTheme(...
|
|
7226
|
+
async function loadTheme(...themes22) {
|
|
7227
7227
|
ensureNotDisposed();
|
|
7228
|
-
return loadThemeSync(await resolveThemes(
|
|
7228
|
+
return loadThemeSync(await resolveThemes(themes22));
|
|
7229
7229
|
}
|
|
7230
7230
|
function ensureNotDisposed() {
|
|
7231
7231
|
if (isDisposed)
|
|
@@ -7257,7 +7257,7 @@ async function createShikiInternal(options) {
|
|
|
7257
7257
|
warnDeprecated("`engine` option is required. Use `createOnigurumaEngine` or `createJavaScriptRegexEngine` to create an engine.");
|
|
7258
7258
|
}
|
|
7259
7259
|
const [
|
|
7260
|
-
|
|
7260
|
+
themes2,
|
|
7261
7261
|
langs,
|
|
7262
7262
|
engine
|
|
7263
7263
|
] = await Promise.all([
|
|
@@ -7267,7 +7267,7 @@ async function createShikiInternal(options) {
|
|
|
7267
7267
|
]);
|
|
7268
7268
|
return createShikiInternalSync({
|
|
7269
7269
|
...options,
|
|
7270
|
-
themes,
|
|
7270
|
+
themes: themes2,
|
|
7271
7271
|
langs,
|
|
7272
7272
|
engine
|
|
7273
7273
|
});
|
|
@@ -8057,8 +8057,9 @@ function normalizeColor(bg, fg) {
|
|
|
8057
8057
|
}
|
|
8058
8058
|
|
|
8059
8059
|
// src/shiki.ts
|
|
8060
|
-
var
|
|
8061
|
-
var
|
|
8060
|
+
var grammars = define_SHIKI_GRAMMARS_default;
|
|
8061
|
+
var themes = /* @__PURE__ */ new Map();
|
|
8062
|
+
var shikiThemeIds = new Set(define_SHIKI_THEMES_default);
|
|
8062
8063
|
async function initShiki({
|
|
8063
8064
|
theme = "vitesse-dark",
|
|
8064
8065
|
langs: languages,
|
|
@@ -8066,13 +8067,13 @@ async function initShiki({
|
|
|
8066
8067
|
engine = createOnigurumaEngine(getDefaultWasmLoader())
|
|
8067
8068
|
} = {}) {
|
|
8068
8069
|
const langs = [];
|
|
8069
|
-
const
|
|
8070
|
+
const themes2 = [];
|
|
8070
8071
|
if (languages?.length) {
|
|
8071
8072
|
const set = /* @__PURE__ */ new Set();
|
|
8072
8073
|
languages.forEach((l) => {
|
|
8073
8074
|
if (typeof l === "string" || l instanceof URL) {
|
|
8074
8075
|
if (!set.has(l.toString())) {
|
|
8075
|
-
const g =
|
|
8076
|
+
const g = grammars.find((g2) => g2.name === l);
|
|
8076
8077
|
if (g?.embedded) {
|
|
8077
8078
|
langs.push(...g.embedded.map((id) => loadTMGrammar(id, tmDownloadCDN)));
|
|
8078
8079
|
}
|
|
@@ -8085,11 +8086,11 @@ async function initShiki({
|
|
|
8085
8086
|
});
|
|
8086
8087
|
}
|
|
8087
8088
|
if (typeof theme === "string" || theme instanceof URL) {
|
|
8088
|
-
|
|
8089
|
+
themes2.push(await loadTMTheme(theme, tmDownloadCDN));
|
|
8089
8090
|
} else if (isPlainObject(theme) || typeof theme === "function") {
|
|
8090
|
-
|
|
8091
|
+
themes2.push(theme);
|
|
8091
8092
|
}
|
|
8092
|
-
const highlighterCore = await createHighlighterCore({ langs, themes, engine });
|
|
8093
|
+
const highlighterCore = await createHighlighterCore({ langs, themes: themes2, engine });
|
|
8093
8094
|
Object.assign(highlighterCore, {
|
|
8094
8095
|
loadThemeFromCDN: (themeName) => highlighterCore.loadTheme(loadTMTheme(themeName, tmDownloadCDN)),
|
|
8095
8096
|
loadGrammarFromCDN: (...ids) => highlighterCore.loadLanguage(...ids.map((id) => loadTMGrammar(id, tmDownloadCDN)))
|
|
@@ -8097,23 +8098,22 @@ async function initShiki({
|
|
|
8097
8098
|
return highlighterCore;
|
|
8098
8099
|
}
|
|
8099
8100
|
function loadTMTheme(src, cdn = "https://esm.sh") {
|
|
8101
|
+
if (typeof src === "string" && themes.has(src)) {
|
|
8102
|
+
return themes.get(src);
|
|
8103
|
+
}
|
|
8100
8104
|
if (typeof src === "string" && /^[a-zA-Z]/.test(src)) {
|
|
8101
8105
|
src = src.replace(/\s+/g, "-").replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
|
|
8102
|
-
|
|
8103
|
-
|
|
8104
|
-
|
|
8105
|
-
|
|
8106
|
-
return theme;
|
|
8106
|
+
if (!shikiThemeIds.has(src)) {
|
|
8107
|
+
throw new Error(
|
|
8108
|
+
`Invalid theme ID: ${src}, please ensure the theme ID is one of the following: ${Array.from(shikiThemeIds.keys()).join(", ")}`
|
|
8109
|
+
);
|
|
8107
8110
|
}
|
|
8111
|
+
}
|
|
8112
|
+
if (typeof src === "string" && shikiThemeIds.has(src)) {
|
|
8108
8113
|
const url2 = new URL(`/tm-themes@${version2}/themes/${src}.json`, cdn);
|
|
8109
|
-
return cache.fetch(url2).then(
|
|
8110
|
-
(res) => res.json().then((theme2) => {
|
|
8111
|
-
tmThemes.set(src, theme2);
|
|
8112
|
-
return theme2;
|
|
8113
|
-
})
|
|
8114
|
-
);
|
|
8114
|
+
return cache.fetch(url2).then((res) => res.json());
|
|
8115
8115
|
}
|
|
8116
|
-
const url = typeof src === "string" ? new URL(src) : src;
|
|
8116
|
+
const url = typeof src === "string" ? new URL(src, globalThis.location?.href) : src;
|
|
8117
8117
|
if (url.protocol === "http" || url.protocol === "https") {
|
|
8118
8118
|
return cache.fetch(url).then((res) => res.json());
|
|
8119
8119
|
}
|
|
@@ -8121,13 +8121,13 @@ function loadTMTheme(src, cdn = "https://esm.sh") {
|
|
|
8121
8121
|
}
|
|
8122
8122
|
function loadTMGrammar(src, cdn = "https://esm.sh") {
|
|
8123
8123
|
if (typeof src === "string") {
|
|
8124
|
-
const g =
|
|
8124
|
+
const g = grammars.find((g2) => g2.name === src);
|
|
8125
8125
|
if (g) {
|
|
8126
8126
|
const url2 = new URL(`/tm-grammars@${version}/grammars/${g.name}.json`, cdn);
|
|
8127
8127
|
return cache.fetch(url2).then((res) => res.json());
|
|
8128
8128
|
}
|
|
8129
8129
|
}
|
|
8130
|
-
const url = typeof src === "string" ? new URL(src) : src;
|
|
8130
|
+
const url = typeof src === "string" ? new URL(src, globalThis.location?.href) : src;
|
|
8131
8131
|
if (url.protocol === "http" || url.protocol === "https") {
|
|
8132
8132
|
return cache.fetch(url).then((res) => res.json());
|
|
8133
8133
|
}
|
|
@@ -8137,14 +8137,14 @@ function getGarmmarInfoFromPath(path) {
|
|
|
8137
8137
|
const idx = path.lastIndexOf(".");
|
|
8138
8138
|
if (idx > 0) {
|
|
8139
8139
|
const ext = path.slice(idx + 1);
|
|
8140
|
-
return
|
|
8140
|
+
return grammars.find((g) => g.name === ext || g.aliases?.includes(ext));
|
|
8141
8141
|
}
|
|
8142
8142
|
}
|
|
8143
8143
|
function getLanguageIdFromPath(path) {
|
|
8144
8144
|
return getGarmmarInfoFromPath(path)?.name;
|
|
8145
8145
|
}
|
|
8146
8146
|
function getExtnameFromLanguageId(language) {
|
|
8147
|
-
const g =
|
|
8147
|
+
const g = grammars.find((g2) => g2.name === language);
|
|
8148
8148
|
if (g) {
|
|
8149
8149
|
return g.aliases?.[0] ?? g.name;
|
|
8150
8150
|
}
|
|
@@ -8154,13 +8154,13 @@ export {
|
|
|
8154
8154
|
getExtnameFromLanguageId,
|
|
8155
8155
|
getGarmmarInfoFromPath,
|
|
8156
8156
|
getLanguageIdFromPath,
|
|
8157
|
+
grammars,
|
|
8157
8158
|
initShiki,
|
|
8158
8159
|
initShikiMonacoTokenizer,
|
|
8159
8160
|
registerShikiMonacoTokenizer,
|
|
8160
8161
|
render,
|
|
8161
8162
|
setDefaultWasmLoader,
|
|
8162
8163
|
textmateThemeToMonacoTheme,
|
|
8163
|
-
|
|
8164
|
-
tmThemes
|
|
8164
|
+
themes
|
|
8165
8165
|
};
|
|
8166
8166
|
/*! based on https://github.com/shikijs/shiki/blob/main/packages/monaco/src/index.ts */
|