diff --git a/components/prism-twig.js b/components/prism-twig.js index 59442d449e..0dcdf4fba8 100644 --- a/components/prism-twig.js +++ b/components/prism-twig.js @@ -1,44 +1,46 @@ -Prism.languages.twig = { - 'comment': /^\{#[\s\S]*?#\}$/, +(function (Prism) { + Prism.languages.twig = { + 'comment': /^\{#[\s\S]*?#\}$/, - 'tag-name': { - pattern: /(^\{%-?\s*)\w+/, - lookbehind: true, - alias: 'keyword' - }, - 'delimiter': { - pattern: /^\{[{%]-?|-?[%}]\}$/, - alias: 'punctuation' - }, + 'tag-name': { + pattern: /(^\{%-?\s*)\w+/, + lookbehind: true, + alias: 'keyword' + }, + 'delimiter': { + pattern: /^\{[{%]-?|-?[%}]\}$/, + alias: 'punctuation' + }, - 'string': { - pattern: /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/, - inside: { - 'punctuation': /^['"]|['"]$/ - } - }, - 'keyword': /\b(?:even|if|odd)\b/, - 'boolean': /\b(?:false|null|true)\b/, - 'number': /\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/, - 'operator': [ - { - pattern: /(\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/, - lookbehind: true + 'string': { + pattern: /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/, + inside: { + 'punctuation': /^['"]|['"]$/ + } }, - /[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/ - ], - 'punctuation': /[()\[\]{}:.,]/ -}; + 'keyword': /\b(?:even|if|odd)\b/, + 'boolean': /\b(?:false|null|true)\b/, + 'number': /\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/, + 'operator': [ + { + pattern: /(\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/, + lookbehind: true + }, + /[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/ + ], + 'punctuation': /[()\[\]{}:.,]/ + }; -Prism.hooks.add('before-tokenize', function (env) { - if (env.language !== 'twig') { - return; - } + Prism.hooks.add('before-tokenize', function (env) { + if (env.language !== 'twig') { + return; + } - var pattern = /\{(?:#[\s\S]*?#|%[\s\S]*?%|\{[\s\S]*?\})\}/g; - Prism.languages['markup-templating'].buildPlaceholders(env, 'twig', pattern); -}); + var pattern = /\{(?:#[\s\S]*?#|%[\s\S]*?%|\{[\s\S]*?\})\}/g; + Prism.languages['markup-templating'].buildPlaceholders(env, 'twig', pattern); + }); -Prism.hooks.add('after-tokenize', function (env) { - Prism.languages['markup-templating'].tokenizePlaceholders(env, 'twig'); -}); + Prism.hooks.add('after-tokenize', function (env) { + Prism.languages['markup-templating'].tokenizePlaceholders(env, 'twig'); + }); +}(Prism));