{"version":3,"file":"shell-5Optxxtq.cjs","sources":["../../../node_modules/@codemirror/legacy-modes/mode/shell.js"],"sourcesContent":["var words = {};\nfunction define(style, dict) {\n  for(var i = 0; i < dict.length; i++) {\n    words[dict[i]] = style;\n  }\n};\n\nvar commonAtoms = [\"true\", \"false\"];\nvar commonKeywords = [\"if\", \"then\", \"do\", \"else\", \"elif\", \"while\", \"until\", \"for\", \"in\", \"esac\", \"fi\",\n                      \"fin\", \"fil\", \"done\", \"exit\", \"set\", \"unset\", \"export\", \"function\"];\nvar 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\ndefine('atom', commonAtoms);\ndefine('keyword', commonKeywords);\ndefine('builtin', commonCommands);\n\nfunction 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 (ch == \"<\") {\n    if (stream.match(\"<<\")) return \"operator\"\n    var heredoc = stream.match(/^<-?\\s*(?:['\"]([^'\"]*)['\"]|([^'\"\\s]*))/)\n    if (heredoc) {\n      state.tokens.unshift(tokenHeredoc(heredoc[1] || heredoc[2]))\n      return 'string.special'\n    }\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\nfunction 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\nfunction 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\nvar 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\nfunction tokenHeredoc(delim) {\n  return function(stream, state) {\n    if (stream.sol() && stream.string == delim) state.tokens.shift()\n    stream.skipToEnd()\n    return \"string.special\"\n  }\n}\n\nfunction tokenize(stream, state) {\n  return (state.tokens[0] || tokenBase) (stream, state);\n};\n\nexport const shell = {\n  name: \"shell\",\n  startState: function() {return {tokens:[]};},\n  token: function(stream, state) {\n    return tokenize(stream, state);\n  },\n  languageData: {\n    autocomplete: commonAtoms.concat(commonKeywords, commonCommands),\n    closeBrackets: {brackets: [\"(\", \"[\", \"{\", \"'\", '\"', \"`\"]},\n    commentTokens: {line: \"#\"}\n  }\n};\n"],"names":["words","define","style","dict","i","length","commonAtoms","commonKeywords","commonCommands","tokenBase","stream","state","eatSpace","delim","sol","ch","next","tokens","unshift","tokenString","tokenize","eat","skipToEnd","tokenDollar","eatWhile","match","heredoc","string","shift","test","eol","peek","cur","current","hasOwnProperty","quote","close","escaped","backUp","tokenStringStart","shell","name","startState","token","languageData","autocomplete","concat","closeBrackets","brackets","commentTokens","line"],"mappings":"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","x_google_ignoreList":[0]}