/** * * * @author Josh Lobe * http://ultimatetinymcepro.com * This is a culmination of various Codemirror addon scripts... minimized for use with WP. */ function style_html(e,t,n,r,i){function s(){this.pos=0;this.found_leading_whitespace=false;this.found_trailing_whitespace=false;this.token="";this.current_mode="CONTENT";this.tags={parent:"parent1",parentcount:1,parent1:""};this.tag_type="";this.token_text=this.last_token=this.last_tag_token=this.last_text=this.token_type="";this.Utils={whitespace:"\n\r ".split(""),inline_token:"a,abbr,acronym,b,bdo,big,br,button,cite,code,dfn,em,i,img,input,kbd,label,map,object,q,samp,script,select,small,span,strong,sub,sup,textarea,tt".split(","),single_token:"!doctype,?xml,area,base,basefont,br,embed,hr,img,input,isindex,link,meta,param,wbr".split(","),extra_liners:"body,head,/html".split(","),in_array:function(e,t){for(var n=0;n=this.input.length){return[t.join(""),"TK_EOF"]}e=this.input.charAt(this.pos);this.pos++;this.line_char_count++;if(this.Utils.in_array(e,this.Utils.whitespace)){if(t.length){n=true}else{this.found_leading_whitespace=true}this.line_char_count--;this.found_trailing_whitespace=true;continue}else if(n){if(this.line_char_count>=this.max_char){t.push("\n");for(var r=0;r","igm");r.lastIndex=this.pos;var i=r.exec(this.input);var s=i?i.index:this.input.length;var o=this.pos>=this.input.length;while(this.pos=this.input.length;t.push(e)}n=!t.length?"":js_beautify(t.join(""),{indent_size:this.indent_size,indent_char:this.indent_character,indent_level:this.indent_level,brace_style:this.brace_style});return[n,o?"TK_EOF":"TK_CONTENT"]};this.record_tag=function(e){if(this.tags[e+"count"]){this.tags[e+"count"]++;this.tags[e+this.tags[e+"count"]]=this.indent_level}else{this.tags[e+"count"]=1;this.tags[e+this.tags[e+"count"]]=this.indent_level}this.tags[e+this.tags[e+"count"]+"parent"]=this.tags.parent;this.tags.parent=e+this.tags[e+"count"]};this.retrieve_tag=function(e){if(this.tags[e+"count"]){var t=this.tags.parent;while(t){if(e+this.tags[e+"count"]===t){break}t=this.tags[t+"parent"]}if(t){this.indent_level=this.tags[e+this.tags[e+"count"]];this.tags.parent=this.tags[t+"parent"]}delete this.tags[e+this.tags[e+"count"]+"parent"];delete this.tags[e+this.tags[e+"count"]];if(this.tags[e+"count"]==1){delete this.tags[e+"count"]}else{this.tags[e+"count"]--}}};this.get_tag=function(){var e="";var t=[];var n=false;do{if(this.pos>=this.input.length){return[t.join(""),"TK_EOF"]}e=this.input.charAt(this.pos);this.pos++;this.line_char_count++;if(this.Utils.in_array(e,this.Utils.whitespace)){n=true;this.line_char_count--;continue}if(e==="'"||e==='"'){if(!t[1]||t[1]!=="!"){e+=this.get_unformatted(e);n=true}}if(t[t.length-1]==="<"||e==="="){n=false}if(n&&t.length&&t[t.length-1]!=="="&&e!==">"){if(this.line_char_count>=this.max_char){this.print_newline(false,t);this.line_char_count=0}else{t.push(" ");this.line_char_count++}n=false}t.push(e)}while(e!==">");var r=t.join("");var i;if(r.indexOf(" ")!=-1){i=r.indexOf(" ")}else{i=r.indexOf(">")}var s=r.substring(1,i).toLowerCase();if(r.charAt(r.length-2)==="/"||this.Utils.in_array(s,this.Utils.single_token)){this.tag_type="SINGLE"}else if(s==="script"){this.record_tag(s);this.tag_type="SCRIPT"}else if(s==="style"){this.record_tag(s);this.tag_type="STYLE"}else if(this.Utils.in_array(s,this.Utils.inline_token)){var o=this.get_unformatted("",r);t.push(o);this.tag_type="INLINE"}else if(s.charAt(0)==="!"){if(s.indexOf("[if")!=-1){if(r.indexOf("!IE")!=-1){var u=this.get_unformatted("-->",r);t.push(u)}this.tag_type="START"}else if(s.indexOf("[endif")!=-1){this.tag_type="END";this.unindent()}else if(s.indexOf("[cdata[")!=-1){var u=this.get_unformatted("]]>",r);t.push(u);this.tag_type="SINGLE"}else{var u=this.get_unformatted("-->",r);t.push(u);this.tag_type="SINGLE"}}else{if(s.charAt(0)==="/"){this.retrieve_tag(s.substring(1));this.tag_type="END"}else{this.record_tag(s);this.tag_type="START"}if(this.Utils.in_array(s,this.Utils.extra_liners)){this.print_newline(true,this.output)}}return[t.join(""),"TK_TAG_"+this.tag_type]};this.get_unformatted=function(e,t){if(t&&t.indexOf(e)!=-1){return""}var n="";var r="";var i=true;do{if(this.pos>=this.input.length){return r}n=this.input.charAt(this.pos);this.pos++;if(this.Utils.in_array(n,this.Utils.whitespace)){if(!i){this.line_char_count--;continue}if(n==="\n"||n==="\r"){r+="\n";for(var s=0;s0){this.indent_level--}}};return this}var s,o;var u=false;o=new s;o.printer(e,n,t,r,i);do{var a=o.get_token();o.token_text=a[0];o.token_type=a[1];switch(o.token_type){case"TK_TAG_START":case"TK_TAG_SCRIPT":case"TK_TAG_STYLE":o.print_newline(false,o.output);o.print_token(o.token_text);o.indent();o.current_mode="CONTENT";o.last_tag_token=o.token_type;break;case"TK_TAG_END":o.print_newline(true,o.output);o.print_token(o.token_text);o.current_mode="CONTENT";o.last_tag_token=o.token_type;break;case"TK_TAG_SINGLE":o.print_newline(false,o.output);o.print_token(o.token_text);o.current_mode="CONTENT";o.last_tag_token=o.token_type;break;case"TK_TAG_INLINE":if(u&&o.last_token==="TK_CONTENT"||!o.last_text&&o.last_tag_token!=="TK_TAG_INLINE"){o.print_newline(false,o.output)}o.print_token(o.token_text);o.current_mode="CONTENT";o.last_tag_token=o.token_type;break;case"TK_EOF":case"TK_CONTENT":if(o.token_text!==""){if(o.last_token==="TK_TAG_INLINE"){if(o.found_leading_whitespace){o.print_newline(false,o.output)}}else{o.print_newline(false,o.output)}o.print_token(o.token_text)}o.current_mode="TAG";break}o.last_token=o.token_type;o.last_text=o.token_text;u=o.found_trailing_whitespace;o.found_leading_whitespace=false;o.found_trailing_whitespace=false}while(o.token_type!=="TK_EOF");return o.output.join("")}CodeMirror.defineMode("htmlmixed",function(e,t){function a(e,t){var s=t.htmlState.tagName;var o=n.token(e,t.htmlState);if(s=="script"&&/\btag\b/.test(o)&&e.current()==">"){var u=e.string.slice(Math.max(0,e.pos-100),e.pos).match(/\btype\s*=\s*("[^"]+"|'[^']+'|\S+)[^<]*$/i);u=u?u[1]:"";if(u&&/[\"\']/.test(u.charAt(0)))u=u.slice(1,u.length-1);for(var a=0;a"){t.token=c;t.localMode=r;t.localState=r.startState(n.indent(t.htmlState,""))}return o}function f(e,t,n){var r=e.current();var i=r.search(t),s;if(i>-1)e.backUp(r.length-i);else if(s=r.match(/<\/?$/)){e.backUp(r.length);if(!e.match(t,false))e.match(r)}return n}function l(e,t){if(e.match(/^<\/\s*script\s*>/i,false)){t.token=a;t.localState=t.localMode=null;return a(e,t)}return f(e,/<\/\s*script\s*>/,t.localMode.token(e,t.localState))}function c(e,t){if(e.match(/^<\/\s*style\s*>/i,false)){t.token=a;t.localState=t.localMode=null;return a(e,t)}return f(e,/<\/\s*style\s*>/,r.token(e,t.localState))}var n=CodeMirror.getMode(e,{name:"xml",htmlMode:true});var r=CodeMirror.getMode(e,"css");var i=[],s=t&&t.scriptTypes;i.push({matches:/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^$/i,mode:CodeMirror.getMode(e,"javascript")});if(s)for(var o=0;o"));else return null}else if(e.match("--")){return n(p("comment","-->"))}else if(e.match("DOCTYPE",true,true)){e.eatWhile(/[\w\._\-]/);return n(d(1))}else{return null}}else if(e.eat("?")){e.eatWhile(/[\w\._\-]/);t.tokenize=p("meta","?>");return"meta"}else{var i=e.eat("/");u="";var s;while(s=e.eat(/[^\s\u00a0=<>\"\'\/?]/))u+=s;if(!u)return"tag error";a=i?"closeTag":"openTag";t.tokenize=c;return"tag"}}else if(r=="&"){var o;if(e.eat("#")){if(e.eat("x")){o=e.eatWhile(/[a-fA-F\d]/)&&e.eat(";")}else{o=e.eatWhile(/[\d]/)&&e.eat(";")}}else{o=e.eatWhile(/[\w\.\-:]/)&&e.eat(";")}return o?"atom":"error"}else{e.eatWhile(/[^&<]/);return null}}function c(e,t){var n=e.next();if(n==">"||n=="/"&&e.eat(">")){t.tokenize=l;a=n==">"?"endTag":"selfcloseTag";return"tag"}else if(n=="="){a="equals";return null}else if(n=="<"){t.tokenize=l;t.state=y;t.tagName=t.tagStart=null;var r=t.tokenize(e,t);return r?r+" error":"error"}else if(/[\'\"]/.test(n)){t.tokenize=h(n);t.stringStartCol=e.column();return t.tokenize(e,t)}else{e.eatWhile(/[^\s\u00a0=<>\"\']/);return"word"}}function h(e){var t=function(t,n){while(!t.eol()){if(t.next()==e){n.tokenize=c;break}}return"string"};t.isInAttribute=true;return t}function p(e,t){return function(n,r){while(!n.eol()){if(n.match(t)){r.tokenize=l;break}n.next()}return e}}function d(e){return function(t,n){var r;while((r=t.next())!=null){if(r=="<"){n.tokenize=d(e+1);return n.tokenize(t,n)}else if(r==">"){if(e==1){n.tokenize=l;break}else{n.tokenize=d(e-1);return n.tokenize(t,n)}}}return"meta"}}function v(e,t,n){this.prev=e.context;this.tagName=t;this.indent=e.indented;this.startOfLine=n;if(s.doNotIndent.hasOwnProperty(t)||e.context&&e.context.noIndent)this.noIndent=true}function m(e){if(e.context)e.context=e.context.prev}function g(e,t){var n;while(true){if(!e.context){return}n=e.context.tagName.toLowerCase();if(!s.contextGrabbers.hasOwnProperty(n)||!s.contextGrabbers[n].hasOwnProperty(t)){return}m(e)}}function y(e,t,n){if(e=="openTag"){n.tagName=u;n.tagStart=t.column();return E}else if(e=="closeTag"){var r=false;if(n.context){if(n.context.tagName!=u){if(s.implicitlyClosed.hasOwnProperty(n.context.tagName.toLowerCase()))m(n);r=!n.context||n.context.tagName!=u}}else{r=true}if(r)f="error";return r?w:b}else{return y}}function b(e,t,n){if(e!="endTag"){f="error";return b}m(n);return y}function w(e,t,n){f="error";return b(e,t,n)}function E(e,t,n){if(e=="word"){f="attribute";return S}else if(e=="endTag"||e=="selfcloseTag"){var r=n.tagName,i=n.tagStart;n.tagName=n.tagStart=null;if(e=="selfcloseTag"||s.autoSelfClosers.hasOwnProperty(r.toLowerCase())){g(n,r.toLowerCase())}else{g(n,r.toLowerCase());n.context=new v(n,r,i==n.indented)}return y}f="error";return E}function S(e,t,n){if(e=="equals")return x;if(!s.allowMissing)f="error";return E(e,t,n)}function x(e,t,n){if(e=="string")return T;if(e=="word"&&s.allowUnquoted){f="string";return E}f="error";return E(e,t,n)}function T(e,t,n){if(e=="string")return T;return E(e,t,n)}var n=e.indentUnit;var r=t.multilineTagIndentFactor||1;var i=t.multilineTagIndentPastTag;if(i==null)i=true;var s=t.htmlMode?{autoSelfClosers:{area:true,base:true,br:true,col:true,command:true,embed:true,frame:true,hr:true,img:true,input:true,keygen:true,link:true,meta:true,param:true,source:true,track:true,wbr:true},implicitlyClosed:{dd:true,li:true,optgroup:true,option:true,p:true,rp:true,rt:true,tbody:true,td:true,tfoot:true,th:true,tr:true},contextGrabbers:{dd:{dd:true,dt:true},dt:{dd:true,dt:true},li:{li:true},option:{option:true,optgroup:true},optgroup:{optgroup:true},p:{address:true,article:true,aside:true,blockquote:true,dir:true,div:true,dl:true,fieldset:true,footer:true,form:true,h1:true,h2:true,h3:true,h4:true,h5:true,h6:true,header:true,hgroup:true,hr:true,menu:true,nav:true,ol:true,p:true,pre:true,section:true,table:true,ul:true},rp:{rp:true,rt:true},rt:{rp:true,rt:true},tbody:{tbody:true,tfoot:true},td:{td:true,th:true},tfoot:{tbody:true},th:{td:true,th:true},thead:{tbody:true,tfoot:true},tr:{tr:true}},doNotIndent:{pre:true},allowUnquoted:true,allowMissing:true}:{autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:false,allowMissing:false};var o=t.alignCDATA;var u,a,f;return{startState:function(){return{tokenize:l,state:y,indented:0,tagName:null,tagStart:null,context:null}},token:function(e,t){if(!t.tagName&&e.sol())t.indented=e.indentation();if(e.eatSpace())return null;u=a=null;var n=t.tokenize(e,t);if((n||a)&&n!="comment"){f=null;t.state=t.state(a||n,e,t);if(f)n=f=="error"?n+" error":f}return n},indent:function(e,t,s){var u=e.context;if(e.tokenize.isInAttribute){return e.stringStartCol+1}if(u&&u.noIndent)return CodeMirror.Pass;if(e.tokenize!=c&&e.tokenize!=l)return s?s.match(/^(\s*)/)[0].length:0;if(e.tagName){if(i)return e.tagStart+e.tagName.length+2;else return e.tagStart+n*r}if(o&&/",configuration:t.htmlMode?"html":"xml",helperType:t.htmlMode?"html":"xml"}});CodeMirror.defineMIME("text/xml","xml");CodeMirror.defineMIME("application/xml","xml");if(!CodeMirror.mimeModes.hasOwnProperty("text/html"))CodeMirror.defineMIME("text/html",{name:"xml",htmlMode:true});(function(){"use strict";function n(n){if("activeLine"in n.state){n.removeLineClass(n.state.activeLine,"wrap",e);n.removeLineClass(n.state.activeLine,"background",t)}}function r(r,i){var s=r.getLineHandleVisualStart(i);if(r.state.activeLine==s)return;r.operation(function(){n(r);r.addLineClass(s,"wrap",e);r.addLineClass(s,"background",t);r.state.activeLine=s})}function i(e,t){r(e,t.head.line)}var e="CodeMirror-activeline";var t="CodeMirror-activeline-background";CodeMirror.defineOption("styleActiveLine",false,function(e,t,s){var o=s&&s!=CodeMirror.Init;if(t&&!o){r(e,e.getCursor().line);e.on("beforeSelectionChange",i)}else if(!t&&o){e.off("beforeSelectionChange",i);n(e);delete e.state.activeLine}})})();(function(){"use strict";function e(e){e.operation(function(){a(e)})}function t(e){if(e.state.markedSelection.length)e.operation(function(){o(e)})}function i(e,t){return e.line-t.line||e.ch-t.ch}function s(e,t,s,o){if(i(t,s)==0)return;var u=e.state.markedSelection;var a=e.state.markedSelectionStyle;for(var f=t.line;;){var l=f==t.line?t:r(f,0);var c=f+n,h=c>=s.line;var p=h?s:r(c,0);var d=e.markText(l,p,{className:a});if(o==null)u.push(d);else u.splice(o++,0,d);if(h)break;f=c}}function o(e){var t=e.state.markedSelection;for(var n=0;n=0||i(r,f.from)<=0)return u(e);while(i(t,f.from)>0){a.shift().clear();f=a[0].find()}if(i(t,f.from)<0){if(f.to.line-t.line0){if(r.line-l.from.line-1){l=n(a,f,l);return{from:e(s.line,l),to:e(s.line,l+o.length)}}}else{var a=t.getLine(s.line).slice(s.ch),f=u(a);var l=f.indexOf(r);if(l>-1){l=n(a,f,l)+s.ch;return{from:e(s.line,l),to:e(s.line,l+o.length)}}}}}}else{var f=o.split("\n");this.matches=function(n,r){var i=a.length-1;if(n){if(r.line-(a.length-1)=1;--l,--o)if(a[l]!=u(t.getLine(o)))return;var c=t.getLine(o),h=c.length-f[0].length;if(u(c.slice(h))!=a[0])return;return{from:e(o,h),to:s}}else{if(r.line+(a.length-1)>t.lastLine())return;var c=t.getLine(r.line),h=c.length-f[0].length;if(u(c.slice(h))!=a[0])return;var p=e(r.line,h);for(var o=r.line+1,l=1;ln)--r;else return r}}var e=CodeMirror.Pos;t.prototype={findNext:function(){return this.find(false)},findPrevious:function(){return this.find(true)},find:function(t){function i(t){var r=e(t,0);n.pos={from:r,to:r};n.atOccurrence=false;return false}var n=this,r=this.doc.clipPos(t?this.pos.from:this.pos.to);for(;;){if(this.pos=this.matches(t,r)){this.atOccurrence=true;return this.pos.match||true}if(t){if(!r.line)return i(0);r=e(r.line-1,this.doc.getLine(r.line-1).length)}else{var s=this.doc.lineCount();if(r.line==s-1)return i(s);r=e(r.line+1,0)}}},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(t){if(!this.atOccurrence)return;var n=CodeMirror.splitLines(t);this.doc.replaceRange(n,this.pos.from,this.pos.to);this.pos.to=e(this.pos.from.line+n.length-1,n[n.length-1].length+(n.length==1?this.pos.from.ch:0))}};CodeMirror.defineExtension("getSearchCursor",function(e,n,r){return new t(this.doc,e,n,r)});CodeMirror.defineDocExtension("getSearchCursor",function(e,n,r){return new t(this,e,n,r)})})();(function(){function r(r){if(typeof r=="object"){this.minChars=r.minChars;this.style=r.style;this.showToken=r.showToken;this.delay=r.delay}if(this.style==null)this.style=t;if(this.minChars==null)this.minChars=e;if(this.delay==null)this.delay=n;this.overlay=this.timeout=null}function i(e){var t=e.state.matchHighlighter;clearTimeout(t.timeout);t.timeout=setTimeout(function(){s(e)},t.delay)}function s(e){e.operation(function(){var t=e.state.matchHighlighter;if(t.overlay){e.removeOverlay(t.overlay);t.overlay=null}if(!e.somethingSelected()&&t.showToken){var n=t.showToken===true?/[\w$]/:t.showToken;var r=e.getCursor(),i=e.getLine(r.line),s=r.ch,o=s;while(s&&n.test(i.charAt(s-1)))--s;while(o=t.minChars)e.addOverlay(t.overlay=u(a,false,t.style))})}function o(e,t){return(!e.start||!t.test(e.string.charAt(e.start-1)))&&(e.pos==e.string.length||!t.test(e.string.charAt(e.pos)))}function u(e,t,n){return{token:function(r){if(r.match(e)&&(!t||o(r,t)))return n;r.next();r.skipTo(e.charAt(0))||r.skipToEnd()}}}var e=2;var t="matchhighlight";var n=100;CodeMirror.defineOption("highlightSelectionMatches",false,function(e,t,n){if(n&&n!=CodeMirror.Init){var o=e.state.matchHighlighter.overlay;if(o)e.removeOverlay(o);clearTimeout(e.state.matchHighlighter.timeout);e.state.matchHighlighter=null;e.off("cursorActivity",i)}if(t){e.state.matchHighlighter=new r(t);s(e);e.on("cursorActivity",i)}})})()