mode-odin-e717d8fa.js.map 26 KB

1
  1. {"version":3,"file":"mode-odin-e717d8fa.js","sources":["../../node_modules/ace-builds/src-noconflict/mode-odin.js"],"sourcesContent":["ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar DocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n }, DocCommentHighlightRules.getTagRule(), {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ]\n };\n};\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\nDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/odin_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar OdinHighlightRules = function () {\n var keywords = \"using|transmute|cast|distinct|opaque|where|\" +\n \"struct|enum|union|bit_field|bit_set|\" +\n \"if|when|else|do|switch|case|break|fallthrough|\" +\n \"size_of|offset_of|type_info_if|typeid_of|type_of|align_of|\" +\n \"or_return|or_else|inline|no_inline|\" +\n \"import|package|foreign|defer|auto_cast|map|matrix|proc|\" +\n \"for|continue|not_in|in\";\n var cartesian = function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return a\n .reduce(function (a, b) { return a.flatMap(function (d) { return b.map(function (e) { return [d, e].flat(); }); }); })\n .map(function (parts) { return parts.join(\"\"); });\n };\n var builtinTypes = __spreadArray(__spreadArray(__spreadArray(__spreadArray([\n \"int\",\n \"uint\",\n \"uintptr\",\n \"typeid\",\n \"rawptr\",\n \"string\",\n \"cstring\",\n \"i8\",\n \"u8\",\n \"any\",\n \"byte\",\n \"rune\",\n \"bool\",\n \"b8\",\n \"b16\",\n \"b32\",\n \"b64\"\n ], __read(cartesian([\"i\", \"u\"], [\"16\", \"32\", \"64\", \"128\"], [\"\", \"le\", \"be\"])), false), __read(cartesian([\"f\"], [\"16\", \"32\", \"64\"], [\"\", \"le\", \"be\"])), false), __read(cartesian([\"complex\"], [\"32\", \"64\", \"128\"])), false), __read(cartesian([\"quaternion\"], [\"64\", \"128\", \"256\"])), false).join(\"|\");\n var operators = [\n \"\\\\*\",\n \"/\",\n \"%\",\n \"%%\",\n \"<<\",\n \">>\",\n \"&\",\n \"&~\",\n \"\\\\+\",\n \"\\\\-\",\n \"~\",\n \"\\\\|\",\n \">\",\n \"<\",\n \"<=\",\n \">=\",\n \"==\",\n \"!=\"\n ]\n .concat(\":\")\n .map(function (operator) { return operator + \"=\"; })\n .concat(\"=\", \":=\", \"::\", \"->\", \"\\\\^\", \"&\", \":\")\n .join(\"|\");\n var builtinFunctions = \"new|cap|copy|panic|len|make|delete|append|free\";\n var builtinConstants = \"nil|true|false\";\n var keywordMapper = this.createKeywordMapper({\n keyword: keywords,\n \"constant.language\": builtinConstants,\n \"support.function\": builtinFunctions,\n \"support.type\": builtinTypes\n }, \"\");\n var stringEscapeRe = \"\\\\\\\\(?:[0-7]{3}|x\\\\h{2}|u{4}|U\\\\h{6}|[abfnrtv'\\\"\\\\\\\\])\".replace(/\\\\h/g, \"[a-fA-F\\\\d]\");\n this.$rules = {\n start: [\n {\n token: \"comment\",\n regex: /\\/\\/.*$/\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token: \"comment.start\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n },\n {\n token: \"string\",\n regex: /\"(?:[^\"\\\\]|\\\\.)*?\"/\n },\n {\n token: \"string\",\n regex: \"`\",\n next: \"bqstring\"\n },\n {\n token: \"support.constant\",\n regex: /#[a-z_]+/\n },\n {\n token: \"constant.numeric\",\n regex: \"'(?:[^\\\\'\\uD800-\\uDBFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|\" +\n stringEscapeRe.replace('\"', \"\") +\n \")'\"\n },\n {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n },\n {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n },\n {\n token: [\n \"entity.name.function\",\n \"text\",\n \"keyword.operator\",\n \"text\",\n \"keyword\"\n ],\n regex: \"([a-zA-Z_$][a-zA-Z0-9_$]*)(\\\\s+)(::)(\\\\s+)(proc)\\\\b\"\n },\n {\n token: function (val) {\n if (val[val.length - 1] == \"(\") {\n return [\n {\n type: keywordMapper(val.slice(0, -1)) || \"support.function\",\n value: val.slice(0, -1)\n },\n {\n type: \"paren.lparen\",\n value: val.slice(-1)\n }\n ];\n }\n return keywordMapper(val) || \"identifier\";\n },\n regex: \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\\\\(?\"\n },\n {\n token: \"keyword.operator\",\n regex: operators\n },\n {\n token: \"punctuation.operator\",\n regex: \"\\\\?|\\\\,|\\\\;|\\\\.\"\n },\n {\n token: \"paren.lparen\",\n regex: \"[[({]\"\n },\n {\n token: \"paren.rparen\",\n regex: \"[\\\\])}]\"\n },\n {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n comment: [\n {\n token: \"comment.end\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n },\n {\n defaultToken: \"comment\"\n }\n ],\n bqstring: [\n {\n token: \"string\",\n regex: \"`\",\n next: \"start\"\n },\n {\n defaultToken: \"string\"\n }\n ]\n };\n this.embedRules(DocCommentHighlightRules, \"doc-\", [\n DocCommentHighlightRules.getEndRule(\"start\")\n ]);\n};\noop.inherits(OdinHighlightRules, TextHighlightRules);\nexports.OdinHighlightRules = OdinHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/odin\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/odin_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar OdinHighlightRules = require(\"./odin_highlight_rules\").OdinHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = OdinHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.foldingRules = new CStyleFoldMode();\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[:]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n }; //end getNextLineIndent\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.$id = \"ace/mode/odin\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/odin\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n "],"names":["require","exports","module","oop","TextHighlightRules","DocCommentHighlightRules","start","__read","o","n","m","i","r","ar","e","error","__spreadArray","to","from","pack","l","OdinHighlightRules","keywords","cartesian","a","_i","b","d","parts","builtinTypes","operators","operator","builtinFunctions","builtinConstants","keywordMapper","stringEscapeRe","val","Range","MatchingBraceOutdent","line","input","doc","row","match","column","openBracePos","indent","BaseFoldMode","FoldMode","commentRegex","session","foldStyle","fw","forceMultiline","range","startIndent","startRow","startColumn","endRow","maxRow","subRange","re","depth","TextMode","CStyleFoldMode","Mode","state","tab","tokenizedLine","tokens"],"mappings":"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","x_google_ignoreList":[0]}