@@ -21579,6 +21579,49 @@ Prism.languages.js = Prism.languages.javascript;
2157921579
2158021580}(Prism));
2158121581
21582+ (function (Prism) {
21583+
21584+ Prism.languages.typescript = Prism.languages.extend('javascript', {
21585+ 'class-name': {
21586+ pattern: /(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,
21587+ lookbehind: true,
21588+ greedy: true,
21589+ inside: null // see below
21590+ },
21591+ // From JavaScript Prism keyword list and TypeScript language spec: https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md#221-reserved-words
21592+ 'keyword': /\b(?:abstract|as|asserts|async|await|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|is|keyof|let|module|namespace|new|null|of|package|private|protected|public|readonly|return|require|set|static|super|switch|this|throw|try|type|typeof|undefined|var|void|while|with|yield)\b/,
21593+ 'builtin': /\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\b/,
21594+ });
21595+
21596+ // doesn't work with TS because TS is too complex
21597+ delete Prism.languages.typescript['parameter'];
21598+
21599+ // a version of typescript specifically for highlighting types
21600+ var typeInside = Prism.languages.extend('typescript', {});
21601+ delete typeInside['class-name'];
21602+
21603+ Prism.languages.typescript['class-name'].inside = typeInside;
21604+
21605+ Prism.languages.insertBefore('typescript', 'function', {
21606+ 'generic-function': {
21607+ // e.g. foo<T extends "bar" | "baz">( ...
21608+ pattern: /#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,
21609+ greedy: true,
21610+ inside: {
21611+ 'function': /^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,
21612+ 'generic': {
21613+ pattern: /<[\s\S]+/, // everything after the first <
21614+ alias: 'class-name',
21615+ inside: typeInside
21616+ }
21617+ }
21618+ }
21619+ });
21620+
21621+ Prism.languages.ts = Prism.languages.typescript;
21622+
21623+ }(Prism));
21624+
2158221625const blocks = '(if|else if|await|then|catch|each|html|debug)';
2158321626
2158421627Prism.languages.svelte = Prism.languages.extend('markup', {
@@ -21724,6 +21767,7 @@ Prism.languages.svelte.tag.addInlined('script', 'javascript');
2172421767
2172521768var LanguageMap; (function (LanguageMap) {
2172621769 const bash = "bash"; LanguageMap["bash"] = bash;
21770+ const env = "bash"; LanguageMap["env"] = env;
2172721771 const html = "markup"; LanguageMap["html"] = html;
2172821772 const sv = "svelte"; LanguageMap["sv"] = sv;
2172921773 const js = "javascript"; LanguageMap["js"] = js;
0 commit comments