1{"version":3,"sources":["../../node_modules/codemirror/mode/go/go.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","defineMode","config","indentUnit","keywords","break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var","bool","byte","complex64","complex128","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","error","rune","atoms","true","false","iota","nil","append","cap","close","complex","copy","delete","imag","len","make","new","panic","print","println","real","recover","isOperatorChar","curPunc","tokenBase","stream","state","ch","next","tokenize","tokenString","test","match","eat","tokenComment","skipToEnd","eatWhile","cur","current","propertyIsEnumerable","quote","escaped","end","maybeEnd","Context","indented","column","align","prev","this","pushContext","col","context","popContext","t","startState","basecolumn","startOfLine","token","ctx","sol","indentation","eatSpace","style","indent","textAfter","Pass","firstChar","charAt","closing","electricChars","closeBrackets","fold","blockCommentStart","blockCommentEnd","lineComment","defineMIME"],"mappings":"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","file":"go.min.js","sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\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(\"go\", function(config) {\n  var indentUnit = config.indentUnit;\n\n  var keywords = {\n    \"break\":true, \"case\":true, \"chan\":true, \"const\":true, \"continue\":true,\n    \"default\":true, \"defer\":true, \"else\":true, \"fallthrough\":true, \"for\":true,\n    \"func\":true, \"go\":true, \"goto\":true, \"if\":true, \"import\":true,\n    \"interface\":true, \"map\":true, \"package\":true, \"range\":true, \"return\":true,\n    \"select\":true, \"struct\":true, \"switch\":true, \"type\":true, \"var\":true,\n    \"bool\":true, \"byte\":true, \"complex64\":true, \"complex128\":true,\n    \"float32\":true, \"float64\":true, \"int8\":true, \"int16\":true, \"int32\":true,\n    \"int64\":true, \"string\":true, \"uint8\":true, \"uint16\":true, \"uint32\":true,\n    \"uint64\":true, \"int\":true, \"uint\":true, \"uintptr\":true, \"error\": true,\n    \"rune\":true\n  };\n\n  var atoms = {\n    \"true\":true, \"false\":true, \"iota\":true, \"nil\":true, \"append\":true,\n    \"cap\":true, \"close\":true, \"complex\":true, \"copy\":true, \"delete\":true, \"imag\":true,\n    \"len\":true, \"make\":true, \"new\":true, \"panic\":true, \"print\":true,\n    \"println\":true, \"real\":true, \"recover\":true\n  };\n\n  var isOperatorChar = /[+\\-*&^%:=<>!|\\/]/;\n\n  var curPunc;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (ch == '\"' || ch == \"'\" || ch == \"`\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    if (/[\\d\\.]/.test(ch)) {\n      if (ch == \".\") {\n        stream.match(/^[0-9]+([eE][\\-+]?[0-9]+)?/);\n      } else if (ch == \"0\") {\n        stream.match(/^[xX][0-9a-fA-F]+/) || stream.match(/^0[0-7]+/);\n      } else {\n        stream.match(/^[0-9]*\\.?[0-9]*([eE][\\-+]?[0-9]+)?/);\n      }\n      return \"number\";\n    }\n    if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n      curPunc = ch;\n      return null;\n    }\n    if (ch == \"/\") {\n      if (stream.eat(\"*\")) {\n        state.tokenize = tokenComment;\n        return tokenComment(stream, state);\n      }\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n    }\n    if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return \"operator\";\n    }\n    stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n    var cur = stream.current();\n    if (keywords.propertyIsEnumerable(cur)) {\n      if (cur == \"case\" || cur == \"default\") curPunc = \"case\";\n      return \"keyword\";\n    }\n    if (atoms.propertyIsEnumerable(cur)) return \"atom\";\n    return \"variable\";\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {end = true; break;}\n        escaped = !escaped && quote != \"`\" && next == \"\\\\\";\n      }\n      if (end || !(escaped || quote == \"`\"))\n        state.tokenize = tokenBase;\n      return \"string\";\n    };\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function Context(indented, column, type, align, prev) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.align = align;\n    this.prev = prev;\n  }\n  function pushContext(state, col, type) {\n    return state.context = new Context(state.indented, col, type, null, state.context);\n  }\n  function popContext(state) {\n    if (!state.context.prev) return;\n    var t = state.context.type;\n    if (t == \")\" || t == \"]\" || t == \"}\")\n      state.indented = state.context.indented;\n    return state.context = state.context.prev;\n  }\n\n  // Interface\n\n  return {\n    startState: function(basecolumn) {\n      return {\n        tokenize: null,\n        context: new Context((basecolumn || 0) - indentUnit, 0, \"top\", false),\n        indented: 0,\n        startOfLine: true\n      };\n    },\n\n    token: function(stream, state) {\n      var ctx = state.context;\n      if (stream.sol()) {\n        if (ctx.align == null) ctx.align = false;\n        state.indented = stream.indentation();\n        state.startOfLine = true;\n        if (ctx.type == \"case\") ctx.type = \"}\";\n      }\n      if (stream.eatSpace()) return null;\n      curPunc = null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style == \"comment\") return style;\n      if (ctx.align == null) ctx.align = true;\n\n      if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n      else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n      else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n      else if (curPunc == \"case\") ctx.type = \"case\";\n      else if (curPunc == \"}\" && ctx.type == \"}\") popContext(state);\n      else if (curPunc == ctx.type) popContext(state);\n      state.startOfLine = false;\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize != tokenBase && state.tokenize != null) return CodeMirror.Pass;\n      var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n      if (ctx.type == \"case\" && /^(?:case|default)\\b/.test(textAfter)) {\n        state.context.type = \"}\";\n        return ctx.indented;\n      }\n      var closing = firstChar == ctx.type;\n      if (ctx.align) return ctx.column + (closing ? 0 : 1);\n      else return ctx.indented + (closing ? 0 : indentUnit);\n    },\n\n    electricChars: \"{}):\",\n    closeBrackets: \"()[]{}''\\\"\\\"``\",\n    fold: \"brace\",\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    lineComment: \"//\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-go\", \"go\");\n\n});\n"]}