/*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.36.1(6c56744c3419458f0dd48864520b759d1a3a1ca8) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/ // src/basic-languages/pug/pug.ts var conf = { comments: { lineComment: "//" }, brackets: [ ["{", "}"], ["[", "]"], ["(", ")"] ], autoClosingPairs: [ { open: '"', close: '"', notIn: ["string", "comment"] }, { open: "'", close: "'", notIn: ["string", "comment"] }, { open: "{", close: "}", notIn: ["string", "comment"] }, { open: "[", close: "]", notIn: ["string", "comment"] }, { open: "(", close: ")", notIn: ["string", "comment"] } ], folding: { offSide: true } }; var language = { defaultToken: "", tokenPostfix: ".pug", ignoreCase: true, brackets: [ { token: "delimiter.curly", open: "{", close: "}" }, { token: "delimiter.array", open: "[", close: "]" }, { token: "delimiter.parenthesis", open: "(", close: ")" } ], keywords: [ "append", "block", "case", "default", "doctype", "each", "else", "extends", "for", "if", "in", "include", "mixin", "typeof", "unless", "var", "when" ], tags: [ "a", "abbr", "acronym", "address", "area", "article", "aside", "audio", "b", "base", "basefont", "bdi", "bdo", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "command", "datalist", "dd", "del", "details", "dfn", "div", "dl", "dt", "em", "embed", "fieldset", "figcaption", "figure", "font", "footer", "form", "frame", "frameset", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "iframe", "img", "input", "ins", "keygen", "kbd", "label", "li", "link", "map", "mark", "menu", "meta", "meter", "nav", "noframes", "noscript", "object", "ol", "optgroup", "option", "output", "p", "param", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "script", "section", "select", "small", "source", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "textarea", "tfoot", "th", "thead", "time", "title", "tr", "tracks", "tt", "u", "ul", "video", "wbr" ], symbols: /[\+\-\*\%\&\|\!\=\/\.\,\:]+/, escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, tokenizer: { root: [ [ /^(\s*)([a-zA-Z_-][\w-]*)/, { cases: { "$2@tags": { cases: { "@eos": ["", "tag"], "@default": ["", { token: "tag", next: "@tag.$1" }] } }, "$2@keywords": ["", { token: "keyword.$2" }], "@default": ["", ""] } } ], [ /^(\s*)(#[a-zA-Z_-][\w-]*)/, { cases: { "@eos": ["", "tag.id"], "@default": ["", { token: "tag.id", next: "@tag.$1" }] } } ], [ /^(\s*)(\.[a-zA-Z_-][\w-]*)/, { cases: { "@eos": ["", "tag.class"], "@default": ["", { token: "tag.class", next: "@tag.$1" }] } } ], [/^(\s*)(\|.*)$/, ""], { include: "@whitespace" }, [ /[a-zA-Z_$][\w$]*/, { cases: { "@keywords": { token: "keyword.$0" }, "@default": "" } } ], [/[{}()\[\]]/, "@brackets"], [/@symbols/, "delimiter"], [/\d+\.\d+([eE][\-+]?\d+)?/, "number.float"], [/\d+/, "number"], [/"/, "string", '@string."'], [/'/, "string", "@string.'"] ], tag: [ [/(\.)(\s*$)/, [{ token: "delimiter", next: "@blockText.$S2." }, ""]], [/\s+/, { token: "", next: "@simpleText" }], [ /#[a-zA-Z_-][\w-]*/, { cases: { "@eos": { token: "tag.id", next: "@pop" }, "@default": "tag.id" } } ], [ /\.[a-zA-Z_-][\w-]*/, { cases: { "@eos": { token: "tag.class", next: "@pop" }, "@default": "tag.class" } } ], [/\(/, { token: "delimiter.parenthesis", next: "@attributeList" }] ], simpleText: [ [/[^#]+$/, { token: "", next: "@popall" }], [/[^#]+/, { token: "" }], [ /(#{)([^}]*)(})/, { cases: { "@eos": [ "interpolation.delimiter", "interpolation", { token: "interpolation.delimiter", next: "@popall" } ], "@default": ["interpolation.delimiter", "interpolation", "interpolation.delimiter"] } } ], [/#$/, { token: "", next: "@popall" }], [/#/, ""] ], attributeList: [ [/\s+/, ""], [ /(\w+)(\s*=\s*)("|')/, ["attribute.name", "delimiter", { token: "attribute.value", next: "@value.$3" }] ], [/\w+/, "attribute.name"], [ /,/, { cases: { "@eos": { token: "attribute.delimiter", next: "@popall" }, "@default": "attribute.delimiter" } } ], [/\)$/, { token: "delimiter.parenthesis", next: "@popall" }], [/\)/, { token: "delimiter.parenthesis", next: "@pop" }] ], whitespace: [ [/^(\s*)(\/\/.*)$/, { token: "comment", next: "@blockText.$1.comment" }], [/[ \t\r\n]+/, ""], [//, { token: "comment", next: "@pop" }], [/