adf0d17497
publish / version_or_publish (push) Waiting to run
storybook-build / changes (push) Waiting to run
storybook-build / :storybook-build (push) Blocked by required conditions
Sync Gradio Skills to Hugging Face / sync-skills (push) Waiting to run
functional / changes (push) Waiting to run
functional / build-frontend (push) Blocked by required conditions
functional / functional-test-SSR=false (push) Blocked by required conditions
functional / functional-reload (push) Blocked by required conditions
functional / functional-test-SSR=true (push) Blocked by required conditions
hygiene / hygiene-test (push) Waiting to run
python / changes (push) Waiting to run
python / build (push) Blocked by required conditions
python / test-ubuntu-latest-flaky (push) Blocked by required conditions
python / test-ubuntu-latest-not-flaky (push) Blocked by required conditions
python / test-windows-latest-flaky (push) Blocked by required conditions
python / test-windows-latest-not-flaky (push) Blocked by required conditions
js / changes (push) Waiting to run
js / js-test (push) Blocked by required conditions
docs-build / changes (push) Waiting to run
docs-build / docs-build (push) Blocked by required conditions
docs-build / website-build (push) Blocked by required conditions
103 lines
2.6 KiB
TypeScript
103 lines
2.6 KiB
TypeScript
import type { Extension } from "@codemirror/state";
|
|
import { StreamLanguage } from "@codemirror/language";
|
|
import { _ } from "svelte-i18n";
|
|
|
|
const sql_dialects = [
|
|
"standardSQL",
|
|
"msSQL",
|
|
"mySQL",
|
|
"mariaDB",
|
|
"sqlite",
|
|
"cassandra",
|
|
"plSQL",
|
|
"hive",
|
|
"pgSQL",
|
|
"gql",
|
|
"gpSQL",
|
|
"sparkSQL",
|
|
"esper"
|
|
] as const;
|
|
|
|
const lang_map: Record<string, (() => Promise<Extension>) | undefined> = {
|
|
python: () => import("@codemirror/lang-python").then((m) => m.python()),
|
|
c: () =>
|
|
import("@codemirror/legacy-modes/mode/clike").then((m) =>
|
|
StreamLanguage.define(m.c)
|
|
),
|
|
cpp: () =>
|
|
import("@codemirror/legacy-modes/mode/clike").then((m) =>
|
|
StreamLanguage.define(m.cpp)
|
|
),
|
|
markdown: async () => {
|
|
const [md, frontmatter] = await Promise.all([
|
|
import("@codemirror/lang-markdown"),
|
|
import("./frontmatter")
|
|
]);
|
|
return md.markdown({ extensions: [frontmatter.frontmatter] });
|
|
},
|
|
latex: () =>
|
|
import("@codemirror/legacy-modes/mode/stex").then((m) =>
|
|
StreamLanguage.define(m.stex)
|
|
),
|
|
json: () => import("@codemirror/lang-json").then((m) => m.json()),
|
|
html: () => import("@codemirror/lang-html").then((m) => m.html()),
|
|
css: () => import("@codemirror/lang-css").then((m) => m.css()),
|
|
javascript: () =>
|
|
import("@codemirror/lang-javascript").then((m) => m.javascript()),
|
|
jinja2: () =>
|
|
import("@codemirror/legacy-modes/mode/jinja2").then((m) =>
|
|
StreamLanguage.define(m.jinja2)
|
|
),
|
|
typescript: () =>
|
|
import("@codemirror/lang-javascript").then((m) =>
|
|
m.javascript({ typescript: true })
|
|
),
|
|
yaml: () =>
|
|
import("@codemirror/legacy-modes/mode/yaml").then((m) =>
|
|
StreamLanguage.define(m.yaml)
|
|
),
|
|
dockerfile: () =>
|
|
import("@codemirror/legacy-modes/mode/dockerfile").then((m) =>
|
|
StreamLanguage.define(m.dockerFile)
|
|
),
|
|
shell: () =>
|
|
import("@codemirror/legacy-modes/mode/shell").then((m) =>
|
|
StreamLanguage.define(m.shell)
|
|
),
|
|
r: () =>
|
|
import("@codemirror/legacy-modes/mode/r").then((m) =>
|
|
StreamLanguage.define(m.r)
|
|
),
|
|
sql: () =>
|
|
import("@codemirror/legacy-modes/mode/sql").then((m) =>
|
|
StreamLanguage.define(m.standardSQL)
|
|
),
|
|
...Object.fromEntries(
|
|
sql_dialects.map((dialect) => [
|
|
"sql-" + dialect,
|
|
() =>
|
|
import("@codemirror/legacy-modes/mode/sql").then((m) =>
|
|
StreamLanguage.define(m[dialect])
|
|
)
|
|
])
|
|
)
|
|
} as const;
|
|
|
|
const alias_map: Record<string, string> = {
|
|
py: "python",
|
|
md: "markdown",
|
|
js: "javascript",
|
|
ts: "typescript",
|
|
sh: "shell"
|
|
};
|
|
|
|
export async function getLanguageExtension(
|
|
lang: string
|
|
): Promise<Extension | undefined> {
|
|
const _lang = lang_map[lang] || lang_map[alias_map[lang]] || undefined;
|
|
if (_lang) {
|
|
return _lang();
|
|
}
|
|
return undefined;
|
|
}
|