(function(n){typeof exports=="object"&&typeof module=="object"?n(require("../../lib/codemirror")):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],n):n(CodeMirror)})(function(n){function r(n,t){return t=="pairs"&&typeof n=="string"?n:typeof n=="object"&&n[t]!=null?n[t]:o[t]}function h(n){return function(t){return v(t,n)}}function e(n){var t=n.state.closeBrackets,i;return t?(i=n.getModeAt(n.getCursor()),i.closeBrackets||t):null}function c(i){var c=e(i),l,f,h,u,o;if(!c||i.getOption("disableInput"))return n.Pass;for(l=r(c,"pairs"),f=i.listSelections(),u=0;u=0;u--)o=f[u].head,i.replaceRange("",t(o.line,o.ch-1),t(o.line,o.ch+1),"+delete")}function l(t){var o=e(t),h=o&&r(o,"explode"),i,u,f;if(!h||t.getOption("disableInput"))return n.Pass;for(i=t.listSelections(),u=0;u0;return{anchor:new t(i.anchor.line,i.anchor.ch+(r?-1:1)),head:new t(i.head.line,i.head.ch+(r?1:-1))}}function v(i,u){var g=e(i),l,o,b,h,d;if(!g||i.getOption("disableInput")||(l=r(g,"pairs"),o=l.indexOf(u),o==-1))return n.Pass;var tt=r(g,"triples"),v=l.charAt(o+1)==u,it=i.listSelections(),nt=o%2==0,s;for(b=0;b=0&&i.getRange(f,t(f.line,f.ch+3))==u+u+u?"skipThree":"skip";else if(v&&f.ch>1&&tt.indexOf(u)>=0&&i.getRange(t(f.line,f.ch-2),f)==u+u&&(f.ch<=2||i.getRange(t(f.line,f.ch-3),t(f.line,f.ch-2))!=u))c="addFour";else if(v)if(!n.isWordChar(k)&&p(i,f,u))c="both";else return n.Pass;else if(nt&&(i.getLine(f.line).length==f.ch||y(k,l)||/\s/.test(k)))c="both";else return n.Pass;if(s){if(s!=c)return n.Pass}else s=c}h=o%2?l.charAt(o-1):u;d=o%2?u:l.charAt(o+1);i.operation(function(){var t,n;if(s=="skip")i.execCommand("goCharRight");else if(s=="skipThree")for(n=0;n<3;n++)i.execCommand("goCharRight");else if(s=="surround"){for(t=i.getSelections(),n=0;n-1&&i%2==1}function s(n,i){var r=n.getRange(t(i.line,i.ch-1),t(i.line,i.ch+1));return r.length==2?r:null}function p(t,i,r){var e=t.getLine(i.line),f=t.getTokenAt(i),u,o;if(/\bstring2?\b/.test(f.type))return!1;for(u=new n.StringStream(e.slice(0,i.ch)+r+e.slice(i.ch),4),u.pos=u.start=f.start;;){if(o=t.getMode().token(u,f.state),u.pos>=i.ch+1)return/\bstring2?\b/.test(o);u.start=u.pos}}function w(n,i){var r=n.getTokenAt(t(i.line,i.ch+1));return/\bstring/.test(r.type)&&r.start==i.ch}var o={pairs:"()[]{}''\"\"",triples:"",explode:"[]{}"},t=n.Pos,u,f,i;for(n.defineOption("autoCloseBrackets",!1,function(t,i,r){r&&r!=n.Init&&(t.removeKeyMap(f),t.state.closeBrackets=null);i&&(t.state.closeBrackets=i,t.addKeyMap(f))}),u=o.pairs+"`",f={Backspace:c,Enter:l},i=0;is.ch&&(c=c.slice(0,c.length-o.end+s.ch)),b=c.toLowerCase(),!c||o.type=="string"&&(o.end!=s.ch||!/[\"\']/.test(o.string.charAt(o.string.length-1))||o.string.length==1)||o.type=="tag"&&a.type=="closeTag"||o.string.indexOf("/")==o.string.length-1||g&&i(g,b)>-1||r(t,c,s,a,!0))return n.Pass;y=nt&&i(nt,b)>-1;p[e]={indent:y,text:">"+(y?"\n\n":"")+"<\/"+c+">",newPos:y?n.Pos(s.line+1,0):n.Pos(s.line,s.ch+1)}}for(e=h.length-1;e>=0;e--)l=p[e],t.replaceRange(l.text,h[e].head,h[e].anchor,"+insert"),k=t.listSelections().slice(0),k[e]={head:l.newPos,anchor:l.newPos},t.setSelections(k),l.indent&&(t.indentLine(l.newPos.line,null,!0),t.indentLine(l.newPos.line+1,null,!0))}function t(t,i){for(var s,f=t.listSelections(),a=[],l=i?"/":"<\/",u=0;u"&&(s+=">");a[u]=s}for(t.replaceSelections(a),f=t.listSelections(),u=0;u'"]=function(n){return e(n)});t.addKeyMap(u)}});var u=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],f=["applet","blockquote","body","button","div","dl","fieldset","form","frameset","h1","h2","h3","h4","h5","h6","head","html","iframe","layer","legend","object","ol","p","select","table","ul"];n.commands.closeTag=function(n){return t(n)}}),function(n){typeof exports=="object"&&typeof module=="object"?n(require("../../lib/codemirror")):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],n):n(CodeMirror)}(function(n){function r(t){var o,i,v,h,s,f,y,r,l,c,p,a,e;if(t.getOption("disableInput"))return n.Pass;for(o=t.listSelections(),v=[],h=0;h=l))if(f.string.indexOf(i.blockCommentStart)==0){if(r=c.slice(0,f.start),!/^\s*$/.test(r))for(r="",p=0;pf.start&&/^\s*$/.test(c.slice(0,e))&&(r=c.slice(0,e));r!=null&&(r+=i.blockCommentContinue)}if(r==null&&i.lineComment&&u(t)&&(a=t.getLine(s.line),e=a.indexOf(i.lineComment),e>-1&&(r=a.slice(0,e),/\S/.test(r)?r=null:r+=i.lineComment+a.slice(e+i.lineComment.length).match(/^\s*/)[0])),r==null)return n.Pass;v[h]="\n"+r}t.operation(function(){for(var n=o.length-1;n>=0;n--)t.replaceRange(v[n],o[n].from(),o[n].to(),"+insert")})}function u(n){var t=n.getOption("continueComments");return t&&typeof t=="object"?t.continueLineComment!==!1:!0}for(var i=["clike","css","javascript"],t=0;t=0&&r[l.text.charAt(o)]||r[l.text.charAt(++o)],h,a,s;return c?(h=c.charAt(1)==">"?1:-1,u&&h>0!=(o==i.ch))?null:(a=n.getTokenTypeAt(t(i.line,o+1)),s=f(n,t(i.line,o+(h>0?1:0)),h,a||null,e),s==null)?null:{from:t(i.line,o),to:s&&s.pos,match:s&&s.ch==c.charAt(0),forward:h>0}:null}function f(n,i,u,f,e){for(var h,s,v,c,y,p=e&&e.maxScanLineLength||1e4,a=e&&e.maxScanLines||1e3,l=[],w=e&&e.bracketRegex?e.bracketRegex:/[(){}[\]]/,b=u>0?Math.min(i.line+a,n.lastLine()+1):Math.max(n.firstLine()-1,i.line-a),o=i.line;o!=b;o+=u)if((h=n.getLine(o),h)&&(s=u>0?0:h.length-1,v=u>0?h.length:-1,!(h.length>p)))for(o==i.line&&(s=i.ch-(u<0?1:0));s!=v;s+=u)if(c=h.charAt(s),w.test(c)&&(f===undefined||n.getTokenTypeAt(t(o,s+1))==f))if(y=r[c],y.charAt(1)==">"==u>0)l.push(c);else if(l.length)l.pop();else return{pos:t(o,s),ch:c};return o-u==(u>0?n.lastLine():n.firstLine())?!1:null}function e(n,i,r){for(var f,c,l,a=n.state.matchBrackets.maxHighlightLineLength||1e3,e=[],h=n.listSelections(),o=0;o",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<"},i=null;n.defineOption("matchBrackets",!1,function(t,r,u){if(u&&u!=n.Init&&(t.off("cursorActivity",o),i&&(i(),i=null)),r){t.state.matchBrackets=typeof r=="object"?r:{};t.on("cursorActivity",o)}});n.defineExtension("matchBrackets",function(){e(this,!0)});n.defineExtension("findMatchingBracket",function(n,t,i){return u(this,n,t,i)});n.defineExtension("scanForBracket",function(n,t,i,r){return f(this,n,t,i,r)})}),function(n){typeof exports=="object"&&typeof module=="object"?n(require("../../lib/codemirror"),require("../fold/xml-fold")):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../fold/xml-fold"],n):n(CodeMirror)}(function(n){"use strict";function i(n){n.state.tagHit&&n.state.tagHit.clear();n.state.tagOther&&n.state.tagOther.clear();n.state.tagHit=n.state.tagOther=null}function t(t){t.state.failedTagMatch=!1;t.operation(function(){var f,u,r,e,o;(i(t),t.somethingSelected())||(f=t.getCursor(),u=t.getViewport(),u.from=Math.min(u.from,f.line),u.to=Math.max(f.line+1,u.to),r=n.findMatchingTag(t,f,u),r)&&(t.state.matchBothTags&&(e=r.at=="open"?r.open:r.close,e&&(t.state.tagHit=t.markText(e.from,e.to,{className:"CodeMirror-matchingtag"}))),o=r.at=="close"?r.open:r.close,o?t.state.tagOther=t.markText(o.from,o.to,{className:"CodeMirror-matchingtag"}):t.state.failedTagMatch=!0)})}function r(n){n.state.failedTagMatch&&t(n)}n.defineOption("matchTags",!1,function(u,f,e){if(e&&e!=n.Init&&(u.off("cursorActivity",t),u.off("viewportChange",r),i(u)),f){u.state.matchBothTags=typeof f=="object"&&f.bothTags;u.on("cursorActivity",t);u.on("viewportChange",r);t(u)}});n.commands.toMatchingTag=function(t){var i=n.findMatchingTag(t,t.getCursor()),r;i&&(r=i.at=="close"?i.open:i.close,r&&t.extendSelection(r.to,r.from))}}),function(n){typeof exports=="object"&&typeof module=="object"?n(require("../../lib/codemirror")):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],n):n(CodeMirror)}(function(n){n.defineOption("showTrailingSpace",!1,function(t,i,r){r==n.Init&&(r=!1);r&&!i?t.removeOverlay("trailingspace"):!r&&i&&t.addOverlay({token:function(n){for(var i=n.string.length,t=i;t&&/\s/.test(n.string.charAt(t-1));--t);return t>n.pos?(n.pos=t,null):(n.pos=i,"trailingspace")},name:"trailingspace"})})}),function(n){typeof exports=="object"&&typeof module=="object"?n(require("../../lib/codemirror")):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],n):n(CodeMirror)}(function(n){"use strict";function i(i,u,f,e){function a(n){var t=s(i,u),f,r;if(!t||t.to.line-t.from.linei.firstLine())u=n.Pos(u.line-1,0),o=a(!1);if(o&&!o.cleared&&e!=="unfold"){h=r(i,f);n.on(h,"mousedown",function(t){c.clear();n.e_preventDefault(t)});c=i.markText(o.from,o.to,{replacedWith:h,clearOnEnter:t(i,f,"clearOnEnter"),__isFold:!0});c.on("clear",function(t,r){n.signal(i,"unfold",i,t,r)});n.signal(i,"fold",i,o.from,o.to)}}function r(n,i){var r=t(n,i,"widget"),u;return typeof r=="string"&&(u=document.createTextNode(r),r=document.createElement("span"),r.appendChild(u),r.className="CodeMirror-foldmarker"),r}function t(n,t,i){if(t&&t[i]!==undefined)return t[i];var r=n.options.foldOptions;return r&&r[i]!==undefined?r[i]:u[i]}n.newFoldFunction=function(n,t){return function(r,u){i(r,u,{rangeFinder:n,widget:t})}};n.defineExtension("foldCode",function(n,t,r){i(this,n,t,r)});n.defineExtension("isFolded",function(n){for(var i=this.findMarksAt(n),t=0;t=h&&(c=o(u.indicatorOpen)));n.setGutterMarker(i,u.gutter,c);++f})}function f(n){var t=n.getViewport(),r=n.state.foldGutter;r&&(n.operation(function(){i(n,t.from,t.to)}),r.from=t.from,r.to=t.to)}function s(n,i,r){var o=n.state.foldGutter,u,f;o&&(u=o.options,r==u.gutter)&&(f=e(n,i),f?f.clear():n.foldCode(t(i,0),u.rangeFinder))}function r(n){var t=n.state.foldGutter,i;t&&(i=t.options,t.from=t.to=0,clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout(function(){f(n)},i.foldOnChangeTimeSpan||600))}function h(n){var t=n.state.foldGutter,r;t&&(r=t.options,clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout(function(){var r=n.getViewport();t.from==t.to||r.from-t.to>20||t.from-r.to>20?f(n):n.operation(function(){r.fromt.to&&(i(n,t.to,r.to),t.to=r.to)})},r.updateViewportTimeSpan||400))}function u(n,t){var u=n.state.foldGutter,r;u&&(r=t.line,r>=u.from&&rt.lastLine()||(r=t.getTokenAt(n.Pos(i,1)),/\S/.test(r.string)||(r=t.getTokenAt(n.Pos(i,r.end+1))),r.type!="keyword"||r.string!="import"))return null;for(u=i,e=Math.min(t.lastLine(),i+10);u<=e;++u)if(o=t.getLine(u),f=o.indexOf(";"),f!=-1)return{startCh:r.end,end:n.Pos(u,f)}}var r=i.line,e=u(r),s,f,o;if(!e||u(r-1)||(s=u(r-2))&&s.end.line==r-1)return null;for(f=e.end;;){if(o=u(f.line+1),o==null)break;f=o.end}return{from:t.clipPos(n.Pos(r,e.startCh+1)),to:f}});n.registerHelper("fold","include",function(t,i){function f(i){if(it.lastLine())return null;var r=t.getTokenAt(n.Pos(i,1));return/\S/.test(r.string)||(r=t.getTokenAt(n.Pos(i,r.end+1))),r.type=="meta"&&r.string.slice(0,8)=="#include"?r.start+8:void 0}var r=i.line,e=f(r),u,o;if(e==null||f(r-1)!=null)return null;for(u=r;;){if(o=f(u+1),o==null)break;++u}return{from:n.Pos(r,e+1),to:t.clipPos(n.Pos(u))}})}),function(n){typeof exports=="object"&&typeof module=="object"?n(require("../../lib/codemirror")):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],n):n(CodeMirror)}(function(n){"use strict";n.registerGlobalHelper("fold","comment",function(n){return n.blockCommentStart&&n.blockCommentEnd},function(t,i){var d=t.getModeAt(i),c=d.blockCommentStart,l=d.blockCommentEnd,u,a,v,s,y,r,b,g,p,k,e,o,f,h,w;if(c&&l){for(u=i.line,a=t.getLine(u),s=i.ch,y=0;;){if(r=s<=0?-1:a.lastIndexOf(c,s-1),r==-1){if(y==1)return;y=1;s=a.length;continue}if(y==1&&rl)u=r;else if(/\S/.test(e))break;if(u)return{from:n.Pos(i.line,f.length),to:n.Pos(u,t.getLine(u).length)}}})}),function(n){typeof exports=="object"&&typeof module=="object"?n(require("../../lib/codemirror")):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],n):n(CodeMirror)}(function(n){"use strict";function v(n,t){return n.line-t.line||n.ch-t.ch}function i(n,t,i,r){this.line=t;this.ch=i;this.cm=n;this.text=n.getLine(t);this.min=r?Math.max(r.from,n.firstLine()):n.firstLine();this.max=r?Math.min(r.to-1,n.lastLine()):n.lastLine()}function u(n,i){var r=n.cm.getTokenTypeAt(t(n.line,i));return r&&/\btag\b/.test(r)}function h(n){if(!(n.line>=n.max))return n.ch=0,n.text=n.cm.getLine(++n.line),!0}function c(n){if(!(n.line<=n.min))return n.text=n.cm.getLine(--n.line),n.ch=n.text.length,!0}function e(n){for(var t,i,r;;){if(t=n.text.indexOf(">",n.ch),t==-1)if(h(n))continue;else return;if(!u(n,t+1)){n.ch=t+1;continue}return i=n.text.lastIndexOf("/",t),r=i>-1&&!/\S/.test(n.text.slice(i+1,t)),n.ch=t+1,r?"selfClose":"regular"}}function o(n){for(var t,i;;){if(t=n.ch?n.text.lastIndexOf("<",n.ch-1):-1,t==-1)if(c(n))continue;else return;if(!u(n,t+1)){n.ch=t;continue}if(r.lastIndex=t,n.ch=t,i=r.exec(n.text),i&&i.index==t)return i}}function l(n){for(;;){r.lastIndex=n.ch;var t=r.exec(n.text);if(!t)if(h(n))continue;else return;if(!u(n,t.index+1)){n.ch=t.index+1;continue}return n.ch=t.index+t[0].length,t}}function p(n){for(var t,i,r;;){if(t=n.ch?n.text.lastIndexOf(">",n.ch-1):-1,t==-1)if(c(n))continue;else return;if(!u(n,t+1)){n.ch=t;continue}return i=n.text.lastIndexOf("/",t),r=i>-1&&!/\S/.test(n.text.slice(i+1,t)),n.ch=t+1,r?"selfClose":"regular"}}function f(n,i){for(var f=[],u;;){var r=l(n),o,s=n.line,h=n.ch-(r?r[0].length:0);if(!r||!(o=e(n)))return;if(o!="selfClose")if(r[1]){for(u=f.length-1;u>=0;--u)if(f[u]==r[2]){f.length=u;break}if(u<0&&(!i||i==r[2]))return{tag:r[2],from:t(s,h),to:t(n.line,n.ch)}}else f.push(r[2])}}function a(n,i){for(var f=[],e,u;;){if(e=p(n),!e)return;if(e=="selfClose"){o(n);continue}var s=n.line,h=n.ch,r=o(n);if(!r)return;if(r[1])f.push(r[2]);else{for(u=f.length-1;u>=0;--u)if(f[u]==r[2]){f.length=u;break}if(u<0&&(!i||i==r[2]))return{tag:r[2],from:t(n.line,n.ch),to:t(s,h)}}}}var t=n.Pos,s="A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",y=s+"-:.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040",r=new RegExp("<(/?)(["+s+"]["+y+"]*)","g");n.registerHelper("fold","xml",function(n,r){for(var u=new i(n,r.line,0),o,h,c,s;;){if(o=l(u),!o||u.line!=r.line||!(h=e(u)))return;if(!o[1]&&h!="selfClose")return c=t(u.line,u.ch),s=f(u,o[2]),s&&{from:c,to:s.from}}});n.findMatchingTag=function(n,r,u){var s=new i(n,r.line,r.ch,u),l;if(s.text.indexOf(">")!=-1||s.text.indexOf("<")!=-1){var c=e(s),y=c&&t(s.line,s.ch),h=c&&o(s);if(c&&h&&!(v(s,r)>0))return(l={from:t(s.line,s.ch),to:y,tag:h[2]},c=="selfClose")?{open:l,close:null,at:"open"}:h[1]?{open:a(s,h[2]),close:l,at:"close"}:(s=new i(n,y.line,y.ch,u),{open:l,close:f(s,h[2]),at:"open"})}};n.findEnclosingTag=function(n,t,r){for(var s=new i(n,t.line,t.ch,r),u,o,e;;){if(u=a(s),!u)break;if(o=new i(n,t.line,t.ch,r),e=f(o,u.tag),e)return{open:u,close:e}}};n.scanForClosingTag=function(n,t,r,u){var e=new i(n,t.line,t.ch,u?{from:0,to:u}:null);return f(e,r)}}),function(){CodeMirror.defineExtension("autoFormatAll",function(n,t){function v(){h+="\n";f=!0;++a}for(var i,r=this,u=r.getMode(),o=r.getRange(n,t).split("\n"),s=CodeMirror.copyState(u,r.getTokenAt(n).state),y=r.getOption("tabSize"),h="",a=0,f=n.ch==0,e=0;er&&(f+=e(t.substring(r,u[i].start)),r=u[i].start),u[i].start<=r&&u[i].end>=r&&(f+=t.substring(r,u[i].end),r=u[i].end);r",noBreak:!1,noBreakEmpty:null,tagType:"",tagName:"",isXML:!1,newlineAfterToken:function(n,t,i){var o="a|b|bdi|bdo|big|center|cite|del|em|font|i|img|ins|s|small|span|strike|strong|sub|sup|u",e="label|li|option|textarea|title|"+o,f=!1,r=null,u="",s;if(this.isXML=this.configuration=="xml"?!0:!1,n=="comment"||/