123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340 |
- /*!-----------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Version: 0.31.1(337587859b1c171314b40503171188b6cea6a32a)
- * Released under the MIT license
- * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
- *-----------------------------------------------------------------------------*/
- define("vs/basic-languages/twig/twig",[],()=>{
- var moduleExports = (() => {
- var __defProp = Object.defineProperty;
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
- var __export = (target, all) => {
- __markAsModule(target);
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
- };
- // src/basic-languages/twig/twig.ts
- var twig_exports = {};
- __export(twig_exports, {
- conf: () => conf,
- language: () => language
- });
- var conf = {
- wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,
- comments: {
- blockComment: ["{#", "#}"]
- },
- brackets: [
- ["{#", "#}"],
- ["{%", "%}"],
- ["{{", "}}"],
- ["(", ")"],
- ["[", "]"],
- ["<!--", "-->"],
- ["<", ">"]
- ],
- autoClosingPairs: [
- { open: "{# ", close: " #}" },
- { open: "{% ", close: " %}" },
- { open: "{{ ", close: " }}" },
- { open: "[", close: "]" },
- { open: "(", close: ")" },
- { open: '"', close: '"' },
- { open: "'", close: "'" }
- ],
- surroundingPairs: [
- { open: '"', close: '"' },
- { open: "'", close: "'" },
- { open: "<", close: ">" }
- ]
- };
- var language = {
- defaultToken: "",
- tokenPostfix: "",
- ignoreCase: true,
- keywords: [
- "apply",
- "autoescape",
- "block",
- "deprecated",
- "do",
- "embed",
- "extends",
- "flush",
- "for",
- "from",
- "if",
- "import",
- "include",
- "macro",
- "sandbox",
- "set",
- "use",
- "verbatim",
- "with",
- "endapply",
- "endautoescape",
- "endblock",
- "endembed",
- "endfor",
- "endif",
- "endmacro",
- "endsandbox",
- "endset",
- "endwith",
- "true",
- "false"
- ],
- tokenizer: {
- root: [
- [/\s+/],
- [/{#/, "comment.twig", "@commentState"],
- [/{%[-~]?/, "delimiter.twig", "@blockState"],
- [/{{[-~]?/, "delimiter.twig", "@variableState"],
- [/<!DOCTYPE/, "metatag.html", "@doctype"],
- [/<!--/, "comment.html", "@comment"],
- [/(<)((?:[\w\-]+:)?[\w\-]+)(\s*)(\/>)/, ["delimiter.html", "tag.html", "", "delimiter.html"]],
- [/(<)(script)/, ["delimiter.html", { token: "tag.html", next: "@script" }]],
- [/(<)(style)/, ["delimiter.html", { token: "tag.html", next: "@style" }]],
- [/(<)((?:[\w\-]+:)?[\w\-]+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]],
- [/(<\/)((?:[\w\-]+:)?[\w\-]+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]],
- [/</, "delimiter.html"],
- [/[^<]+/]
- ],
- commentState: [
- [/#}/, "comment.twig", "@pop"],
- [/./, "comment.twig"]
- ],
- blockState: [
- [/[-~]?%}/, "delimiter.twig", "@pop"],
- [/\s+/],
- [
- /(verbatim)(\s*)([-~]?%})/,
- ["keyword.twig", "", { token: "delimiter.twig", next: "@rawDataState" }]
- ],
- { include: "expression" }
- ],
- rawDataState: [
- [
- /({%[-~]?)(\s*)(endverbatim)(\s*)([-~]?%})/,
- ["delimiter.twig", "", "keyword.twig", "", { token: "delimiter.twig", next: "@popall" }]
- ],
- [/./, "string.twig"]
- ],
- variableState: [[/[-~]?}}/, "delimiter.twig", "@pop"], { include: "expression" }],
- stringState: [
- [/"/, "string.twig", "@pop"],
- [/#{\s*/, "string.twig", "@interpolationState"],
- [/[^#"\\]*(?:(?:\\.|#(?!\{))[^#"\\]*)*/, "string.twig"]
- ],
- interpolationState: [
- [/}/, "string.twig", "@pop"],
- { include: "expression" }
- ],
- expression: [
- [/\s+/],
- [/\+|-|\/{1,2}|%|\*{1,2}/, "operators.twig"],
- [/(and|or|not|b-and|b-xor|b-or)(\s+)/, ["operators.twig", ""]],
- [/==|!=|<|>|>=|<=/, "operators.twig"],
- [/(starts with|ends with|matches)(\s+)/, ["operators.twig", ""]],
- [/(in)(\s+)/, ["operators.twig", ""]],
- [/(is)(\s+)/, ["operators.twig", ""]],
- [/\||~|:|\.{1,2}|\?{1,2}/, "operators.twig"],
- [
- /[^\W\d][\w]*/,
- {
- cases: {
- "@keywords": "keyword.twig",
- "@default": "variable.twig"
- }
- }
- ],
- [/\d+(\.\d+)?/, "number.twig"],
- [/\(|\)|\[|\]|{|}|,/, "delimiter.twig"],
- [/"([^#"\\]*(?:\\.[^#"\\]*)*)"|\'([^\'\\]*(?:\\.[^\'\\]*)*)\'/, "string.twig"],
- [/"/, "string.twig", "@stringState"],
- [/=>/, "operators.twig"],
- [/=/, "operators.twig"]
- ],
- doctype: [
- [/[^>]+/, "metatag.content.html"],
- [/>/, "metatag.html", "@pop"]
- ],
- comment: [
- [/-->/, "comment.html", "@pop"],
- [/[^-]+/, "comment.content.html"],
- [/./, "comment.content.html"]
- ],
- otherTag: [
- [/\/?>/, "delimiter.html", "@pop"],
- [/"([^"]*)"/, "attribute.value.html"],
- [/'([^']*)'/, "attribute.value.html"],
- [/[\w\-]+/, "attribute.name.html"],
- [/=/, "delimiter.html"],
- [/[ \t\r\n]+/]
- ],
- script: [
- [/type/, "attribute.name.html", "@scriptAfterType"],
- [/"([^"]*)"/, "attribute.value.html"],
- [/'([^']*)'/, "attribute.value.html"],
- [/[\w\-]+/, "attribute.name.html"],
- [/=/, "delimiter.html"],
- [
- />/,
- {
- token: "delimiter.html",
- next: "@scriptEmbedded",
- nextEmbedded: "text/javascript"
- }
- ],
- [/[ \t\r\n]+/],
- [
- /(<\/)(script\s*)(>)/,
- ["delimiter.html", "tag.html", { token: "delimiter.html", next: "@pop" }]
- ]
- ],
- scriptAfterType: [
- [/=/, "delimiter.html", "@scriptAfterTypeEquals"],
- [
- />/,
- {
- token: "delimiter.html",
- next: "@scriptEmbedded",
- nextEmbedded: "text/javascript"
- }
- ],
- [/[ \t\r\n]+/],
- [/<\/script\s*>/, { token: "@rematch", next: "@pop" }]
- ],
- scriptAfterTypeEquals: [
- [
- /"([^"]*)"/,
- {
- token: "attribute.value.html",
- switchTo: "@scriptWithCustomType.$1"
- }
- ],
- [
- /'([^']*)'/,
- {
- token: "attribute.value.html",
- switchTo: "@scriptWithCustomType.$1"
- }
- ],
- [
- />/,
- {
- token: "delimiter.html",
- next: "@scriptEmbedded",
- nextEmbedded: "text/javascript"
- }
- ],
- [/[ \t\r\n]+/],
- [/<\/script\s*>/, { token: "@rematch", next: "@pop" }]
- ],
- scriptWithCustomType: [
- [
- />/,
- {
- token: "delimiter.html",
- next: "@scriptEmbedded.$S2",
- nextEmbedded: "$S2"
- }
- ],
- [/"([^"]*)"/, "attribute.value.html"],
- [/'([^']*)'/, "attribute.value.html"],
- [/[\w\-]+/, "attribute.name.html"],
- [/=/, "delimiter.html"],
- [/[ \t\r\n]+/],
- [/<\/script\s*>/, { token: "@rematch", next: "@pop" }]
- ],
- scriptEmbedded: [
- [/<\/script/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }],
- [/[^<]+/, ""]
- ],
- style: [
- [/type/, "attribute.name.html", "@styleAfterType"],
- [/"([^"]*)"/, "attribute.value.html"],
- [/'([^']*)'/, "attribute.value.html"],
- [/[\w\-]+/, "attribute.name.html"],
- [/=/, "delimiter.html"],
- [
- />/,
- {
- token: "delimiter.html",
- next: "@styleEmbedded",
- nextEmbedded: "text/css"
- }
- ],
- [/[ \t\r\n]+/],
- [
- /(<\/)(style\s*)(>)/,
- ["delimiter.html", "tag.html", { token: "delimiter.html", next: "@pop" }]
- ]
- ],
- styleAfterType: [
- [/=/, "delimiter.html", "@styleAfterTypeEquals"],
- [
- />/,
- {
- token: "delimiter.html",
- next: "@styleEmbedded",
- nextEmbedded: "text/css"
- }
- ],
- [/[ \t\r\n]+/],
- [/<\/style\s*>/, { token: "@rematch", next: "@pop" }]
- ],
- styleAfterTypeEquals: [
- [
- /"([^"]*)"/,
- {
- token: "attribute.value.html",
- switchTo: "@styleWithCustomType.$1"
- }
- ],
- [
- /'([^']*)'/,
- {
- token: "attribute.value.html",
- switchTo: "@styleWithCustomType.$1"
- }
- ],
- [
- />/,
- {
- token: "delimiter.html",
- next: "@styleEmbedded",
- nextEmbedded: "text/css"
- }
- ],
- [/[ \t\r\n]+/],
- [/<\/style\s*>/, { token: "@rematch", next: "@pop" }]
- ],
- styleWithCustomType: [
- [
- />/,
- {
- token: "delimiter.html",
- next: "@styleEmbedded.$S2",
- nextEmbedded: "$S2"
- }
- ],
- [/"([^"]*)"/, "attribute.value.html"],
- [/'([^']*)'/, "attribute.value.html"],
- [/[\w\-]+/, "attribute.name.html"],
- [/=/, "delimiter.html"],
- [/[ \t\r\n]+/],
- [/<\/style\s*>/, { token: "@rematch", next: "@pop" }]
- ],
- styleEmbedded: [
- [/<\/style/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }],
- [/[^<]+/, ""]
- ]
- }
- };
- return twig_exports;
- })();
- return moduleExports;
- });
|