UNPKG

@loftysoul/soul

Version:

The professional Content Management System, based ghost

23 lines (22 loc) 2.17 kB
(function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)})((function(e){"use strict" e.defineMode("elm",(function(){function e(e,t,r){return t(r),r(e,t)}var t=/[a-z_]/,r=/[A-Z]/,n=/[0-9]/,i=/[0-9A-Fa-f]/,u=/[0-7]/,f=/[a-z_A-Z0-9\']/,o=/[-!#$%&*+.\/<=>?@\\^|~:\u03BB\u2192]/,a=/[(),;[\]`{}]/,l=/[ \t\v\f]/ function c(){return function(m,p){if(m.eatWhile(l))return null var d=m.next() if(a.test(d)){if("{"==d&&m.eat("-")){var h="comment" return m.eat("#")&&(h="meta"),e(m,p,function e(t,r){if(0==r)return c() return function(n,i){for(var u=r;!n.eol();){var f=n.next() if("{"==f&&n.eat("-"))++u else if("-"==f&&n.eat("}")&&0==--u)return i(c()),t}return i(e(t,u)),t}}(h,1))}return null}if("'"==d)return m.eat("\\"),m.next(),m.eat("'")?"string":"error" if('"'==d)return e(m,p,s) if(r.test(d))return m.eatWhile(f),m.eat(".")?"qualifier":"variable-2" if(t.test(d)){var x=1===m.pos return m.eatWhile(f),x?"type":"variable"}if(n.test(d)){if("0"==d){if(m.eat(/[xX]/))return m.eatWhile(i),"integer" if(m.eat(/[oO]/))return m.eatWhile(u),"number"}m.eatWhile(n) h="number" return m.eat(".")&&(h="number",m.eatWhile(n)),m.eat(/[eE]/)&&(h="number",m.eat(/[-+]/),m.eatWhile(n)),h}return o.test(d)?"-"==d&&m.eat(/-/)&&(m.eatWhile(/-/),!m.eat(o))?(m.skipToEnd(),"comment"):(m.eatWhile(o),"builtin"):"error"}}function s(e,t){for(;!e.eol();){var r=e.next() if('"'==r)return t(c()),"string" if("\\"==r){if(e.eol()||e.eat(l))return t(m),"string" e.eat("&")||e.next()}}return t(c()),"error"}function m(t,r){return t.eat("\\")?e(t,r,s):(t.next(),r(c()),"error")}var p=function(){for(var e={},t=["case","of","as","if","then","else","let","in","infix","infixl","infixr","type","alias","input","output","foreign","loopback","module","where","import","exposing","_","..","|",":","=","\\",'"',"->","<-"],r=t.length;r--;)e[t[r]]="keyword" return e}() return{startState:function(){return{f:c()}},copyState:function(e){return{f:e.f}},token:function(e,t){var r=t.f(e,(function(e){t.f=e})),n=e.current() return p.hasOwnProperty(n)?p[n]:r}}})),e.defineMIME("text/x-elm","elm")}))