1(function(a){if(typeof exports=="object"&&typeof module=="object")a(require("../lib/codemirror"));else if(typeof define=="function"&&define.amd)define(["../lib/codemirror"],a);else a(CodeMirror)})(function(a){"use strict";var b=a.Pos;function c(a,b){return a.line==b.line&&a.ch==b.ch}var d=[];function e(a){d.push(a);if(d.length>50)d.shift()}function f(a){if(!d.length)return e(a);d[d.length-1]+=a}function g(a){return d[d.length-(a?Math.min(a,1):1)]||""}function h(){if(d.length>1)d.pop();return g()}var i=null;function j(a,b,d,g,h){if(h==null)h=a.getRange(b,d);if(g=="grow"&&i&&i.cm==a&&c(b,i.pos)&&a.isClean(i.gen))f(h);else if(g!==false)e(h);a.replaceRange("",b,d,"+delete");if(g=="grow")i={cm:a,pos:b,gen:a.changeGeneration()};else i=null}function k(a,b,c){return a.findPosH(b,c,"char",true)}function l(a,b,c){return a.findPosH(b,c,"word",true)}function m(a,b,c){return a.findPosV(b,c,"line",a.doc.sel.goalColumn)}function n(a,b,c){return a.findPosV(b,c,"page",a.doc.sel.goalColumn)}function o(a,c,d){var e=c.line,f=a.getLine(e);var g=/\S/.test(d<0?f.slice(0,c.ch):f.slice(c.ch));var h=a.firstLine(),i=a.lastLine();for(;;){e+=d;if(e<h||e>i)return a.clipPos(b(e-d,d<0?0:null));f=a.getLine(e);var j=/\S/.test(f);if(j)g=true;else if(g)return b(e,0)}}function p(a,c,d){var e=c.line,f=c.ch;var g=a.getLine(c.line),h=false;for(;;){var i=g.charAt(f+(d<0?-1:0));if(!i){if(e==(d<0?a.firstLine():a.lastLine()))return b(e,f);g=a.getLine(e+d);if(!/\S/.test(g))return b(e,f);e+=d;f=d<0?g.length:0;continue}if(h&&/[!?.]/.test(i))return b(e,f+(d>0?1:0));if(!h)h=/\w/.test(i);f+=d}}function q(a,d,e){var f;if(a.findMatchingBracket&&(f=a.findMatchingBracket(d,{strict:true}))&&f.match&&(f.forward?1:-1)==e)return e>0?b(f.to.line,f.to.ch+1):f.to;for(var g=true;;g=false){var h=a.getTokenAt(d);var i=b(d.line,e<0?h.start:h.end);if(g&&e>0&&h.end==d.ch||!/\w/.test(h.string)){var j=a.findPosH(i,e,"char");if(c(i,j))return d;else d=j}else{return i}}}function r(a,b){var c=a.state.emacsPrefix;if(!c)return b?null:1;A(a);return c=="-"?-1:Number(c)}function s(a){var b=typeof a=="string"?function(b){b.execCommand(a)}:a;return function(a){var c=r(a);b(a);for(var d=1;d<c;++d)b(a)}}function t(a,b,d,e){var f=r(a);if(f<0){e=-e;f=-f}for(var g=0;g<f;++g){var h=d(a,b,e);if(c(h,b))break;b=h}return b}function u(a,b){var c=function(c){c.extendSelection(t(c,c.getCursor(),a,b))};c.motion=true;return c}function v(a,b,c,d){var e=a.listSelections(),f;var g=e.length;while(g--){f=e[g].head;j(a,f,t(a,f,b,c),d)}}function w(a,b){if(a.somethingSelected()){var c=a.listSelections(),d;var e=c.length;while(e--){d=c[e];j(a,d.anchor,d.head,b)}return true}}function x(a,b){if(a.state.emacsPrefix){if(b!="-")a.state.emacsPrefix+=b;return}a.state.emacsPrefix=b;a.on("keyHandled",z);a.on("inputRead",B)}var y={"Alt-G":true,"Ctrl-X":true,"Ctrl-Q":true,"Ctrl-U":true};function z(a,b){if(!a.state.emacsPrefixMap&&!y.hasOwnProperty(b))A(a)}function A(a){a.state.emacsPrefix=null;a.off("keyHandled",z);a.off("inputRead",B)}function B(a,b){var c=r(a);if(c>1&&b.origin=="+input"){var d=b.text.join("\n"),e="";for(var f=1;f<c;++f)e+=d;a.replaceSelection(e)}}function C(a){a.state.emacsPrefixMap=true;a.addKeyMap(L);a.on("keyHandled",D);a.on("inputRead",D)}function D(a,b){if(typeof b=="string"&&(/^\d$/.test(b)||b=="Ctrl-U"))return;a.removeKeyMap(L);a.state.emacsPrefixMap=false;a.off("keyHandled",D);a.off("inputRead",D)}function E(a){a.setCursor(a.getCursor());a.setExtending(!a.getExtending());a.on("change",function(){a.setExtending(false)})}function F(a){a.setExtending(false);a.setCursor(a.getCursor())}function G(a,b,c){if(a.openDialog)a.openDialog(b+': <input type="text" style="width: 10em"/>',c,{bottom:true});else c(prompt(b,""))}function H(a,b){var c=a.getCursor(),d=a.findPosH(c,1,"word");a.replaceRange(b(a.getRange(c,d)),c,d);a.setCursor(d)}function I(a){var c=a.getCursor(),d=c.line,e=c.ch;var f=[];while(d>=a.firstLine()){var g=a.getLine(d);for(var h=e==null?g.length:e;h>0;){var e=g.charAt(--h);if(e==")")f.push("(");else if(e=="]")f.push("[");else if(e=="}")f.push("{");else if(/[\(\{\[]/.test(e)&&(!f.length||f.pop()!=e))return a.extendSelection(b(d,h))}--d;e=null}}function J(a){a.execCommand("clearSearch");F(a)}a.emacs={kill:j,killRegion:w,repeated:s};var K=a.keyMap.emacs=a.normalizeKeyMap({"Ctrl-W":function(a){j(a,a.getCursor("start"),a.getCursor("end"),true)},"Ctrl-K":s(function(a){var c=a.getCursor(),d=a.clipPos(b(c.line));var e=a.getRange(c,d);if(!/\S/.test(e)){e+="\n";d=b(c.line+1,0)}j(a,c,d,"grow",e)}),"Alt-W":function(a){e(a.getSelection());F(a)},"Ctrl-Y":function(a){var b=a.getCursor();a.replaceRange(g(r(a)),b,b,"paste");a.setSelection(b,a.getCursor())},"Alt-Y":function(a){a.replaceSelection(h(),"around","paste")},"Ctrl-Space":E,"Ctrl-Shift-2":E,"Ctrl-F":u(k,1),"Ctrl-B":u(k,-1),Right:u(k,1),Left:u(k,-1),"Ctrl-D":function(a){v(a,k,1,false)},Delete:function(a){w(a,false)||v(a,k,1,false)},"Ctrl-H":function(a){v(a,k,-1,false)},Backspace:function(a){w(a,false)||v(a,k,-1,false)},"Alt-F":u(l,1),"Alt-B":u(l,-1),"Alt-Right":u(l,1),"Alt-Left":u(l,-1),"Alt-D":function(a){v(a,l,1,"grow")},"Alt-Backspace":function(a){v(a,l,-1,"grow")},"Ctrl-N":u(m,1),"Ctrl-P":u(m,-1),Down:u(m,1),Up:u(m,-1),"Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd",End:"goLineEnd",Home:"goLineStart","Alt-V":u(n,-1),"Ctrl-V":u(n,1),PageUp:u(n,-1),PageDown:u(n,1),"Ctrl-Up":u(o,-1),"Ctrl-Down":u(o,1),"Alt-A":u(p,-1),"Alt-E":u(p,1),"Alt-K":function(a){v(a,p,1,"grow")},"Ctrl-Alt-K":function(a){v(a,q,1,"grow")},"Ctrl-Alt-Backspace":function(a){v(a,q,-1,"grow")},"Ctrl-Alt-F":u(q,1),"Ctrl-Alt-B":u(q,-1,"grow"),"Shift-Ctrl-Alt-2":function(a){var b=a.getCursor();a.setSelection(t(a,b,q,1),b)},"Ctrl-Alt-T":function(a){var b=q(a,a.getCursor(),-1),c=q(a,b,1);var d=q(a,c,1),e=q(a,d,-1);a.replaceRange(a.getRange(e,d)+a.getRange(c,e)+a.getRange(b,c),b,d)},"Ctrl-Alt-U":s(I),"Alt-Space":function(a){var c=a.getCursor(),d=c.ch,e=c.ch,f=a.getLine(c.line);while(d&&/\s/.test(f.charAt(d-1)))--d;while(e<f.length&&/\s/.test(f.charAt(e)))++e;a.replaceRange(" ",b(c.line,d),b(c.line,e))},"Ctrl-O":s(function(a){a.replaceSelection("\n","start")}),"Ctrl-T":s(function(a){a.execCommand("transposeChars")}),"Alt-C":s(function(a){H(a,function(a){var b=a.search(/\w/);if(b==-1)return a;return a.slice(0,b)+a.charAt(b).toUpperCase()+a.slice(b+1).toLowerCase()})}),"Alt-U":s(function(a){H(a,function(a){return a.toUpperCase()})}),"Alt-L":s(function(a){H(a,function(a){return a.toLowerCase()})}),"Alt-;":"toggleComment","Ctrl-/":s("undo"),"Shift-Ctrl--":s("undo"),"Ctrl-Z":s("undo"),"Cmd-Z":s("undo"),"Shift-Ctrl-Z":"redo","Shift-Alt-,":"goDocStart","Shift-Alt-.":"goDocEnd","Ctrl-S":"findPersistentNext","Ctrl-R":"findPersistentPrev","Ctrl-G":J,"Shift-Alt-5":"replace","Alt-/":"autocomplete",Enter:"newlineAndIndent","Ctrl-J":s(function(a){a.replaceSelection("\n","end")}),Tab:"indentAuto","Alt-G G":function(a){var b=r(a,true);if(b!=null&&b>0)return a.setCursor(b-1);G(a,"Goto line",function(b){var c;if(b&&!isNaN(c=Number(b))&&c==(c|0)&&c>0)a.setCursor(c-1)})},"Ctrl-X Tab":function(a){a.indentSelection(r(a,true)||a.getOption("indentUnit"))},"Ctrl-X Ctrl-X":function(a){a.setSelection(a.getCursor("head"),a.getCursor("anchor"))},"Ctrl-X Ctrl-S":"save","Ctrl-X Ctrl-W":"save","Ctrl-X S":"saveAll","Ctrl-X F":"open","Ctrl-X U":s("undo"),"Ctrl-X K":"close","Ctrl-X Delete":function(a){j(a,a.getCursor(),p(a,a.getCursor(),1),"grow")},"Ctrl-X H":"selectAll","Ctrl-Q Tab":s("insertTab"),"Ctrl-U":C,fallthrough:"default"});var L={"Ctrl-G":A};function M(a){L[a]=function(b){x(b,a)};K["Ctrl-"+a]=function(b){x(b,a)};y["Ctrl-"+a]=true}for(var N=0;N<10;++N)M(String(N));M("-")});
2//# sourceMappingURL=emacs.min.js.map