Sha256: b8178752ec859aa89eb70d30da6e3f081b6863840519dd7932df25b3372c4c15
Contents?: true
Size: 1.56 KB
Versions: 23
Compression:
Stored size: 1.56 KB
Contents
/* * See LICENSE in this directory for the license under which this code * is released. */ CodeMirror.defineMode("sieve",function(e){function n(e){for(var n={},t=e.split(" "),r=0;r<t.length;++r)n[t[r]]=!0;return n}function t(e,n){var t=e.next();if("/"==t&&e.eat("*"))return n.tokenize=i,i(e,n);if("#"===t)return e.skipToEnd(),"comment";if('"'==t)return n.tokenize=o(t),n.tokenize(e,n);if("{"===t)return n._indent++,null;if("}"===t)return n._indent--,null;if(/[{}\(\),;]/.test(t))return null;if(/\d/.test(t))return e.eatWhile(/[\d]/),e.eat(/[KkMmGg]/),"number";if(":"==t)return e.eatWhile(/[a-zA-Z_]/),e.eatWhile(/[a-zA-Z0-9_]/),"operator";e.eatWhile(/[\w\$_]/);var l=e.current();return"text"==l&&e.eat(":")?(n.tokenize=r,"string"):u.propertyIsEnumerable(l)?"keyword":a.propertyIsEnumerable(l)?"atom":void 0}function r(e,n){return n._multiLineString=!0,e.sol()?("."==e.next()&&e.eol()&&(n._multiLineString=!1,n.tokenize=t),"string"):(e.eatSpace(),"#"==e.peek()?(e.skipToEnd(),"comment"):(e.skipToEnd(),"string"))}function i(e,n){for(var r,i=!1;null!=(r=e.next());){if(i&&"/"==r){n.tokenize=t;break}i="*"==r}return"comment"}function o(e){return function(n,r){for(var i,o=!1;null!=(i=n.next())&&(i!=e||o);)o=!o&&"\\"==i;return o||(r.tokenize=t),"string"}}var u=n("if elsif else stop require"),a=n("true false not"),l=e.indentUnit;return{startState:function(e){return{tokenize:t,baseIndent:e||0,_indent:0}},token:function(e,n){return e.eatSpace()?null:(n.tokenize||t)(e,n)},indent:function(e){return e.baseIndent+e._indent*l},electricChars:"}"}}),CodeMirror.defineMIME("application/sieve","sieve");
Version data entries
23 entries across 23 versions & 1 rubygems