{"version":3,"sources":["../../node_modules/codemirror/mode/shell/shell.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","defineMode","words","style","dict","i","length","commonAtoms","commonKeywords","commonCommands","registerHelper","concat","tokenBase","stream","state","eatSpace","sol","ch","next","tokens","unshift","tokenString","tokenize","eat","skipToEnd","tokenDollar","eatWhile","test","eol","peek","cur","current","hasOwnProperty","quote","close","escaped","shift","backUp","tokenStringStart","startState","token","closeBrackets","lineComment","fold","defineMIME"],"mappings":"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","file":"shell.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('shell', function() {\n\n var words = {};\n function define(style, dict) {\n for(var i = 0; i < dict.length; i++) {\n words[dict[i]] = style;\n }\n };\n\n var commonAtoms = [\"true\", \"false\"];\n var commonKeywords = [\"if\", \"then\", \"do\", \"else\", \"elif\", \"while\", \"until\", \"for\", \"in\", \"esac\", \"fi\",\n \"fin\", \"fil\", \"done\", \"exit\", \"set\", \"unset\", \"export\", \"function\"];\n var commonCommands = [\"ab\", \"awk\", \"bash\", \"beep\", \"cat\", \"cc\", \"cd\", \"chown\", \"chmod\", \"chroot\", \"clear\",\n \"cp\", \"curl\", \"cut\", \"diff\", \"echo\", \"find\", \"gawk\", \"gcc\", \"get\", \"git\", \"grep\", \"hg\", \"kill\", \"killall\",\n \"ln\", \"ls\", \"make\", \"mkdir\", \"openssl\", \"mv\", \"nc\", \"nl\", \"node\", \"npm\", \"ping\", \"ps\", \"restart\", \"rm\",\n \"rmdir\", \"sed\", \"service\", \"sh\", \"shopt\", \"shred\", \"source\", \"sort\", \"sleep\", \"ssh\", \"start\", \"stop\",\n \"su\", \"sudo\", \"svn\", \"tee\", \"telnet\", \"top\", \"touch\", \"vi\", \"vim\", \"wall\", \"wc\", \"wget\", \"who\", \"write\",\n \"yes\", \"zsh\"];\n\n CodeMirror.registerHelper(\"hintWords\", \"shell\", commonAtoms.concat(commonKeywords, commonCommands));\n\n define('atom', commonAtoms);\n define('keyword', commonKeywords);\n define('builtin', commonCommands);\n\n function tokenBase(stream, state) {\n if (stream.eatSpace()) return null;\n\n var sol = stream.sol();\n var ch = stream.next();\n\n if (ch === '\\\\') {\n stream.next();\n return null;\n }\n if (ch === '\\'' || ch === '\"' || ch === '`') {\n state.tokens.unshift(tokenString(ch, ch === \"`\" ? \"quote\" : \"string\"));\n return tokenize(stream, state);\n }\n if (ch === '#') {\n if (sol && stream.eat('!')) {\n stream.skipToEnd();\n return 'meta'; // 'comment'?\n }\n stream.skipToEnd();\n return 'comment';\n }\n if (ch === '$') {\n state.tokens.unshift(tokenDollar);\n return tokenize(stream, state);\n }\n if (ch === '+' || ch === '=') {\n return 'operator';\n }\n if (ch === '-') {\n stream.eat('-');\n stream.eatWhile(/\\w/);\n return 'attribute';\n }\n if (/\\d/.test(ch)) {\n stream.eatWhile(/\\d/);\n if(stream.eol() || !/\\w/.test(stream.peek())) {\n return 'number';\n }\n }\n stream.eatWhile(/[\\w-]/);\n var cur = stream.current();\n if (stream.peek() === '=' && /\\w+/.test(cur)) return 'def';\n return words.hasOwnProperty(cur) ? words[cur] : null;\n }\n\n function tokenString(quote, style) {\n var close = quote == \"(\" ? \")\" : quote == \"{\" ? \"}\" : quote\n return function(stream, state) {\n var next, escaped = false;\n while ((next = stream.next()) != null) {\n if (next === close && !escaped) {\n state.tokens.shift();\n break;\n } else if (next === '$' && !escaped && quote !== \"'\" && stream.peek() != close) {\n escaped = true;\n stream.backUp(1);\n state.tokens.unshift(tokenDollar);\n break;\n } else if (!escaped && quote !== close && next === quote) {\n state.tokens.unshift(tokenString(quote, style))\n return tokenize(stream, state)\n } else if (!escaped && /['\"]/.test(next) && !/['\"]/.test(quote)) {\n state.tokens.unshift(tokenStringStart(next, \"string\"));\n stream.backUp(1);\n break;\n }\n escaped = !escaped && next === '\\\\';\n }\n return style;\n };\n };\n\n function tokenStringStart(quote, style) {\n return function(stream, state) {\n state.tokens[0] = tokenString(quote, style)\n stream.next()\n return tokenize(stream, state)\n }\n }\n\n var tokenDollar = function(stream, state) {\n if (state.tokens.length > 1) stream.eat('$');\n var ch = stream.next()\n if (/['\"({]/.test(ch)) {\n state.tokens[0] = tokenString(ch, ch == \"(\" ? \"quote\" : ch == \"{\" ? \"def\" : \"string\");\n return tokenize(stream, state);\n }\n if (!/\\d/.test(ch)) stream.eatWhile(/\\w/);\n state.tokens.shift();\n return 'def';\n };\n\n function tokenize(stream, state) {\n return (state.tokens[0] || tokenBase) (stream, state);\n };\n\n return {\n startState: function() {return {tokens:[]};},\n token: function(stream, state) {\n return tokenize(stream, state);\n },\n closeBrackets: \"()[]{}''\\\"\\\"``\",\n lineComment: '#',\n fold: \"brace\"\n };\n});\n\nCodeMirror.defineMIME('text/x-sh', 'shell');\n// Apache uses a slightly different Media Type for Shell scripts\n// http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types\nCodeMirror.defineMIME('application/x-sh', 'shell');\n\n});\n"]}