1{"version":3,"sources":["../../node_modules/codemirror/mode/lua/lua.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","defineMode","config","parserConfig","indentUnit","prefixRE","words","RegExp","join","wordRE","specials","builtins","keywords","indentTokens","dedentTokens","dedentPartial","readBracket","stream","level","eat","normal","state","ch","next","cur","bracketed","skipToEnd","string","test","peek","eatWhile","style","curlev","quote","escaped","startState","basecol","indentDepth","token","eatSpace","word","current","indent","textAfter","closing","lineComment","blockCommentStart","blockCommentEnd","defineMIME"],"mappings":"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","file":"lua.min.js","sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// LUA mode. Ported to CodeMirror 2 from Franciszek Wawrzak's\n// CodeMirror 1 mode.\n// highlights keywords, strings, comments (no leveling supported! (\"[==[\")), tokens, basic indenting\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"lua\", function(config, parserConfig) {\n  var indentUnit = config.indentUnit;\n\n  function prefixRE(words) {\n    return new RegExp(\"^(?:\" + words.join(\"|\") + \")\", \"i\");\n  }\n  function wordRE(words) {\n    return new RegExp(\"^(?:\" + words.join(\"|\") + \")$\", \"i\");\n  }\n  var specials = wordRE(parserConfig.specials || []);\n\n  // long list of standard functions from lua manual\n  var builtins = wordRE([\n    \"_G\",\"_VERSION\",\"assert\",\"collectgarbage\",\"dofile\",\"error\",\"getfenv\",\"getmetatable\",\"ipairs\",\"load\",\n    \"loadfile\",\"loadstring\",\"module\",\"next\",\"pairs\",\"pcall\",\"print\",\"rawequal\",\"rawget\",\"rawset\",\"require\",\n    \"select\",\"setfenv\",\"setmetatable\",\"tonumber\",\"tostring\",\"type\",\"unpack\",\"xpcall\",\n\n    \"coroutine.create\",\"coroutine.resume\",\"coroutine.running\",\"coroutine.status\",\"coroutine.wrap\",\"coroutine.yield\",\n\n    \"debug.debug\",\"debug.getfenv\",\"debug.gethook\",\"debug.getinfo\",\"debug.getlocal\",\"debug.getmetatable\",\n    \"debug.getregistry\",\"debug.getupvalue\",\"debug.setfenv\",\"debug.sethook\",\"debug.setlocal\",\"debug.setmetatable\",\n    \"debug.setupvalue\",\"debug.traceback\",\n\n    \"close\",\"flush\",\"lines\",\"read\",\"seek\",\"setvbuf\",\"write\",\n\n    \"io.close\",\"io.flush\",\"io.input\",\"io.lines\",\"io.open\",\"io.output\",\"io.popen\",\"io.read\",\"io.stderr\",\"io.stdin\",\n    \"io.stdout\",\"io.tmpfile\",\"io.type\",\"io.write\",\n\n    \"math.abs\",\"math.acos\",\"math.asin\",\"math.atan\",\"math.atan2\",\"math.ceil\",\"math.cos\",\"math.cosh\",\"math.deg\",\n    \"math.exp\",\"math.floor\",\"math.fmod\",\"math.frexp\",\"math.huge\",\"math.ldexp\",\"math.log\",\"math.log10\",\"math.max\",\n    \"math.min\",\"math.modf\",\"math.pi\",\"math.pow\",\"math.rad\",\"math.random\",\"math.randomseed\",\"math.sin\",\"math.sinh\",\n    \"math.sqrt\",\"math.tan\",\"math.tanh\",\n\n    \"os.clock\",\"os.date\",\"os.difftime\",\"os.execute\",\"os.exit\",\"os.getenv\",\"os.remove\",\"os.rename\",\"os.setlocale\",\n    \"os.time\",\"os.tmpname\",\n\n    \"package.cpath\",\"package.loaded\",\"package.loaders\",\"package.loadlib\",\"package.path\",\"package.preload\",\n    \"package.seeall\",\n\n    \"string.byte\",\"string.char\",\"string.dump\",\"string.find\",\"string.format\",\"string.gmatch\",\"string.gsub\",\n    \"string.len\",\"string.lower\",\"string.match\",\"string.rep\",\"string.reverse\",\"string.sub\",\"string.upper\",\n\n    \"table.concat\",\"table.insert\",\"table.maxn\",\"table.remove\",\"table.sort\"\n  ]);\n  var keywords = wordRE([\"and\",\"break\",\"elseif\",\"false\",\"nil\",\"not\",\"or\",\"return\",\n                         \"true\",\"function\", \"end\", \"if\", \"then\", \"else\", \"do\",\n                         \"while\", \"repeat\", \"until\", \"for\", \"in\", \"local\" ]);\n\n  var indentTokens = wordRE([\"function\", \"if\",\"repeat\",\"do\", \"\\\\(\", \"{\"]);\n  var dedentTokens = wordRE([\"end\", \"until\", \"\\\\)\", \"}\"]);\n  var dedentPartial = prefixRE([\"end\", \"until\", \"\\\\)\", \"}\", \"else\", \"elseif\"]);\n\n  function readBracket(stream) {\n    var level = 0;\n    while (stream.eat(\"=\")) ++level;\n    stream.eat(\"[\");\n    return level;\n  }\n\n  function normal(stream, state) {\n    var ch = stream.next();\n    if (ch == \"-\" && stream.eat(\"-\")) {\n      if (stream.eat(\"[\") && stream.eat(\"[\"))\n        return (state.cur = bracketed(readBracket(stream), \"comment\"))(stream, state);\n      stream.skipToEnd();\n      return \"comment\";\n    }\n    if (ch == \"\\\"\" || ch == \"'\")\n      return (state.cur = string(ch))(stream, state);\n    if (ch == \"[\" && /[\\[=]/.test(stream.peek()))\n      return (state.cur = bracketed(readBracket(stream), \"string\"))(stream, state);\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w.%]/);\n      return \"number\";\n    }\n    if (/[\\w_]/.test(ch)) {\n      stream.eatWhile(/[\\w\\\\\\-_.]/);\n      return \"variable\";\n    }\n    return null;\n  }\n\n  function bracketed(level, style) {\n    return function(stream, state) {\n      var curlev = null, ch;\n      while ((ch = stream.next()) != null) {\n        if (curlev == null) {if (ch == \"]\") curlev = 0;}\n        else if (ch == \"=\") ++curlev;\n        else if (ch == \"]\" && curlev == level) { state.cur = normal; break; }\n        else curlev = null;\n      }\n      return style;\n    };\n  }\n\n  function string(quote) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && !escaped) break;\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      if (!escaped) state.cur = normal;\n      return \"string\";\n    };\n  }\n\n  return {\n    startState: function(basecol) {\n      return {basecol: basecol || 0, indentDepth: 0, cur: normal};\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      var style = state.cur(stream, state);\n      var word = stream.current();\n      if (style == \"variable\") {\n        if (keywords.test(word)) style = \"keyword\";\n        else if (builtins.test(word)) style = \"builtin\";\n        else if (specials.test(word)) style = \"variable-2\";\n      }\n      if ((style != \"comment\") && (style != \"string\")){\n        if (indentTokens.test(word)) ++state.indentDepth;\n        else if (dedentTokens.test(word)) --state.indentDepth;\n      }\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      var closing = dedentPartial.test(textAfter);\n      return state.basecol + indentUnit * (state.indentDepth - (closing ? 1 : 0));\n    },\n\n    lineComment: \"--\",\n    blockCommentStart: \"--[[\",\n    blockCommentEnd: \"]]\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-lua\", \"lua\");\n\n});\n"]}