text: (function(mod){if("object"==typeof exports&&"object"==typeof module)mod(require("../../lib/codemirror"));else if("function"==typeof define&&define.amd)define(["../../lib/codemirror"],mod);else mod(CodeMirror)})(function(CodeMirror){"use strict";CodeMirror.defineMode("shell",function(){var words={};function define(style,string){for(var split=string.split(" "),i=0;i<split.length;i++){words[split[i]]=style}}define("atom","true false");define("keyword","if then do else elif while until for in esac fi fin "+"fil done exit set unset export function");define("builtin","ab awk bash beep cat cc cd chown chmod chroot clear cp "+"curl cut diff echo find gawk gcc get git grep hg kill killall ln ls make "+"mkdir openssl mv nc node npm ping ps restart rm rmdir sed service sh "+"shopt shred source sort sleep ssh start stop su sudo svn tee telnet top "+"touch vi vim wall wc wget who write yes zsh");function tokenBase(stream,state){if(stream.eatSpace())return null;var sol=stream.sol(),ch=stream.next();if("\\"===ch){stream.next();return null}if("'"===ch||"\""===ch||"`"===ch){state.tokens.unshift(tokenString(ch,"`"===ch?"quote":"string"));return tokenize(stream,state)}if("#"===ch){if(sol&&stream.eat("!")){stream.skipToEnd();return"meta"}stream.skipToEnd();return"comment"}if("$"===ch){state.tokens.unshift(tokenDollar);return tokenize(stream,state)}if("+"===ch||"="===ch){return"operator"}if("-"===ch){stream.eat("-");stream.eatWhile(/\w/);return"attribute"}if(/\d/.test(ch)){stream.eatWhile(/\d/);if(stream.eol()||!/\w/.test(stream.peek())){return"number"}}stream.eatWhile(/[\w-]/);var cur=stream.current();if("="===stream.peek()&&/\w+/.test(cur))return"def";return words.hasOwnProperty(cur)?words[cur]:null}function tokenString(quote,style){var close="("==quote?")":"{"==quote?"}":quote;return function(stream,state){var next,escaped=!1;while(null!=(next=stream.next())){if(next===close&&!escaped){state.tokens.shift();break}else if("$"===next&&!escaped&&"'"!==quote&&stream.peek()!=close){escaped=!0;stream.backUp(1);state.tokens.unshift(tokenDollar);break}else if(!escaped&&quote!==close&&next===quote){state.tokens.unshift(tokenString(quote,style));return tokenize(stream,state)}else if(!escaped&&/['"]/.test(next)&&!/['"]/.test(quote)){state.tokens.unshift(tokenStringStart(next,"string"));stream.backUp(1);break}escaped=!escaped&&"\\"===next}return style}}function tokenStringStart(quote,style){return function(stream,state){state.tokens[0]=tokenString(quote,style);stream.next();return tokenize(stream,state)}}var tokenDollar=function(stream,state){if(1<state.tokens.length)stream.eat("$");var ch=stream.next();if(/['"({]/.test(ch)){state.tokens[0]=tokenString(ch,"("==ch?"quote":"{"==ch?"def":"string");return tokenize(stream,state)}if(!/\d/.test(ch))stream.eatWhile(/\w/);state.tokens.shift();return"def"};function tokenize(stream,state){return(state.tokens[0]||tokenBase)(stream,state)}return{startState:function(){return{tokens:[]}},token:function(stream,state){return tokenize(stream,state)},closeBrackets:"()[]{}''\"\"``",lineComment:"#",fold:"brace"}});CodeMirror.defineMIME("text/x-sh","shell");CodeMirror.defineMIME("application/x-sh","shell")});