UNPKG

prism-code-editor

Version:

Lightweight, extensible code editor component for the web using Prism

50 lines (49 loc) 1.58 kB
import { l as s, P as n, i as a } from "../prismCore-5c7f03d0.js"; import "./javascript.js"; import "./clike.js"; var e = s.ts = s.typescript = s.extend("js", { "class-name": { pattern: /(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/, lookbehind: !0, greedy: !0 }, builtin: /\b(?:Array|Function|Promise|any|boolean|never|number|string|symbol|unknown)\b/ }); e.keyword.push( /\b(?:abstract|declare|is|keyof|readonly|require)\b/, // keywords that have to be followed by an identifier /\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/, // This is for `import type *, {}` /\btype\b(?=\s*(?:[\{*]|$))/ ); delete e.parameter; delete e["literal-property"]; var t = n.util.clone(e); delete t["class-name"]; e["class-name"].inside = t; a("typescript", "function", { decorator: { pattern: /@[$\w\xA0-\uFFFF]+/, inside: { at: { pattern: /^@/, alias: "operator" }, function: /^[\s\S]+/ } }, "generic-function": { // e.g. foo<T extends "bar" | "baz">( ... pattern: /#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/, greedy: !0, inside: { function: /^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/, generic: { pattern: /<[\s\S]+/, // everything after the first < alias: "class-name", inside: t } } } });