UNPKG

codemirror-mode-zenscript

Version:
102 lines (100 loc) 5.18 kB
import CodeMirror from 'codemirror'; import 'codemirror/addon/mode/simple'; CodeMirror.defineSimpleMode("zenscript", { start: [{ regex: /"(?:(?:(?!\\)[\s\S])|\.)*?(?:"|$)/, token: "string" }, { regex: /'(?:(?:(?!\\)[\s\S])|\\(?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]))*?(?:'|$)/, token: "string" }, { regex: /(zenClass)([\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]+)([0-9A-Z_a-z]*)/, token: ["keyword", null, "def"] }, { regex: /\b(zenConstructor)[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?=\()/, token: ["keyword"] }, { regex: /(function)([\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]+)([\$A-Z_a-z][\$0-9A-Z_a-z]*)[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?=\()/, token: ["keyword", null, "def"] }, { regex: /([\$A-Z_a-z][\$0-9A-Z_a-z]*)(?=[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*\()/, token: ["def"] }, { regex: /\b([0-9A-Z_a-z]+)(\.)([0-9A-Z_a-z]+)(?:(\.)([0-9A-Z_a-z]+))/, token: ["variable-2", "operator", "variable-3", "operator", "builtin"] }, { regex: /(<)\b((?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*?)(:)((?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*?)(:)?(\*|[0-9]+)?(>)/, token: ["keyword", "variable-3", "keyword", "variable-2", "keyword", "number", "keyword"] }, { regex: /^([\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*)(#)(debug|ignoreBracketErrors|norun|loader|priority|ikwid|profile|zslint|modloaded)\b/, token: [null, "tag", "attribute"] }, { regex: /\b(var|val|static|global)\b/, token: ["def"] }, { regex: /\b(as)([\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF])+([A-Za-z]+)\b/, token: ["builtin", null, "variable-3"] }, { regex: /\b(instanceof|get|implements|set|function|override|const|if|else|do|while|for|throw|panic|lock|try|catch|finally|return|break|continue|switch|case|default|in|is|as|match|throws|super|new)\b/, token: "keyword" }, { regex: /\b(variant|abstract|final|private|public|export|internal|static|protected|implicit|virtual|extern|immutable)\b/, token: "keyword" }, { regex: /\b(zenClass|zenConstructor|alias|class|interface|enum|struct|expand|variant|set|void|bool|byte|sbyte|short|ushort|int|uint|long|ulong|usize|float|double|char|string)\b/, token: "builtin" }, { regex: /\b(import)([\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF])((?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+\.)((?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)([\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*;)/, token: ["keyword", null, "variable-3", "variable-2", "keyword"] }, { regex: /([0-9A-Z_a-z]+(?=;))(;)/, token: ["variable-2", "atom"] }, { regex: /\b((0([Xx])[0-9A-Fa-f]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))(([Ee])([\+\x2D])?[0-9]+)?)([DFLUdflu]|UL|ul)?\b/i, token: "number" }, { regex: /\b((?:[a-z][0-9A-Z_a-z]*\.)*[A-Z]+[0-9A-Z_a-z]*)(?=\[)/, token: "variable-2" }, { regex: /[\(\[\{]/, indent: true }, { regex: /[\)\]\}]/, dedent: true }, { regex: /true|false|null/, token: "atom" }, { regex: /\b(function)\b/, token: "keyword" }, { regex: /\b(if|else)\b/, token: "keyword" }, { regex: /\/\/(?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*/, token: "comment" }, { regex: /#(?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*/, token: "comment" }, { regex: /\/\*/, token: "comment", next: "comment" }, { regex: /(\.|\.\.|\.\.\.|,|\+|\+=|\+\+|\x2D|\x2D=|\x2D\x2D|~|~=|\*|\*=|\/|\/=|%|%=|\||\|=|\|\||&|&=|&&|\^|\^=|\?|\?\.|\?\?|<|<=|<<|<<=|>|>=|>>|>>=|>>>|>>>=|=>|=|==|===|!|!=|!==|\$|`)/, token: "keyword" }], comment: [{ regex: /(?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*?\*\//, token: "comment", next: "start" }, { regex: /(?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*/, token: "comment" }], meta: { dontIndentStates: ["comment"], lineComment: "//" } }); //# sourceMappingURL=codemirror-mode-zenscript.mjs.map