mode-vbscript-87f9a983.js.map 36 KB

1
  1. {"version":3,"file":"mode-vbscript-87f9a983.js","sources":["../../node_modules/ace-builds/src-noconflict/mode-vbscript.js"],"sourcesContent":["ace.define(\"ace/mode/vbscript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){/*\n THIS FILE WAS AUTOGENERATED BY mode_highlight_rules.tmpl.js (UUID: 7F9C9343-D48E-4E7D-BFE8-F680714DCD3E) */\n\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar VBScriptHighlightRules = function () {\n var keywordMapper = this.createKeywordMapper({\n \"keyword.control.asp\": \"If|Then|Else|ElseIf|End|While|Wend|For|To|Each|Case|Select|Return\"\n + \"|Continue|Do|Until|Loop|Next|With|Exit|Function|Property|Type|Enum|Sub|IIf|Class\",\n \"storage.type.asp\": \"Dim|Call|Const|Redim|Set|Let|Get|New|Randomize|Option|Explicit|Preserve|Erase|Execute|ExecuteGlobal\",\n \"storage.modifier.asp\": \"Private|Public|Default\",\n \"keyword.operator.asp\": \"Mod|And|Not|Or|Xor|As|Eqv|Imp|Is\",\n \"constant.language.asp\": \"Empty|False|Nothing|Null|True\",\n \"variable.language.vb.asp\": \"Me\",\n \"support.class.vb.asp\": \"RegExp\",\n \"support.class.asp\": \"Application|ObjectContext|Request|Response|Server|Session\",\n \"support.class.collection.asp\": \"Contents|StaticObjects|ClientCertificate|Cookies|Form|QueryString|ServerVariables\",\n \"support.constant.asp\": \"TotalBytes|Buffer|CacheControl|Charset|ContentType|Expires|ExpiresAbsolute\"\n + \"|IsClientConnected|PICS|Status|ScriptTimeout|CodePage|LCID|SessionID|Timeout\",\n \"support.function.asp\": \"Lock|Unlock|SetAbort|SetComplete|BinaryRead|AddHeader|AppendToLog\"\n + \"|BinaryWrite|Clear|Flush|Redirect|Write|CreateObject|HTMLEncode|MapPath|URLEncode|Abandon|Convert|Regex\",\n \"support.function.event.asp\": \"Application_OnEnd|Application_OnStart\"\n + \"|OnTransactionAbort|OnTransactionCommit|Session_OnEnd|Session_OnStart\",\n \"support.function.vb.asp\": \"Array|Add|Asc|Atn|CBool|CByte|CCur|CDate|CDbl|Chr|CInt|CLng\"\n + \"|Conversions|Cos|CreateObject|CSng|CStr|Date|DateAdd|DateDiff|DatePart|DateSerial\"\n + \"|DateValue|Day|Derived|Math|Escape|Eval|Exists|Exp|Filter|FormatCurrency\"\n + \"|FormatDateTime|FormatNumber|FormatPercent|GetLocale|GetObject|GetRef|Hex\"\n + \"|Hour|InputBox|InStr|InStrRev|Int|Fix|IsArray|IsDate|IsEmpty|IsNull|IsNumeric\"\n + \"|IsObject|Item|Items|Join|Keys|LBound|LCase|Left|Len|LoadPicture|Log|LTrim|RTrim\"\n + \"|Trim|Maths|Mid|Minute|Month|MonthName|MsgBox|Now|Oct|Remove|RemoveAll|Replace\"\n + \"|RGB|Right|Rnd|Round|ScriptEngine|ScriptEngineBuildVersion|ScriptEngineMajorVersion\"\n + \"|ScriptEngineMinorVersion|Second|SetLocale|Sgn|Sin|Space|Split|Sqr|StrComp|String|StrReverse\"\n + \"|Tan|Time|Timer|TimeSerial|TimeValue|TypeName|UBound|UCase|Unescape|VarType|Weekday|WeekdayName|Year\"\n + \"|AscB|AscW|ChrB|ChrW|InStrB|LeftB|LenB|MidB|RightB|Abs|GetUILanguage\",\n \"support.type.vb.asp\": \"vbTrue|vbFalse|vbCr|vbCrLf|vbFormFeed|vbLf|vbNewLine|vbNullChar|vbNullString\"\n + \"|vbTab|vbVerticalTab|vbBinaryCompare|vbTextCompare|vbSunday|vbMonday|vbTuesday|vbWednesday\"\n + \"|vbThursday|vbFriday|vbSaturday|vbUseSystemDayOfWeek|vbFirstJan1|vbFirstFourDays|vbFirstFullWeek\"\n + \"|vbGeneralDate|vbLongDate|vbShortDate|vbLongTime|vbShortTime|vbObjectError|vbEmpty|vbNull|vbInteger\"\n + \"|vbLong|vbSingle|vbDouble|vbCurrency|vbDate|vbString|vbObject|vbError|vbBoolean|vbVariant\"\n + \"|vbDataObject|vbDecimal|vbByte|vbArray|vbOKOnly|vbOKCancel|vbAbortRetryIgnore|vbYesNoCancel|vbYesNo\"\n + \"|vbRetryCancel|vbCritical|vbQuestion|vbExclamation|vbInformation|vbDefaultButton1|vbDefaultButton2\"\n + \"|vbDefaultButton3|vbDefaultButton4|vbApplicationModal|vbSystemModal|vbOK|vbCancel|vbAbort|vbRetry|vbIgnore|vbYes|vbNo\"\n + \"|vbUseDefault\"\n }, \"identifier\", true);\n this.$rules = {\n \"start\": [\n {\n token: [\n \"meta.ending-space\"\n ],\n regex: \"$\"\n },\n {\n token: [null],\n regex: \"^(?=\\\\t)\",\n next: \"state_3\"\n },\n {\n token: [null],\n regex: \"^(?= )\",\n next: \"state_4\"\n },\n {\n token: [\n \"text\",\n \"storage.type.function.asp\",\n \"text\",\n \"entity.name.function.asp\",\n \"text\",\n \"punctuation.definition.parameters.asp\",\n \"variable.parameter.function.asp\",\n \"punctuation.definition.parameters.asp\"\n ],\n regex: \"^(\\\\s*)(Function|Sub)(\\\\s+)([a-zA-Z_]\\\\w*)(\\\\s*)(\\\\()([^)]*)(\\\\))\"\n },\n {\n token: \"punctuation.definition.comment.asp\",\n regex: \"'|REM(?=\\\\s|$)\",\n next: \"comment\",\n caseInsensitive: true\n },\n {\n token: \"storage.type.asp\",\n regex: \"On\\\\s+Error\\\\s+(?:Resume\\\\s+Next|GoTo)\\\\b\",\n caseInsensitive: true\n },\n {\n token: \"punctuation.definition.string.begin.asp\",\n regex: '\"',\n next: \"string\"\n },\n {\n token: [\n \"punctuation.definition.variable.asp\"\n ],\n regex: \"(\\\\$)[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\\\b\\\\s*\"\n },\n {\n token: \"constant.numeric.asp\",\n regex: \"-?\\\\b(?:(?:0(?:x|X)[0-9a-fA-F]*)|(?:(?:[0-9]+\\\\.?[0-9]*)|(?:\\\\.[0-9]+))(?:(?:e|E)(?:\\\\+|-)?[0-9]+)?)(?:L|l|UL|ul|u|U|F|f)?\\\\b\"\n },\n {\n regex: \"\\\\w+\",\n token: keywordMapper\n },\n {\n token: [\"entity.name.function.asp\"],\n regex: \"(?:(\\\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\\\b)(?=\\\\(\\\\)?))\"\n },\n {\n token: [\"keyword.operator.asp\"],\n regex: \"\\\\-|\\\\+|\\\\*|\\\\/|\\\\>|\\\\<|\\\\=|\\\\&|\\\\\\\\|\\\\^\"\n }\n ],\n \"state_3\": [\n {\n token: [\n \"meta.odd-tab.tabs\",\n \"meta.even-tab.tabs\"\n ],\n regex: \"(\\\\t)(\\\\t)?\"\n },\n {\n token: \"meta.leading-space\",\n regex: \"(?=[^\\\\t])\",\n next: \"start\"\n },\n {\n token: \"meta.leading-space\",\n regex: \".\",\n next: \"state_3\"\n }\n ],\n \"state_4\": [\n {\n token: [\"meta.odd-tab.spaces\", \"meta.even-tab.spaces\"],\n regex: \"( )( )?\"\n },\n {\n token: \"meta.leading-space\",\n regex: \"(?=[^ ])\",\n next: \"start\"\n },\n {\n defaultToken: \"meta.leading-space\"\n }\n ],\n \"comment\": [\n {\n token: \"comment.line.apostrophe.asp\",\n regex: \"$\",\n next: \"start\"\n },\n {\n defaultToken: \"comment.line.apostrophe.asp\"\n }\n ],\n \"string\": [\n {\n token: \"constant.character.escape.apostrophe.asp\",\n regex: '\"\"'\n },\n {\n token: \"string.quoted.double.asp\",\n regex: '\"',\n next: \"start\"\n },\n {\n defaultToken: \"string.quoted.double.asp\"\n }\n ]\n };\n};\noop.inherits(VBScriptHighlightRules, TextHighlightRules);\nexports.VBScriptHighlightRules = VBScriptHighlightRules;\n\n});\n\nace.define(\"ace/mode/folding/vbscript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\",\"ace/token_iterator\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar FoldMode = exports.FoldMode = function () { };\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.indentKeywords = {\n \"class\": 1,\n \"function\": 1,\n \"sub\": 1,\n \"if\": 1,\n \"select\": 1,\n \"do\": 1,\n \"for\": 1,\n \"while\": 1,\n \"with\": 1,\n \"property\": 1,\n \"else\": 1,\n \"elseif\": 1,\n \"end\": -1,\n \"loop\": -1,\n \"next\": -1,\n \"wend\": -1\n };\n this.foldingStartMarker = /(?:\\s|^)(class|function|sub|if|select|do|for|while|with|property|else|elseif)\\b/i;\n this.foldingStopMarker = /\\b(end|loop|next|wend)\\b/i;\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n var line = session.getLine(row);\n var isStart = this.foldingStartMarker.test(line);\n var isEnd = this.foldingStopMarker.test(line);\n if (isStart || isEnd) {\n var match = (isEnd) ? this.foldingStopMarker.exec(line) : this.foldingStartMarker.exec(line);\n var keyword = match && match[1].toLowerCase();\n if (keyword) {\n var type = session.getTokenAt(row, match.index + 2).type;\n if (type === \"keyword.control.asp\" || type === \"storage.type.function.asp\")\n return this.vbsBlock(session, row, match.index + 2);\n }\n }\n };\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n var isStart = this.foldingStartMarker.test(line);\n var isEnd = this.foldingStopMarker.test(line);\n if (isStart && !isEnd) {\n var match = this.foldingStartMarker.exec(line);\n var keyword = match && match[1].toLowerCase();\n if (keyword) {\n var type = session.getTokenAt(row, match.index + 2).type;\n if (type == \"keyword.control.asp\" || type == \"storage.type.function.asp\") {\n if (keyword == \"if\" && !/then\\s*('|$)/i.test(line))\n return \"\";\n return \"start\";\n }\n }\n }\n return \"\";\n };\n this.vbsBlock = function (session, row, column, tokenRange) {\n var stream = new TokenIterator(session, row, column);\n var endOpenings = {\n \"class\": 1,\n \"function\": 1,\n \"sub\": 1,\n \"if\": 1,\n \"select\": 1,\n \"with\": 1,\n \"property\": 1,\n \"else\": 1,\n \"elseif\": 1\n };\n var token = stream.getCurrentToken();\n if (!token || (token.type != \"keyword.control.asp\" && token.type != \"storage.type.function.asp\"))\n return;\n var startTokenValue = token.value.toLowerCase();\n var val = token.value.toLowerCase();\n var stack = [val];\n var dir = this.indentKeywords[val];\n if (!dir)\n return;\n var firstRange = stream.getCurrentTokenRange();\n switch (val) {\n case \"property\":\n case \"sub\":\n case \"function\":\n case \"if\":\n case \"select\":\n case \"do\":\n case \"for\":\n case \"class\":\n case \"while\":\n case \"with\":\n var line = session.getLine(row);\n var singleLineCondition = /^\\s*If\\s+.*\\s+Then(?!')\\s+(?!')\\S/i.test(line);\n if (singleLineCondition)\n return;\n var checkToken = new RegExp(\"(?:^|\\\\s)\" + val, \"i\");\n var endTest = /^\\s*End\\s(If|Sub|Select|Function|Class|With|Property)\\s*/i.test(line);\n if (!checkToken.test(line) && !endTest) {\n return;\n }\n if (endTest) {\n var tokenRange = stream.getCurrentTokenRange();\n stream.step = stream.stepBackward;\n stream.step();\n stream.step();\n token = stream.getCurrentToken();\n if (token) {\n val = token.value.toLowerCase();\n if (val == \"end\") {\n firstRange = stream.getCurrentTokenRange();\n firstRange = new Range(firstRange.start.row, firstRange.start.column, tokenRange.start.row, tokenRange.end.column);\n }\n }\n dir = -1;\n }\n break;\n case \"end\":\n var tokenPos = stream.getCurrentTokenPosition();\n firstRange = stream.getCurrentTokenRange();\n stream.step = stream.stepForward;\n stream.step();\n stream.step();\n token = stream.getCurrentToken();\n if (token) {\n val = token.value.toLowerCase();\n if (val in endOpenings) {\n startTokenValue = val;\n var nextTokenPos = stream.getCurrentTokenPosition();\n var endColumn = nextTokenPos.column + val.length;\n firstRange = new Range(tokenPos.row, tokenPos.column, nextTokenPos.row, endColumn);\n }\n }\n stream.step = stream.stepBackward;\n stream.step();\n stream.step();\n break;\n }\n var startColumn = dir === -1 ? session.getLine(row - 1).length : session.getLine(row).length;\n var startRow = row;\n var ranges = [];\n ranges.push(firstRange);\n stream.step = dir === -1 ? stream.stepBackward : stream.stepForward;\n while (token = stream.step()) {\n var outputRange = null;\n var ignore = false;\n if (token.type != \"keyword.control.asp\" && token.type != \"storage.type.function.asp\")\n continue;\n val = token.value.toLowerCase();\n var level = dir * this.indentKeywords[val];\n switch (val) {\n case \"property\":\n case \"sub\":\n case \"function\":\n case \"if\":\n case \"select\":\n case \"do\":\n case \"for\":\n case \"class\":\n case \"while\":\n case \"with\":\n var line = session.getLine(stream.getCurrentTokenRow());\n var singleLineCondition = /^\\s*If\\s+.*\\s+Then(?!')\\s+(?!')\\S/i.test(line);\n if (singleLineCondition) {\n level = 0;\n ignore = true;\n }\n var checkToken = new RegExp(\"^\\\\s* end\\\\s+\" + val, \"i\");\n if (checkToken.test(line)) {\n level = 0;\n ignore = true;\n }\n break;\n case \"elseif\":\n case \"else\":\n level = 0;\n if (startTokenValue != \"elseif\") {\n ignore = true;\n }\n break;\n }\n if (level > 0) {\n stack.unshift(val);\n }\n else if (level <= 0 && ignore === false) {\n stack.shift();\n if (!stack.length) {\n switch (val) {\n case \"end\":\n var tokenPos = stream.getCurrentTokenPosition();\n outputRange = stream.getCurrentTokenRange();\n stream.step();\n stream.step();\n token = stream.getCurrentToken();\n if (token) {\n val = token.value.toLowerCase();\n if (val in endOpenings) {\n if ((startTokenValue == \"else\" || startTokenValue == \"elseif\")) {\n if (val !== \"if\") {\n ranges.shift();\n }\n }\n else {\n if (val != startTokenValue)\n ranges.shift();\n }\n var nextTokenPos = stream.getCurrentTokenPosition();\n var endColumn = nextTokenPos.column + val.length;\n outputRange = new Range(tokenPos.row, tokenPos.column, nextTokenPos.row, endColumn);\n }\n else {\n ranges.shift();\n }\n }\n else {\n ranges.shift();\n }\n stream.step = stream.stepBackward;\n stream.step();\n stream.step();\n token = stream.getCurrentToken();\n val = token.value.toLowerCase();\n break;\n case \"select\":\n case \"sub\":\n case \"if\":\n case \"function\":\n case \"class\":\n case \"with\":\n case \"property\":\n if (val != startTokenValue)\n ranges.shift();\n break;\n case \"do\":\n if (startTokenValue != \"loop\")\n ranges.shift();\n break;\n case \"loop\":\n if (startTokenValue != \"do\")\n ranges.shift();\n break;\n case \"for\":\n if (startTokenValue != \"next\")\n ranges.shift();\n break;\n case \"next\":\n if (startTokenValue != \"for\")\n ranges.shift();\n break;\n case \"while\":\n if (startTokenValue != \"wend\")\n ranges.shift();\n break;\n case \"wend\":\n if (startTokenValue != \"while\")\n ranges.shift();\n break;\n }\n break;\n }\n if (level === 0) {\n stack.unshift(val);\n }\n }\n }\n if (!token)\n return null;\n if (tokenRange) {\n if (!outputRange) {\n ranges.push(stream.getCurrentTokenRange());\n }\n else {\n ranges.push(outputRange);\n }\n return ranges;\n }\n var row = stream.getCurrentTokenRow();\n if (dir === -1) {\n var endColumn = session.getLine(row).length;\n return new Range(row, endColumn, startRow - 1, startColumn);\n }\n else\n return new Range(startRow, startColumn, row - 1, session.getLine(row - 1).length);\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/vbscript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/vbscript_highlight_rules\",\"ace/mode/folding/vbscript\",\"ace/range\"], function(require, exports, module){/*\n THIS FILE WAS AUTOGENERATED BY mode.tmpl.js\n*/\n\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar VBScriptHighlightRules = require(\"./vbscript_highlight_rules\").VBScriptHighlightRules;\nvar FoldMode = require(\"./folding/vbscript\").FoldMode;\nvar Range = require(\"../range\").Range;\nvar Mode = function () {\n this.HighlightRules = VBScriptHighlightRules;\n this.foldingRules = new FoldMode();\n this.$behaviour = this.$defaultBehaviour;\n this.indentKeywords = this.foldingRules.indentKeywords;\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = [\"'\", \"REM\"];\n var outdentKeywords = [\n \"else\",\n \"elseif\",\n \"end\",\n \"loop\",\n \"next\",\n \"wend\"\n ];\n function getNetIndentLevel(tokens, line, indentKeywords) {\n var level = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token.type == \"keyword.control.asp\" || token.type == \"storage.type.function.asp\") {\n var val = token.value.toLowerCase();\n if (val in indentKeywords) {\n switch (val) {\n case \"property\":\n case \"sub\":\n case \"function\":\n case \"select\":\n case \"do\":\n case \"for\":\n case \"class\":\n case \"while\":\n case \"with\":\n case \"if\":\n var checkToken = new RegExp(\"^\\\\s* end\\\\s+\" + val, \"i\");\n var singleLineCondition = /^\\s*If\\s+.*\\s+Then(?!')\\s+(?!')\\S/i.test(line);\n if (!singleLineCondition && !checkToken.test(line))\n level += indentKeywords[val];\n break;\n default:\n level += indentKeywords[val];\n break;\n }\n }\n }\n }\n if (level < 0) {\n return -1;\n }\n else if (level > 0) {\n return 1;\n }\n else {\n return 0;\n }\n }\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var level = 0;\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n if (state == \"start\") {\n level = getNetIndentLevel(tokens, line, this.indentKeywords);\n }\n if (level > 0) {\n return indent + tab;\n }\n else if (level < 0 && indent.substr(indent.length - tab.length) == tab) {\n if (!this.checkOutdent(state, line, \"\\n\")) {\n return indent.substr(0, indent.length - tab.length);\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n if (input != \"\\n\" && input != \"\\r\" && input != \"\\r\\n\")\n return false;\n var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;\n if (!tokens || !tokens.length)\n return false;\n var val = tokens[0].value.toLowerCase();\n return ((tokens[0].type == \"keyword.control.asp\" || tokens[0].type == \"storage.type.function.asp\") && outdentKeywords.indexOf(val) != -1);\n };\n this.getMatching = function (session, row, column, tokenRange) {\n if (row == undefined) {\n var pos = session.selection.lead;\n column = pos.column;\n row = pos.row;\n }\n if (tokenRange == undefined)\n tokenRange = true;\n var startToken = session.getTokenAt(row, column);\n if (startToken) {\n var val = startToken.value.toLowerCase();\n if (val in this.indentKeywords)\n return this.foldingRules.vbsBlock(session, row, column, tokenRange);\n }\n };\n this.autoOutdent = function (state, session, row) {\n var line = session.getLine(row);\n var column = line.match(/^\\s*/)[0].length;\n if (!column || !row)\n return;\n var startRange = this.getMatching(session, row, column + 1, false);\n if (!startRange || startRange.start.row == row)\n return;\n var indent = this.$getIndent(session.getLine(startRange.start.row));\n if (indent.length != column) {\n session.replace(new Range(row, 0, row, column), indent);\n session.outdentRows(new Range(row + 1, 0, row + 1, 0));\n }\n };\n this.$id = \"ace/mode/vbscript\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/vbscript\"], 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","VBScriptHighlightRules","keywordMapper","BaseFoldMode","Range","TokenIterator","FoldMode","session","foldStyle","row","line","isStart","isEnd","match","keyword","type","column","tokenRange","stream","endOpenings","token","startTokenValue","val","stack","dir","firstRange","singleLineCondition","checkToken","endTest","tokenPos","nextTokenPos","endColumn","startColumn","startRow","ranges","outputRange","ignore","level","TextMode","Mode","outdentKeywords","getNetIndentLevel","tokens","indentKeywords","i","state","tab","indent","tokenizedLine","input","pos","startToken","startRange","m"],"mappings":"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","x_google_ignoreList":[0]}