UNPKG

prism-code-editor

Version:

Lightweight, extensible code editor component for the web using Prism

75 lines (74 loc) • 2.62 kB
import { l as languages } from "../../index-DF54SWhA.js"; import { e as clikePunctuation, b as boolean } from "../../patterns-Jkz_nwNQ.js"; languages.wren = { // Multiline comments in Wren can have nested multiline comments // Comments: // and /* */ // support 3 levels of nesting // regex: \/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\/ "comment": /\/\/.*|\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|\/\*(?:[^*/]|\*(?!\/)|\/(?!\*))*\*\/)*\*\/)*\*\//g, // Triple quoted strings are multiline but cannot have interpolation (raw strings) // Based on prism-python.js "triple-quoted-string": { pattern: /"""[^]*?"""/g, alias: "string" }, "string-literal": { // A single quote string is multiline and can have interpolation (similar to JS backticks ``) pattern: /(^|[^\\"])"(?:\\[^]|[^\\"%]|%(?!\()|%\((?:[^()]|\((?:[^()]|\([^)]*\))*\))*\))*"/g, lookbehind: true, inside: { "interpolation": { // "%(interpolation)" pattern: /((?:^|[^\\])(?:\\\\)*)%\((?:[^()]|\((?:[^()]|\([^)]*\))*\))*\)/, lookbehind: true, inside: { "expression": { pattern: /^(..)[^]+(?=.)/, lookbehind: true, inside: "wren" }, "interpolation-punctuation": { pattern: /.+/, alias: "punctuation" } } }, "string": /[^]+/ } }, // #!/usr/bin/env wren on the first line "hashbang": { pattern: /^#!\/.+/g, alias: "comment" }, // Attributes are special keywords to add meta data to classes "attribute": { // #! attributes are stored in class properties // #!myvar = true // #attributes are not stored and dismissed at compilation pattern: /#!?[  ]*\w+/, alias: "keyword" }, "class-name": { // class definition // class Meta {} // A class must always start with an uppercase. // File.read pattern: /(\bclass\s+)\w+|\b[A-Z][a-z\d_]*\b/, lookbehind: true }, // A constant can be a variable, class, property or method. Just named in all uppercase letters "constant": /\b[A-Z][A-Z\d_]*\b/, "null": { pattern: /\bnull\b/, alias: "keyword" }, "keyword": /\b(?:as|break|class|construct|continue|else|for|foreign|i[fns]|import|return|static|super|this|var|while)\b/, "boolean": boolean, "number": /\b(?:0x[a-f\d]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i, // Functions can be Class.method() "function": /\b[a-z_]\w*(?=\s*[({])/i, "operator": /<<|>>|[!=<>]=?|&&|\|\||[%&|^~?:/*+-]|\.{2,3}/, "punctuation": clikePunctuation }; //# sourceMappingURL=wren.js.map