1{"version":3,"sources":["../../node_modules/codemirror/mode/d/d.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","defineMode","config","parserConfig","indentUnit","statementIndentUnit","keywords","builtin","blockKeywords","atoms","hooks","multiLineStrings","isOperatorChar","curPunc","tokenBase","stream","state","ch","next","result","tokenize","tokenString","test","eatWhile","eat","tokenNestedComment","tokenComment","skipToEnd","cur","current","propertyIsEnumerable","quote","escaped","end","maybeEnd","Context","indented","column","type","align","prev","this","pushContext","col","indent","context","popContext","t","startState","basecolumn","startOfLine","token","ctx","sol","indentation","eatSpace","style","textAfter","Pass","firstChar","charAt","closing","electricChars","blockCommentStart","blockCommentEnd","blockCommentContinue","lineComment","fold","words","str","obj","split","i","length","defineMIME","name","@","_state"],"mappings":"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","file":"d.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(\"d\", function(config, parserConfig) {\n  var indentUnit = config.indentUnit,\n      statementIndentUnit = parserConfig.statementIndentUnit || indentUnit,\n      keywords = parserConfig.keywords || {},\n      builtin = parserConfig.builtin || {},\n      blockKeywords = parserConfig.blockKeywords || {},\n      atoms = parserConfig.atoms || {},\n      hooks = parserConfig.hooks || {},\n      multiLineStrings = parserConfig.multiLineStrings;\n  var isOperatorChar = /[+\\-*&%=<>!?|\\/]/;\n\n  var curPunc;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (hooks[ch]) {\n      var result = hooks[ch](stream, state);\n      if (result !== false) return result;\n    }\n    if (ch == '\"' || ch == \"'\" || ch == \"`\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n      curPunc = ch;\n      return null;\n    }\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w\\.]/);\n      return \"number\";\n    }\n    if (ch == \"/\") {\n      if (stream.eat(\"+\")) {\n        state.tokenize = tokenNestedComment;\n        return tokenNestedComment(stream, state);\n      }\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 (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"keyword\";\n    }\n    if (builtin.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"builtin\";\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 && next == \"\\\\\";\n      }\n      if (end || !(escaped || multiLineStrings))\n        state.tokenize = null;\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 = null;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function tokenNestedComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = null;\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    var indent = state.indented;\n    if (state.context && state.context.type == \"statement\")\n      indent = state.context.indented;\n    return state.context = new Context(indent, col, type, null, state.context);\n  }\n  function popContext(state) {\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      }\n      if (stream.eatSpace()) return null;\n      curPunc = null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style == \"comment\" || style == \"meta\") return style;\n      if (ctx.align == null) ctx.align = true;\n\n      if ((curPunc == \";\" || curPunc == \":\" || curPunc == \",\") && ctx.type == \"statement\") popContext(state);\n      else 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 == \"}\") {\n        while (ctx.type == \"statement\") ctx = popContext(state);\n        if (ctx.type == \"}\") ctx = popContext(state);\n        while (ctx.type == \"statement\") ctx = popContext(state);\n      }\n      else if (curPunc == ctx.type) popContext(state);\n      else if (((ctx.type == \"}\" || ctx.type == \"top\") && curPunc != ';') || (ctx.type == \"statement\" && curPunc == \"newstatement\"))\n        pushContext(state, stream.column(), \"statement\");\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 == \"statement\" && firstChar == \"}\") ctx = ctx.prev;\n      var closing = firstChar == ctx.type;\n      if (ctx.type == \"statement\") return ctx.indented + (firstChar == \"{\" ? 0 : statementIndentUnit);\n      else if (ctx.align) return ctx.column + (closing ? 0 : 1);\n      else return ctx.indented + (closing ? 0 : indentUnit);\n    },\n\n    electricChars: \"{}\",\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    blockCommentContinue: \" * \",\n    lineComment: \"//\",\n    fold: \"brace\"\n  };\n});\n\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  var blockKeywords = \"body catch class do else enum for foreach foreach_reverse if in interface mixin \" +\n                      \"out scope struct switch try union unittest version while with\";\n\n  CodeMirror.defineMIME(\"text/x-d\", {\n    name: \"d\",\n    keywords: words(\"abstract alias align asm assert auto break case cast cdouble cent cfloat const continue \" +\n                    \"debug default delegate delete deprecated export extern final finally function goto immutable \" +\n                    \"import inout invariant is lazy macro module new nothrow override package pragma private \" +\n                    \"protected public pure ref return shared short static super synchronized template this \" +\n                    \"throw typedef typeid typeof volatile __FILE__ __LINE__ __gshared __traits __vector __parameters \" +\n                    blockKeywords),\n    blockKeywords: words(blockKeywords),\n    builtin: words(\"bool byte char creal dchar double float idouble ifloat int ireal long real short ubyte \" +\n                   \"ucent uint ulong ushort wchar wstring void size_t sizediff_t\"),\n    atoms: words(\"exit failure success true false null\"),\n    hooks: {\n      \"@\": function(stream, _state) {\n        stream.eatWhile(/[\\w\\$_]/);\n        return \"meta\";\n      }\n    }\n  });\n\n});\n"]}