UNPKG

prism-code-editor

Version:

Lightweight, extensible code editor component for the web using Prism

58 lines (57 loc) 1.94 kB
import { l as languages, r as rest, t as tokenize } from "../../index-bkac8M6P.js"; import { e as embeddedIn } from "../../templating-yZpuvMTN.js"; import "./javascript.js"; var js = languages.js; var templateString = js["template-string"]; var templateLiteralPattern = templateString.pattern.source; var interpolationPattern = templateString.inside.interpolation.pattern; var createTemplate = (language, tag) => ({ pattern: RegExp("((?:" + tag + ")\\s*)" + templateLiteralPattern, "g"), lookbehind: true, greedy: true, inside: { "template-punctuation": { pattern: /^`|`$/, alias: "string" }, ["language-" + language]: { pattern: /[^]+/, inside: { "interpolation": { pattern: interpolationPattern, lookbehind: true, alias: "language-javascript", inside: { "interpolation-punctuation": { pattern: /^\$\{|\}$/, alias: "punctuation" }, [rest]: "js" } }, [tokenize]: embeddedIn(language) } } } }); js["template-string"] = [ // styled-jsx: // css`a { color: #25F; }` // styled-components: // styled.h1`color: red;` createTemplate("css", "\\b(?:styled(?:\\([^)]*\\))?(?:\\s*\\.\\s*\\w+(?:\\([^)]*\\))*)*|css(?:\\s*\\.\\s*(?:global|resolve))?|createGlobalStyle|keyframes)"), // html`<p></p>` // div.innerHTML = `<p></p>` createTemplate("html", "\\bhtml|\\.\\s*(?:inner|outer)HTML\\s*\\+?="), // svg`<path fill="#fff" d="M55.37 ..."/>` createTemplate("svg", "\\bsvg"), // md`# h1`, markdown`## h2` createTemplate("markdown", "\\b(?:markdown|md)"), // gql`...`, graphql`...`, graphql.experimental`...` createTemplate("graphql", "\\b(?:gql|graphql(?:\\s*\\.\\s*experimental)?)"), // sql`...` createTemplate("sql", "\\bsql"), // vanilla template string templateString ]; //# sourceMappingURL=js-templates.js.map