%PDF- %PDF-
| Direktori : /data/old/home/stash/atlassian-stash/static/bower/CodeMirror/mode/smartymixed/ |
| Current File : //data/old/home/stash/atlassian-stash/static/bower/CodeMirror/mode/smartymixed/smartymixed-min.js |
CodeMirror.defineMode("smartymixed",function(B){var E,D,F,C,G=CodeMirror.getMode(B,"htmlmixed"),A=CodeMirror.getMode(B,"smarty"),E={rightDelimiter:"}",leftDelimiter:"{"};if(B.hasOwnProperty("leftDelimiter")){E.leftDelimiter=B.leftDelimiter}if(B.hasOwnProperty("rightDelimiter")){E.rightDelimiter=B.rightDelimiter}D={smartyComment:new RegExp("^"+E.leftDelimiter+"\\*"),literalOpen:new RegExp(E.leftDelimiter+"literal"+E.rightDelimiter),literalClose:new RegExp(E.leftDelimiter+"/literal"+E.rightDelimiter),hasLeftDelimeter:new RegExp(".*"+E.leftDelimiter),htmlHasLeftDelimeter:new RegExp("[^<>]*"+E.leftDelimiter)};F={chain:function(I,H,J){H.tokenize=J;return J(I,H)},cleanChain:function(I,H,J){H.tokenize=null;H.localState=null;H.localMode=null;return(typeof J=="string")?(J?J:null):J(I,H)},maybeBackup:function(M,I,J){var L=M.current();var K=L.search(I),H;if(K>-1){M.backUp(L.length-K)}else{if(H=L.match(/<\/?$/)){M.backUp(L.length);if(!M.match(I,false)){M.match(L[0])}}}return J}};C={html:function(I,H){if(!H.inLiteral&&I.match(D.htmlHasLeftDelimeter,false)&&H.htmlMixedState.htmlState.tagName===null){H.tokenize=C.smarty;H.localMode=A;H.localState=A.startState(G.indent(H.htmlMixedState,""));return F.maybeBackup(I,E.leftDelimiter,A.token(I,H.localState))}else{if(!H.inLiteral&&I.match(E.leftDelimiter,false)){H.tokenize=C.smarty;H.localMode=A;H.localState=A.startState(G.indent(H.htmlMixedState,""));return F.maybeBackup(I,E.leftDelimiter,A.token(I,H.localState))}}return G.token(I,H.htmlMixedState)},smarty:function(I,H){if(I.match(E.leftDelimiter,false)){if(I.match(D.smartyComment,false)){return F.chain(I,H,C.inBlock("comment","*"+E.rightDelimiter))}}else{if(I.match(E.rightDelimiter,false)){I.eat(E.rightDelimiter);H.tokenize=C.html;H.localMode=G;H.localState=H.htmlMixedState;return"tag"}}return F.maybeBackup(I,E.rightDelimiter,A.token(I,H.localState))},inBlock:function(I,H){return function(K,J){while(!K.eol()){if(K.match(H)){F.cleanChain(K,J,"");break}K.next()}return I}}};return{startState:function(){var H=G.startState();return{token:C.html,localMode:null,localState:null,htmlMixedState:H,tokenize:null,inLiteral:false}},copyState:function(J){var I=null,H=(J.tokenize||J.token);if(J.localState){I=CodeMirror.copyState((H!=C.html?A:G),J.localState)}return{token:J.token,tokenize:J.tokenize,localMode:J.localMode,localState:I,htmlMixedState:CodeMirror.copyState(G,J.htmlMixedState),inLiteral:J.inLiteral}},token:function(J,I){if(J.match(E.leftDelimiter,false)){if(!I.inLiteral&&J.match(D.literalOpen,true)){I.inLiteral=true;return"keyword"}else{if(I.inLiteral&&J.match(D.literalClose,true)){I.inLiteral=false;return"keyword"}}}if(I.inLiteral&&I.localState!=I.htmlMixedState){I.tokenize=C.html;I.localMode=G;I.localState=I.htmlMixedState}var H=(I.tokenize||I.token)(J,I);return H},indent:function(I,H){if(I.localMode==A||(I.inLiteral&&!I.localMode)||D.hasLeftDelimeter.test(H)){return CodeMirror.Pass}return G.indent(I.htmlMixedState,H)},innerMode:function(H){return{state:H.localState||H.htmlMixedState,mode:H.localMode||G}}}},"htmlmixed");CodeMirror.defineMIME("text/x-smarty","smartymixed");