(function(a){if(typeof exports=="object"&&typeof module=="object")a(require("../../lib/codemirror"),require("../htmlmixed/htmlmixed"),require("../ruby/ruby"));else if(typeof define=="function"&&define.amd)define(["../../lib/codemirror","../htmlmixed/htmlmixed","../ruby/ruby"],a);else a(CodeMirror)})(function(a){"use strict";a.defineMode("slim",function(b){var c=a.getMode(b,{name:"htmlmixed"});var d=a.getMode(b,"ruby");var e={html:c,ruby:d};var f={ruby:"ruby",javascript:"javascript",css:"text/css",sass:"text/x-sass",scss:"text/x-scss",less:"text/x-less",styl:"text/x-styl",coffee:"coffeescript",asciidoc:"text/x-asciidoc",markdown:"text/x-markdown",textile:"text/x-textile",creole:"text/x-creole",wiki:"text/x-wiki",mediawiki:"text/x-mediawiki",rdoc:"text/x-rdoc",builder:"text/x-builder",nokogiri:"text/x-nokogiri",erb:"application/x-erb"};var g=function(a){var b=[];for(var c in a)b.push(c);return new RegExp("^("+b.join("|")+"):")}(f);var h={commentLine:"comment",slimSwitch:"operator special",slimTag:"tag",slimId:"attribute def",slimClass:"attribute qualifier",slimAttribute:"attribute",slimSubmode:"keyword special",closeAttributeTag:null,slimDoctype:null,lineContinuation:null};var i={"{":"}","[":"]","(":")"};var j="_a-zA-ZÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�";var k=j+"\\-0-9·̀-ͯ‿-⁀";var l=new RegExp("^[:"+j+"](?::["+k+"]|["+k+"]*)");var m=new RegExp("^[:"+j+"][:\\."+k+"]*(?=\\s*=)");var n=new RegExp("^[:"+j+"][:\\."+k+"]*");var o=/^\.-?[_a-zA-Z]+[\w\-]*/;var p=/^#[_a-zA-Z]+[\w\-]*/;function q(a,b,c){var d=function(d,e){e.tokenize=b;if(d.pos-1){b.tokenize=q(a.pos,b.tokenize,e);a.backUp(f.length-g-d)}return e}function s(a,b){a.stack={parent:a.stack,style:"continuation",indented:b,tokenize:a.line};a.line=a.tokenize}function t(a){if(a.line==a.tokenize){a.line=a.stack.tokenize;a.stack=a.stack.parent}}function u(a,b){return function(c,d){t(d);if(c.match(/^\\$/)){s(d,a);return"lineContinuation"}var e=b(c,d);if(c.eol()&&c.current().match(/(?:^|[^\\])(?:\\\\)*\\$/)){c.backUp(1)}return e}}function v(a,b){return function(c,d){t(d);var e=b(c,d);if(c.eol()&&c.current().match(/,$/)){s(d,a)}return e}}function w(a,b){return function(c,d){var e=c.peek();if(e==a&&d.rubyState.tokenize.length==1){c.next();d.tokenize=b;return"closeAttributeTag"}else{return y(c,d)}}}function x(b){var c;var e=function(a,d){if(d.rubyState.tokenize.length==1&&!d.rubyState.context.prev){a.backUp(1);if(a.eatSpace()){d.rubyState=c;d.tokenize=b;return b(a,d)}a.next()}return y(a,d)};return function(b,f){c=f.rubyState;f.rubyState=a.startState(d);f.tokenize=e;return y(b,f)}}function y(a,b){return d.token(a,b.rubyState)}function z(a,b){if(a.match(/^\\$/)){return"lineContinuation"}return A(a,b)}function A(a,b){if(a.match(/^#\{/)){b.tokenize=w("}",b.tokenize);return null}return r(a,b,/[^\\]#\{/,1,c.token(a,b.htmlState))}function B(a){return function(b,c){var d=z(b,c);if(b.eol())c.tokenize=a;return d}}function C(a,b,c){b.stack={parent:b.stack,style:"html",indented:a.column()+c,tokenize:b.line};b.line=b.tokenize=A;return null}function D(a,b){a.skipToEnd();return b.stack.style}function E(a,b){b.stack={parent:b.stack,style:"comment",indented:b.indented+1,tokenize:b.line};b.line=D;return D(a,b)}function F(a,b){if(a.eat(b.stack.endQuote)){b.line=b.stack.line;b.tokenize=b.stack.tokenize;b.stack=b.stack.parent;return null}if(a.match(n)){b.tokenize=G;return"slimAttribute"}a.next();return null}function G(a,b){if(a.match(/^==?/)){b.tokenize=H;return null}return F(a,b)}function H(a,b){var c=a.peek();if(c=='"'||c=="'"){b.tokenize=Y(c,"string",true,false,F);a.next();return b.tokenize(a,b)}if(c=="["){return x(F)(a,b)}if(a.match(/^(true|false|nil)\b/)){b.tokenize=F;return"keyword"}return x(F)(a,b)}function I(a,b,c){a.stack={parent:a.stack,style:"wrapper",indented:a.indented+1,tokenize:c,line:a.line,endQuote:b};a.line=a.tokenize=F;return null}function J(b,c){if(b.match(/^#\{/)){c.tokenize=w("}",c.tokenize);return null}var d=new a.StringStream(b.string.slice(c.stack.indented),b.tabSize);d.pos=b.pos-c.stack.indented;d.start=b.start-c.stack.indented;d.lastColumnPos=b.lastColumnPos-c.stack.indented;d.lastColumnValue=b.lastColumnValue-c.stack.indented;var e=c.subMode.token(d,c.subState);b.pos=d.pos+c.stack.indented;return e}function K(a,b){b.stack.indented=a.column();b.line=b.tokenize=J;return b.tokenize(a,b)}function L(c){var d=f[c];var e=a.mimeModes[d];if(e){return a.getMode(b,e)}var g=a.modes[d];if(g){return g(b,{name:d})}return a.getMode(b,"null")}function M(a){if(!e.hasOwnProperty(a)){return e[a]=L(a)}return e[a]}function N(b,c){var d=M(b);var e=a.startState(d);c.subMode=d;c.subState=e;c.stack={parent:c.stack,style:"sub",indented:c.indented+1,tokenize:c.line};c.line=c.tokenize=K;return"slimSubmode"}function O(a,b){a.skipToEnd();return"slimDoctype"}function P(a,b){var c=a.peek();if(c=="<"){return(b.tokenize=B(b.tokenize))(a,b)}if(a.match(/^[|']/)){return C(a,b,1)}if(a.match(/^\/(!|\[\w+])?/)){return E(a,b)}if(a.match(/^(-|==?[<>]?)/)){b.tokenize=u(a.column(),v(a.column(),y));return"slimSwitch"}if(a.match(/^doctype\b/)){b.tokenize=O;return"keyword"}var d=a.match(g);if(d){return N(d[1],b)}return R(a,b)}function Q(a,b){if(b.startOfLine){return P(a,b)}return R(a,b)}function R(a,b){if(a.eat("*")){b.tokenize=x(S);return null}if(a.match(l)){b.tokenize=S;return"slimTag"}return T(a,b)}function S(a,b){if(a.match(/^(<>?|>b.indented&&b.last!="slimSubmode"){b.line=b.tokenize=b.stack.tokenize;b.stack=b.stack.parent;b.subMode=null;b.subState=null}}if(a.eatSpace())return null;var c=b.tokenize(a,b);b.startOfLine=false;if(c)b.last=c;return h.hasOwnProperty(c)?h[c]:c},blankLine:function(a){if(a.subMode&&a.subMode.blankLine){return a.subMode.blankLine(a.subState)}},innerMode:function(a){if(a.subMode)return{state:a.subState,mode:a.subMode};return{state:a,mode:$}}};return $},"htmlmixed","ruby");a.defineMIME("text/x-slim","slim");a.defineMIME("application/x-slim","slim")}); //# sourceMappingURL=slim.min.js.map