openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

haml.min.js (2410B)


      1 (function(e){if(typeof exports=='object'&&typeof module=='object')e(require('../../lib/codemirror'),require('../htmlmixed/htmlmixed'),require('../ruby/ruby'));else if(typeof define=='function'&&define.amd)define(['../../lib/codemirror','../htmlmixed/htmlmixed','../ruby/ruby'],e);else e(CodeMirror)})(function(e){'use strict';e.defineMode('haml',function(t){var r=e.getMode(t,{name:'htmlmixed'});var i=e.getMode(t,'ruby');function u(e){return function(t,i){var r=t.peek();if(r==e&&i.rubyState.tokenize.length==1){t.next();i.tokenize=o;return'closeAttributeTag'}
      2 else{return n(t,i)}}};function n(e,t){if(e.match('-#')){e.skipToEnd();return'comment'};return i.token(e,t.rubyState)};function o(t,e){var i=t.peek();if(e.previousToken.style=='comment'){if(e.indented>e.previousToken.indented){t.skipToEnd();return'commentLine'}};if(e.startOfLine){if(i=='!'&&t.match('!!')){t.skipToEnd();return'tag'}
      3 else if(t.match(/^%[\w:#\.]+=/)){e.tokenize=n;return'hamlTag'}
      4 else if(t.match(/^%[\w:]+/)){return'hamlTag'}
      5 else if(i=='/'){t.skipToEnd();return'comment'}};if(e.startOfLine||e.previousToken.style=='hamlTag'){if(i=='#'||i=='.'){t.match(/[\w-#\.]*/);return'hamlAttribute'}};if(e.startOfLine&&!t.match('-->',!1)&&(i=='='||i=='-')){e.tokenize=n;return e.tokenize(t,e)};if(e.previousToken.style=='hamlTag'||e.previousToken.style=='closeAttributeTag'||e.previousToken.style=='hamlAttribute'){if(i=='('){e.tokenize=u(')');return e.tokenize(t,e)}
      6 else if(i=='{'){if(!t.match(/^\{%.*/)){e.tokenize=u('}');return e.tokenize(t,e)}}};return r.token(t,e.htmlState)};return{startState:function(){var t=e.startState(r),n=e.startState(i);return{htmlState:t,rubyState:n,indented:0,previousToken:{style:null,indented:0},tokenize:o}},copyState:function(t){return{htmlState:e.copyState(r,t.htmlState),rubyState:e.copyState(i,t.rubyState),indented:t.indented,previousToken:t.previousToken,tokenize:t.tokenize}},token:function(e,t){if(e.sol()){t.indented=e.indentation();t.startOfLine=!0};if(e.eatSpace())return null;var i=t.tokenize(e,t);t.startOfLine=!1;if(i&&i!='commentLine'){t.previousToken={style:i,indented:t.indented}};if(e.eol()&&t.tokenize==n){e.backUp(1);var r=e.peek();e.next();if(r&&r!=','){t.tokenize=o}};if(i=='hamlTag'){i='tag'}
      7 else if(i=='commentLine'){i='comment'}
      8 else if(i=='hamlAttribute'){i='attribute'}
      9 else if(i=='closeAttributeTag'){i=null};return i}}},'htmlmixed','ruby');e.defineMIME('text/x-haml','haml')});