define("ace/keyboard/emacs",["require","exports","module","ace/lib/dom","ace/keyboard/hash_handler","ace/lib/keys"],function(a,b,c){var d=a("../lib/dom"),e=function(a,b){var c=this.scroller.getBoundingClientRect(),e=Math.floor((a+this.scrollLeft-c.left-this.$padding-d.getPageScrollLeft())/this.characterWidth),f=Math.floor((b+this.scrollTop-c.top-d.getPageScrollTop())/this.lineHeight);return this.session.screenToDocumentPosition(f,e)},f=a("./hash_handler").HashHandler;b.handler=new f;var g=!1;b.handler.attach=function(a){g||(g=!0,d.importCssString(" .emacs-mode .ace_cursor{ border: 2px rgba(50,250,50,0.8) solid!important; -moz-box-sizing: border-box!important; box-sizing: border-box!important; background-color: rgba(0,250,0,0.9); opacity: 0.5; } .emacs-mode .ace_cursor.ace_hidden{ opacity: 1; background-color: transparent; } .emacs-mode .ace_cursor.ace_overwrite { opacity: 1; background-color: transparent; border-width: 0 0 2px 2px !important; } .emacs-mode .ace_text-layer { z-index: 4 } .emacs-mode .ace_cursor-layer { z-index: 2 }","emacsMode")),a.renderer.screenToTextCoordinates=e,a.setStyle("emacs-mode")},b.handler.detach=function(a){delete a.renderer.screenToTextCoordinates,a.unsetStyle("emacs-mode")};var h=a("../lib/keys").KEY_MODS,i={C:"ctrl",S:"shift",M:"alt"};["S-C-M","S-C","S-M","C-M","S","C","M"].forEach(function(a){var b=0;a.split("-").forEach(function(a){b|=h[i[a]]}),i[b]=a.toLowerCase()+"-"}),b.handler.bindKey=function(a,b){if(!a)return;var c=this.commmandKeyBinding;a.split("|").forEach(function(a){a=a.toLowerCase(),c[a]=b,a=a.split(" ")[0],c[a]||(c[a]="null")},this)},b.handler.handleKeyboard=function(a,b,c,d){if(b==-1&&a.count){var e=Array(a.count+1).join(c);return a.count=null,{command:"insertstring",args:e}}if(c=="\0")return;var f=i[b];if(f=="c-"||a.universalArgument){var g=parseInt(c[c.length-1]);if(g)return a.count=g,{command:"null"}}a.universalArgument=!1,f&&(c=f+c),a.keyChain&&(c=a.keyChain+=" "+c);var h=this.commmandKeyBinding[c];a.keyChain=h=="null"?c:"";if(!h)return;if(h=="null")return{command:"null"};if(h=="universalArgument")return a.universalArgument=!0,{command:"null"};if(typeof h!="string"){var j=h.args;h=h.command}typeof h=="string"&&(h=this.commands[h]||a.editor.commands.commands[h]),!h.readonly&&!h.isYank&&(a.lastCommand=null);if(a.count){var g=a.count;return a.count=0,{args:j,command:{exec:function(a,b){for(var c=0;c30&&this.$data.shift()},get:function(){return this.$data[this.$data.length-1]||""},pop:function(){return this.$data.length>1&&this.$data.pop(),this.get()},rotate:function(){return this.$data.unshift(this.$data.pop()),this.get()}}})