@liascript/editor 1.1.7--0.16.7 → 1.1.8--0.16.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +35 -0
- package/dist/Worker.c04a8a05.js +1 -0
- package/dist/ace.js +1 -1
- package/dist/ext-code_lens.js +1 -1
- package/dist/ext-inline_autocomplete.js +1 -1
- package/dist/ext-language_tools.js +1 -1
- package/dist/ext-modelist.js +1 -1
- package/dist/ext-options.js +1 -1
- package/dist/ext-prompt.js +1 -1
- package/dist/ext-settings_menu.js +1 -1
- package/dist/index.35802a0e.js +6 -0
- package/dist/index.45c7d25b.js +1 -0
- package/dist/index.78fa4e96.js +1 -0
- package/dist/index.7a6c2cd7.js +1 -0
- package/dist/{index.b598fbf1.css → index.a7f8120a.css} +1 -1
- package/dist/{index.a5e28e41.js → index.de102c9d.js} +1 -1
- package/dist/index.html +1 -1
- package/dist/katex.min.css +1 -1
- package/dist/keybinding-vim.js +1 -1
- package/dist/mode-basic.js +1 -0
- package/dist/mode-java.js +1 -1
- package/dist/mode-scala.js +1 -1
- package/dist/mode-vue.js +1 -1
- package/dist/mode-wollok.js +1 -1
- package/dist/snippets/basic.js +1 -0
- package/package.json +4 -4
- package/dist/Base.d8e1fc60.js +0 -1
- package/dist/Worker.12f8469e.js +0 -1
- package/dist/index.04ffda95.js +0 -1
- package/dist/index.11db52ff.js +0 -1
- package/dist/index.2aba4af3.js +0 -1
- package/dist/index.2fe8b0a8.js +0 -1
- package/dist/index.4ae92b65.js +0 -1
- package/dist/index.521670e0.js +0 -1
- package/dist/index.6108e64a.js +0 -1
- package/dist/index.8c310518.js +0 -1
- package/dist/index.93e7ade3.js +0 -1
- package/dist/index.a8c5f041.js +0 -6
- package/dist/index.b5bb4a4e.js +0 -34
- package/dist/index.ce81be0a.js +0 -1
- package/dist/index.e92897e0.js +0 -6
- package/dist/pako.esm.e6a51df7.js +0 -1
package/dist/keybinding-vim.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
ace.define("ace/ext/hardwrap",["require","exports","module","ace/range","ace/editor","ace/config"],(function(e,t,n){"use strict";function r(e,t){function n(e,t,n){if(!(e.length<t)){var r=e.slice(0,t),i=e.slice(t),o=/^(?:(\s+)|(\S+)(\s+))/.exec(i),a=/(?:(\s+)|(\s+)(\S+))$/.exec(r),s=0,l=0;return a&&!a[2]&&(s=t-a[1].length,l=t),o&&!o[2]&&(s||(s=t),l=t+o[1].length),s?{start:s,end:l}:a&&a[2]&&a.index>n?{start:a.index,end:a.index+a[2].length}:o&&o[2]?{start:s=t+o[2].length,end:s+o[3].length}:void 0}}for(var r=t.column||e.getOption("printMarginColumn"),i=0!=t.allowMerge,a=Math.min(t.startRow,t.endRow),s=Math.max(t.startRow,t.endRow),l=e.session;a<=s;){var c=l.getLine(a);if(c.length>r){if(d=n(c,r,5)){var u=/^\s*/.exec(c)[0];l.replace(new o(a,d.start,a,d.end),"\n"+u)}s++}else if(i&&/\S/.test(c)&&a!=s){var h=l.getLine(a+1);if(h&&/\S/.test(h)){var d,p=c.replace(/\s+$/,""),f=h.replace(/^\s+/,""),m=p+" "+f;if((d=n(m,r,5))&&d.start>p.length||m.length<r){var g=new o(a,p.length,a+1,h.length-f.length);l.replace(g," "),a--,s--}else p.length<c.length&&l.remove(new o(a,p.length,a,c.length))}}a++}}function i(e){if("insertstring"==e.command.name&&/\S/.test(e.args)){var t=e.editor,n=t.selection.cursor;if(n.column<=t.renderer.$printMarginColumn)return;var i=t.session.$undoManager.$lastDelta;r(t,{startRow:n.row,endRow:n.row,allowMerge:!1}),i!=t.session.$undoManager.$lastDelta&&t.session.markUndoGroup()}}var o=e("../range").Range,a=e("../editor").Editor;e("../config").defineOptions(a.prototype,"editor",{hardWrap:{set:function(e){e?this.commands.on("afterExec",i):this.commands.off("afterExec",i)},value:!1}}),t.hardWrap=r})),ace.define("ace/keyboard/vim",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/dom","ace/lib/oop","ace/lib/keys","ace/lib/event","ace/search","ace/lib/useragent","ace/search_highlight","ace/commands/multi_select_commands","ace/mode/text","ace/ext/hardwrap","ace/multi_select"],(function(e,t,n){"use strict";function r(e){return{row:e.line,column:e.ch}}function i(e){return new st(e.row,e.column)}function o(e,t,n){if(t.line===n.line&&t.ch>=n.ch-1){var r=e.getLine(t.line).charCodeAt(t.ch);55296<=r&&r<=55551&&(n.ch+=1)}return{start:t,end:n}}function a(e){e.setOption("disableInput",!0),e.setOption("showCursorWhenSelecting",!1),it.signal(e,"vim-mode-change",{mode:"normal"}),e.on("cursorActivity",Pe),k(e),it.on(e.getInputField(),"paste",l(e))}function s(e){e.setOption("disableInput",!1),e.off("cursorActivity",Pe),it.off(e.getInputField(),"paste",l(e)),e.state.vim=null,_t&&clearTimeout(_t)}function l(e){var t=e.state.vim;return t.onPasteFn||(t.onPasteFn=function(){t.insertMode||(e.setCursor(H(e.getCursor(),0,1)),It.enterInsertMode(e,{},t))}),t.onPasteFn}function c(e,t){return t>=e.firstLine()&&t<=e.lastLine()}function u(e){return/^[a-z]$/.test(e)}function h(e){return-1!="()[]{}".indexOf(e)}function d(e){return dt.test(e)}function p(e){return at.test(e)}function f(e){return/^\s*$/.test(e)}function m(e){return-1!=".?!".indexOf(e)}function g(e,t){for(var n=0;n<t.length;n++)if(t[n]==e)return!0;return!1}function v(e,t,n,r,i){if(void 0===t&&!i)throw Error("defaultValue is required unless callback is provided");if(n||(n="string"),yt[e]={type:n,defaultValue:t,callback:i},r)for(var o=0;o<r.length;o++)yt[r[o]]=yt[e];t&&y(e,t)}function y(e,t,n,r){var i=yt[e],o=(r=r||{}).scope;if(!i)return new Error("Unknown option: "+e);if("boolean"==i.type){if(t&&!0!==t)return new Error("Invalid argument: "+e+"="+t);!1!==t&&(t=!0)}i.callback?("local"!==o&&i.callback(t,void 0),"global"!==o&&n&&i.callback(t,n)):("local"!==o&&(i.value="boolean"==i.type?!!t:t),"global"!==o&&n&&(n.state.vim.options[e]={value:t}))}function C(e,t,n){var r=yt[e],i=(n=n||{}).scope;if(!r)return new Error("Unknown option: "+e);if(r.callback){var o=t&&r.callback(void 0,t);return"global"!==i&&void 0!==o?o:"local"!==i?r.callback():void 0}return((o="global"!==i&&t&&t.state.vim.options[e])||"local"!==i&&r||{}).value}function w(){this.latestRegister=void 0,this.isPlaying=!1,this.isRecording=!1,this.replaySearchQueries=[],this.onRecordingDone=void 0,this.lastInsertModeChanges=wt()}function k(e){return e.state.vim||(e.state.vim={inputState:new T,lastEditInputState:void 0,lastEditActionCommand:void 0,lastHPos:-1,lastHSPos:-1,lastMotion:null,marks:{},insertMode:!1,insertModeReturn:!1,insertModeRepeat:void 0,visualMode:!1,visualLine:!1,visualBlock:!1,lastSelection:null,lastPastedText:null,sel:{},options:{},expectLiteralNext:!1}),e.state.vim}function S(){for(var e in kt={searchQuery:null,searchIsReversed:!1,lastSubstituteReplacePart:void 0,jumpList:Ct(),macroModeState:new w,lastCharacterSearch:{increment:0,forward:!0,selectedCharacter:""},registerController:new B({}),searchHistoryController:new I,exCommandHistoryController:new I},yt){var t=yt[e];t.value=t.defaultValue}}function x(e){function t(e){"string"==typeof e?xt.value=e:xt=null}if("<"==e[0]){var n=e.toLowerCase().slice(1,-1),r=n.split("-");if("lt"==(n=r.pop()||""))e="<";else if("space"==n)e=" ";else if("cr"==n)e="\n";else if(Et[n]){var i=xt.value,o={key:Et[n],target:{value:i,selectionEnd:i.length,selectionStart:i.length}};return xt.onKeyDown&&xt.onKeyDown(o,xt.value,t),void(xt&&xt.onKeyUp&&xt.onKeyUp(o,xt.value,t))}}if("\n"==e){var a=xt;xt=null,a.onClose&&a.onClose(a.value)}else xt.value=(xt.value||"")+e}function M(e,t,n){var r=bt;if(n){if(-1!=At.indexOf(n))return;At.push(n),bt=0!=n.noremap}try{for(var i,o=k(e),a=/<(?:[CSMA]-)*\w+>|./gi;i=a.exec(t);){var s=i[0],l=o.insertMode;if(xt)x(s);else if(!Mt.handleKey(e,s,"mapping")&&l&&o.insertMode){if("<"==s[0]){var c=s.toLowerCase().slice(1,-1),u=c.split("-");if("lt"==(c=u.pop()||""))s="<";else if("space"==c)s=" ";else if("cr"==c)s="\n";else{if(Et.hasOwnProperty(c)){Ve(e,s=Et[c]);continue}s=s[0],a.lastIndex=i.index+1}}e.replaceSelection(s)}}}finally{if(At.pop(),bt=!!At.length&&r,!At.length&&xt){var h=xt;xt=null,Se(e,h)}}}function A(e,t){var n=e.key;if(!Tt[n]){n.length>1&&"n"==n[0]&&(n=n.replace("Numpad","")),n=Lt[n]||n;var r="";if(e.ctrlKey&&(r+="C-"),e.altKey&&(r+="A-"),e.metaKey&&(r+="M-"),it.isMac&&e.altKey&&!e.metaKey&&!e.ctrlKey&&(r=r.slice(2)),(r||n.length>1)&&e.shiftKey&&(r+="S-"),t&&!t.expectLiteralNext&&1==n.length)if(ht.keymap&&n in ht.keymap)0==ht.remapCtrl&&r||(n=ht.keymap[n]);else if(n.charCodeAt(0)>255){var i=e.code&&e.code.slice(-1)||"";e.shiftKey||(i=i.toLowerCase()),i&&(n=i)}return(r+=n).length>1&&(r="<"+r+">"),r}}function b(e,t){ht.string!==e&&(ht=L(e)),ht.remapCtrl=t}function L(e){function t(e){return e.split(/\\?(.)/).filter(Boolean)}var n={};return e?(e.split(/((?:[^\\,]|\\.)+),/).map((function(e){if(e){var r=e.split(/((?:[^\\;]|\\.)+);/);if(3==r.length){var i=t(r[1]),o=t(r[2]);if(i.length!==o.length)return;for(var a=0;a<i.length;++a)n[i[a]]=o[a]}else if(1==r.length){var s=t(e);if(s.length%2!=0)return;for(a=0;a<s.length;a+=2)n[s[a]]=s[a+1]}}})),{keymap:n,string:e}):{keymap:n,string:""}}function T(){this.prefixRepeat=[],this.motionRepeat=[],this.operator=null,this.operatorArgs=null,this.motion=null,this.motionArgs=null,this.keyBuffer=[],this.registerName=null,this.changeQueue=null}function E(e,t){e.state.vim.inputState=new T,e.state.vim.expectLiteralNext=!1,it.signal(e,"vim-command-done",t)}function O(){this.removed=[],this.inserted=""}function R(e,t,n){this.clear(),this.keyBuffer=[e||""],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!!t,this.blockwise=!!n}function B(e){this.registers=e,this.unnamedRegister=e['"']=new R,e["."]=new R,e[":"]=new R,e["/"]=new R,e["+"]=new R}function I(){this.historyBuffer=[],this.iterator=0,this.initialPrefix=null}function N(e,t){for(var n=[],r=0;r<t;r++)n.push(e);return n}function K(e,t,n){var r=e.state.vim,i=r.insertMode||r.visualMode,o=Math.min(Math.max(e.firstLine(),t.line),e.lastLine()),a=e.getLine(o),s=a.length-1+Number(!!i),l=Math.min(Math.max(0,t.ch),s),c=a.charCodeAt(l);if(56320<=c&&c<=57343){var u=1;n&&n.line==o&&n.ch>l&&(u=-1),(l+=u)>s&&(l-=2)}return new st(o,l)}function P(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function H(e,t,n){return"object"==typeof t&&(n=t.ch,t=t.line),new st(e.line+t,e.ch+n)}function _(e,t){var n="<character>"==t.slice(-11),r="<register>"==t.slice(-10);if(n||r){var i=t.length-(n?11:10),o=e.slice(0,i),a=t.slice(0,i);return o==a&&e.length>i?"full":0==a.indexOf(o)&&"partial"}return e==t?"full":0==t.indexOf(e)&&"partial"}function $(e,t,n){return function(){for(var r=0;r<n;r++)t(e)}}function D(e){return new st(e.line,e.ch)}function V(e,t){return e.ch==t.ch&&e.line==t.line}function W(e,t){return e.line<t.line||e.line==t.line&&e.ch<t.ch}function j(e,t){return arguments.length>2&&(t=j.apply(void 0,Array.prototype.slice.call(arguments,1))),W(e,t)?e:t}function F(e,t){return arguments.length>2&&(t=F.apply(void 0,Array.prototype.slice.call(arguments,1))),W(e,t)?t:e}function U(e,t,n){var r=W(e,t),i=W(t,n);return r&&i}function z(e,t){return e.getLine(t).length}function Q(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function q(e,t,n){var r=z(e,t),i=new Array(n-r+1).join(" ");e.setCursor(new st(t,r)),e.replaceRange(i,e.getCursor())}function J(e,t){var n=[],r=e.listSelections(),i=D(e.clipPos(t)),o=!V(t,i),a=function(e,t,n){for(var r=0;r<e.length;r++){var i="head"!=n&&V(e[r].anchor,t),o="anchor"!=n&&V(e[r].head,t);if(i||o)return r}return-1}(r,e.getCursor("head")),s=V(r[a].head,r[a].anchor),l=r.length-1,c=l-a>a?l:0,u=r[c].anchor,h=Math.min(u.line,i.line),d=Math.max(u.line,i.line),p=u.ch,f=i.ch,m=r[c].head.ch-p,g=f-p;m>0&&g<=0?(p++,o||f--):m<0&&g>=0?(p--,s||f++):m<0&&-1==g&&(p--,f++);for(var v=h;v<=d;v++){var y={anchor:new st(v,p),head:new st(v,f)};n.push(y)}return e.setSelections(n),t.ch=f,u.ch=p,u}function G(e,t,n){for(var r=[],i=0;i<n;i++){var o=H(t,i,0);r.push({anchor:o,head:o})}e.setSelections(r,0)}function X(e,t){var n=t.sel.anchor,r=t.sel.head;t.lastPastedText&&(r=e.posFromIndex(e.indexFromPos(n)+t.lastPastedText.length),t.lastPastedText=null),t.lastSelection={anchorMark:e.setBookmark(n),headMark:e.setBookmark(r),anchor:D(n),head:D(r),visualMode:t.visualMode,visualLine:t.visualLine,visualBlock:t.visualBlock}}function Z(e,t,n){var r=e.state.vim,i=Y(e,t=t||r.sel,n=n||r.visualLine?"line":r.visualBlock?"block":"char");e.setSelections(i.ranges,i.primary)}function Y(e,t,n,r){var i=D(t.head),o=D(t.anchor);if("char"==n){var a=r||W(t.head,t.anchor)?0:1,s=W(t.head,t.anchor)?1:0;return i=H(t.head,0,a),{ranges:[{anchor:o=H(t.anchor,0,s),head:i}],primary:0}}if("line"==n){if(W(t.head,t.anchor))i.ch=0,o.ch=z(e,o.line);else{o.ch=0;var l=e.lastLine();i.line>l&&(i.line=l),i.ch=z(e,i.line)}return{ranges:[{anchor:o,head:i}],primary:0}}if("block"==n){var c=Math.min(o.line,i.line),u=o.ch,h=Math.max(o.line,i.line),d=i.ch;u<d?d+=1:u+=1;for(var p=h-c+1,f=i.line==c?0:p-1,m=[],g=0;g<p;g++)m.push({anchor:new st(c+g,u),head:new st(c+g,d)});return{ranges:m,primary:f}}}function ee(e,t){var n=e.state.vim;!1!==t&&e.setCursor(K(e,n.sel.head)),X(e,n),n.visualMode=!1,n.visualLine=!1,n.visualBlock=!1,n.insertMode||it.signal(e,"vim-mode-change",{mode:"normal"})}function te(e){if(!e)return 0;var t=e.search(/\S/);return-1==t?e.length:t}function ne(e,t,n){var r,i=t.inclusive,o=t.innerWord,a=t.bigWord,s=t.noSymbol,l=t.multiline,c=n||function(e){var t=e.getCursor("head");return 1==e.getSelection().length&&(t=j(t,e.getCursor("anchor"))),t}(e),u=e.getLine(c.line),h=u,d=c.line,p=d,f=c.ch,m=s?pt[0]:ft[0];if(o&&/\s/.test(u.charAt(f)))m=function(e){return/\s/.test(e)};else{for(;!m(u.charAt(f));)if(++f>=u.length){if(!l)return null;f--,r=ae(e,c,!0,a,!0);break}a?m=ft[0]:(m=pt[0])(u.charAt(f))||(m=pt[1])}for(var g=f,v=f;m(u.charAt(v))&&v>=0;)v--;if(v++,r)g=r.to,p=r.line,!(h=e.getLine(p))&&0==g&&g++;else for(;m(u.charAt(g))&&g<u.length;)g++;if(i){var y=g,C=c.ch<=v&&/\s/.test(u.charAt(c.ch));if(!C)for(;/\s/.test(h.charAt(g))&&g<h.length;)g++;if(y==g||C){for(var w=v;/\s/.test(u.charAt(v-1))&&v>0;)v--;!v&&!C&&(v=w)}}return{start:new st(d,v),end:new st(p,g)}}function re(e,t,n){var r=t;if(!it.findMatchingTag||!it.findEnclosingTag)return{start:r,end:r};var i=it.findMatchingTag(e,t)||it.findEnclosingTag(e,t);return i&&i.open&&i.close?n?{start:i.open.from,end:i.close.to}:{start:i.open.to,end:i.close.from}:{start:r,end:r}}function ie(e,t,n){V(t,n)||kt.jumpList.add(e,t,n)}function oe(e,t){kt.lastCharacterSearch.increment=e,kt.lastCharacterSearch.forward=t.forward,kt.lastCharacterSearch.selectedCharacter=t.selectedCharacter}function ae(e,t,n,r,i){var o=t.line,a=t.ch,s=e.getLine(o),l=n?1:-1,u=r?ft:pt;if(i&&""==s){if(o+=l,s=e.getLine(o),!c(e,o))return null;a=n?0:s.length}for(;;){if(i&&""==s)return{from:0,to:0,line:o};for(var h=l>0?s.length:-1,d=h,p=h;a!=h;){for(var f=!1,m=0;m<u.length&&!f;++m)if(u[m](s.charAt(a))){for(d=a;a!=h&&u[m](s.charAt(a));)a+=l;if(f=d!=(p=a),d==t.ch&&o==t.line&&p==d+l)continue;return{from:Math.min(d,p+1),to:Math.max(d,p),line:o}}f||(a+=l)}if(!c(e,o+=l))return null;s=e.getLine(o),a=l>0?0:s.length}}function se(e,t,n,r,i){var o=new st(t.line+n.repeat-1,1/0),a=e.clipPos(o);return a.ch--,i||(r.lastHPos=1/0,r.lastHSPos=e.charCoords(a,"div").left),o}function le(e,t,n,r,i){for(var o,a=i||e.getCursor(),s=a.ch,l=0;l<t;l++){if(-1==(o=ue(s,e.getLine(a.line),r,n,!0)))return null;s=o}return new st(e.getCursor().line,o)}function ce(e,t,n,r){(g(n,mt)||vt.test(n))&&(t.marks[n]&&t.marks[n].clear(),t.marks[n]=e.setBookmark(r))}function ue(e,t,n,r,i){var o;return r?-1!=(o=t.indexOf(n,e+1))&&!i&&(o-=1):-1!=(o=t.lastIndexOf(n,e-1))&&!i&&(o+=1),o}function he(e,t,n,r,i){function o(t){return!/\S/.test(e.getLine(t))}function a(e,t,n){return n?o(e)!=o(e+t):!o(e)&&o(e+t)}function s(t){r=r>0?1:-1;var n=e.ace.session.getFoldLine(t);n&&t+r>n.start.row&&t+r<n.end.row&&(r=(r>0?n.end.row:n.start.row)-t)}var l,c=t.line,u=e.firstLine(),h=e.lastLine(),d=c;if(r){for(;u<=d&&d<=h&&n>0;)s(d),a(d,r)&&n--,d+=r;return new st(d,0)}var p=e.state.vim;if(p.visualLine&&a(c,1,!0)){var f=p.sel.anchor;a(f.line,-1,!0)&&(!i||f.line!=c)&&(c+=1)}var m=o(c);for(d=c;d<=h&&n;d++)a(d,1,!0)&&(!i||o(d)!=m)&&n--;for(l=new st(d,0),d>h&&!m?m=!0:i=!1,d=c;d>u&&(i&&o(d)!=m&&d!=c||!a(d,-1,!0));d--);return{start:new st(d,0),end:l}}function de(e,t,n,r,i){function o(e){e.pos+e.dir<0||e.pos+e.dir>=e.line.length?e.line=null:e.pos+=e.dir}function a(e,t,n,r){var a={line:e.getLine(t),ln:t,pos:n,dir:r};if(""===a.line)return{ln:a.ln,pos:a.pos};var s=a.pos;for(o(a);null!==a.line;){if(s=a.pos,m(a.line[a.pos])){if(!i)return{ln:a.ln,pos:a.pos+1};for(o(a);null!==a.line&&f(a.line[a.pos]);)s=a.pos,o(a);return{ln:a.ln,pos:s+1}}o(a)}return{ln:a.ln,pos:s+1}}function s(e,t,n,r){var a=e.getLine(t),s={line:a,ln:t,pos:n,dir:r};if(""===s.line)return{ln:s.ln,pos:s.pos};var l=s.pos;for(o(s);null!==s.line;){if(f(s.line[s.pos])||m(s.line[s.pos])){if(m(s.line[s.pos]))return i&&f(s.line[s.pos+1])?{ln:s.ln,pos:s.pos+1}:{ln:s.ln,pos:l}}else l=s.pos;o(s)}return s.line=a,i&&f(s.line[s.pos])?{ln:s.ln,pos:s.pos}:{ln:s.ln,pos:l}}for(var l={ln:t.line,pos:t.ch};n>0;)l=r<0?s(e,l.ln,l.pos,r):a(e,l.ln,l.pos,r),n--;return new st(l.ln,l.pos)}function pe(e,t,n,r){var i,o,a=t,s={"(":/[()]/,")":/[()]/,"[":/[[\]]/,"]":/[[\]]/,"{":/[{}]/,"}":/[{}]/,"<":/[<>]/,">":/[<>]/}[n],l={"(":"(",")":"(","[":"[","]":"[","{":"{","}":"{","<":"<",">":"<"}[n],c=e.getLine(a.line).charAt(a.ch)===l?1:0;if(i=e.scanForBracket(new st(a.line,a.ch+c),-1,void 0,{bracketRegex:s}),o=e.scanForBracket(new st(a.line,a.ch+c),1,void 0,{bracketRegex:s}),!i||!o)return null;if(i=i.pos,o=o.pos,i.line==o.line&&i.ch>o.ch||i.line>o.line){var u=i;i=o,o=u}return r?o.ch+=1:i.ch+=1,{start:i,end:o}}function fe(){}function me(e){var t=e.state.vim;return t.searchState_||(t.searchState_=new fe)}function ge(e,t){var n=ve(e,t)||[];if(!n.length)return[];var r=[];if(0===n[0]){for(var i=0;i<n.length;i++)"number"==typeof n[i]&&r.push(e.substring(n[i]+1,n[i+1]));return r}}function ve(e,t){t||(t="/");for(var n=!1,r=[],i=0;i<e.length;i++){var o=e.charAt(i);!n&&o==t&&r.push(i),n=!n&&"\\"==o}return r}function ye(e){for(var t=new it.StringStream(e),n=[];!t.eol();){for(;t.peek()&&"\\"!=t.peek();)n.push(t.next());var r=!1;for(var i in Ht)if(t.match(i,!0)){r=!0,n.push(Ht[i]);break}r||n.push(t.next())}return n.join("")}function Ce(e,t,n){if(kt.registerController.getRegister("/").setText(e),e instanceof RegExp)return e;var r,i,o=function(e){return ve(e,"/")}(e);o.length?(r=e.substring(0,o[0]),i=-1!=e.substring(o[0]).indexOf("i")):r=e;return r?(C("pcre")||(r=function(e){for(var t=!1,n=[],r=-1;r<e.length;r++){var i=e.charAt(r)||"",o=e.charAt(r+1)||"",a=o&&-1!="|(){".indexOf(o);t?(("\\"!==i||!a)&&n.push(i),t=!1):"\\"===i?(t=!0,o&&-1!="}".indexOf(o)&&(a=!0),(!a||"\\"===o)&&n.push(i)):(n.push(i),a&&"\\"!==o&&n.push("\\"))}return n.join("")}(r)),n&&(t=/^[^A-Z]*$/.test(r)),new RegExp(r,t||i?"im":"m")):null}function we(e){"string"==typeof e&&(e=document.createElement(e));for(var t,n=1;n<arguments.length;n++)if(t=arguments[n])if("object"!=typeof t&&(t=document.createTextNode(t)),t.nodeType)e.appendChild(t);else for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&("$"===r[0]?e.style[r.slice(1)]=t[r]:e.setAttribute(r,t[r]));return e}function ke(e,t){var n=we("div",{$color:"red",$whiteSpace:"pre",class:"cm-vim-message"},t);e.openNotification?e.openNotification(n,{bottom:!0,duration:5e3}):alert(n.innerText)}function Se(e,t){if(At.length)return t.value||(t.value=""),void(xt=t);var n=function(e,t){return we("div",{$display:"flex"},we("span",{$fontFamily:"monospace",$whiteSpace:"pre",$flex:1},e,we("input",{type:"text",autocorrect:"off",autocapitalize:"off",spellcheck:"false",$width:"100%"})),t&&we("span",{$color:"#888"},t))}(t.prefix,t.desc);if(e.openDialog)e.openDialog(n,t.onClose,{onKeyDown:t.onKeyDown,onKeyUp:t.onKeyUp,bottom:!0,selectValueOnOpen:!1,value:t.value});else{var r="";"string"!=typeof t.prefix&&t.prefix&&(r+=t.prefix.textContent),t.desc&&(r+=" "+t.desc),t.onClose(prompt(r,""))}}function xe(e,t,n,r){if(t){var i=me(e),o=Ce(t,!!n,!!r);if(o)return Me(e,o),function(e,t){if(e instanceof RegExp&&t instanceof RegExp){for(var n=["global","multiline","ignoreCase","source"],r=0;r<n.length;r++){var i=n[r];if(e[i]!==t[i])return!1}return!0}return!1}(o,i.getQuery())||i.setQuery(o),o}}function Me(e,t){clearTimeout(_t),me(e).highlightTimeout=_t,_t=setTimeout((function(){if(e.state.vim){var n=me(e);n.highlightTimeout=null;var r=n.getOverlay();r&&t==r.query||(r&&e.removeOverlay(r),r=function(e){if("^"==e.source.charAt(0))var t=!0;return{token:function(n){if(!t||n.sol()){var r=n.match(e,!1);if(r)return 0==r[0].length?(n.next(),"searching"):n.sol()||(n.backUp(1),e.exec(n.next()+r[0]))?(n.match(e),"searching"):(n.next(),null);for(;!n.eol()&&(n.next(),!n.match(e,!1)););}else n.skipToEnd()},query:e}}(t),e.addOverlay(r),e.showMatchesOnScrollbar&&(n.getScrollbarAnnotate()&&n.getScrollbarAnnotate().clear(),n.setScrollbarAnnotate(e.showMatchesOnScrollbar(t))),n.setOverlay(r))}}),50)}function Ae(e,t,n,r){return void 0===r&&(r=1),e.operation((function(){for(var i=e.getCursor(),o=e.getSearchCursor(n,i),a=0;a<r;a++){var s=o.find(t);if(0==a&&s&&V(o.from(),i)){var l=t?o.from():o.to();(s=o.find(t))&&!s[0]&&V(o.from(),l)&&e.getLine(l.line).length==l.ch&&(s=o.find(t))}if(!s&&!(o=e.getSearchCursor(n,t?new st(e.lastLine()):new st(e.firstLine(),0))).find(t))return}return o.from()}))}function be(e){var t=me(e);t.highlightTimeout&&(clearTimeout(t.highlightTimeout),t.highlightTimeout=null),e.removeOverlay(me(e).getOverlay()),t.setOverlay(null),t.getScrollbarAnnotate()&&(t.getScrollbarAnnotate().clear(),t.setScrollbarAnnotate(null))}function Le(e,t,n){return"number"!=typeof e&&(e=e.line),t instanceof Array?g(e,t):"number"==typeof n?e>=t&&e<=n:e==t}function Te(e){var t=e.ace.renderer;return{top:t.getFirstFullyVisibleRow(),bottom:t.getLastFullyVisibleRow()}}function Ee(e,t,n){if("'"==n||"`"==n)return kt.jumpList.find(e,-1)||new st(0,0);if("."==n)return Oe(e);var r=t.marks[n];return r&&r.find()}function Oe(e){if(e.getLastEditEnd)return e.getLastEditEnd();for(var t=e.doc.history.done,n=t.length;n--;)if(t[n].changes)return D(t[n].changes[0].to)}function Re(e,t,n,r,i,o,a,s,l){function c(){e.operation((function(){for(;!v;)u(),d();p()}))}function u(){var t=e.getRange(o.from(),o.to()).replace(a,s),n=o.to().line;o.replace(t),m=o.to().line,i+=m-n,g=m<n}function h(){var e=f&&D(o.to()),t=o.findNext();return t&&!t[0]&&e&&V(o.from(),e)&&(t=o.findNext()),t}function d(){for(;h()&&Le(o.from(),r,i);)if(n||o.from().line!=m||g)return e.scrollIntoView(o.from(),30),e.setSelection(o.from(),o.to()),f=o.from(),void(v=!1);v=!0}function p(t){if(t&&t(),e.focus(),f){e.setCursor(f);var n=e.state.vim;n.exMode=!1,n.lastHPos=n.lastHSPos=f.ch}l&&l()}e.state.vim.exMode=!0;var f,m,g,v=!1;if(d(),!v)return t?void Se(e,{prefix:we("span","replace with ",we("strong",s)," (y/n/a/q/l)"),onKeyDown:function(t,n,r){switch(it.e_stop(t),A(t)){case"y":u(),d();break;case"n":d();break;case"a":var i=l;l=void 0,e.operation(c),l=i;break;case"l":u();case"q":case"<Esc>":case"<C-c>":case"<C-[>":p(r)}return v&&p(r),!0}}):(c(),void(l&&l()));ke(e,"No matches for "+a.source)}function Be(e,t){var n=e.state.vim,r=kt.macroModeState,i=kt.registerController.getRegister("."),o=r.isPlaying,a=r.lastInsertModeChanges;o||(e.off("change",Ke),n.insertEnd&&n.insertEnd.clear(),n.insertEnd=null,it.off(e.getInputField(),"keydown",$e)),!o&&n.insertModeRepeat>1&&(De(e,n,n.insertModeRepeat-1,!0),n.lastEditInputState.repeatOverride=n.insertModeRepeat),delete n.insertModeRepeat,n.insertMode=!1,t||e.setCursor(e.getCursor().line,e.getCursor().ch-1),e.setOption("keyMap","vim"),e.setOption("disableInput",!0),e.toggleOverwrite(!1),i.setText(a.changes.join("")),it.signal(e,"vim-mode-change",{mode:"normal"}),r.isRecording&&function(e){if(e.isPlaying)return;var t=e.latestRegister,n=kt.registerController.getRegister(t);n&&n.pushInsertModeChanges&&n.pushInsertModeChanges(e.lastInsertModeChanges)}(r)}function Ie(e){lt.unshift(e)}function Ne(e,t,n,r){var i=kt.registerController.getRegister(r);if(":"==r)return i.keyBuffer[0]&&Vt.processCommand(e,i.keyBuffer[0]),void(n.isPlaying=!1);var o=i.keyBuffer,a=0;n.isPlaying=!0,n.replaySearchQueries=i.searchQueries.slice(0);for(var s=0;s<o.length;s++)for(var l,c,u=o[s];u;)if(c=(l=/<\w+-.+?>|<\w+>|./.exec(u))[0],u=u.substring(l.index+c.length),Mt.handleKey(e,c,"macro"),t.insertMode){var h=i.insertModeChanges[a++].changes;kt.macroModeState.lastInsertModeChanges.changes=h,We(e,h,1),Be(e)}n.isPlaying=!1}function Ke(e,t){var n=kt.macroModeState,r=n.lastInsertModeChanges;if(!n.isPlaying)for(var i=e.state.vim;t;){if(r.expectCursorActivityForChange=!0,r.ignoreCount>1)r.ignoreCount--;else if("+input"==t.origin||"paste"==t.origin||void 0===t.origin){var o=e.listSelections().length;o>1&&(r.ignoreCount=o);var a=t.text.join("\n");if(r.maybeReset&&(r.changes=[],r.maybeReset=!1),a)if(e.state.overwrite&&!/\n/.test(a))r.changes.push([a]);else{if(a.length>1){var s=i&&i.insertEnd&&i.insertEnd.find(),l=e.getCursor();if(s&&s.line==l.line){var c=s.ch-l.ch;c>0&&c<a.length&&(r.changes.push([a,c]),a="")}}a&&r.changes.push(a)}}t=t.next}}function Pe(e){var t=e.state.vim;if(t.insertMode){var n=kt.macroModeState;if(n.isPlaying)return;var r=n.lastInsertModeChanges;r.expectCursorActivityForChange?r.expectCursorActivityForChange=!1:(r.maybeReset=!0,t.insertEnd&&t.insertEnd.clear(),t.insertEnd=e.setBookmark(e.getCursor(),{insertLeft:!0}))}else e.curOp.isVimOp||He(e,t)}function He(e,t,n){var r=e.getCursor("anchor"),i=e.getCursor("head");if(t.visualMode&&!e.somethingSelected()?ee(e,!1):!t.visualMode&&!t.insertMode&&e.somethingSelected()&&(t.visualMode=!0,t.visualLine=!1,it.signal(e,"vim-mode-change",{mode:"visual"})),t.visualMode){var o=W(i,r)?0:-1,a=W(i,r)?-1:0;i=H(i,0,o),r=H(r,0,a),t.sel={anchor:r,head:i},ce(e,t,"<",j(i,r)),ce(e,t,">",F(i,r))}else!t.insertMode&&!n&&(t.lastHPos=e.getCursor().ch)}function _e(e,t){this.keyName=e,this.key=t.key,this.ctrlKey=t.ctrlKey,this.altKey=t.altKey,this.metaKey=t.metaKey,this.shiftKey=t.shiftKey}function $e(e){var t=kt.macroModeState.lastInsertModeChanges,n=it.keyName?it.keyName(e):e.key;n&&(-1==n.indexOf("Delete")&&-1==n.indexOf("Backspace")||(t.maybeReset&&(t.changes=[],t.maybeReset=!1),t.changes.push(new _e(n,e))))}function De(e,t,n,r){function i(){s?Ot.processAction(e,t,t.lastEditActionCommand):Ot.evalInput(e,t)}function o(n){if(a.lastInsertModeChanges.changes.length>0){n=t.lastEditActionCommand?n:1;var r=a.lastInsertModeChanges;We(e,r.changes,n)}}var a=kt.macroModeState;a.isPlaying=!0;var s=!!t.lastEditActionCommand,l=t.inputState;if(t.inputState=t.lastEditInputState,s&&t.lastEditActionCommand.interlaceInsertRepeat)for(var c=0;c<n;c++)i(),o(1);else r||i(),o(n);t.inputState=l,t.insertMode&&!r&&Be(e),a.isPlaying=!1}function Ve(e,t){it.lookupKey(t,"vim-insert",(function(t){return"string"==typeof t?it.commands[t](e):t(e),!0}))}function We(e,t,n){var r=e.getCursor("head"),i=kt.macroModeState.lastInsertModeChanges.visualBlock;i&&(G(e,r,i+1),n=e.listSelections().length,e.setCursor(r));for(var o=0;o<n;o++){i&&e.setCursor(H(r,o,0));for(var a=0;a<t.length;a++){var s=t[a];if(s instanceof _e)Ve(e,s.keyName);else if("string"==typeof s)e.replaceSelection(s);else{var l=e.getCursor(),c=H(l,0,s[0].length-(s[1]||0));e.replaceRange(s[0],l,s[1]?l:c),e.setCursor(c)}}}i&&e.setCursor(H(r,0,1))}function je(e){var t=new e.constructor;return Object.keys(e).forEach((function(n){if("insertEnd"!=n){var r=e[n];Array.isArray(r)?r=r.slice():r&&"object"==typeof r&&r.constructor!=Object&&(r=je(r)),t[n]=r}})),e.sel&&(t.sel={head:e.sel.head&&D(e.sel.head),anchor:e.sel.anchor&&D(e.sel.anchor)}),t}function Fe(e,t,n){var r=!1,i=Mt.maybeInitVimState_(e),o=i.visualBlock||i.wasInVisualBlock,a=e.ace.inMultiSelectMode;if(i.wasInVisualBlock&&!a?i.wasInVisualBlock=!1:a&&i.visualBlock&&(i.wasInVisualBlock=!0),"<Esc>"!=t||i.insertMode||i.visualMode||!a)if(o||!a||e.ace.inVirtualSelectionMode)r=Mt.handleKey(e,t,n);else{var s=je(i),l=i.inputState.changeQueueList||[];e.operation((function(){e.curOp.isVimOp=!0;var o=0;e.ace.forEachSelection((function(){var i=e.ace.selection;e.state.vim.lastHPos=null==i.$desiredColumn?i.lead.column:i.$desiredColumn,e.state.vim.inputState.changeQueue=l[o];var a=e.getCursor("head"),c=e.getCursor("anchor"),u=W(a,c)?0:-1,h=W(a,c)?-1:0;a=H(a,0,u),c=H(c,0,h),e.state.vim.sel.head=a,e.state.vim.sel.anchor=c,r=jt(e,t,n),i.$desiredColumn=-1==e.state.vim.lastHPos?null:e.state.vim.lastHPos,e.ace.inVirtualSelectionMode&&(l[o]=e.state.vim.inputState.changeQueue),e.virtualSelectionMode()&&(e.state.vim=je(s)),o++})),e.curOp.cursorActivity&&!r&&(e.curOp.cursorActivity=!1),i.status=e.state.vim.status,e.state.vim=i,i.inputState.changeQueueList=l,i.inputState.changeQueue=null}),!0)}else e.ace.exitMultiSelectMode();return r&&!i.visualMode&&!i.insert&&i.visualMode!=e.somethingSelected()&&He(e,i,!0),r}function Ue(e,t){t.off("beforeEndOperation",Ue);var n=t.state.cm.vimCmd;n&&t.execCommand(n.exec?n:n.name,n.args),t.curOp=t.prevOp}var ze=e("../range").Range,Qe=e("../lib/event_emitter").EventEmitter,qe=e("../lib/dom"),Je=e("../lib/oop"),Ge=e("../lib/keys"),Xe=e("../lib/event"),Ze=e("../search").Search,Ye=e("../lib/useragent"),et=e("../search_highlight").SearchHighlight,tt=e("../commands/multi_select_commands"),nt=e("../mode/text").Mode.prototype.tokenRe,rt=e("../ext/hardwrap").hardWrap;e("../multi_select");var it=function(e){this.ace=e,this.state={},this.marks={},this.options={},this.$uid=0,this.onChange=this.onChange.bind(this),this.onSelectionChange=this.onSelectionChange.bind(this),this.onBeforeEndOperation=this.onBeforeEndOperation.bind(this),this.ace.on("change",this.onChange),this.ace.on("changeSelection",this.onSelectionChange),this.ace.on("beforeEndOperation",this.onBeforeEndOperation)};it.Pos=function(e,t){if(!(this instanceof st))return new st(e,t);this.line=e,this.ch=t},it.defineOption=function(e,t,n){},it.commands={redo:function(e){e.ace.redo()},undo:function(e){e.ace.undo()},newlineAndIndent:function(e){e.ace.insert("\n")},goLineLeft:function(e){e.ace.selection.moveCursorLineStart()},goLineRight:function(e){e.ace.selection.moveCursorLineEnd()}},it.keyMap={},it.addClass=it.rmClass=function(){},it.e_stop=it.e_preventDefault=Xe.stopEvent,it.keyName=function(e){var t=Ge[e.keyCode]||e.key||"";return 1==t.length&&(t=t.toUpperCase()),t=Xe.getModifierString(e).replace(/(^|-)\w/g,(function(e){return e.toUpperCase()}))+t,t},it.keyMap.default=function(e){return function(t){var n=t.ace.commands.commandKeyBinding[e.toLowerCase()];return n&&!1!==t.ace.execCommand(n)}},it.lookupKey=function e(t,n,r){n||(n="default"),"string"==typeof n&&(n=it.keyMap[n]||it.keyMap.default);var i="function"==typeof n?n(t):n[t];if(!1===i)return"nothing";if("..."===i)return"multi";if(null!=i&&r(i))return"handled";if(n.fallthrough){if(!Array.isArray(n.fallthrough))return e(t,n.fallthrough,r);for(var o=0;o<n.fallthrough.length;o++){var a=e(t,n.fallthrough[o],r);if(a)return a}}},it.findMatchingTag=function(e,t){return e.findMatchingTag(t)},it.findEnclosingTag=function(e,t){},it.signal=function(e,t,n){return e._signal(t,n)},it.on=Xe.addListener,it.off=Xe.removeListener,it.isWordChar=function(e){return e<""?/^\w$/.test(e):(nt.lastIndex=0,nt.test(e))},function(){Je.implement(it.prototype,Qe),this.destroy=function(){this.ace.off("change",this.onChange),this.ace.off("changeSelection",this.onSelectionChange),this.ace.off("beforeEndOperation",this.onBeforeEndOperation),this.removeOverlay()},this.virtualSelectionMode=function(){return this.ace.inVirtualSelectionMode&&this.ace.selection.index},this.onChange=function(e){this.$lineHandleChanges&&this.$lineHandleChanges.push(e);var t={text:"i"==e.action[0]?e.lines:[]},n=this.curOp=this.curOp||{};n.changeHandlers||(n.changeHandlers=this._eventRegistry.change&&this._eventRegistry.change.slice()),n.lastChange?n.lastChange.next=n.lastChange=t:n.lastChange=n.change=t,this.$updateMarkers(e)},this.onSelectionChange=function(){var e=this.curOp=this.curOp||{};e.cursorActivityHandlers||(e.cursorActivityHandlers=this._eventRegistry.cursorActivity&&this._eventRegistry.cursorActivity.slice()),this.curOp.cursorActivity=!0,this.ace.inMultiSelectMode&&this.ace.keyBinding.removeKeyboardHandler(tt.keyboardHandler)},this.operation=function(e,t){if(!t&&this.curOp||t&&this.curOp&&this.curOp.force)return e();if((t||!this.ace.curOp)&&this.curOp&&this.onBeforeEndOperation(),!this.ace.curOp){var n=this.ace.prevOp;this.ace.startOperation({command:{name:"vim",scrollIntoView:"cursor"}})}var r=this.curOp=this.curOp||{};this.curOp.force=t;var i=e();return this.ace.curOp&&"vim"==this.ace.curOp.command.name&&(this.state.dialog&&(this.ace.curOp.command.scrollIntoView=this.ace.curOp.vimDialogScroll),this.ace.endOperation(),!r.cursorActivity&&!r.lastChange&&n&&(this.ace.prevOp=n)),(t||!this.ace.curOp)&&this.curOp&&this.onBeforeEndOperation(),i},this.onBeforeEndOperation=function(){var e=this.curOp;e&&(e.change&&this.signal("change",e.change,e),e&&e.cursorActivity&&this.signal("cursorActivity",null,e),this.curOp=null)},this.signal=function(e,t,n){var r=n?n[e+"Handlers"]:(this._eventRegistry||{})[e];if(r){r=r.slice();for(var i=0;i<r.length;i++)r[i](this,t)}},this.firstLine=function(){return 0},this.lastLine=function(){return this.ace.session.getLength()-1},this.lineCount=function(){return this.ace.session.getLength()},this.setCursor=function(e,t){"object"==typeof e&&(t=e.ch,e=e.line);var n=!this.curOp&&!this.ace.inVirtualSelectionMode;this.ace.inVirtualSelectionMode||this.ace.exitMultiSelectMode(),this.ace.session.unfold({row:e,column:t}),this.ace.selection.moveTo(e,t),n&&(this.ace.renderer.scrollCursorIntoView(),this.ace.endOperation())},this.getCursor=function(e){var t=this.ace.selection;return i("anchor"==e?t.isEmpty()?t.lead:t.anchor:"head"!=e&&e?t.getRange()[e]:t.lead)},this.listSelections=function(e){var t=this.ace.multiSelect.rangeList.ranges;return!t.length||this.ace.inVirtualSelectionMode?[{anchor:this.getCursor("anchor"),head:this.getCursor("head")}]:t.map((function(e){return{anchor:this.clipPos(i(e.cursor==e.end?e.start:e.end)),head:this.clipPos(i(e.cursor))}}),this)},this.setSelections=function(e,t){var n=this.ace.multiSelect,i=e.map((function(e){var t=r(e.anchor),n=r(e.head),i=ze.comparePoints(t,n)<0?new ze.fromPoints(t,n):new ze.fromPoints(n,t);return i.cursor=ze.comparePoints(i.start,n)?i.end:i.start,i}));if(this.ace.inVirtualSelectionMode)this.ace.selection.fromOrientedRange(i[0]);else{t?i[t]&&i.push(i.splice(t,1)[0]):i=i.reverse(),n.toSingleRange(i[0].clone());for(var o=this.ace.session,a=0;a<i.length;a++){var s=o.$clipRangeToDocument(i[a]);n.addRange(s)}}},this.setSelection=function(e,t,n){var r=this.ace.selection;r.moveTo(e.line,e.ch),r.selectTo(t.line,t.ch),n&&"*mouse"==n.origin&&this.onBeforeEndOperation()},this.somethingSelected=function(e){return!this.ace.selection.isEmpty()},this.clipPos=function(e){return i(this.ace.session.$clipPositionToDocument(e.line,e.ch))},this.foldCode=function(e){this.ace.session.$toggleFoldWidget(e.line,{})},this.markText=function(e){return{clear:function(){},find:function(){}}},this.$updateMarkers=function(e){var t="insert"==e.action,n=e.start,r=e.end,i=(r.row-n.row)*(t?1:-1),o=(r.column-n.column)*(t?1:-1);for(var a in t&&(r=n),this.marks){var s=this.marks[a],l=ze.comparePoints(s,n);if(!(l<0)){if(0===l&&t)if(s.$insertRight){if(1!=s.bias){s.bias=-1;continue}l=1}else l=1;var c=t?l:ze.comparePoints(s,r);c>0?(s.row+=i,s.column+=s.row==r.row?o:0):!t&&c<=0&&(s.row=n.row,s.column=n.column,0===c&&(s.bias=1))}}};var e=function(e,t,n,r){this.cm=e,this.id=t,this.row=n,this.column=r,e.marks[this.id]=this};e.prototype.clear=function(){delete this.cm.marks[this.id]},e.prototype.find=function(){return i(this)},this.setBookmark=function(t,n){var r=new e(this,this.$uid++,t.line,t.ch);return n&&n.insertLeft||(r.$insertRight=!0),this.marks[r.id]=r,r},this.moveH=function(e,t){if("char"==t){var n=this.ace.selection;n.clearSelection(),n.moveCursorBy(0,e)}},this.findPosV=function(e,t,n,r){if("page"==n){var o=this.ace.renderer.layerConfig;t*=Math.floor(o.height/o.lineHeight),n="line"}if("line"==n){var a=this.ace.session.documentToScreenPosition(e.line,e.ch);return null!=r&&(a.column=r),a.row+=t,a.row=Math.min(Math.max(0,a.row),this.ace.session.getScreenLength()-1),i(this.ace.session.screenToDocumentPosition(a.row,a.column))}},this.charCoords=function(e,t){if("div"==t||!t)return{left:(r=this.ace.session.documentToScreenPosition(e.line,e.ch)).column,top:r.row};if("local"==t){var n=this.ace.renderer,r=this.ace.session.documentToScreenPosition(e.line,e.ch),i=n.layerConfig.lineHeight,o=n.layerConfig.characterWidth,a=i*r.row;return{left:r.column*o,top:a,bottom:a+i}}},this.coordsChar=function(e,t){var n=this.ace.renderer;if("local"==t){var r=Math.max(0,Math.floor(e.top/n.lineHeight)),o=Math.max(0,Math.floor(e.left/n.characterWidth));return i(n.session.screenToDocumentPosition(r,o))}if("div"==t)throw"not implemented"},this.getSearchCursor=function(e,t,n){var r=!1,o=!1;e instanceof RegExp&&!e.global&&(r=!e.ignoreCase,e=e.source,o=!0),"\\n"==e&&(e="\n",o=!1);var a=new Ze;null==t.ch&&(t.ch=Number.MAX_VALUE);var s={row:t.line,column:t.ch},l=this,c=null;return{findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(t){a.setOptions({needle:e,caseSensitive:r,wrap:!1,backwards:t,regExp:o,start:c||s});var n=a.find(l.ace.session);return(c=n)&&[!c.isEmpty()]},from:function(){return c&&i(c.start)},to:function(){return c&&i(c.end)},replace:function(e){c&&(c.end=l.ace.session.doc.replace(c,e))}}},this.scrollTo=function(e,t){var n=this.ace.renderer,r=n.layerConfig,i=r.maxHeight;i-=(n.$size.scrollerHeight-n.lineHeight)*n.$scrollPastEnd,null!=t&&this.ace.session.setScrollTop(Math.max(0,Math.min(t,i))),null!=e&&this.ace.session.setScrollLeft(Math.max(0,Math.min(e,r.width)))},this.scrollInfo=function(){return 0},this.scrollIntoView=function(e,t){if(e){var n=this.ace.renderer,i={top:0,bottom:t};n.scrollCursorIntoView(r(e),2*n.lineHeight/n.$size.scrollerHeight,i)}},this.getLine=function(e){return this.ace.session.getLine(e)},this.getRange=function(e,t){return this.ace.session.getTextRange(new ze(e.line,e.ch,t.line,t.ch))},this.replaceRange=function(e,t,n){n||(n=t);var r=new ze(t.line,t.ch,n.line,n.ch);return this.ace.session.$clipRangeToDocument(r),this.ace.session.replace(r,e)},this.replaceSelection=this.replaceSelections=function(e){var t=Array.isArray(e)&&e,n=this.ace.selection;if(this.ace.inVirtualSelectionMode)this.ace.session.replace(n.getRange(),t?e[0]||"":e);else{n.inVirtualSelectionMode=!0;var r=n.rangeList.ranges;r.length||(r=[this.ace.multiSelect.getRange()]);for(var i=r.length;i--;)this.ace.session.replace(r[i],t?e[i]||"":e);n.inVirtualSelectionMode=!1}},this.getSelection=function(){return this.ace.getSelectedText()},this.getSelections=function(){return this.listSelections().map((function(e){return this.getRange(e.anchor,e.head)}),this)},this.getInputField=function(){return this.ace.textInput.getElement()},this.getWrapperElement=function(){return this.ace.container};var t={indentWithTabs:"useSoftTabs",indentUnit:"tabSize",tabSize:"tabSize",firstLineNumber:"firstLineNumber",readOnly:"readOnly"};this.setOption=function(e,n){switch(this.state[e]=n,e){case"indentWithTabs":e=t[e],n=!n;break;case"keyMap":return void(this.state.$keyMap=n);default:e=t[e]}e&&this.ace.setOption(e,n)},this.getOption=function(e){var n,r=t[e];switch(r&&(n=this.ace.getOption(r)),e){case"indentWithTabs":return e=t[e],!n;case"keyMap":return this.state.$keyMap||"vim"}return r?n:this.state[e]},this.toggleOverwrite=function(e){return this.state.overwrite=e,this.ace.setOverwrite(e)},this.addOverlay=function(e){if(!this.$searchHighlight||!this.$searchHighlight.session){var t=new et(null,"ace_highlight-marker","text"),n=this.ace.session.addDynamicMarker(t);t.id=n.id,t.session=this.ace.session,t.destroy=function(e){t.session.off("change",t.updateOnChange),t.session.off("changeEditor",t.destroy),t.session.removeMarker(t.id),t.session=null},t.updateOnChange=function(e){var n=e.start.row;n==e.end.row?t.cache[n]=void 0:t.cache.splice(n,t.cache.length)},t.session.on("changeEditor",t.destroy),t.session.on("change",t.updateOnChange)}var r=new RegExp(e.query.source,"gmi");this.$searchHighlight=e.highlight=t,this.$searchHighlight.setRegexp(r),this.ace.renderer.updateBackMarkers()},this.removeOverlay=function(e){this.$searchHighlight&&this.$searchHighlight.session&&this.$searchHighlight.destroy()},this.getScrollInfo=function(){var e=this.ace.renderer,t=e.layerConfig;return{left:e.scrollLeft,top:e.scrollTop,height:t.maxHeight,width:t.width,clientHeight:t.height,clientWidth:t.width}},this.getValue=function(){return this.ace.getValue()},this.setValue=function(e){return this.ace.setValue(e,-1)},this.getTokenTypeAt=function(e){var t=this.ace.session.getTokenAt(e.line,e.ch);return t&&/comment|string/.test(t.type)?"string":""},this.findMatchingBracket=function(e){var t=this.ace.session.findMatchingBracket(r(e));return{to:t&&i(t)}},this.findMatchingTag=function(e){var t=this.ace.session.getMatchingTags(r(e));if(t)return{open:{from:i(t.openTag.start),to:i(t.openTag.end)},close:{from:i(t.closeTag.start),to:i(t.closeTag.end)}}},this.indentLine=function(e,t){!0===t?this.ace.session.indentRows(e,e,"\t"):!1===t&&this.ace.session.outdentRows(new ze(e,0,e,0))},this.indexFromPos=function(e){return this.ace.session.doc.positionToIndex(r(e))},this.posFromIndex=function(e){return i(this.ace.session.doc.indexToPosition(e))},this.focus=function(e){return this.ace.textInput.focus()},this.blur=function(e){return this.ace.blur()},this.defaultTextHeight=function(e){return this.ace.renderer.layerConfig.lineHeight},this.scanForBracket=function(e,t,n,o){var a=o.bracketRegex.source,s=/paren|text|operator|tag/;if(1==t)var l=this.ace.session.$findClosingBracket(a.slice(1,2),r(e),s);else!(l=this.ace.session.$findOpeningBracket(a.slice(-2,-1),{row:e.line,column:e.ch+1},s))&&o.bracketRegex&&o.bracketRegex.test(this.getLine(e.line)[e.ch-1])&&(l={row:e.line,column:e.ch-1});return l&&{pos:i(l)}},this.refresh=function(){return this.ace.resize(!0)},this.getMode=function(){return{name:this.getOption("mode")}},this.execCommand=function(e){return it.commands.hasOwnProperty(e)?it.commands[e](this):"indentAuto"==e?this.ace.execCommand("autoindent"):void console.log(e+" is not implemented")},this.getLineNumber=function(e){var t=this.$lineHandleChanges;if(!t)return null;for(var n=e.row,r=0;r<t.length;r++){var i=t[r];if(i.start.row!=i.end.row)if("i"==i.action[0])i.start.row<n&&(n+=i.end.row-i.start.row);else if(i.start.row<n){if(n<i.end.row||n==i.end.row&&i.start.column>0)return null;n-=i.end.row-i.start.row}}return n},this.getLineHandle=function(e){return this.$lineHandleChanges||(this.$lineHandleChanges=[]),{text:this.ace.session.getLine(e),row:e}},this.releaseLineHandles=function(){this.$lineHandleChanges=void 0},this.getLastEditEnd=function(){var e=this.ace.session.$undoManager;if(e&&e.$lastDelta)return i(e.$lastDelta.end)}}.call(it.prototype);var ot=it.StringStream=function(e,t){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0};ot.prototype={eol:function(){return this.pos>=this.string.length},sol:function(){return this.pos==this.lineStart},peek:function(){return this.string.charAt(this.pos)||void 0},next:function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},eat:function(e){var t=this.string.charAt(this.pos);if("string"==typeof e)var n=t==e;else n=t&&(e.test?e.test(t):e(t));if(n)return++this.pos,t},eatWhile:function(e){for(var t=this.pos;this.eat(e););return this.pos>t},eatSpace:function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},skipToEnd:function(){this.pos=this.string.length},skipTo:function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},backUp:function(e){this.pos-=e},column:function(){throw"not implemented"},indentation:function(){throw"not implemented"},match:function(e,t,n){if("string"!=typeof e){var r=this.string.slice(this.pos).match(e);return r&&r.index>0?null:(r&&!1!==t&&(this.pos+=r[0].length),r)}var i=function(e){return n?e.toLowerCase():e};if(i(this.string.substr(this.pos,e.length))==i(e))return!1!==t&&(this.pos+=e.length),!0},current:function(){return this.string.slice(this.start,this.pos)},hideFirstChars:function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}}},it.defineExtension=function(e,t){it.prototype[e]=t},qe.importCssString(".normal-mode .ace_cursor{\n border: none;\n background-color: rgba(255,0,0,0.5);\n}\n.normal-mode .ace_hidden-cursors .ace_cursor{\n background-color: transparent;\n border: 1px solid red;\n opacity: 0.7\n}\n.ace_dialog {\n position: absolute;\n left: 0; right: 0;\n background: inherit;\n z-index: 15;\n padding: .1em .8em;\n overflow: hidden;\n color: inherit;\n}\n.ace_dialog-top {\n border-bottom: 1px solid #444;\n top: 0;\n}\n.ace_dialog-bottom {\n border-top: 1px solid #444;\n bottom: 0;\n}\n.ace_dialog input {\n border: none;\n outline: none;\n background: transparent;\n width: 20em;\n color: inherit;\n font-family: monospace;\n}","vimMode",!1),function(){function e(e,t,n){var r;return(r=e.ace.container.appendChild(document.createElement("div"))).className=n?"ace_dialog ace_dialog-bottom":"ace_dialog ace_dialog-top","string"==typeof t?r.innerHTML=t:r.appendChild(t),r}function t(e,t){e.state.currentNotificationClose&&e.state.currentNotificationClose(),e.state.currentNotificationClose=t}it.defineExtension("openDialog",(function(n,r,i){function o(e){if("string"==typeof e)u.value=e;else{if(s)return;if(e&&"blur"==e.type&&document.activeElement===u)return;l.state.dialog==a&&(l.state.dialog=null,l.focus()),s=!0,a.remove(),i.onClose&&i.onClose(a);var t=l;t.state.vim&&(t.state.vim.status=null,t.ace._signal("changeStatus"),t.ace.renderer.$loop.schedule(t.ace.renderer.CHANGE_CURSOR))}}if(!this.virtualSelectionMode()){i||(i={}),t(this,null);var a=e(this,n,i.bottom),s=!1,l=this;this.state.dialog=a;var c,u=a.getElementsByTagName("input")[0];return u?(i.value&&(u.value=i.value,!1!==i.selectValueOnOpen&&u.select()),i.onInput&&it.on(u,"input",(function(e){i.onInput(e,u.value,o)})),i.onKeyUp&&it.on(u,"keyup",(function(e){i.onKeyUp(e,u.value,o)})),it.on(u,"keydown",(function(e){i&&i.onKeyDown&&i.onKeyDown(e,u.value,o)||(13==e.keyCode&&r(u.value),(27==e.keyCode||!1!==i.closeOnEnter&&13==e.keyCode)&&(it.e_stop(e),o()))})),!1!==i.closeOnBlur&&it.on(u,"blur",o),u.focus()):(c=a.getElementsByTagName("button")[0])&&(it.on(c,"click",(function(){o(),l.focus()})),!1!==i.closeOnBlur&&it.on(c,"blur",o),c.focus()),o}})),it.defineExtension("openNotification",(function(n,r){function i(){s||(s=!0,clearTimeout(o),a.remove())}if(!this.virtualSelectionMode()){t(this,i);var o,a=e(this,n,r&&r.bottom),s=!1,l=r&&void 0!==r.duration?r.duration:5e3;return it.on(a,"click",(function(e){it.e_preventDefault(e),i()})),l&&(o=setTimeout(i,l)),i}}))}();var at,st=it.Pos,lt=[{keys:"<Left>",type:"keyToKey",toKeys:"h"},{keys:"<Right>",type:"keyToKey",toKeys:"l"},{keys:"<Up>",type:"keyToKey",toKeys:"k"},{keys:"<Down>",type:"keyToKey",toKeys:"j"},{keys:"g<Up>",type:"keyToKey",toKeys:"gk"},{keys:"g<Down>",type:"keyToKey",toKeys:"gj"},{keys:"<Space>",type:"keyToKey",toKeys:"l"},{keys:"<BS>",type:"keyToKey",toKeys:"h"},{keys:"<Del>",type:"keyToKey",toKeys:"x"},{keys:"<C-Space>",type:"keyToKey",toKeys:"W"},{keys:"<C-BS>",type:"keyToKey",toKeys:"B"},{keys:"<S-Space>",type:"keyToKey",toKeys:"w"},{keys:"<S-BS>",type:"keyToKey",toKeys:"b"},{keys:"<C-n>",type:"keyToKey",toKeys:"j"},{keys:"<C-p>",type:"keyToKey",toKeys:"k"},{keys:"<C-[>",type:"keyToKey",toKeys:"<Esc>"},{keys:"<C-c>",type:"keyToKey",toKeys:"<Esc>"},{keys:"<C-[>",type:"keyToKey",toKeys:"<Esc>",context:"insert"},{keys:"<C-c>",type:"keyToKey",toKeys:"<Esc>",context:"insert"},{keys:"<C-Esc>",type:"keyToKey",toKeys:"<Esc>"},{keys:"<C-Esc>",type:"keyToKey",toKeys:"<Esc>",context:"insert"},{keys:"s",type:"keyToKey",toKeys:"cl",context:"normal"},{keys:"s",type:"keyToKey",toKeys:"c",context:"visual"},{keys:"S",type:"keyToKey",toKeys:"cc",context:"normal"},{keys:"S",type:"keyToKey",toKeys:"VdO",context:"visual"},{keys:"<Home>",type:"keyToKey",toKeys:"0"},{keys:"<End>",type:"keyToKey",toKeys:"$"},{keys:"<PageUp>",type:"keyToKey",toKeys:"<C-b>"},{keys:"<PageDown>",type:"keyToKey",toKeys:"<C-f>"},{keys:"<CR>",type:"keyToKey",toKeys:"j^",context:"normal"},{keys:"<Ins>",type:"keyToKey",toKeys:"i",context:"normal"},{keys:"<Ins>",type:"action",action:"toggleOverwrite",context:"insert"},{keys:"H",type:"motion",motion:"moveToTopLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"M",type:"motion",motion:"moveToMiddleLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"L",type:"motion",motion:"moveToBottomLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"h",type:"motion",motion:"moveByCharacters",motionArgs:{forward:!1}},{keys:"l",type:"motion",motion:"moveByCharacters",motionArgs:{forward:!0}},{keys:"j",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,linewise:!0}},{keys:"k",type:"motion",motion:"moveByLines",motionArgs:{forward:!1,linewise:!0}},{keys:"gj",type:"motion",motion:"moveByDisplayLines",motionArgs:{forward:!0}},{keys:"gk",type:"motion",motion:"moveByDisplayLines",motionArgs:{forward:!1}},{keys:"w",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!1}},{keys:"W",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!1,bigWord:!0}},{keys:"e",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!0,inclusive:!0}},{keys:"E",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:"b",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1}},{keys:"B",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1,bigWord:!0}},{keys:"ge",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!0,inclusive:!0}},{keys:"gE",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:"{",type:"motion",motion:"moveByParagraph",motionArgs:{forward:!1,toJumplist:!0}},{keys:"}",type:"motion",motion:"moveByParagraph",motionArgs:{forward:!0,toJumplist:!0}},{keys:"(",type:"motion",motion:"moveBySentence",motionArgs:{forward:!1}},{keys:")",type:"motion",motion:"moveBySentence",motionArgs:{forward:!0}},{keys:"<C-f>",type:"motion",motion:"moveByPage",motionArgs:{forward:!0}},{keys:"<C-b>",type:"motion",motion:"moveByPage",motionArgs:{forward:!1}},{keys:"<C-d>",type:"motion",motion:"moveByScroll",motionArgs:{forward:!0,explicitRepeat:!0}},{keys:"<C-u>",type:"motion",motion:"moveByScroll",motionArgs:{forward:!1,explicitRepeat:!0}},{keys:"gg",type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:"G",type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!0,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:"g$",type:"motion",motion:"moveToEndOfDisplayLine"},{keys:"g^",type:"motion",motion:"moveToStartOfDisplayLine"},{keys:"g0",type:"motion",motion:"moveToStartOfDisplayLine"},{keys:"0",type:"motion",motion:"moveToStartOfLine"},{keys:"^",type:"motion",motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"+",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,toFirstChar:!0}},{keys:"-",type:"motion",motion:"moveByLines",motionArgs:{forward:!1,toFirstChar:!0}},{keys:"_",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,toFirstChar:!0,repeatOffset:-1}},{keys:"$",type:"motion",motion:"moveToEol",motionArgs:{inclusive:!0}},{keys:"%",type:"motion",motion:"moveToMatchedSymbol",motionArgs:{inclusive:!0,toJumplist:!0}},{keys:"f<character>",type:"motion",motion:"moveToCharacter",motionArgs:{forward:!0,inclusive:!0}},{keys:"F<character>",type:"motion",motion:"moveToCharacter",motionArgs:{forward:!1}},{keys:"t<character>",type:"motion",motion:"moveTillCharacter",motionArgs:{forward:!0,inclusive:!0}},{keys:"T<character>",type:"motion",motion:"moveTillCharacter",motionArgs:{forward:!1}},{keys:";",type:"motion",motion:"repeatLastCharacterSearch",motionArgs:{forward:!0}},{keys:",",type:"motion",motion:"repeatLastCharacterSearch",motionArgs:{forward:!1}},{keys:"'<register>",type:"motion",motion:"goToMark",motionArgs:{toJumplist:!0,linewise:!0}},{keys:"`<register>",type:"motion",motion:"goToMark",motionArgs:{toJumplist:!0}},{keys:"]`",type:"motion",motion:"jumpToMark",motionArgs:{forward:!0}},{keys:"[`",type:"motion",motion:"jumpToMark",motionArgs:{forward:!1}},{keys:"]'",type:"motion",motion:"jumpToMark",motionArgs:{forward:!0,linewise:!0}},{keys:"['",type:"motion",motion:"jumpToMark",motionArgs:{forward:!1,linewise:!0}},{keys:"]p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!0,isEdit:!0,matchIndent:!0}},{keys:"[p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!1,isEdit:!0,matchIndent:!0}},{keys:"]<character>",type:"motion",motion:"moveToSymbol",motionArgs:{forward:!0,toJumplist:!0}},{keys:"[<character>",type:"motion",motion:"moveToSymbol",motionArgs:{forward:!1,toJumplist:!0}},{keys:"|",type:"motion",motion:"moveToColumn"},{keys:"o",type:"motion",motion:"moveToOtherHighlightedEnd",context:"visual"},{keys:"O",type:"motion",motion:"moveToOtherHighlightedEnd",motionArgs:{sameLine:!0},context:"visual"},{keys:"d",type:"operator",operator:"delete"},{keys:"y",type:"operator",operator:"yank"},{keys:"c",type:"operator",operator:"change"},{keys:"=",type:"operator",operator:"indentAuto"},{keys:">",type:"operator",operator:"indent",operatorArgs:{indentRight:!0}},{keys:"<",type:"operator",operator:"indent",operatorArgs:{indentRight:!1}},{keys:"g~",type:"operator",operator:"changeCase"},{keys:"gu",type:"operator",operator:"changeCase",operatorArgs:{toLower:!0},isEdit:!0},{keys:"gU",type:"operator",operator:"changeCase",operatorArgs:{toLower:!1},isEdit:!0},{keys:"n",type:"motion",motion:"findNext",motionArgs:{forward:!0,toJumplist:!0}},{keys:"N",type:"motion",motion:"findNext",motionArgs:{forward:!1,toJumplist:!0}},{keys:"gn",type:"motion",motion:"findAndSelectNextInclusive",motionArgs:{forward:!0}},{keys:"gN",type:"motion",motion:"findAndSelectNextInclusive",motionArgs:{forward:!1}},{keys:"gq",type:"operator",operator:"hardWrap"},{keys:"gw",type:"operator",operator:"hardWrap",operatorArgs:{keepCursor:!0}},{keys:"x",type:"operatorMotion",operator:"delete",motion:"moveByCharacters",motionArgs:{forward:!0},operatorMotionArgs:{visualLine:!1}},{keys:"X",type:"operatorMotion",operator:"delete",motion:"moveByCharacters",motionArgs:{forward:!1},operatorMotionArgs:{visualLine:!0}},{keys:"D",type:"operatorMotion",operator:"delete",motion:"moveToEol",motionArgs:{inclusive:!0},context:"normal"},{keys:"D",type:"operator",operator:"delete",operatorArgs:{linewise:!0},context:"visual"},{keys:"Y",type:"operatorMotion",operator:"yank",motion:"expandToLine",motionArgs:{linewise:!0},context:"normal"},{keys:"Y",type:"operator",operator:"yank",operatorArgs:{linewise:!0},context:"visual"},{keys:"C",type:"operatorMotion",operator:"change",motion:"moveToEol",motionArgs:{inclusive:!0},context:"normal"},{keys:"C",type:"operator",operator:"change",operatorArgs:{linewise:!0},context:"visual"},{keys:"~",type:"operatorMotion",operator:"changeCase",motion:"moveByCharacters",motionArgs:{forward:!0},operatorArgs:{shouldMoveCursor:!0},context:"normal"},{keys:"~",type:"operator",operator:"changeCase",context:"visual"},{keys:"<C-u>",type:"operatorMotion",operator:"delete",motion:"moveToStartOfLine",context:"insert"},{keys:"<C-w>",type:"operatorMotion",operator:"delete",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1},context:"insert"},{keys:"<C-w>",type:"idle",context:"normal"},{keys:"<C-i>",type:"action",action:"jumpListWalk",actionArgs:{forward:!0}},{keys:"<C-o>",type:"action",action:"jumpListWalk",actionArgs:{forward:!1}},{keys:"<C-e>",type:"action",action:"scroll",actionArgs:{forward:!0,linewise:!0}},{keys:"<C-y>",type:"action",action:"scroll",actionArgs:{forward:!1,linewise:!0}},{keys:"a",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"charAfter"},context:"normal"},{keys:"A",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"eol"},context:"normal"},{keys:"A",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"endOfSelectedArea"},context:"visual"},{keys:"i",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"inplace"},context:"normal"},{keys:"gi",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"lastEdit"},context:"normal"},{keys:"I",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"firstNonBlank"},context:"normal"},{keys:"gI",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"bol"},context:"normal"},{keys:"I",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"startOfSelectedArea"},context:"visual"},{keys:"o",type:"action",action:"newLineAndEnterInsertMode",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!0},context:"normal"},{keys:"O",type:"action",action:"newLineAndEnterInsertMode",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!1},context:"normal"},{keys:"v",type:"action",action:"toggleVisualMode"},{keys:"V",type:"action",action:"toggleVisualMode",actionArgs:{linewise:!0}},{keys:"<C-v>",type:"action",action:"toggleVisualMode",actionArgs:{blockwise:!0}},{keys:"<C-q>",type:"action",action:"toggleVisualMode",actionArgs:{blockwise:!0}},{keys:"gv",type:"action",action:"reselectLastSelection"},{keys:"J",type:"action",action:"joinLines",isEdit:!0},{keys:"gJ",type:"action",action:"joinLines",actionArgs:{keepSpaces:!0},isEdit:!0},{keys:"p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!0,isEdit:!0}},{keys:"P",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!1,isEdit:!0}},{keys:"r<character>",type:"action",action:"replace",isEdit:!0},{keys:"@<register>",type:"action",action:"replayMacro"},{keys:"q<register>",type:"action",action:"enterMacroRecordMode"},{keys:"R",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{replace:!0},context:"normal"},{keys:"R",type:"operator",operator:"change",operatorArgs:{linewise:!0,fullLine:!0},context:"visual",exitVisualBlock:!0},{keys:"u",type:"action",action:"undo",context:"normal"},{keys:"u",type:"operator",operator:"changeCase",operatorArgs:{toLower:!0},context:"visual",isEdit:!0},{keys:"U",type:"operator",operator:"changeCase",operatorArgs:{toLower:!1},context:"visual",isEdit:!0},{keys:"<C-r>",type:"action",action:"redo"},{keys:"m<register>",type:"action",action:"setMark"},{keys:'"<register>',type:"action",action:"setRegister"},{keys:"<C-r><register>",type:"action",action:"insertRegister",context:"insert",isEdit:!0},{keys:"<C-o>",type:"action",action:"oneNormalCommand",context:"insert"},{keys:"zz",type:"action",action:"scrollToCursor",actionArgs:{position:"center"}},{keys:"z.",type:"action",action:"scrollToCursor",actionArgs:{position:"center"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"zt",type:"action",action:"scrollToCursor",actionArgs:{position:"top"}},{keys:"z<CR>",type:"action",action:"scrollToCursor",actionArgs:{position:"top"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"zb",type:"action",action:"scrollToCursor",actionArgs:{position:"bottom"}},{keys:"z-",type:"action",action:"scrollToCursor",actionArgs:{position:"bottom"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:".",type:"action",action:"repeatLastEdit"},{keys:"<C-a>",type:"action",action:"incrementNumberToken",isEdit:!0,actionArgs:{increase:!0,backtrack:!1}},{keys:"<C-x>",type:"action",action:"incrementNumberToken",isEdit:!0,actionArgs:{increase:!1,backtrack:!1}},{keys:"<C-t>",type:"action",action:"indent",actionArgs:{indentRight:!0},context:"insert"},{keys:"<C-d>",type:"action",action:"indent",actionArgs:{indentRight:!1},context:"insert"},{keys:"a<register>",type:"motion",motion:"textObjectManipulation"},{keys:"i<register>",type:"motion",motion:"textObjectManipulation",motionArgs:{textObjectInner:!0}},{keys:"/",type:"search",searchArgs:{forward:!0,querySrc:"prompt",toJumplist:!0}},{keys:"?",type:"search",searchArgs:{forward:!1,querySrc:"prompt",toJumplist:!0}},{keys:"*",type:"search",searchArgs:{forward:!0,querySrc:"wordUnderCursor",wholeWordOnly:!0,toJumplist:!0}},{keys:"#",type:"search",searchArgs:{forward:!1,querySrc:"wordUnderCursor",wholeWordOnly:!0,toJumplist:!0}},{keys:"g*",type:"search",searchArgs:{forward:!0,querySrc:"wordUnderCursor",toJumplist:!0}},{keys:"g#",type:"search",searchArgs:{forward:!1,querySrc:"wordUnderCursor",toJumplist:!0}},{keys:":",type:"ex"}],ct=lt.length,ut=[{name:"colorscheme",shortName:"colo"},{name:"map"},{name:"imap",shortName:"im"},{name:"nmap",shortName:"nm"},{name:"vmap",shortName:"vm"},{name:"omap",shortName:"om"},{name:"noremap",shortName:"no"},{name:"nnoremap",shortName:"nn"},{name:"vnoremap",shortName:"vn"},{name:"inoremap",shortName:"ino"},{name:"onoremap",shortName:"ono"},{name:"unmap"},{name:"mapclear",shortName:"mapc"},{name:"nmapclear",shortName:"nmapc"},{name:"vmapclear",shortName:"vmapc"},{name:"imapclear",shortName:"imapc"},{name:"omapclear",shortName:"omapc"},{name:"write",shortName:"w"},{name:"undo",shortName:"u"},{name:"redo",shortName:"red"},{name:"set",shortName:"se"},{name:"setlocal",shortName:"setl"},{name:"setglobal",shortName:"setg"},{name:"sort",shortName:"sor"},{name:"substitute",shortName:"s",possiblyAsync:!0},{name:"startinsert",shortName:"start"},{name:"nohlsearch",shortName:"noh"},{name:"yank",shortName:"y"},{name:"delmarks",shortName:"delm"},{name:"registers",shortName:"reg",excludeFromCommandHistory:!0},{name:"vglobal",shortName:"v"},{name:"delete",shortName:"d"},{name:"join",shortName:"j"},{name:"normal",shortName:"norm"},{name:"global",shortName:"g"}],ht=L(""),dt=/[\d]/,pt=[it.isWordChar,function(e){return e&&!it.isWordChar(e)&&!/\s/.test(e)}],ft=[function(e){return/\S/.test(e)}],mt=["<",">"],gt=["-",'"',".",":","_","/","+"],vt=/^\w$/;try{at=new RegExp("^[\\p{Lu}]$","u")}catch(e){at=/^[A-Z]$/}var yt={};v("filetype",void 0,"string",["ft"],(function(e,t){if(void 0!==t){if(void 0===e)return"null"==(n=t.getOption("mode"))?"":n;var n=""==e?"null":e;t.setOption("mode",n)}})),v("textwidth",80,"number",["tw"],(function(e,t){if(void 0!==t){if(void 0===e)return t.getOption("textwidth");var n=Math.round(e);n>1&&t.setOption("textwidth",n)}}));var Ct=function(){function e(e,a){(n+=a)>r?n=r:n<i&&(n=i);var s=o[(t+n)%t];if(s&&!s.find()){var l,c=a>0?1:-1,u=e.getCursor();do{if((s=o[(t+(n+=c))%t])&&(l=s.find())&&!V(u,l))break}while(n<r&&n>i)}return s}var t=100,n=-1,r=0,i=0,o=new Array(t);return{cachedCursor:void 0,add:function(e,a,s){function l(r){var i=++n%t,a=o[i];a&&a.clear(),o[i]=e.setBookmark(r)}var c=o[n%t];if(c){var u=c.find();u&&!V(u,a)&&l(a)}else l(a);l(s),r=n,(i=n-t+1)<0&&(i=0)},find:function(t,r){var i=n,o=e(t,r);return n=i,o&&o.find()},move:e}},wt=function(e){return e?{changes:e.changes,expectCursorActivityForChange:e.expectCursorActivityForChange}:{changes:[],expectCursorActivityForChange:!1}};w.prototype={exitMacroRecordMode:function(){var e=kt.macroModeState;e.onRecordingDone&&e.onRecordingDone(),e.onRecordingDone=void 0,e.isRecording=!1},enterMacroRecordMode:function(e,t){var n=kt.registerController.getRegister(t);if(n){if(n.clear(),this.latestRegister=t,e.openDialog){var r=we("span",{class:"cm-vim-message"},"recording @"+t);this.onRecordingDone=e.openDialog(r,null,{bottom:!0})}this.isRecording=!0}}};var kt,St,xt,Mt={enterVimMode:a,leaveVimMode:s,buildKeyMap:function(){},getRegisterController:function(){return kt.registerController},resetVimGlobalState_:S,getVimGlobalState_:function(){return kt},maybeInitVimState_:k,suppressErrorLogging:!1,InsertModeKey:_e,map:function(e,t,n){Vt.map(e,t,n)},unmap:function(e,t){return Vt.unmap(e,t)},noremap:function(e,t,n){Vt.map(e,t,n,!0)},mapclear:function(e){var t=lt.length,n=ct,r=lt.slice(0,t-n);if(lt=lt.slice(t-n),e)for(var i=r.length-1;i>=0;i--){var o=r[i];if(e!==o.context)if(o.context)this._mapCommand(o);else{var a=["normal","insert","visual"];for(var s in a)if(a[s]!==e){var l={};for(var c in o)l[c]=o[c];l.context=a[s],this._mapCommand(l)}}}},langmap:b,vimKeyFromEvent:A,setOption:y,getOption:C,defineOption:v,defineEx:function(e,t,n){if(t){if(0!==e.indexOf(t))throw new Error('(Vim.defineEx) "'+t+'" is not a prefix of "'+e+'", command not registered')}else t=e;Dt[e]=n,Vt.commandMap_[t]={name:e,shortName:t,type:"api"}},handleKey:function(e,t,n){var r=this.findKey(e,t,n);if("function"==typeof r)return r()},multiSelectHandleKey:Fe,findKey:function(e,t,n){function r(){var r=kt.macroModeState;if(r.isRecording){if("q"==t)return r.exitMacroRecordMode(),E(e),!0;"mapping"!=n&&function(e,t){if(!e.isPlaying){var n=e.latestRegister,r=kt.registerController.getRegister(n);r&&r.pushText(t)}}(r,t)}}function i(){if("<Esc>"==t){if(a.visualMode)ee(e);else{if(!a.insertMode)return;Be(e)}return E(e),!0}}var o,a=k(e);return o=a.insertMode?function(){if(i())return!0;a.inputState.keyBuffer.push(t);var n=a.inputState.keyBuffer.join(""),r=1==t.length,o=Ot.matchCommand(n,lt,a.inputState,"insert"),s=a.inputState.changeQueue;if("none"==o.type)return E(e),!1;if("partial"==o.type){if(o.expectLiteralNext&&(a.expectLiteralNext=!0),St&&window.clearTimeout(St),St=r&&window.setTimeout((function(){a.insertMode&&a.inputState.keyBuffer.length&&E(e)}),C("insertModeEscKeysTimeout")),r){var l=e.listSelections();s&&s.removed.length==l.length||(s=a.inputState.changeQueue=new O),s.inserted+=t;for(var c=0;c<l.length;c++){var u=j(l[c].anchor,l[c].head),h=F(l[c].anchor,l[c].head),d=e.getRange(u,e.state.overwrite?H(h,0,1):h);s.removed[c]=(s.removed[c]||"")+d}}return!r}if(a.expectLiteralNext=!1,St&&window.clearTimeout(St),o.command&&s){for(l=e.listSelections(),c=0;c<l.length;c++){var p=l[c].head;e.replaceRange(s.removed[c]||"",H(p,0,-s.inserted.length),p,"+input")}kt.macroModeState.lastInsertModeChanges.changes.pop()}return o.command||E(e),o.command}():function(){if(r()||i())return!0;a.inputState.keyBuffer.push(t);var n=a.inputState.keyBuffer.join("");if(/^[1-9]\d*$/.test(n))return!0;var o=/^(\d*)(.*)$/.exec(n);if(!o)return E(e),!1;var s=a.visualMode?"visual":"normal",l=o[2]||o[1];a.inputState.operatorShortcut&&a.inputState.operatorShortcut.slice(-1)==l&&(l=a.inputState.operatorShortcut);var c=Ot.matchCommand(l,lt,a.inputState,s);return"none"==c.type?(E(e),!1):"partial"==c.type?(c.expectLiteralNext&&(a.expectLiteralNext=!0),!0):"clear"==c.type?(E(e),!0):(a.expectLiteralNext=!1,a.inputState.keyBuffer.length=0,(o=/^(\d*)(.*)$/.exec(n))[1]&&"0"!=o[1]&&a.inputState.pushRepeatDigit(o[1]),c.command)}(),!1===o?a.insertMode||1!==t.length?void 0:function(){return!0}:!0===o?function(){return!0}:function(){if(!o.operator&&!o.isEdit||!e.getOption("readOnly"))return e.operation((function(){e.curOp.isVimOp=!0;try{"keyToKey"==o.type?M(e,o.toKeys,o):Ot.processCommand(e,a,o)}catch(t){throw e.state.vim=void 0,k(e),Mt.suppressErrorLogging||console.log(t),t}return!0}))}},handleEx:function(e,t){Vt.processCommand(e,t)},defineMotion:function(e,t){Rt[e]=t},defineAction:function(e,t){It[e]=t},defineOperator:function(e,t){Bt[e]=t},mapCommand:function(e,t,n,r,i){var o={keys:e,type:t};for(var a in o[t]=n,o[t+"Args"]=r,i)o[a]=i[a];Ie(o)},_mapCommand:Ie,defineRegister:function(e,t){var n=kt.registerController.registers;if(!e||1!=e.length)throw Error("Register name must be 1 character");n[e]=t,gt.push(e)},exitVisualMode:ee,exitInsertMode:Be},At=[],bt=!1,Lt={Return:"CR",Backspace:"BS",Delete:"Del",Escape:"Esc",Insert:"Ins",ArrowLeft:"Left",ArrowRight:"Right",ArrowUp:"Up",ArrowDown:"Down",Enter:"CR"," ":"Space"},Tt={Shift:1,Alt:1,Command:1,Control:1,CapsLock:1,AltGraph:1,Dead:1,Unidentified:1},Et={};"Left|Right|Up|Down|End|Home".split("|").concat(Object.keys(Lt)).forEach((function(e){Et[(Lt[e]||"").toLowerCase()]=Et[e.toLowerCase()]=e})),v("langmap",void 0,"string",["lmap"],(function(e,t){if(void 0===e)return ht.string;b(e)})),T.prototype.pushRepeatDigit=function(e){this.operator?this.motionRepeat=this.motionRepeat.concat(e):this.prefixRepeat=this.prefixRepeat.concat(e)},T.prototype.getRepeat=function(){var e=0;return(this.prefixRepeat.length>0||this.motionRepeat.length>0)&&(e=1,this.prefixRepeat.length>0&&(e*=parseInt(this.prefixRepeat.join(""),10)),this.motionRepeat.length>0&&(e*=parseInt(this.motionRepeat.join(""),10))),e},R.prototype={setText:function(e,t,n){this.keyBuffer=[e||""],this.linewise=!!t,this.blockwise=!!n},pushText:function(e,t){t&&(this.linewise||this.keyBuffer.push("\n"),this.linewise=!0),this.keyBuffer.push(e)},pushInsertModeChanges:function(e){this.insertModeChanges.push(wt(e))},pushSearchQuery:function(e){this.searchQueries.push(e)},clear:function(){this.keyBuffer=[],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!1},toString:function(){return this.keyBuffer.join("")}},B.prototype={pushText:function(e,t,n,r,i){if("_"!==e){r&&"\n"!==n.charAt(n.length-1)&&(n+="\n");var o=this.isValidRegister(e)?this.getRegister(e):null;if(o){p(e)?o.pushText(n,r):o.setText(n,r,i),"+"===e&&"undefined"!=typeof navigator&&void 0!==navigator.clipboard&&"function"==typeof navigator.clipboard.readText&&navigator.clipboard.writeText(n),this.unnamedRegister.setText(o.toString(),r)}else{switch(t){case"yank":this.registers[0]=new R(n,r,i);break;case"delete":case"change":-1==n.indexOf("\n")?this.registers["-"]=new R(n,r):(this.shiftNumericRegisters_(),this.registers[1]=new R(n,r))}this.unnamedRegister.setText(n,r,i)}}},getRegister:function(e){return this.isValidRegister(e)?(e=e.toLowerCase(),this.registers[e]||(this.registers[e]=new R),this.registers[e]):this.unnamedRegister},isValidRegister:function(e){return e&&(g(e,gt)||vt.test(e))},shiftNumericRegisters_:function(){for(var e=9;e>=2;e--)this.registers[e]=this.getRegister(""+(e-1))}},I.prototype={nextMatch:function(e,t){var n=this.historyBuffer,r=t?-1:1;null===this.initialPrefix&&(this.initialPrefix=e);for(var i=this.iterator+r;t?i>=0:i<n.length;i+=r)for(var o=n[i],a=0;a<=o.length;a++)if(this.initialPrefix==o.substring(0,a))return this.iterator=i,o;return i>=n.length?(this.iterator=n.length,this.initialPrefix):i<0?e:void 0},pushInput:function(e){var t=this.historyBuffer.indexOf(e);t>-1&&this.historyBuffer.splice(t,1),e.length&&this.historyBuffer.push(e)},reset:function(){this.initialPrefix=null,this.iterator=this.historyBuffer.length}};var Ot={matchCommand:function(e,t,n,r){var i,o=function(e,t,n,r){r.operator&&(n="operatorPending");for(var i,o=[],a=[],s=bt?t.length-ct:0;s<t.length;s++){var l=t[s];"insert"==n&&"insert"!=l.context||l.context&&l.context!=n||r.operator&&"action"==l.type||!(i=_(e,l.keys))||("partial"==i&&o.push(l),"full"==i&&a.push(l))}return{partial:o.length&&o,full:a.length&&a}}(e,t,r,n);if(!o.full&&!o.partial)return{type:"none"};if(!o.full&&o.partial)return{type:"partial",expectLiteralNext:1==o.partial.length&&"<character>"==o.partial[0].keys.slice(-11)};for(var a=0;a<o.full.length;a++){var s=o.full[a];i||(i=s)}if("<character>"==i.keys.slice(-11)||"<register>"==i.keys.slice(-10)){var l=function(e){var t=/^.*(<[^>]+>)$/.exec(e),n=t?t[1]:e.slice(-1);if(n.length>1)switch(n){case"<CR>":n="\n";break;case"<Space>":n=" ";break;default:n=""}return n}(e);if(!l||l.length>1)return{type:"clear"};n.selectedCharacter=l}return{type:"full",command:i}},processCommand:function(e,t,n){switch(t.inputState.repeatOverride=n.repeatOverride,n.type){case"motion":this.processMotion(e,t,n);break;case"operator":this.processOperator(e,t,n);break;case"operatorMotion":this.processOperatorMotion(e,t,n);break;case"action":this.processAction(e,t,n);break;case"search":this.processSearch(e,t,n);break;case"ex":case"keyToEx":this.processEx(e,t,n)}},processMotion:function(e,t,n){t.inputState.motion=n.motion,t.inputState.motionArgs=P(n.motionArgs),this.evalInput(e,t)},processOperator:function(e,t,n){var r=t.inputState;if(r.operator){if(r.operator==n.operator)return r.motion="expandToLine",r.motionArgs={linewise:!0},void this.evalInput(e,t);E(e)}r.operator=n.operator,r.operatorArgs=P(n.operatorArgs),n.keys.length>1&&(r.operatorShortcut=n.keys),n.exitVisualBlock&&(t.visualBlock=!1,Z(e)),t.visualMode&&this.evalInput(e,t)},processOperatorMotion:function(e,t,n){var r=t.visualMode,i=P(n.operatorMotionArgs);i&&r&&i.visualLine&&(t.visualLine=!0),this.processOperator(e,t,n),r||this.processMotion(e,t,n)},processAction:function(e,t,n){var r=t.inputState,i=r.getRepeat(),o=!!i,a=P(n.actionArgs)||{};r.selectedCharacter&&(a.selectedCharacter=r.selectedCharacter),n.operator&&this.processOperator(e,t,n),n.motion&&this.processMotion(e,t,n),(n.motion||n.operator)&&this.evalInput(e,t),a.repeat=i||1,a.repeatIsExplicit=o,a.registerName=r.registerName,E(e),t.lastMotion=null,n.isEdit&&this.recordLastEdit(t,r,n),It[n.action](e,a,t)},processSearch:function(e,t,n){function r(r,i,o){kt.searchHistoryController.pushInput(r),kt.searchHistoryController.reset();try{xe(e,r,i,o)}catch(t){return ke(e,"Invalid regex: "+r),void E(e)}Ot.processMotion(e,t,{type:"motion",motion:"findNext",motionArgs:{forward:!0,toJumplist:n.searchArgs.toJumplist}})}if(e.getSearchCursor){var i=n.searchArgs.forward,o=n.searchArgs.wholeWordOnly;me(e).setReversed(!i);var a=i?"/":"?",s=me(e).getQuery(),l=e.getScrollInfo();switch(n.searchArgs.querySrc){case"prompt":var c=kt.macroModeState;if(c.isPlaying)r(d=c.replaySearchQueries.shift(),!0,!1);else Se(e,{onClose:function(e){r(e,!0,!0);var t=kt.macroModeState;t.isRecording&&function(e,t){if(!e.isPlaying){var n=e.latestRegister,r=kt.registerController.getRegister(n);r&&r.pushSearchQuery&&r.pushSearchQuery(t)}}(t,e)},prefix:a,desc:"(JavaScript regexp)",onKeyUp:function(t,n,r){var o,a,s,c=A(t);"<Up>"==c||"<Down>"==c?(o="<Up>"==c,a=t.target?t.target.selectionEnd:0,r(n=kt.searchHistoryController.nextMatch(n,o)||""),a&&t.target&&(t.target.selectionEnd=t.target.selectionStart=Math.min(a,t.target.value.length))):c&&"<Left>"!=c&&"<Right>"!=c&&kt.searchHistoryController.reset();try{s=xe(e,n,!0,!0)}catch(t){}s?e.scrollIntoView(Ae(e,!i,s),30):(be(e),e.scrollTo(l.left,l.top))},onKeyDown:function(t,n,r){var i=A(t);"<Esc>"==i||"<C-c>"==i||"<C-[>"==i||"<BS>"==i&&""==n?(kt.searchHistoryController.pushInput(n),kt.searchHistoryController.reset(),xe(e,s),be(e),e.scrollTo(l.left,l.top),it.e_stop(t),E(e),r(),e.focus()):"<Up>"==i||"<Down>"==i?it.e_stop(t):"<C-u>"==i&&(it.e_stop(t),r(""))}});break;case"wordUnderCursor":var u=ne(e,{noSymbol:!0}),h=!0;if(u||(u=ne(e,{noSymbol:!1}),h=!1),!u)return ke(e,"No word under cursor"),void E(e);var d=e.getLine(u.start.line).substring(u.start.ch,u.end.ch);d=h&&o?"\\b"+d+"\\b":function(e){return e.replace(/([.?*+$\[\]\/\\(){}|\-])/g,"\\$1")}(d),kt.jumpList.cachedCursor=e.getCursor(),e.setCursor(u.start),r(d,!0,!1)}}},processEx:function(e,t,n){function r(t){kt.exCommandHistoryController.pushInput(t),kt.exCommandHistoryController.reset(),Vt.processCommand(e,t),e.state.vim&&E(e)}function i(t,n,r){var i,o,a=A(t);("<Esc>"==a||"<C-c>"==a||"<C-[>"==a||"<BS>"==a&&""==n)&&(kt.exCommandHistoryController.pushInput(n),kt.exCommandHistoryController.reset(),it.e_stop(t),E(e),r(),e.focus()),"<Up>"==a||"<Down>"==a?(it.e_stop(t),i="<Up>"==a,o=t.target?t.target.selectionEnd:0,r(n=kt.exCommandHistoryController.nextMatch(n,i)||""),o&&t.target&&(t.target.selectionEnd=t.target.selectionStart=Math.min(o,t.target.value.length))):"<C-u>"==a?(it.e_stop(t),r("")):a&&"<Left>"!=a&&"<Right>"!=a&&kt.exCommandHistoryController.reset()}"keyToEx"==n.type?Vt.processCommand(e,n.exArgs.input):t.visualMode?Se(e,{onClose:r,prefix:":",value:"'<,'>",onKeyDown:i,selectValueOnOpen:!1}):Se(e,{onClose:r,prefix:":",onKeyDown:i})},evalInput:function(e,t){var n,r,i,a=t.inputState,s=a.motion,l=a.motionArgs||{},c=a.operator,u=a.operatorArgs||{},h=a.registerName,d=t.sel,p=D(t.visualMode?K(e,d.head):e.getCursor("head")),m=D(t.visualMode?K(e,d.anchor):e.getCursor("anchor")),g=D(p),v=D(m);if(c&&this.recordLastEdit(t,a),(i=void 0!==a.repeatOverride?a.repeatOverride:a.getRepeat())>0&&l.explicitRepeat?l.repeatIsExplicit=!0:(l.noRepeat||!l.explicitRepeat&&0===i)&&(i=1,l.repeatIsExplicit=!1),a.selectedCharacter&&(l.selectedCharacter=u.selectedCharacter=a.selectedCharacter),l.repeat=i,E(e),s){var y=Rt[s](e,p,l,t,a);if(t.lastMotion=Rt[s],!y)return;if(l.toJumplist){!c&&null!=e.ace.curOp&&(e.ace.curOp.command.scrollIntoView="center-animate");var C=kt.jumpList,w=C.cachedCursor;w?(ie(e,w,y),delete C.cachedCursor):ie(e,p,y)}y instanceof Array?(r=y[0],n=y[1]):n=y,n||(n=D(p)),t.visualMode?(t.visualBlock&&n.ch===1/0||(n=K(e,n,g)),r&&(r=K(e,r)),r=r||v,d.anchor=r,d.head=n,Z(e),ce(e,t,"<",W(r,n)?r:n),ce(e,t,">",W(r,n)?n:r)):c||(e.ace.curOp&&(e.ace.curOp.vimDialogScroll="center-animate"),n=K(e,n,g),e.setCursor(n.line,n.ch))}if(c){if(u.lastSel){r=v;var k=u.lastSel,S=Math.abs(k.head.line-k.anchor.line),x=Math.abs(k.head.ch-k.anchor.ch);n=k.visualLine?new st(v.line+S,v.ch):k.visualBlock?new st(v.line+S,v.ch+x):k.head.line==k.anchor.line?new st(v.line,v.ch+x):new st(v.line+S,v.ch),t.visualMode=!0,t.visualLine=k.visualLine,t.visualBlock=k.visualBlock,d=t.sel={anchor:r,head:n},Z(e)}else t.visualMode&&(u.lastSel={anchor:D(d.anchor),head:D(d.head),visualBlock:t.visualBlock,visualLine:t.visualLine});var M,A,b,L,T;if(t.visualMode){if(M=j(d.head,d.anchor),A=F(d.head,d.anchor),b=t.visualLine||u.linewise,L=t.visualBlock?"block":b?"line":"char",T=Y(e,{anchor:(I=o(e,M,A)).start,head:I.end},L),b){var O=T.ranges;if("block"==L)for(var R=0;R<O.length;R++)O[R].head.ch=z(e,O[R].head.line);else"line"==L&&(O[0].head=new st(O[0].head.line+1,0))}}else{if(M=D(r||v),W(A=D(n||g),M)){var B=M;M=A,A=B}(b=l.linewise||u.linewise)?function(e,t,n){t.ch=0,n.ch=0,n.line++}(0,M,A):l.forward&&function(e,t,n){var r=e.getRange(t,n);if(/\n\s*$/.test(r)){var i=r.split("\n");i.pop();for(var o=i.pop();i.length>0&&o&&f(o);o=i.pop())n.line--,n.ch=0;o?(n.line--,n.ch=z(e,n.line)):n.ch=0}}(e,M,A),L="char";var I,N=!l.inclusive||b;T=Y(e,{anchor:(I=o(e,M,A)).start,head:I.end},L,N)}e.setSelections(T.ranges,T.primary),t.lastMotion=null,u.repeat=i,u.registerName=h,u.linewise=b;var P=Bt[c](e,u,T.ranges,v,n);t.visualMode&&ee(e,null!=P),P&&e.setCursor(P)}},recordLastEdit:function(e,t,n){var r=kt.macroModeState;r.isPlaying||(e.lastEditInputState=t,e.lastEditActionCommand=n,r.lastInsertModeChanges.changes=[],r.lastInsertModeChanges.expectCursorActivityForChange=!1,r.lastInsertModeChanges.visualBlock=e.visualBlock?e.sel.head.line-e.sel.anchor.line:0)}},Rt={moveToTopLine:function(e,t,n){var r=Te(e).top+n.repeat-1;return new st(r,te(e.getLine(r)))},moveToMiddleLine:function(e){var t=Te(e),n=Math.floor(.5*(t.top+t.bottom));return new st(n,te(e.getLine(n)))},moveToBottomLine:function(e,t,n){var r=Te(e).bottom-n.repeat+1;return new st(r,te(e.getLine(r)))},expandToLine:function(e,t,n){return new st(t.line+n.repeat-1,1/0)},findNext:function(e,t,n){var r=me(e),i=r.getQuery();if(i){var o=!n.forward;return o=r.isReversed()?!o:o,Me(e,i),Ae(e,o,i,n.repeat)}},findAndSelectNextInclusive:function(e,t,n,r,i){var o=me(e),a=o.getQuery();if(a){var s=!n.forward,l=function(e,t,n,r,i){return void 0===r&&(r=1),e.operation((function(){var o=e.getCursor(),a=e.getSearchCursor(n,o),s=a.find(!t);!i.visualMode&&s&&V(a.from(),o)&&a.find(!t);for(var l=0;l<r;l++)if(!(s=a.find(t))&&!(a=e.getSearchCursor(n,t?new st(e.lastLine()):new st(e.firstLine(),0))).find(t))return;return[a.from(),a.to()]}))}(e,s=o.isReversed()?!s:s,a,n.repeat,r);if(l){if(i.operator)return l;var c=l[0],u=new st(l[1].line,l[1].ch-1);if(r.visualMode){(r.visualLine||r.visualBlock)&&(r.visualLine=!1,r.visualBlock=!1,it.signal(e,"vim-mode-change",{mode:"visual",subMode:""}));var h=r.sel.anchor;if(h)return o.isReversed()?n.forward?[h,c]:[h,u]:n.forward?[h,u]:[h,c]}else r.visualMode=!0,r.visualLine=!1,r.visualBlock=!1,it.signal(e,"vim-mode-change",{mode:"visual",subMode:""});return s?[u,c]:[c,u]}}},goToMark:function(e,t,n,r){var i=Ee(e,r,n.selectedCharacter);return i?n.linewise?{line:i.line,ch:te(e.getLine(i.line))}:i:null},moveToOtherHighlightedEnd:function(e,t,n,r){if(r.visualBlock&&n.sameLine){var i=r.sel;return[K(e,new st(i.anchor.line,i.head.ch)),K(e,new st(i.head.line,i.anchor.ch))]}return[r.sel.head,r.sel.anchor]},jumpToMark:function(e,t,n,r){for(var i=t,o=0;o<n.repeat;o++){var a=i;for(var s in r.marks)if(u(s)){var l=r.marks[s].find();if(!((n.forward?W(l,a):W(a,l))||n.linewise&&l.line==a.line)){var c=V(a,i),h=n.forward?U(a,l,i):U(i,l,a);(c||h)&&(i=l)}}}return n.linewise&&(i=new st(i.line,te(e.getLine(i.line)))),i},moveByCharacters:function(e,t,n){var r=t,i=n.repeat,o=n.forward?r.ch+i:r.ch-i;return new st(r.line,o)},moveByLines:function(e,t,n,r){var i=t,o=i.ch;switch(r.lastMotion){case this.moveByLines:case this.moveByDisplayLines:case this.moveByScroll:case this.moveToColumn:case this.moveToEol:o=r.lastHPos;break;default:r.lastHPos=o}var a=n.repeat+(n.repeatOffset||0),s=n.forward?i.line+a:i.line-a,l=e.firstLine(),c=e.lastLine();if(s<l&&i.line==l)return this.moveToStartOfLine(e,t,n,r);if(s>c&&i.line==c)return se(e,t,n,r,!0);var u=e.ace.session.getFoldLine(s);return u&&(n.forward?s>u.start.row&&(s=u.end.row+1):s=u.start.row),n.toFirstChar&&(o=te(e.getLine(s)),r.lastHPos=o),r.lastHSPos=e.charCoords(new st(s,o),"div").left,new st(s,o)},moveByDisplayLines:function(e,t,n,r){var i=t;switch(r.lastMotion){case this.moveByDisplayLines:case this.moveByScroll:case this.moveByLines:case this.moveToColumn:case this.moveToEol:break;default:r.lastHSPos=e.charCoords(i,"div").left}var o=n.repeat;if((s=e.findPosV(i,n.forward?o:-o,"line",r.lastHSPos)).hitSide)if(n.forward)var a={top:e.charCoords(s,"div").top+8,left:r.lastHSPos},s=e.coordsChar(a,"div");else{var l=e.charCoords(new st(e.firstLine(),0),"div");l.left=r.lastHSPos,s=e.coordsChar(l,"div")}return r.lastHPos=s.ch,s},moveByPage:function(e,t,n){var r=t,i=n.repeat;return e.findPosV(r,n.forward?i:-i,"page")},moveByParagraph:function(e,t,n){var r=n.forward?1:-1;return he(e,t,n.repeat,r)},moveBySentence:function(e,t,n){var r=n.forward?1:-1;return function(e,t,n,r){function i(e,t){if(t.pos+t.dir<0||t.pos+t.dir>=t.line.length){if(t.ln+=t.dir,!c(e,t.ln))return t.line=null,t.ln=null,void(t.pos=null);t.line=e.getLine(t.ln),t.pos=t.dir>0?0:t.line.length-1}else t.pos+=t.dir}function o(e,t,n,r){var o=""===(c=e.getLine(t)),a={line:c,ln:t,pos:n,dir:r},s={ln:a.ln,pos:a.pos},l=""===a.line;for(i(e,a);null!==a.line;){if(s.ln=a.ln,s.pos=a.pos,""===a.line&&!l)return{ln:a.ln,pos:a.pos};if(o&&""!==a.line&&!f(a.line[a.pos]))return{ln:a.ln,pos:a.pos};m(a.line[a.pos])&&!o&&(a.pos===a.line.length-1||f(a.line[a.pos+1]))&&(o=!0),i(e,a)}var c=e.getLine(s.ln);s.pos=0;for(var u=c.length-1;u>=0;--u)if(!f(c[u])){s.pos=u;break}return s}function a(e,t,n,r){var o={line:l=e.getLine(t),ln:t,pos:n,dir:r},a={ln:o.ln,pos:null},s=""===o.line;for(i(e,o);null!==o.line;){if(""===o.line&&!s)return null!==a.pos?a:{ln:o.ln,pos:o.pos};if(m(o.line[o.pos])&&null!==a.pos&&(o.ln!==a.ln||o.pos+1!==a.pos))return a;""!==o.line&&!f(o.line[o.pos])&&(s=!1,a={ln:o.ln,pos:o.pos}),i(e,o)}var l=e.getLine(a.ln);a.pos=0;for(var c=0;c<l.length;++c)if(!f(l[c])){a.pos=c;break}return a}for(var s={ln:t.line,pos:t.ch};n>0;)s=r<0?a(e,s.ln,s.pos,r):o(e,s.ln,s.pos,r),n--;return new st(s.ln,s.pos)}(e,t,n.repeat,r)},moveByScroll:function(e,t,n,r){var i,o=e.getScrollInfo(),a=n.repeat;a||(a=o.clientHeight/(2*e.defaultTextHeight()));var s=e.charCoords(t,"local");if(n.repeat=a,!(i=Rt.moveByDisplayLines(e,t,n,r)))return null;var l=e.charCoords(i,"local");return e.scrollTo(null,o.top+l.top-s.top),i},moveByWords:function(e,t,n){return function(e,t,n,r,i,o){var a=D(t),s=[];(r&&!i||!r&&i)&&n++;for(var l=!r||!i,c=0;c<n;c++){var u=ae(e,t,r,o,l);if(!u){var h=z(e,e.lastLine());s.push(r?{line:e.lastLine(),from:h,to:h}:{line:0,from:0,to:0});break}s.push(u),t=new st(u.line,r?u.to-1:u.from)}var d=s.length!=n,p=s[0],f=s.pop();return r&&!i?(!d&&(p.from!=a.ch||p.line!=a.line)&&(f=s.pop()),new st(f.line,f.from)):r&&i?new st(f.line,f.to-1):!r&&i?(!d&&(p.to!=a.ch||p.line!=a.line)&&(f=s.pop()),new st(f.line,f.to)):new st(f.line,f.from)}(e,t,n.repeat,!!n.forward,!!n.wordEnd,!!n.bigWord)},moveTillCharacter:function(e,t,n){var r=le(e,n.repeat,n.forward,n.selectedCharacter,t),i=n.forward?-1:1;return oe(i,n),r?(r.ch+=i,r):null},moveToCharacter:function(e,t,n){var r=n.repeat;return oe(0,n),le(e,r,n.forward,n.selectedCharacter,t)||t},moveToSymbol:function(e,t,n){return function(e,t,n,r){var i=D(e.getCursor()),o=n?1:-1,a=n?e.lineCount():-1,s=i.ch,l=i.line,c=e.getLine(l),u={lineText:c,nextCh:c.charAt(s),lastCh:null,index:s,symb:r,reverseSymb:(n?{")":"(","}":"{"}:{"(":")","{":"}"})[r],forward:n,depth:0,curMoveThrough:!1},h=Nt[r];if(!h)return i;var d=Kt[h].init,p=Kt[h].isComplete;for(d&&d(u);l!==a&&t;){if(u.index+=o,u.nextCh=u.lineText.charAt(u.index),!u.nextCh){if(l+=o,u.lineText=e.getLine(l)||"",o>0)u.index=0;else{var f=u.lineText.length;u.index=f>0?f-1:0}u.nextCh=u.lineText.charAt(u.index)}p(u)&&(i.line=l,i.ch=u.index,t--)}return u.nextCh||u.curMoveThrough?new st(l,u.index):i}(e,n.repeat,n.forward,n.selectedCharacter)||t},moveToColumn:function(e,t,n,r){var i=n.repeat;return r.lastHPos=i-1,r.lastHSPos=e.charCoords(t,"div").left,function(e,t){var n=e.getCursor().line;return K(e,new st(n,t-1))}(e,i)},moveToEol:function(e,t,n,r){return se(e,t,n,r,!1)},moveToFirstNonWhiteSpaceCharacter:function(e,t){var n=t;return new st(n.line,te(e.getLine(n.line)))},moveToMatchedSymbol:function(e,t){for(var n,r=t,i=r.line,o=r.ch,a=e.getLine(i);o<a.length;o++)if((n=a.charAt(o))&&h(n)){var s=e.getTokenTypeAt(new st(i,o+1));if("string"!==s&&"comment"!==s)break}if(o<a.length){var l=/[<>]/.test(a[o])?/[(){}[\]<>]/:/[(){}[\]]/;return e.findMatchingBracket(new st(i,o+1),{bracketRegex:l}).to}return r},moveToStartOfLine:function(e,t){return new st(t.line,0)},moveToLineOrEdgeOfDocument:function(e,t,n){var r=n.forward?e.lastLine():e.firstLine();return n.repeatIsExplicit&&(r=n.repeat-e.getOption("firstLineNumber")),new st(r,te(e.getLine(r)))},moveToStartOfDisplayLine:function(e){return e.execCommand("goLineLeft"),e.getCursor()},moveToEndOfDisplayLine:function(e){e.execCommand("goLineRight");var t=e.getCursor();return"before"==t.sticky&&t.ch--,t},textObjectManipulation:function(e,t,n,r){var i=n.selectedCharacter;"b"==i?i="(":"B"==i&&(i="{");var o,a,s=!n.textObjectInner;if({"(":")",")":"(","{":"}","}":"{","[":"]","]":"[","<":">",">":"<"}[i]){if(a=!0,!(o=pe(e,t,i,s))){var l=e.getSearchCursor(new RegExp("\\"+i,"g"),t);l.find()&&(o=pe(e,l.from(),i,s))}}else if({"'":!0,'"':!0,"`":!0}[i])a=!0,o=function(e,t,n,r){var i,o,a,s,l=D(t),c=e.getLine(l.line).split(""),u=c.indexOf(n);if(l.ch<u)l.ch=u;else if(u<l.ch&&c[l.ch]==n){var h=/string/.test(e.getTokenTypeAt(H(t,0,1))),d=/string/.test(e.getTokenTypeAt(t));h&&!d||(o=l.ch,--l.ch)}if(c[l.ch]!=n||o)for(a=l.ch;a>-1&&!i;a--)c[a]==n&&(i=a+1);else i=l.ch+1;if(i&&!o)for(a=i,s=c.length;a<s&&!o;a++)c[a]==n&&(o=a);return i&&o?(r&&(--i,++o),{start:new st(l.line,i),end:new st(l.line,o)}):{start:l,end:l}}(e,t,i,s);else if("W"===i||"w"===i)for(var c=n.repeat||1;c-- >0;){var u=ne(e,{inclusive:s,innerWord:!s,bigWord:"W"===i,noSymbol:"W"===i,multiline:!0},o&&o.end);u&&(o||(o=u),o.end=u.end)}else if("p"===i)if(o=he(e,t,n.repeat,0,s),n.linewise=!0,r.visualMode)r.visualLine||(r.visualLine=!0);else{var h=r.inputState.operatorArgs;h&&(h.linewise=!0),o.end.line--}else if("t"===i)o=re(e,t,s);else if("s"===i){var d=e.getLine(t.line);t.ch>0&&m(d[t.ch])&&(t.ch-=1);var p=de(e,t,n.repeat,1,s),g=de(e,t,n.repeat,-1,s);f(e.getLine(g.line)[g.ch])&&f(e.getLine(p.line)[p.ch-1])&&(g={line:g.line,ch:g.ch+1}),o={start:g,end:p}}return o?e.state.vim.visualMode?function(e,t,n,r){var i,o=e.state.vim.sel,a=r?t:o.head,s=r?t:o.anchor;return W(n,t)&&(i=n,n=t,t=i),W(a,s)?(a=j(t,a),s=F(s,n)):(s=j(t,s),-1==(a=H(a=F(a,n),0,-1)).ch&&a.line!=e.firstLine()&&(a=new st(a.line-1,z(e,a.line-1)))),[s,a]}(e,o.start,o.end,a):[o.start,o.end]:null},repeatLastCharacterSearch:function(e,t,n){var r=kt.lastCharacterSearch,i=n.repeat,o=n.forward===r.forward,a=(r.increment?1:0)*(o?-1:1);e.moveH(-a,"char"),n.inclusive=!!o;var s=le(e,i,o,r.selectedCharacter);return s?(s.ch+=a,s):(e.moveH(a,"char"),t)}},Bt={change:function(e,t,n){var r,i,o=e.state.vim,a=n[0].anchor,s=n[0].head;if(o.visualMode)if(t.fullLine)s.ch=Number.MAX_VALUE,s.line--,e.setSelection(a,s),i=e.getSelection(),e.replaceSelection(""),r=a;else{i=e.getSelection();var l=N("",n.length);e.replaceSelections(l),r=j(n[0].head,n[0].anchor)}else{i=e.getRange(a,s);var c=o.lastEditInputState||{};if("moveByWords"==c.motion&&!f(i)){var u=/\s+$/.exec(i);u&&c.motionArgs&&c.motionArgs.forward&&(s=H(s,0,-u[0].length),i=i.slice(0,-u[0].length))}t.linewise&&(a=new st(a.line,te(e.getLine(a.line))),s.line>a.line&&(s=new st(s.line-1,Number.MAX_VALUE))),e.replaceRange("",a,s),r=a}kt.registerController.pushText(t.registerName,"change",i,t.linewise,n.length>1),It.enterInsertMode(e,{head:r},e.state.vim)},delete:function(e,t,n){var r,i,o=e.state.vim;if(o.visualBlock){i=e.getSelection();var a=N("",n.length);e.replaceSelections(a),r=j(n[0].head,n[0].anchor)}else{var s=n[0].anchor,l=n[0].head;t.linewise&&l.line!=e.firstLine()&&s.line==e.lastLine()&&s.line==l.line-1&&(s.line==e.firstLine()?s.ch=0:s=new st(s.line-1,z(e,s.line-1))),i=e.getRange(s,l),e.replaceRange("",s,l),r=s,t.linewise&&(r=Rt.moveToFirstNonWhiteSpaceCharacter(e,s))}return kt.registerController.pushText(t.registerName,"delete",i,t.linewise,o.visualBlock),K(e,r)},indent:function(e,t,n){var r=e.state.vim;if(e.indentMore)for(var i=r.visualMode?t.repeat:1,o=0;o<i;o++)t.indentRight?e.indentMore():e.indentLess();else{var a=n[0].anchor.line,s=r.visualBlock?n[n.length-1].anchor.line:n[0].head.line;i=r.visualMode?t.repeat:1;t.linewise&&s--;for(var l=a;l<=s;l++)for(o=0;o<i;o++)e.indentLine(l,t.indentRight)}return Rt.moveToFirstNonWhiteSpaceCharacter(e,n[0].anchor)},indentAuto:function(e,t,n){return e.execCommand("indentAuto"),Rt.moveToFirstNonWhiteSpaceCharacter(e,n[0].anchor)},hardWrap:function(e,t,n,r,i){if(e.hardWrap){var o=n[0].anchor.line,a=n[0].head.line;t.linewise&&a--;var s=e.hardWrap({from:o,to:a});return s>o&&t.linewise&&s--,t.keepCursor?r:new st(s,0)}},changeCase:function(e,t,n,r,i){for(var o=e.getSelections(),a=[],s=t.toLower,l=0;l<o.length;l++){var c=o[l],u="";if(!0===s)u=c.toLowerCase();else if(!1===s)u=c.toUpperCase();else for(var h=0;h<c.length;h++){var d=c.charAt(h);u+=p(d)?d.toLowerCase():d.toUpperCase()}a.push(u)}return e.replaceSelections(a),t.shouldMoveCursor?i:!e.state.vim.visualMode&&t.linewise&&n[0].anchor.line+1==n[0].head.line?Rt.moveToFirstNonWhiteSpaceCharacter(e,r):t.linewise?r:j(n[0].anchor,n[0].head)},yank:function(e,t,n,r){var i=e.state.vim,o=e.getSelection(),a=i.visualMode?j(i.sel.anchor,i.sel.head,n[0].head,n[0].anchor):r;return kt.registerController.pushText(t.registerName,"yank",o,t.linewise,i.visualBlock),a}},It={jumpListWalk:function(e,t,n){if(!n.visualMode){var r=t.repeat,i=t.forward,o=kt.jumpList.move(e,i?r:-r),a=o?o.find():void 0;a=a||e.getCursor(),e.setCursor(a),e.ace.curOp.command.scrollIntoView="center-animate"}},scroll:function(e,t,n){if(!n.visualMode){var r=t.repeat||1,i=e.defaultTextHeight(),o=e.getScrollInfo().top,a=i*r,s=t.forward?o+a:o-a,l=D(e.getCursor()),c=e.charCoords(l,"local");if(t.forward)s>c.top?(l.line+=(s-c.top)/i,l.line=Math.ceil(l.line),e.setCursor(l),c=e.charCoords(l,"local"),e.scrollTo(null,c.top)):e.scrollTo(null,s);else{var u=s+e.getScrollInfo().clientHeight;u<c.bottom?(l.line-=(c.bottom-u)/i,l.line=Math.floor(l.line),e.setCursor(l),c=e.charCoords(l,"local"),e.scrollTo(null,c.bottom-e.getScrollInfo().clientHeight)):e.scrollTo(null,s)}}},scrollToCursor:function(e,t){var n=e.getCursor().line,r=e.charCoords(new st(n,0),"local"),i=e.getScrollInfo().clientHeight,o=r.top;switch(t.position){case"center":o=r.bottom-i/2;break;case"bottom":var a=new st(n,e.getLine(n).length-1);o=o-i+(e.charCoords(a,"local").bottom-o)}e.scrollTo(null,o)},replayMacro:function(e,t,n){var r=t.selectedCharacter,i=t.repeat,o=kt.macroModeState;for("@"==r?r=o.latestRegister:o.latestRegister=r;i--;)Ne(e,n,o,r)},enterMacroRecordMode:function(e,t){var n=kt.macroModeState,r=t.selectedCharacter;kt.registerController.isValidRegister(r)&&n.enterMacroRecordMode(e,r)},toggleOverwrite:function(e){e.state.overwrite?(e.toggleOverwrite(!1),e.setOption("keyMap","vim-insert"),it.signal(e,"vim-mode-change",{mode:"insert"})):(e.toggleOverwrite(!0),e.setOption("keyMap","vim-replace"),it.signal(e,"vim-mode-change",{mode:"replace"}))},enterInsertMode:function(e,t,n){if(!e.getOption("readOnly")){n.insertMode=!0,n.insertModeRepeat=t&&t.repeat||1;var r=t?t.insertAt:null,i=n.sel,a=t.head||e.getCursor("head"),s=e.listSelections().length;if("eol"==r)a=new st(a.line,z(e,a.line));else if("bol"==r)a=new st(a.line,0);else if("charAfter"==r){a=o(e,a,H(a,0,1)).end}else if("firstNonBlank"==r){a=o(e,a,Rt.moveToFirstNonWhiteSpaceCharacter(e,a)).end}else if("startOfSelectedArea"==r){if(!n.visualMode)return;n.visualBlock?(a=new st(Math.min(i.head.line,i.anchor.line),Math.min(i.head.ch,i.anchor.ch)),s=Math.abs(i.head.line-i.anchor.line)+1):a=i.head.line<i.anchor.line?i.head:new st(i.anchor.line,0)}else if("endOfSelectedArea"==r){if(!n.visualMode)return;n.visualBlock?(a=new st(Math.min(i.head.line,i.anchor.line),Math.max(i.head.ch,i.anchor.ch)+1),s=Math.abs(i.head.line-i.anchor.line)+1):a=i.head.line>=i.anchor.line?H(i.head,0,1):new st(i.anchor.line,0)}else if("inplace"==r){if(n.visualMode)return}else"lastEdit"==r&&(a=Oe(e)||a);e.setOption("disableInput",!1),t&&t.replace?(e.toggleOverwrite(!0),e.setOption("keyMap","vim-replace"),it.signal(e,"vim-mode-change",{mode:"replace"})):(e.toggleOverwrite(!1),e.setOption("keyMap","vim-insert"),it.signal(e,"vim-mode-change",{mode:"insert"})),kt.macroModeState.isPlaying||(e.on("change",Ke),n.insertEnd&&n.insertEnd.clear(),n.insertEnd=e.setBookmark(a,{insertLeft:!0}),it.on(e.getInputField(),"keydown",$e)),n.visualMode&&ee(e),G(e,a,s)}},toggleVisualMode:function(e,t,n){var r,i=t.repeat,a=e.getCursor();if(n.visualMode)n.visualLine^t.linewise||n.visualBlock^t.blockwise?(n.visualLine=!!t.linewise,n.visualBlock=!!t.blockwise,it.signal(e,"vim-mode-change",{mode:"visual",subMode:n.visualLine?"linewise":n.visualBlock?"blockwise":""}),Z(e)):ee(e);else{n.visualMode=!0,n.visualLine=!!t.linewise,n.visualBlock=!!t.blockwise;var s=o(e,a,r=K(e,new st(a.line,a.ch+i-1)));n.sel={anchor:s.start,head:s.end},it.signal(e,"vim-mode-change",{mode:"visual",subMode:n.visualLine?"linewise":n.visualBlock?"blockwise":""}),Z(e),ce(e,n,"<",j(a,r)),ce(e,n,">",F(a,r))}},reselectLastSelection:function(e,t,n){var r=n.lastSelection;if(n.visualMode&&X(e,n),r){var i=r.anchorMark.find(),o=r.headMark.find();if(!i||!o)return;n.sel={anchor:i,head:o},n.visualMode=!0,n.visualLine=r.visualLine,n.visualBlock=r.visualBlock,Z(e),ce(e,n,"<",j(i,o)),ce(e,n,">",F(i,o)),it.signal(e,"vim-mode-change",{mode:"visual",subMode:n.visualLine?"linewise":n.visualBlock?"blockwise":""})}},joinLines:function(e,t,n){var r,i;if(n.visualMode){if(r=e.getCursor("anchor"),W(i=e.getCursor("head"),r)){var o=i;i=r,r=o}i.ch=z(e,i.line)-1}else{var a=Math.max(t.repeat,2);r=e.getCursor(),i=K(e,new st(r.line+a-1,1/0))}for(var s=0,l=r.line;l<i.line;l++){s=z(e,r.line);var c="",u=0;if(!t.keepSpaces){var h=e.getLine(r.line+1);-1==(u=h.search(/\S/))?u=h.length:c=" "}e.replaceRange(c,new st(r.line,s),new st(r.line+1,u))}var d=K(e,new st(r.line,s));n.visualMode&&ee(e,!1),e.setCursor(d)},newLineAndEnterInsertMode:function(e,t,n){n.insertMode=!0;var r=D(e.getCursor());r.line!==e.firstLine()||t.after?(r.line=t.after?r.line:r.line-1,r.ch=z(e,r.line),e.setCursor(r),(it.commands.newlineAndIndentContinueComment||it.commands.newlineAndIndent)(e)):(e.replaceRange("\n",new st(e.firstLine(),0)),e.setCursor(e.firstLine(),0));this.enterInsertMode(e,{repeat:t.repeat},n)},paste:function(e,t,n){var r=this,i=kt.registerController.getRegister(t.registerName),o=function(){var o=i.toString();r.continuePaste(e,t,n,o,i)};"+"===t.registerName&&"undefined"!=typeof navigator&&void 0!==navigator.clipboard&&"function"==typeof navigator.clipboard.readText?navigator.clipboard.readText().then((function(o){r.continuePaste(e,t,n,o,i)}),(function(){o()})):o()},continuePaste:function(e,t,n,r,i){var o=D(e.getCursor());if(r){if(t.matchIndent){var a=e.getOption("tabSize"),s=function(e){var t=e.split("\t").length-1,n=e.split(" ").length-1;return t*a+1*n},l=e.getLine(e.getCursor().line),c=s(l.match(/^\s*/)[0]),u=r.replace(/\n$/,""),h=r!==u,d=s(r.match(/^\s*/)[0]);r=u.replace(/^\s*/gm,(function(t){var n=c+(s(t)-d);if(n<0)return"";if(e.getOption("indentWithTabs")){var r=Math.floor(n/a);return Array(r+1).join("\t")}return Array(n+1).join(" ")}));r+=h?"\n":""}if(t.repeat>1)r=Array(t.repeat+1).join(r);var p,f=i.linewise,m=i.blockwise;if(m){r=r.split("\n"),f&&r.pop();for(var g=0;g<r.length;g++)r[g]=""==r[g]?" ":r[g];o.ch+=t.after?1:0,o.ch=Math.min(z(e,o.line),o.ch)}else f?n.visualMode?r=n.visualLine?r.slice(0,-1):"\n"+r.slice(0,r.length-1)+"\n":t.after?(r="\n"+r.slice(0,r.length-1),o.ch=z(e,o.line)):o.ch=0:o.ch+=t.after?1:0;if(n.visualMode){n.lastPastedText=r;var v,y=function(e,t){var n=t.lastSelection;return t.visualMode?function(){var t=e.listSelections(),n=t[0],r=t[t.length-1];return[W(n.anchor,n.head)?n.anchor:n.head,W(r.anchor,r.head)?r.head:r.anchor]}():function(){var t=e.getCursor(),r=e.getCursor(),i=n.visualBlock;if(i){var o=i.width,a=i.height;r=new st(t.line+a,t.ch+o);for(var s=[],l=t.line;l<r.line;l++){var c={anchor:new st(l,t.ch),head:new st(l,r.ch)};s.push(c)}e.setSelections(s)}else{var u=n.anchorMark.find(),h=n.headMark.find(),d=h.line-u.line,p=h.ch-u.ch;r={line:r.line+d,ch:d?r.ch:p+r.ch},n.visualLine&&(t=new st(t.line,0),r=new st(r.line,z(e,r.line))),e.setSelection(t,r)}return[t,r]}()}(e,n),C=y[0],w=y[1],k=e.getSelection(),S=e.listSelections(),x=new Array(S.length).join("1").split("1");n.lastSelection&&(v=n.lastSelection.headMark.find()),kt.registerController.unnamedRegister.setText(k),m?(e.replaceSelections(x),w=new st(C.line+r.length-1,C.ch),e.setCursor(C),J(e,w),e.replaceSelections(r),p=C):n.visualBlock?(e.replaceSelections(x),e.setCursor(C),e.replaceRange(r,C,C),p=C):(e.replaceRange(r,C,w),p=e.posFromIndex(e.indexFromPos(C)+r.length-1)),v&&(n.lastSelection.headMark=e.setBookmark(v)),f&&(p.ch=0)}else if(m){e.setCursor(o);for(g=0;g<r.length;g++){(M=o.line+g)>e.lastLine()&&e.replaceRange("\n",new st(M,0)),z(e,M)<o.ch&&q(e,M,o.ch)}e.setCursor(o),J(e,new st(o.line+r.length-1,o.ch)),e.replaceSelections(r),p=o}else if(e.replaceRange(r,o),f){var M=t.after?o.line+1:o.line;p=new st(M,te(e.getLine(M)))}else p=D(o),/\n/.test(r)||(p.ch+=r.length-(t.after?1:0));n.visualMode&&ee(e,!1),e.setCursor(p)}},undo:function(e,t){e.operation((function(){$(e,it.commands.undo,t.repeat)(),e.setCursor(K(e,e.getCursor("start")))}))},redo:function(e,t){$(e,it.commands.redo,t.repeat)()},setRegister:function(e,t,n){n.inputState.registerName=t.selectedCharacter},insertRegister:function(e,t,n){var r=t.selectedCharacter,i=kt.registerController.getRegister(r),o=i&&i.toString();o&&e.replaceSelection(o)},oneNormalCommand:function(e,t,n){Be(e,!0),n.insertModeReturn=!0,it.on(e,"vim-command-done",(function t(){n.visualMode||(n.insertModeReturn&&(n.insertModeReturn=!1,n.insertMode||It.enterInsertMode(e,{},n)),it.off(e,"vim-command-done",t))}))},setMark:function(e,t,n){ce(e,n,t.selectedCharacter,e.getCursor())},replace:function(e,t,n){var r,i,a=t.selectedCharacter,s=e.getCursor(),l=e.listSelections();if(n.visualMode)s=e.getCursor("start"),i=e.getCursor("end");else{var c=e.getLine(s.line);(r=s.ch+t.repeat)>c.length&&(r=c.length),i=new st(s.line,r)}var u=o(e,s,i);if(s=u.start,i=u.end,"\n"==a)n.visualMode||e.replaceRange("",s,i),(it.commands.newlineAndIndentContinueComment||it.commands.newlineAndIndent)(e);else{var h=e.getRange(s,i);if(h=(h=h.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,a)).replace(/[^\n]/g,a),n.visualBlock){var d=new Array(e.getOption("tabSize")+1).join(" ");h=(h=(h=e.getSelection()).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,a)).replace(/\t/g,d).replace(/[^\n]/g,a).split("\n"),e.replaceSelections(h)}else e.replaceRange(h,s,i);n.visualMode?(s=W(l[0].anchor,l[0].head)?l[0].anchor:l[0].head,e.setCursor(s),ee(e,!1)):e.setCursor(H(i,0,-1))}},incrementNumberToken:function(e,t){for(var n,r,i,o,a=e.getCursor(),s=e.getLine(a.line),l=/(-?)(?:(0x)([\da-f]+)|(0b|0|)(\d+))/gi;null!==(n=l.exec(s))&&(i=(r=n.index)+n[0].length,!(a.ch<i)););if((t.backtrack||!(i<=a.ch))&&n){var c=n[2]||n[4],u=n[3]||n[5],h=t.increase?1:-1,d={"0b":2,0:8,"":10,"0x":16}[c.toLowerCase()];o=(parseInt(n[1]+u,d)+h*t.repeat).toString(d);var p=c?new Array(u.length-o.length+1+n[1].length).join("0"):"";o="-"===o.charAt(0)?"-"+c+p+o.substr(1):c+p+o;var f=new st(a.line,r),m=new st(a.line,i);e.replaceRange(o,f,m),e.setCursor(new st(a.line,r+o.length-1))}},repeatLastEdit:function(e,t,n){if(n.lastEditInputState){var r=t.repeat;r&&t.repeatIsExplicit?n.lastEditInputState.repeatOverride=r:r=n.lastEditInputState.repeatOverride||r,De(e,n,r,!1)}},indent:function(e,t){e.indentLine(e.getCursor().line,t.indentRight)},exitInsertMode:Be},Nt={"(":"bracket",")":"bracket","{":"bracket","}":"bracket","[":"section","]":"section","*":"comment","/":"comment",m:"method",M:"method","#":"preprocess"},Kt={bracket:{isComplete:function(e){if(e.nextCh===e.symb){if(e.depth++,e.depth>=1)return!0}else e.nextCh===e.reverseSymb&&e.depth--;return!1}},section:{init:function(e){e.curMoveThrough=!0,e.symb=(e.forward?"]":"[")===e.symb?"{":"}"},isComplete:function(e){return 0===e.index&&e.nextCh===e.symb}},comment:{isComplete:function(e){var t="*"===e.lastCh&&"/"===e.nextCh;return e.lastCh=e.nextCh,t}},method:{init:function(e){e.symb="m"===e.symb?"{":"}",e.reverseSymb="{"===e.symb?"}":"{"},isComplete:function(e){return e.nextCh===e.symb}},preprocess:{init:function(e){e.index=0},isComplete:function(e){if("#"===e.nextCh){var t=e.lineText.match(/^#(\w+)/)[1];if("endif"===t){if(e.forward&&0===e.depth)return!0;e.depth++}else if("if"===t){if(!e.forward&&0===e.depth)return!0;e.depth--}if("else"===t&&0===e.depth)return!0}return!1}}};v("pcre",!0,"boolean"),fe.prototype={getQuery:function(){return kt.query},setQuery:function(e){kt.query=e},getOverlay:function(){return this.searchOverlay},setOverlay:function(e){this.searchOverlay=e},isReversed:function(){return kt.isReversed},setReversed:function(e){kt.isReversed=e},getScrollbarAnnotate:function(){return this.annotate},setScrollbarAnnotate:function(e){this.annotate=e}};var Pt={"\\n":"\n","\\r":"\r","\\t":"\t"},Ht={"\\/":"/","\\\\":"\\","\\n":"\n","\\r":"\r","\\t":"\t","\\&":"&"},_t=0,$t=function(){this.buildCommandMap_()};$t.prototype={processCommand:function(e,t,n){var r=this;e.operation((function(){e.curOp.isVimOp=!0,r._processCommand(e,t,n)}))},_processCommand:function(e,t,n){var r=e.state.vim,i=kt.registerController.getRegister(":"),o=i.toString(),a=new it.StringStream(t);i.setText(t);var s,l,c=n||{};c.input=t;try{this.parseInput_(e,a,c)}catch(t){throw ke(e,t.toString()),t}if(r.visualMode&&ee(e),c.commandName){if(s=this.matchCommand_(c.commandName)){if(l=s.name,s.excludeFromCommandHistory&&i.setText(o),this.parseCommandArgs_(a,c,s),"exToKey"==s.type)return void M(e,s.toKeys,s);if("exToEx"==s.type)return void this.processCommand(e,s.toInput)}}else void 0!==c.line&&(l="move");if(l)try{Dt[l](e,c),(!s||!s.possiblyAsync)&&c.callback&&c.callback()}catch(t){throw ke(e,t.toString()),t}else ke(e,'Not an editor command ":'+t+'"')},parseInput_:function(e,t,n){if(t.eatWhile(":"),t.eat("%")?(n.line=e.firstLine(),n.lineEnd=e.lastLine()):(n.line=this.parseLineSpec_(e,t),void 0!==n.line&&t.eat(",")&&(n.lineEnd=this.parseLineSpec_(e,t))),null==n.line)if(e.state.vim.visualMode){var r=Ee(e,e.state.vim,"<");n.selectionLine=r&&r.line,r=Ee(e,e.state.vim,">"),n.selectionLineEnd=r&&r.line}else n.selectionLine=e.getCursor().line;else n.selectionLine=n.line,n.selectionLineEnd=n.lineEnd;var i=t.match(/^(\w+|!!|@@|[!#&*<=>@~])/);return n.commandName=i?i[1]:t.match(/.*/)[0],n},parseLineSpec_:function(e,t){var n=t.match(/^(\d+)/);if(n)return parseInt(n[1],10)-1;switch(t.next()){case".":return this.parseLineSpecOffset_(t,e.getCursor().line);case"$":return this.parseLineSpecOffset_(t,e.lastLine());case"'":var r=t.next(),i=Ee(e,e.state.vim,r);if(!i)throw new Error("Mark not set");return this.parseLineSpecOffset_(t,i.line);case"-":case"+":return t.backUp(1),this.parseLineSpecOffset_(t,e.getCursor().line);default:return void t.backUp(1)}},parseLineSpecOffset_:function(e,t){var n=e.match(/^([+-])?(\d+)/);if(n){var r=parseInt(n[2],10);"-"==n[1]?t-=r:t+=r}return t},parseCommandArgs_:function(e,t,n){if(!e.eol()){t.argString=e.match(/.*/)[0];var r=n.argDelimiter||/\s+/,i=Q(t.argString).split(r);i.length&&i[0]&&(t.args=i)}},matchCommand_:function(e){for(var t=e.length;t>0;t--){var n=e.substring(0,t);if(this.commandMap_[n]){var r=this.commandMap_[n];if(0===r.name.indexOf(e))return r}}return null},buildCommandMap_:function(){this.commandMap_={};for(var e=0;e<ut.length;e++){var t=ut[e],n=t.shortName||t.name;this.commandMap_[n]=t}},map:function(e,t,n,r){if(":"!=e&&":"==e.charAt(0)){if(n)throw Error("Mode not supported for ex mappings");var i=e.substring(1);":"!=t&&":"==t.charAt(0)?this.commandMap_[i]={name:i,type:"exToEx",toInput:t.substring(1),user:!0}:this.commandMap_[i]={name:i,type:"exToKey",toKeys:t,user:!0}}else{var o={keys:e,type:"keyToKey",toKeys:t,noremap:!!r};n&&(o.context=n),lt.unshift(o)}},unmap:function(e,t){if(":"!=e&&":"==e.charAt(0)){if(t)throw Error("Mode not supported for ex mappings");var n=e.substring(1);if(this.commandMap_[n]&&this.commandMap_[n].user)return delete this.commandMap_[n],!0}else for(var r=e,i=0;i<lt.length;i++)if(r==lt[i].keys&<[i].context===t)return lt.splice(i,1),!0}};var Dt={colorscheme:function(e,t){!t.args||t.args.length<1?ke(e,e.getOption("theme")):e.setOption("theme",t.args[0])},map:function(e,t,n,r){var i=t.args;!i||i.length<2?e&&ke(e,"Invalid mapping: "+t.input):Vt.map(i[0],i[1],n,r)},imap:function(e,t){this.map(e,t,"insert")},nmap:function(e,t){this.map(e,t,"normal")},vmap:function(e,t){this.map(e,t,"visual")},omap:function(e,t){this.map(e,t,"operatorPending")},noremap:function(e,t){this.map(e,t,void 0,!0)},inoremap:function(e,t){this.map(e,t,"insert",!0)},nnoremap:function(e,t){this.map(e,t,"normal",!0)},vnoremap:function(e,t){this.map(e,t,"visual",!0)},onoremap:function(e,t){this.map(e,t,"operatorPending",!0)},unmap:function(e,t,n){var r=t.args;(!r||r.length<1||!Vt.unmap(r[0],n))&&e&&ke(e,"No such mapping: "+t.input)},mapclear:function(e,t){Mt.mapclear()},imapclear:function(e,t){Mt.mapclear("insert")},nmapclear:function(e,t){Mt.mapclear("normal")},vmapclear:function(e,t){Mt.mapclear("visual")},omapclear:function(e,t){Mt.mapclear("operatorPending")},move:function(e,t){Ot.processCommand(e,e.state.vim,{type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0},repeatOverride:t.line+1})},set:function(e,t){var n=t.args,r=t.setCfg||{};if(!n||n.length<1)e&&ke(e,"Invalid mapping: "+t.input);else{var i=n[0].split("="),o=i[0],a=i[1],s=!1,l=!1;if("?"==o.charAt(o.length-1)){if(a)throw Error("Trailing characters: "+t.argString);o=o.substring(0,o.length-1),s=!0}else"!"==o.charAt(o.length-1)&&(o=o.substring(0,o.length-1),l=!0);void 0===a&&"no"==o.substring(0,2)&&(o=o.substring(2),a=!1);var c=yt[o]&&"boolean"==yt[o].type;if(c&&(l?a=!C(o,e,r):null==a&&(a=!0)),!c&&void 0===a||s){var u=C(o,e,r);u instanceof Error?ke(e,u.message):ke(e,!0===u||!1===u?" "+(u?"":"no")+o:" "+o+"="+u)}else{var h=y(o,a,e,r);h instanceof Error&&ke(e,h.message)}}},setlocal:function(e,t){t.setCfg={scope:"local"},this.set(e,t)},setglobal:function(e,t){t.setCfg={scope:"global"},this.set(e,t)},registers:function(e,t){var n=t.args,r=kt.registerController.registers,i="----------Registers----------\n\n";if(n){n=n.join("");for(var o=0;o<n.length;o++){if(a=n.charAt(o),kt.registerController.isValidRegister(a))i+='"'+a+" "+(r[a]||new R).toString()+"\n"}}else for(var a in r){var s=r[a].toString();s.length&&(i+='"'+a+" "+s+"\n")}ke(e,i)},sort:function(e,t){function n(e,t){var n;r&&(n=e,e=t,t=n);i&&(e=e.toLowerCase(),t=t.toLowerCase());var o=a&&f.exec(e),s=a&&f.exec(t);return o?(o=parseInt((o[1]+o[2]).toLowerCase(),m))-(s=parseInt((s[1]+s[2]).toLowerCase(),m)):e<t?-1:1}var r,i,o,a,s,l=function(){if(t.argString){var e=new it.StringStream(t.argString);if(e.eat("!")&&(r=!0),e.eol())return;if(!e.eatSpace())return"Invalid arguments";var n=e.match(/([dinuox]+)?\s*(\/.+\/)?\s*/);if(!n&&!e.eol())return"Invalid arguments";if(n[1]){i=-1!=n[1].indexOf("i"),o=-1!=n[1].indexOf("u");var l=-1!=n[1].indexOf("d")||-1!=n[1].indexOf("n")&&1,c=-1!=n[1].indexOf("x")&&1,u=-1!=n[1].indexOf("o")&&1;if(l+c+u>1)return"Invalid arguments";a=(l?"decimal":c&&"hex")||u&&"octal"}n[2]&&(s=new RegExp(n[2].substr(1,n[2].length-2),i?"i":""))}}();if(l)ke(e,l+": "+t.argString);else{var c=t.line||e.firstLine(),u=t.lineEnd||t.line||e.lastLine();if(c!=u){var h=new st(c,0),d=new st(u,z(e,u)),p=e.getRange(h,d).split("\n"),f=s||("decimal"==a?/(-?)([\d]+)/:"hex"==a?/(-?)(?:0x)?([0-9a-f]+)/i:"octal"==a?/([0-7]+)/:null),m="decimal"==a?10:"hex"==a?16:"octal"==a?8:null,g=[],v=[];if(a||s)for(var y=0;y<p.length;y++){var C=s?p[y].match(s):null;C&&""!=C[0]?g.push(C):!s&&f.exec(p[y])?g.push(p[y]):v.push(p[y])}else v=p;if(g.sort(s?function(e,t){var n;return r&&(n=e,e=t,t=n),i&&(e[0]=e[0].toLowerCase(),t[0]=t[0].toLowerCase()),e[0]<t[0]?-1:1}:n),s)for(y=0;y<g.length;y++)g[y]=g[y].input;else a||v.sort(n);if(p=r?g.concat(v):v.concat(g),o){var w,k=p;p=[];for(y=0;y<k.length;y++)k[y]!=w&&p.push(k[y]),w=k[y]}e.replaceRange(p.join("\n"),h,d)}}},vglobal:function(e,t){this.global(e,t)},normal:function(e,t){var n=t.argString;if(n&&"!"==n[0]&&(n=n.slice(1),bt=!0),n=n.trimStart()){var r=t.line;if("number"==typeof r)for(var i=isNaN(t.lineEnd)?r:t.lineEnd,o=r;o<=i;o++)e.setCursor(o,0),M(e,t.argString.trimStart()),e.state.vim.insertMode&&Be(e,!0);else M(e,t.argString.trimStart()),e.state.vim.insertMode&&Be(e,!0)}else ke(e,"Argument is required.")},global:function(e,t){var n=t.argString;if(n){var r="v"===t.commandName[0];"!"===n[0]&&"g"===t.commandName[0]&&(r=!0,n=n.slice(1));var i,o=void 0!==t.line?t.line:e.firstLine(),a=t.lineEnd||t.line||e.lastLine(),s=function(e){return ge(e,"/")}(n),l=n;if(s.length&&(l=s[0],i=s.slice(1,s.length).join("/")),l)try{xe(e,l,!0,!0)}catch(t){return void ke(e,"Invalid regex: "+l)}for(var c=me(e).getQuery(),u=[],h=o;h<=a;h++){var d=e.getLine(h);c.test(d)!==r&&u.push(i?e.getLineHandle(h):d)}if(i){var p=0,f=function(){if(p<u.length){var t=u[p++],n=e.getLineNumber(t);if(null==n)return void f();var r=n+1+i;Vt.processCommand(e,r,{callback:f})}else e.releaseLineHandles&&e.releaseLineHandles()};f()}else ke(e,u.join("\n"))}else ke(e,"Regular Expression missing from global")},substitute:function(e,t){if(!e.getSearchCursor)throw new Error("Search feature not available. Requires searchcursor.js or any other getSearchCursor implementation.");var n,r,i,o,a=t.argString,s=a?ge(a,a[0]):[],l="",c=!1,u=!1;if(s.length)n=s[0],C("pcre")&&""!==n&&(n=new RegExp(n).source),void 0!==(l=s[1])&&(l=C("pcre")?ye(l.replace(/([^\\])&/g,"$1$$&")):function(e){for(var t=!1,n=[],r=-1;r<e.length;r++){var i=e.charAt(r)||"",o=e.charAt(r+1)||"";Pt[i+o]?(n.push(Pt[i+o]),r++):t?(n.push(i),t=!1):"\\"===i?(t=!0,d(o)||"$"===o?n.push("$"):"/"!==o&&"\\"!==o&&n.push("\\")):("$"===i&&n.push("$"),n.push(i),"/"===o&&n.push("\\"))}return n.join("")}(l),kt.lastSubstituteReplacePart=l),r=s[2]?s[2].split(" "):[];else if(a&&a.length)return void ke(e,"Substitutions should be of the form :s/pattern/replace/");if(r&&(i=r[0],o=parseInt(r[1]),i&&(-1!=i.indexOf("c")&&(c=!0),-1!=i.indexOf("g")&&(u=!0),n=C("pcre")?n+"/"+i:n.replace(/\//g,"\\/")+"/"+i)),n)try{xe(e,n,!0,!0)}catch(t){return void ke(e,"Invalid regex: "+n)}if(void 0!==(l=l||kt.lastSubstituteReplacePart)){var h=me(e).getQuery(),p=void 0!==t.line?t.line:e.getCursor().line,f=t.lineEnd||p;p==e.firstLine()&&f==e.lastLine()&&(f=1/0),o&&(f=(p=f)+o-1);var m=K(e,new st(p,0)),g=e.getSearchCursor(h,m);Re(e,c,u,p,f,g,h,l,t.callback)}else ke(e,"No previous substitute regular expression")},startinsert:function(e,t){M(e,"!"==t.argString?"A":"i",{})},redo:it.commands.redo,undo:it.commands.undo,write:function(e){it.commands.save?it.commands.save(e):e.save&&e.save()},nohlsearch:function(e){be(e)},yank:function(e){var t=D(e.getCursor()).line,n=e.getLine(t);kt.registerController.pushText("0","yank",n,!0,!0)},delete:function(e,t){var n=t.selectionLine,r=isNaN(t.selectionLineEnd)?n:t.selectionLineEnd;Bt.delete(e,{linewise:!0},[{anchor:new st(n,0),head:new st(r+1,0)}])},join:function(e,t){var n=t.selectionLine,r=isNaN(t.selectionLineEnd)?n:t.selectionLineEnd;e.setCursor(new st(n,0)),It.joinLines(e,{repeat:r-n},e.state.vim)},delmarks:function(e,t){if(t.argString&&Q(t.argString))for(var n=e.state.vim,r=new it.StringStream(Q(t.argString));!r.eol();){r.eatSpace();var i=r.pos;if(!r.match(/[a-zA-Z]/,!1))return void ke(e,"Invalid argument: "+t.argString.substring(i));var o=r.next();if(r.match("-",!0)){if(!r.match(/[a-zA-Z]/,!1))return void ke(e,"Invalid argument: "+t.argString.substring(i));var a=o,s=r.next();if(!(u(a)&&u(s)||p(a)&&p(s)))return void ke(e,"Invalid argument: "+a+"-");var l=a.charCodeAt(0),c=s.charCodeAt(0);if(l>=c)return void ke(e,"Invalid argument: "+t.argString.substring(i));for(var h=0;h<=c-l;h++){var d=String.fromCharCode(l+h);delete n.marks[d]}}else delete n.marks[o]}else ke(e,"Argument required")}},Vt=new $t;v("insertModeEscKeysTimeout",200,"number"),it.Vim=Mt;var Wt={return:"CR",backspace:"BS",delete:"Del",esc:"Esc",left:"Left",right:"Right",up:"Up",down:"Down",space:"Space",insert:"Ins",home:"Home",end:"End",pageup:"PageUp",pagedown:"PageDown",enter:"CR"},jt=Mt.handleKey.bind(Mt);Mt.handleKey=function(e,t,n){return e.operation((function(){return jt(e,t,n)}),!0)},S(),t.CodeMirror=it;var Ft=Mt.maybeInitVimState_;t.handler={$id:"ace/keyboard/vim",drawCursor:function(e,t,n,r,i){var o=this.state.vim||{},a=n.characterWidth,s=n.lineHeight,l=t.top,c=t.left;o.insertMode||!(r.cursor?ze.comparePoints(r.cursor,r.start)<=0:i.selection.isBackwards()||i.selection.isEmpty())&&c>a&&(c-=a);!o.insertMode&&o.status&&(l+=s/=2),qe.translate(e,c,l),qe.setStyle(e.style,"width",a+"px"),qe.setStyle(e.style,"height",s+"px")},$getDirectionForHighlight:function(e){var t=e.state.cm;if(!Ft(t).insertMode)return e.session.selection.isBackwards()||e.session.selection.isEmpty()},handleKeyboard:function(e,t,n,r,i){var o=e.editor,a=o.state.cm,s=Ft(a);if(-1!=r){if(s.insertMode||(-1==t?(n.charCodeAt(0)>255&&e.inputKey&&((n=e.inputKey)&&4==e.inputHash&&(n=n.toUpperCase())),e.inputChar=n):4==t||0==t?e.inputKey==n&&e.inputHash==t&&e.inputChar?(n=e.inputChar,t=-1):(e.inputChar=null,e.inputKey=n,e.inputHash=t):e.inputChar=e.inputKey=null),a.state.overwrite&&s.insertMode&&"backspace"==n&&0==t)return{command:"gotoleft"};if("c"==n&&1==t&&!Ye.isMac&&o.getCopyText())return o.once("copy",(function(){s.insertMode?o.selection.clearSelection():a.operation((function(){ee(a)}))})),{command:"null",passEvent:!0};if("esc"==n&&!s.insertMode&&!s.visualMode&&!a.ace.inMultiSelectMode){var l=me(a).getOverlay();l&&a.removeOverlay(l)}if(-1==t||1&t||0===t&&n.length>1){var c=s.insertMode,u=function(e,t,n,r){t.length>1&&"n"==t[0]&&(t=t.replace("numpad","")),t=Wt[t]||t;var i="";if(n.ctrlKey&&(i+="C-"),n.altKey&&(i+="A-"),(i||t.length>1)&&n.shiftKey&&(i+="S-"),r&&!r.expectLiteralNext&&1==t.length)if(ht.keymap&&t in ht.keymap)!1===ht.remapCtrl&&i||(t=ht.keymap[t]);else if(t.charCodeAt(0)>255){var o=n.code&&n.code.slice(-1)||"";n.shiftKey||(o=o.toLowerCase()),o&&(t=o)}return(i+=t).length>1&&(i="<"+i+">"),i}(0,n,i||{},s);null==s.status&&(s.status="");var h=Fe(a,u,"user");if(s=Ft(a),h&&null!=s.status?s.status+=u:null==s.status&&(s.status=""),a._signal("changeStatus"),!h&&(-1!=t||c))return;return{command:"null",passEvent:!h}}}},attach:function(e){function t(){var t=Ft(n).insertMode;n.ace.renderer.setStyle("normal-mode",!t),e.textInput.setCommandMode(!t),e.renderer.$keepTextAreaAtCursor=t,e.renderer.$blockCursor=!t}e.state||(e.state={});var n=new it(e);e.state.cm=n,e.$vimModeHandler=this,a(n),Ft(n).status=null,n.on("vim-command-done",(function(){n.virtualSelectionMode()||(Ft(n).status=null,n.ace._signal("changeStatus"),n.ace.session.markUndoGroup())})),n.on("changeStatus",(function(){n.ace.renderer.updateCursor(),n.ace._signal("changeStatus")})),n.on("vim-mode-change",(function(){n.virtualSelectionMode()||(t(),n._signal("changeStatus"))})),t(),e.renderer.$cursorLayer.drawCursor=this.drawCursor.bind(n)},detach:function(e){var t=e.state.cm;s(t),t.destroy(),e.state.cm=null,e.$vimModeHandler=null,e.renderer.$cursorLayer.drawCursor=null,e.renderer.setStyle("normal-mode",!1),e.textInput.setCommandMode(!1),e.renderer.$keepTextAreaAtCursor=!0},getStatusText:function(e){var t=e.state.cm,n=Ft(t);if(n.insertMode)return"INSERT";var r="";return n.visualMode&&(r+="VISUAL",n.visualLine&&(r+=" LINE"),n.visualBlock&&(r+=" BLOCK")),n.status&&(r+=(r?" ":"")+n.status),r}},Mt.defineOption({name:"wrap",set:function(e,t){t&&t.ace.setOption("wrap",e)},type:"boolean"},!1),Mt.defineEx("write","w",(function(){console.log(":write is not implemented")})),lt.push({keys:"zc",type:"action",action:"fold",actionArgs:{open:!1}},{keys:"zC",type:"action",action:"fold",actionArgs:{open:!1,all:!0}},{keys:"zo",type:"action",action:"fold",actionArgs:{open:!0}},{keys:"zO",type:"action",action:"fold",actionArgs:{open:!0,all:!0}},{keys:"za",type:"action",action:"fold",actionArgs:{toggle:!0}},{keys:"zA",type:"action",action:"fold",actionArgs:{toggle:!0,all:!0}},{keys:"zf",type:"action",action:"fold",actionArgs:{open:!0,all:!0}},{keys:"zd",type:"action",action:"fold",actionArgs:{open:!0,all:!0}},{keys:"<C-A-k>",type:"action",action:"aceCommand",actionArgs:{name:"addCursorAbove"}},{keys:"<C-A-j>",type:"action",action:"aceCommand",actionArgs:{name:"addCursorBelow"}},{keys:"<C-A-S-k>",type:"action",action:"aceCommand",actionArgs:{name:"addCursorAboveSkipCurrent"}},{keys:"<C-A-S-j>",type:"action",action:"aceCommand",actionArgs:{name:"addCursorBelowSkipCurrent"}},{keys:"<C-A-h>",type:"action",action:"aceCommand",actionArgs:{name:"selectMoreBefore"}},{keys:"<C-A-l>",type:"action",action:"aceCommand",actionArgs:{name:"selectMoreAfter"}},{keys:"<C-A-S-h>",type:"action",action:"aceCommand",actionArgs:{name:"selectNextBefore"}},{keys:"<C-A-S-l>",type:"action",action:"aceCommand",actionArgs:{name:"selectNextAfter"}}),lt.push({keys:"gq",type:"operator",operator:"hardWrap"}),Mt.defineOperator("hardWrap",(function(e,t,n,r,i){var o=n[0].anchor.line,a=n[0].head.line;return t.linewise&&a--,rt(e.ace,{startRow:o,endRow:a}),st(a,0)})),v("textwidth",void 0,"number",["tw"],(function(e,t){if(void 0!==t){if(void 0===e)return t.ace.getOption("printMarginColumn");var n=Math.round(e);n>1&&t.ace.setOption("printMarginColumn",n)}})),It.aceCommand=function(e,t,n){e.vimCmd=t,e.ace.inVirtualSelectionMode?e.ace.on("beforeEndOperation",Ue):Ue(0,e.ace)},It.fold=function(e,t,n){e.ace.execCommand(["toggleFoldWidget","toggleFoldWidget","foldOther","unfoldall"][(t.all?2:0)+(t.open?1:0)])},ct=lt.length,t.handler.defaultKeymap=lt,t.handler.actions=It,t.Vim=Mt})),ace.require(["ace/keyboard/vim"],(function(e){"object"==typeof module&&"object"==typeof exports&&module&&(module.exports=e)}));
|
|
1
|
+
ace.define("ace/ext/hardwrap",["require","exports","module","ace/range","ace/editor","ace/config"],(function(e,t,n){"use strict";function r(e,t){function n(e,t,n){if(!(e.length<t)){var r=e.slice(0,t),i=e.slice(t),o=/^(?:(\s+)|(\S+)(\s+))/.exec(i),a=/(?:(\s+)|(\s+)(\S+))$/.exec(r),s=0,l=0;return a&&!a[2]&&(s=t-a[1].length,l=t),o&&!o[2]&&(s||(s=t),l=t+o[1].length),s?{start:s,end:l}:a&&a[2]&&a.index>n?{start:a.index,end:a.index+a[2].length}:o&&o[2]?{start:s=t+o[2].length,end:s+o[3].length}:void 0}}for(var r=t.column||e.getOption("printMarginColumn"),i=0!=t.allowMerge,a=Math.min(t.startRow,t.endRow),s=Math.max(t.startRow,t.endRow),l=e.session;a<=s;){var c=l.getLine(a);if(c.length>r){if(p=n(c,r,5)){var u=/^\s*/.exec(c)[0];l.replace(new o(a,p.start,a,p.end),"\n"+u)}s++}else if(i&&/\S/.test(c)&&a!=s){var h=l.getLine(a+1);if(h&&/\S/.test(h)){var p,d=c.replace(/\s+$/,""),f=h.replace(/^\s+/,""),m=d+" "+f;if((p=n(m,r,5))&&p.start>d.length||m.length<r){var g=new o(a,d.length,a+1,h.length-f.length);l.replace(g," "),a--,s--}else d.length<c.length&&l.remove(new o(a,d.length,a,c.length))}}a++}}function i(e){if("insertstring"==e.command.name&&/\S/.test(e.args)){var t=e.editor,n=t.selection.cursor;if(n.column<=t.renderer.$printMarginColumn)return;var i=t.session.$undoManager.$lastDelta;r(t,{startRow:n.row,endRow:n.row,allowMerge:!1}),i!=t.session.$undoManager.$lastDelta&&t.session.markUndoGroup()}}var o=e("../range").Range,a=e("../editor").Editor;e("../config").defineOptions(a.prototype,"editor",{hardWrap:{set:function(e){e?this.commands.on("afterExec",i):this.commands.off("afterExec",i)},value:!1}}),t.hardWrap=r})),ace.define("ace/keyboard/vim",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/dom","ace/lib/oop","ace/lib/keys","ace/lib/event","ace/search","ace/lib/useragent","ace/search_highlight","ace/commands/multi_select_commands","ace/mode/text","ace/ext/hardwrap","ace/multi_select"],(function(e,t,n){"use strict";function r(e){return{row:e.line,column:e.ch}}function i(e){return new st(e.row,e.column)}function o(e,t,n){if(t.line===n.line&&t.ch>=n.ch-1){var r=e.getLine(t.line).charCodeAt(t.ch);55296<=r&&r<=55551&&(n.ch+=1)}return{start:t,end:n}}function a(e){e.setOption("disableInput",!0),e.setOption("showCursorWhenSelecting",!1),it.signal(e,"vim-mode-change",{mode:"normal"}),e.on("cursorActivity",Pe),k(e),it.on(e.getInputField(),"paste",l(e))}function s(e){e.setOption("disableInput",!1),e.off("cursorActivity",Pe),it.off(e.getInputField(),"paste",l(e)),e.state.vim=null,_t&&clearTimeout(_t)}function l(e){var t=e.state.vim;return t.onPasteFn||(t.onPasteFn=function(){t.insertMode||(e.setCursor(H(e.getCursor(),0,1)),It.enterInsertMode(e,{},t))}),t.onPasteFn}function c(e,t){return t>=e.firstLine()&&t<=e.lastLine()}function u(e){return/^[a-z]$/.test(e)}function h(e){return-1!="()[]{}".indexOf(e)}function p(e){return pt.test(e)}function d(e){return at.test(e)}function f(e){return/^\s*$/.test(e)}function m(e){return-1!=".?!".indexOf(e)}function g(e,t){for(var n=0;n<t.length;n++)if(t[n]==e)return!0;return!1}function v(e,t,n,r,i){if(void 0===t&&!i)throw Error("defaultValue is required unless callback is provided");if(n||(n="string"),yt[e]={type:n,defaultValue:t,callback:i},r)for(var o=0;o<r.length;o++)yt[r[o]]=yt[e];t&&y(e,t)}function y(e,t,n,r){var i=yt[e],o=(r=r||{}).scope;if(!i)return new Error("Unknown option: "+e);if("boolean"==i.type){if(t&&!0!==t)return new Error("Invalid argument: "+e+"="+t);!1!==t&&(t=!0)}i.callback?("local"!==o&&i.callback(t,void 0),"global"!==o&&n&&i.callback(t,n)):("local"!==o&&(i.value="boolean"==i.type?!!t:t),"global"!==o&&n&&(n.state.vim.options[e]={value:t}))}function C(e,t,n){var r=yt[e],i=(n=n||{}).scope;if(!r)return new Error("Unknown option: "+e);if(r.callback){var o=t&&r.callback(void 0,t);return"global"!==i&&void 0!==o?o:"local"!==i?r.callback():void 0}return((o="global"!==i&&t&&t.state.vim.options[e])||"local"!==i&&r||{}).value}function w(){this.latestRegister=void 0,this.isPlaying=!1,this.isRecording=!1,this.replaySearchQueries=[],this.onRecordingDone=void 0,this.lastInsertModeChanges=wt()}function k(e){return e.state.vim||(e.state.vim={inputState:new T,lastEditInputState:void 0,lastEditActionCommand:void 0,lastHPos:-1,lastHSPos:-1,lastMotion:null,marks:{},insertMode:!1,insertModeReturn:!1,insertModeRepeat:void 0,visualMode:!1,visualLine:!1,visualBlock:!1,lastSelection:null,lastPastedText:null,sel:{},options:{},expectLiteralNext:!1}),e.state.vim}function S(){for(var e in kt={searchQuery:null,searchIsReversed:!1,lastSubstituteReplacePart:void 0,jumpList:Ct(),macroModeState:new w,lastCharacterSearch:{increment:0,forward:!0,selectedCharacter:""},registerController:new B({}),searchHistoryController:new I,exCommandHistoryController:new I},yt){var t=yt[e];t.value=t.defaultValue}}function x(e){function t(e){"string"==typeof e?xt.value=e:xt=null}if("<"==e[0]){var n=e.toLowerCase().slice(1,-1),r=n.split("-");if("lt"==(n=r.pop()||""))e="<";else if("space"==n)e=" ";else if("cr"==n)e="\n";else if(Et[n]){var i=xt.value,o={key:Et[n],target:{value:i,selectionEnd:i.length,selectionStart:i.length}};return xt.onKeyDown&&xt.onKeyDown(o,xt.value,t),void(xt&&xt.onKeyUp&&xt.onKeyUp(o,xt.value,t))}}if("\n"==e){var a=xt;xt=null,a.onClose&&a.onClose(a.value)}else xt.value=(xt.value||"")+e}function M(e,t,n){var r=At;if(n){if(-1!=bt.indexOf(n))return;bt.push(n),At=0!=n.noremap}try{for(var i,o=k(e),a=/<(?:[CSMA]-)*\w+>|./gi;i=a.exec(t);){var s=i[0],l=o.insertMode;if(xt)x(s);else if(!Mt.handleKey(e,s,"mapping")&&l&&o.insertMode){if("<"==s[0]){var c=s.toLowerCase().slice(1,-1),u=c.split("-");if("lt"==(c=u.pop()||""))s="<";else if("space"==c)s=" ";else if("cr"==c)s="\n";else{if(Et.hasOwnProperty(c)){Ve(e,s=Et[c]);continue}s=s[0],a.lastIndex=i.index+1}}e.replaceSelection(s)}}}finally{if(bt.pop(),At=!!bt.length&&r,!bt.length&&xt){var h=xt;xt=null,Se(e,h)}}}function b(e,t){var n=e.key;if(!Tt[n]){n.length>1&&"n"==n[0]&&(n=n.replace("Numpad","")),n=Lt[n]||n;var r="";if(e.ctrlKey&&(r+="C-"),e.altKey&&(r+="A-"),e.metaKey&&(r+="M-"),it.isMac&&e.altKey&&!e.metaKey&&!e.ctrlKey&&(r=r.slice(2)),(r||n.length>1)&&e.shiftKey&&(r+="S-"),t&&!t.expectLiteralNext&&1==n.length)if(ht.keymap&&n in ht.keymap)0==ht.remapCtrl&&r||(n=ht.keymap[n]);else if(n.charCodeAt(0)>255){var i=e.code&&e.code.slice(-1)||"";e.shiftKey||(i=i.toLowerCase()),i&&(n=i)}return(r+=n).length>1&&(r="<"+r+">"),r}}function A(e,t){ht.string!==e&&(ht=L(e)),ht.remapCtrl=t}function L(e){function t(e){return e.split(/\\?(.)/).filter(Boolean)}var n={};return e?(e.split(/((?:[^\\,]|\\.)+),/).map((function(e){if(e){var r=e.split(/((?:[^\\;]|\\.)+);/);if(3==r.length){var i=t(r[1]),o=t(r[2]);if(i.length!==o.length)return;for(var a=0;a<i.length;++a)n[i[a]]=o[a]}else if(1==r.length){var s=t(e);if(s.length%2!=0)return;for(a=0;a<s.length;a+=2)n[s[a]]=s[a+1]}}})),{keymap:n,string:e}):{keymap:n,string:""}}function T(){this.prefixRepeat=[],this.motionRepeat=[],this.operator=null,this.operatorArgs=null,this.motion=null,this.motionArgs=null,this.keyBuffer=[],this.registerName=null,this.changeQueue=null}function E(e,t){e.state.vim.inputState=new T,e.state.vim.expectLiteralNext=!1,it.signal(e,"vim-command-done",t)}function O(){this.removed=[],this.inserted=""}function R(e,t,n){this.clear(),this.keyBuffer=[e||""],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!!t,this.blockwise=!!n}function B(e){this.registers=e,this.unnamedRegister=e['"']=new R,e["."]=new R,e[":"]=new R,e["/"]=new R,e["+"]=new R}function I(){this.historyBuffer=[],this.iterator=0,this.initialPrefix=null}function N(e,t){for(var n=[],r=0;r<t;r++)n.push(e);return n}function K(e,t,n){var r=e.state.vim,i=r.insertMode||r.visualMode,o=Math.min(Math.max(e.firstLine(),t.line),e.lastLine()),a=e.getLine(o),s=a.length-1+Number(!!i),l=Math.min(Math.max(0,t.ch),s),c=a.charCodeAt(l);if(56320<=c&&c<=57343){var u=1;n&&n.line==o&&n.ch>l&&(u=-1),(l+=u)>s&&(l-=2)}return new st(o,l)}function P(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function H(e,t,n){return"object"==typeof t&&(n=t.ch,t=t.line),new st(e.line+t,e.ch+n)}function _(e,t){var n="<character>"==t.slice(-11),r="<register>"==t.slice(-10);if(n||r){var i=t.length-(n?11:10),o=e.slice(0,i),a=t.slice(0,i);return o==a&&e.length>i?"full":0==a.indexOf(o)&&"partial"}return e==t?"full":0==t.indexOf(e)&&"partial"}function $(e,t,n){return function(){for(var r=0;r<n;r++)t(e)}}function D(e){return new st(e.line,e.ch)}function V(e,t){return e.ch==t.ch&&e.line==t.line}function W(e,t){return e.line<t.line||e.line==t.line&&e.ch<t.ch}function j(e,t){return arguments.length>2&&(t=j.apply(void 0,Array.prototype.slice.call(arguments,1))),W(e,t)?e:t}function F(e,t){return arguments.length>2&&(t=F.apply(void 0,Array.prototype.slice.call(arguments,1))),W(e,t)?t:e}function U(e,t,n){var r=W(e,t),i=W(t,n);return r&&i}function z(e,t){return e.getLine(t).length}function Q(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function q(e,t,n){var r=z(e,t),i=new Array(n-r+1).join(" ");e.setCursor(new st(t,r)),e.replaceRange(i,e.getCursor())}function J(e,t){var n=[],r=e.listSelections(),i=D(e.clipPos(t)),o=!V(t,i),a=function(e,t,n){for(var r=0;r<e.length;r++){var i="head"!=n&&V(e[r].anchor,t),o="anchor"!=n&&V(e[r].head,t);if(i||o)return r}return-1}(r,e.getCursor("head")),s=V(r[a].head,r[a].anchor),l=r.length-1,c=l-a>a?l:0,u=r[c].anchor,h=Math.min(u.line,i.line),p=Math.max(u.line,i.line),d=u.ch,f=i.ch,m=r[c].head.ch-d,g=f-d;m>0&&g<=0?(d++,o||f--):m<0&&g>=0?(d--,s||f++):m<0&&-1==g&&(d--,f++);for(var v=h;v<=p;v++){var y={anchor:new st(v,d),head:new st(v,f)};n.push(y)}return e.setSelections(n),t.ch=f,u.ch=d,u}function G(e,t,n){for(var r=[],i=0;i<n;i++){var o=H(t,i,0);r.push({anchor:o,head:o})}e.setSelections(r,0)}function X(e,t){var n=t.sel.anchor,r=t.sel.head;t.lastPastedText&&(r=e.posFromIndex(e.indexFromPos(n)+t.lastPastedText.length),t.lastPastedText=null),t.lastSelection={anchorMark:e.setBookmark(n),headMark:e.setBookmark(r),anchor:D(n),head:D(r),visualMode:t.visualMode,visualLine:t.visualLine,visualBlock:t.visualBlock}}function Z(e,t,n){var r=e.state.vim,i=Y(e,t=t||r.sel,n=n||r.visualLine?"line":r.visualBlock?"block":"char");e.setSelections(i.ranges,i.primary)}function Y(e,t,n,r){var i=D(t.head),o=D(t.anchor);if("char"==n){var a=r||W(t.head,t.anchor)?0:1,s=W(t.head,t.anchor)?1:0;return i=H(t.head,0,a),{ranges:[{anchor:o=H(t.anchor,0,s),head:i}],primary:0}}if("line"==n){if(W(t.head,t.anchor))i.ch=0,o.ch=z(e,o.line);else{o.ch=0;var l=e.lastLine();i.line>l&&(i.line=l),i.ch=z(e,i.line)}return{ranges:[{anchor:o,head:i}],primary:0}}if("block"==n){var c=Math.min(o.line,i.line),u=o.ch,h=Math.max(o.line,i.line),p=i.ch;u<p?p+=1:u+=1;for(var d=h-c+1,f=i.line==c?0:d-1,m=[],g=0;g<d;g++)m.push({anchor:new st(c+g,u),head:new st(c+g,p)});return{ranges:m,primary:f}}}function ee(e,t){var n=e.state.vim;!1!==t&&e.setCursor(K(e,n.sel.head)),X(e,n),n.visualMode=!1,n.visualLine=!1,n.visualBlock=!1,n.insertMode||it.signal(e,"vim-mode-change",{mode:"normal"})}function te(e){if(!e)return 0;var t=e.search(/\S/);return-1==t?e.length:t}function ne(e,t,n){var r,i=t.inclusive,o=t.innerWord,a=t.bigWord,s=t.noSymbol,l=t.multiline,c=n||function(e){var t=e.getCursor("head");return 1==e.getSelection().length&&(t=j(t,e.getCursor("anchor"))),t}(e),u=e.getLine(c.line),h=u,p=c.line,d=p,f=c.ch,m=s?dt[0]:ft[0];if(o&&/\s/.test(u.charAt(f)))m=function(e){return/\s/.test(e)};else{for(;!m(u.charAt(f));)if(++f>=u.length){if(!l)return null;f--,r=ae(e,c,!0,a,!0);break}a?m=ft[0]:(m=dt[0])(u.charAt(f))||(m=dt[1])}for(var g=f,v=f;m(u.charAt(v))&&v>=0;)v--;if(v++,r)g=r.to,d=r.line,!(h=e.getLine(d))&&0==g&&g++;else for(;m(u.charAt(g))&&g<u.length;)g++;if(i){var y=g,C=c.ch<=v&&/\s/.test(u.charAt(c.ch));if(!C)for(;/\s/.test(h.charAt(g))&&g<h.length;)g++;if(y==g||C){for(var w=v;/\s/.test(u.charAt(v-1))&&v>0;)v--;!v&&!C&&(v=w)}}return{start:new st(p,v),end:new st(d,g)}}function re(e,t,n){var r=t;if(!it.findMatchingTag||!it.findEnclosingTag)return{start:r,end:r};var i=it.findMatchingTag(e,t)||it.findEnclosingTag(e,t);return i&&i.open&&i.close?n?{start:i.open.from,end:i.close.to}:{start:i.open.to,end:i.close.from}:{start:r,end:r}}function ie(e,t,n){V(t,n)||kt.jumpList.add(e,t,n)}function oe(e,t){kt.lastCharacterSearch.increment=e,kt.lastCharacterSearch.forward=t.forward,kt.lastCharacterSearch.selectedCharacter=t.selectedCharacter}function ae(e,t,n,r,i){var o=t.line,a=t.ch,s=e.getLine(o),l=n?1:-1,u=r?ft:dt;if(i&&""==s){if(o+=l,s=e.getLine(o),!c(e,o))return null;a=n?0:s.length}for(;;){if(i&&""==s)return{from:0,to:0,line:o};for(var h=l>0?s.length:-1,p=h,d=h;a!=h;){for(var f=!1,m=0;m<u.length&&!f;++m)if(u[m](s.charAt(a))){for(p=a;a!=h&&u[m](s.charAt(a));)a+=l;if(f=p!=(d=a),p==t.ch&&o==t.line&&d==p+l)continue;return{from:Math.min(p,d+1),to:Math.max(p,d),line:o}}f||(a+=l)}if(!c(e,o+=l))return null;s=e.getLine(o),a=l>0?0:s.length}}function se(e,t,n,r,i){var o=new st(t.line+n.repeat-1,1/0),a=e.clipPos(o);return a.ch--,i||(r.lastHPos=1/0,r.lastHSPos=e.charCoords(a,"div").left),o}function le(e,t,n,r,i){for(var o,a=i||e.getCursor(),s=a.ch,l=0;l<t;l++){if(-1==(o=ue(s,e.getLine(a.line),r,n,!0)))return null;s=o}return new st(e.getCursor().line,o)}function ce(e,t,n,r){(g(n,mt)||vt.test(n))&&(t.marks[n]&&t.marks[n].clear(),t.marks[n]=e.setBookmark(r))}function ue(e,t,n,r,i){var o;return r?-1!=(o=t.indexOf(n,e+1))&&!i&&(o-=1):-1!=(o=t.lastIndexOf(n,e-1))&&!i&&(o+=1),o}function he(e,t,n,r,i){function o(t){return!/\S/.test(e.getLine(t))}function a(e,t,n){return n?o(e)!=o(e+t):!o(e)&&o(e+t)}function s(t){r=r>0?1:-1;var n=e.ace.session.getFoldLine(t);n&&t+r>n.start.row&&t+r<n.end.row&&(r=(r>0?n.end.row:n.start.row)-t)}var l,c=t.line,u=e.firstLine(),h=e.lastLine(),p=c;if(r){for(;u<=p&&p<=h&&n>0;)s(p),a(p,r)&&n--,p+=r;return new st(p,0)}var d=e.state.vim;if(d.visualLine&&a(c,1,!0)){var f=d.sel.anchor;a(f.line,-1,!0)&&(!i||f.line!=c)&&(c+=1)}var m=o(c);for(p=c;p<=h&&n;p++)a(p,1,!0)&&(!i||o(p)!=m)&&n--;for(l=new st(p,0),p>h&&!m?m=!0:i=!1,p=c;p>u&&(i&&o(p)!=m&&p!=c||!a(p,-1,!0));p--);return{start:new st(p,0),end:l}}function pe(e,t,n,r,i){function o(e){e.pos+e.dir<0||e.pos+e.dir>=e.line.length?e.line=null:e.pos+=e.dir}function a(e,t,n,r){var a={line:e.getLine(t),ln:t,pos:n,dir:r};if(""===a.line)return{ln:a.ln,pos:a.pos};var s=a.pos;for(o(a);null!==a.line;){if(s=a.pos,m(a.line[a.pos])){if(!i)return{ln:a.ln,pos:a.pos+1};for(o(a);null!==a.line&&f(a.line[a.pos]);)s=a.pos,o(a);return{ln:a.ln,pos:s+1}}o(a)}return{ln:a.ln,pos:s+1}}function s(e,t,n,r){var a=e.getLine(t),s={line:a,ln:t,pos:n,dir:r};if(""===s.line)return{ln:s.ln,pos:s.pos};var l=s.pos;for(o(s);null!==s.line;){if(f(s.line[s.pos])||m(s.line[s.pos])){if(m(s.line[s.pos]))return i&&f(s.line[s.pos+1])?{ln:s.ln,pos:s.pos+1}:{ln:s.ln,pos:l}}else l=s.pos;o(s)}return s.line=a,i&&f(s.line[s.pos])?{ln:s.ln,pos:s.pos}:{ln:s.ln,pos:l}}for(var l={ln:t.line,pos:t.ch};n>0;)l=r<0?s(e,l.ln,l.pos,r):a(e,l.ln,l.pos,r),n--;return new st(l.ln,l.pos)}function de(e,t,n,r){var i,o,a=t,s={"(":/[()]/,")":/[()]/,"[":/[[\]]/,"]":/[[\]]/,"{":/[{}]/,"}":/[{}]/,"<":/[<>]/,">":/[<>]/}[n],l={"(":"(",")":"(","[":"[","]":"[","{":"{","}":"{","<":"<",">":"<"}[n],c=e.getLine(a.line).charAt(a.ch)===l?1:0;if(i=e.scanForBracket(new st(a.line,a.ch+c),-1,void 0,{bracketRegex:s}),o=e.scanForBracket(new st(a.line,a.ch+c),1,void 0,{bracketRegex:s}),!i||!o)return null;if(i=i.pos,o=o.pos,i.line==o.line&&i.ch>o.ch||i.line>o.line){var u=i;i=o,o=u}return r?o.ch+=1:i.ch+=1,{start:i,end:o}}function fe(){}function me(e){var t=e.state.vim;return t.searchState_||(t.searchState_=new fe)}function ge(e,t){var n=ve(e,t)||[];if(!n.length)return[];var r=[];if(0===n[0]){for(var i=0;i<n.length;i++)"number"==typeof n[i]&&r.push(e.substring(n[i]+1,n[i+1]));return r}}function ve(e,t){t||(t="/");for(var n=!1,r=[],i=0;i<e.length;i++){var o=e.charAt(i);!n&&o==t&&r.push(i),n=!n&&"\\"==o}return r}function ye(e){for(var t=new it.StringStream(e),n=[];!t.eol();){for(;t.peek()&&"\\"!=t.peek();)n.push(t.next());var r=!1;for(var i in Ht)if(t.match(i,!0)){r=!0,n.push(Ht[i]);break}r||n.push(t.next())}return n.join("")}function Ce(e,t,n){if(kt.registerController.getRegister("/").setText(e),e instanceof RegExp)return e;var r,i,o=function(e){return ve(e,"/")}(e);o.length?(r=e.substring(0,o[0]),i=-1!=e.substring(o[0]).indexOf("i")):r=e;return r?(C("pcre")||(r=function(e){for(var t=!1,n=[],r=-1;r<e.length;r++){var i=e.charAt(r)||"",o=e.charAt(r+1)||"",a=o&&-1!="|(){".indexOf(o);t?(("\\"!==i||!a)&&n.push(i),t=!1):"\\"===i?(t=!0,o&&-1!="}".indexOf(o)&&(a=!0),(!a||"\\"===o)&&n.push(i)):(n.push(i),a&&"\\"!==o&&n.push("\\"))}return n.join("")}(r)),n&&(t=/^[^A-Z]*$/.test(r)),new RegExp(r,t||i?"im":"m")):null}function we(e){"string"==typeof e&&(e=document.createElement(e));for(var t,n=1;n<arguments.length;n++)if(t=arguments[n])if("object"!=typeof t&&(t=document.createTextNode(t)),t.nodeType)e.appendChild(t);else for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&("$"===r[0]?e.style[r.slice(1)]=t[r]:e.setAttribute(r,t[r]));return e}function ke(e,t){var n=we("div",{$color:"red",$whiteSpace:"pre",class:"cm-vim-message"},t);e.openNotification?e.openNotification(n,{bottom:!0,duration:5e3}):alert(n.innerText)}function Se(e,t){if(bt.length)return t.value||(t.value=""),void(xt=t);var n=function(e,t){return we("div",{$display:"flex"},we("span",{$fontFamily:"monospace",$whiteSpace:"pre",$flex:1},e,we("input",{type:"text",autocorrect:"off",autocapitalize:"off",spellcheck:"false",$width:"100%"})),t&&we("span",{$color:"#888"},t))}(t.prefix,t.desc);if(e.openDialog)e.openDialog(n,t.onClose,{onKeyDown:t.onKeyDown,onKeyUp:t.onKeyUp,bottom:!0,selectValueOnOpen:!1,value:t.value});else{var r="";"string"!=typeof t.prefix&&t.prefix&&(r+=t.prefix.textContent),t.desc&&(r+=" "+t.desc),t.onClose(prompt(r,""))}}function xe(e,t,n,r){if(t){var i=me(e),o=Ce(t,!!n,!!r);if(o)return Me(e,o),function(e,t){if(e instanceof RegExp&&t instanceof RegExp){for(var n=["global","multiline","ignoreCase","source"],r=0;r<n.length;r++){var i=n[r];if(e[i]!==t[i])return!1}return!0}return!1}(o,i.getQuery())||i.setQuery(o),o}}function Me(e,t){clearTimeout(_t),me(e).highlightTimeout=_t,_t=setTimeout((function(){if(e.state.vim){var n=me(e);n.highlightTimeout=null;var r=n.getOverlay();r&&t==r.query||(r&&e.removeOverlay(r),r=function(e){if("^"==e.source.charAt(0))var t=!0;return{token:function(n){if(!t||n.sol()){var r=n.match(e,!1);if(r)return 0==r[0].length?(n.next(),"searching"):n.sol()||(n.backUp(1),e.exec(n.next()+r[0]))?(n.match(e),"searching"):(n.next(),null);for(;!n.eol()&&(n.next(),!n.match(e,!1)););}else n.skipToEnd()},query:e}}(t),e.addOverlay(r),e.showMatchesOnScrollbar&&(n.getScrollbarAnnotate()&&n.getScrollbarAnnotate().clear(),n.setScrollbarAnnotate(e.showMatchesOnScrollbar(t))),n.setOverlay(r))}}),50)}function be(e,t,n,r){return void 0===r&&(r=1),e.operation((function(){for(var i=e.getCursor(),o=e.getSearchCursor(n,i),a=0;a<r;a++){var s=o.find(t);if(0==a&&s&&V(o.from(),i)){var l=t?o.from():o.to();(s=o.find(t))&&!s[0]&&V(o.from(),l)&&e.getLine(l.line).length==l.ch&&(s=o.find(t))}if(!s&&!(o=e.getSearchCursor(n,t?new st(e.lastLine()):new st(e.firstLine(),0))).find(t))return}return o.from()}))}function Ae(e){var t=me(e);t.highlightTimeout&&(clearTimeout(t.highlightTimeout),t.highlightTimeout=null),e.removeOverlay(me(e).getOverlay()),t.setOverlay(null),t.getScrollbarAnnotate()&&(t.getScrollbarAnnotate().clear(),t.setScrollbarAnnotate(null))}function Le(e,t,n){return"number"!=typeof e&&(e=e.line),t instanceof Array?g(e,t):"number"==typeof n?e>=t&&e<=n:e==t}function Te(e){var t=e.ace.renderer;return{top:t.getFirstFullyVisibleRow(),bottom:t.getLastFullyVisibleRow()}}function Ee(e,t,n){if("'"==n||"`"==n)return kt.jumpList.find(e,-1)||new st(0,0);if("."==n)return Oe(e);var r=t.marks[n];return r&&r.find()}function Oe(e){if(e.getLastEditEnd)return e.getLastEditEnd();for(var t=e.doc.history.done,n=t.length;n--;)if(t[n].changes)return D(t[n].changes[0].to)}function Re(e,t,n,r,i,o,a,s,l){function c(){e.operation((function(){for(;!v;)u(),p();d()}))}function u(){var t=e.getRange(o.from(),o.to()).replace(a,s),n=o.to().line;o.replace(t),m=o.to().line,i+=m-n,g=m<n}function h(){var e=f&&D(o.to()),t=o.findNext();return t&&!t[0]&&e&&V(o.from(),e)&&(t=o.findNext()),t}function p(){for(;h()&&Le(o.from(),r,i);)if(n||o.from().line!=m||g)return e.scrollIntoView(o.from(),30),e.setSelection(o.from(),o.to()),f=o.from(),void(v=!1);v=!0}function d(t){if(t&&t(),e.focus(),f){e.setCursor(f);var n=e.state.vim;n.exMode=!1,n.lastHPos=n.lastHSPos=f.ch}l&&l()}e.state.vim.exMode=!0;var f,m,g,v=!1;if(p(),!v)return t?void Se(e,{prefix:we("span","replace with ",we("strong",s)," (y/n/a/q/l)"),onKeyDown:function(t,n,r){switch(it.e_stop(t),b(t)){case"y":u(),p();break;case"n":p();break;case"a":var i=l;l=void 0,e.operation(c),l=i;break;case"l":u();case"q":case"<Esc>":case"<C-c>":case"<C-[>":d(r)}return v&&d(r),!0}}):(c(),void(l&&l()));ke(e,"No matches for "+a.source)}function Be(e,t){var n=e.state.vim,r=kt.macroModeState,i=kt.registerController.getRegister("."),o=r.isPlaying,a=r.lastInsertModeChanges;o||(e.off("change",Ke),n.insertEnd&&n.insertEnd.clear(),n.insertEnd=null,it.off(e.getInputField(),"keydown",$e)),!o&&n.insertModeRepeat>1&&(De(e,n,n.insertModeRepeat-1,!0),n.lastEditInputState.repeatOverride=n.insertModeRepeat),delete n.insertModeRepeat,n.insertMode=!1,t||e.setCursor(e.getCursor().line,e.getCursor().ch-1),e.setOption("keyMap","vim"),e.setOption("disableInput",!0),e.toggleOverwrite(!1),i.setText(a.changes.join("")),it.signal(e,"vim-mode-change",{mode:"normal"}),r.isRecording&&function(e){if(e.isPlaying)return;var t=e.latestRegister,n=kt.registerController.getRegister(t);n&&n.pushInsertModeChanges&&n.pushInsertModeChanges(e.lastInsertModeChanges)}(r)}function Ie(e){lt.unshift(e)}function Ne(e,t,n,r){var i=kt.registerController.getRegister(r);if(":"==r)return i.keyBuffer[0]&&Vt.processCommand(e,i.keyBuffer[0]),void(n.isPlaying=!1);var o=i.keyBuffer,a=0;n.isPlaying=!0,n.replaySearchQueries=i.searchQueries.slice(0);for(var s=0;s<o.length;s++)for(var l,c,u=o[s];u;)if(c=(l=/<\w+-.+?>|<\w+>|./.exec(u))[0],u=u.substring(l.index+c.length),Mt.handleKey(e,c,"macro"),t.insertMode){var h=i.insertModeChanges[a++].changes;kt.macroModeState.lastInsertModeChanges.changes=h,We(e,h,1),Be(e)}n.isPlaying=!1}function Ke(e,t){var n=kt.macroModeState,r=n.lastInsertModeChanges;if(!n.isPlaying)for(var i=e.state.vim;t;){if(r.expectCursorActivityForChange=!0,r.ignoreCount>1)r.ignoreCount--;else if("+input"==t.origin||"paste"==t.origin||void 0===t.origin){var o=e.listSelections().length;o>1&&(r.ignoreCount=o);var a=t.text.join("\n");if(r.maybeReset&&(r.changes=[],r.maybeReset=!1),a)if(e.state.overwrite&&!/\n/.test(a))r.changes.push([a]);else{if(a.length>1){var s=i&&i.insertEnd&&i.insertEnd.find(),l=e.getCursor();if(s&&s.line==l.line){var c=s.ch-l.ch;c>0&&c<a.length&&(r.changes.push([a,c]),a="")}}a&&r.changes.push(a)}}t=t.next}}function Pe(e){var t=e.state.vim;if(t.insertMode){var n=kt.macroModeState;if(n.isPlaying)return;var r=n.lastInsertModeChanges;r.expectCursorActivityForChange?r.expectCursorActivityForChange=!1:(r.maybeReset=!0,t.insertEnd&&t.insertEnd.clear(),t.insertEnd=e.setBookmark(e.getCursor(),{insertLeft:!0}))}else e.curOp.isVimOp||He(e,t)}function He(e,t,n){var r=e.getCursor("anchor"),i=e.getCursor("head");if(t.visualMode&&!e.somethingSelected()?ee(e,!1):!t.visualMode&&!t.insertMode&&e.somethingSelected()&&(t.visualMode=!0,t.visualLine=!1,it.signal(e,"vim-mode-change",{mode:"visual"})),t.visualMode){var o=W(i,r)?0:-1,a=W(i,r)?-1:0;i=H(i,0,o),r=H(r,0,a),t.sel={anchor:r,head:i},ce(e,t,"<",j(i,r)),ce(e,t,">",F(i,r))}else!t.insertMode&&!n&&(t.lastHPos=e.getCursor().ch)}function _e(e,t){this.keyName=e,this.key=t.key,this.ctrlKey=t.ctrlKey,this.altKey=t.altKey,this.metaKey=t.metaKey,this.shiftKey=t.shiftKey}function $e(e){var t=kt.macroModeState.lastInsertModeChanges,n=it.keyName?it.keyName(e):e.key;n&&(-1==n.indexOf("Delete")&&-1==n.indexOf("Backspace")||(t.maybeReset&&(t.changes=[],t.maybeReset=!1),t.changes.push(new _e(n,e))))}function De(e,t,n,r){function i(){s?Ot.processAction(e,t,t.lastEditActionCommand):Ot.evalInput(e,t)}function o(n){if(a.lastInsertModeChanges.changes.length>0){n=t.lastEditActionCommand?n:1;var r=a.lastInsertModeChanges;We(e,r.changes,n)}}var a=kt.macroModeState;a.isPlaying=!0;var s=!!t.lastEditActionCommand,l=t.inputState;if(t.inputState=t.lastEditInputState,s&&t.lastEditActionCommand.interlaceInsertRepeat)for(var c=0;c<n;c++)i(),o(1);else r||i(),o(n);t.inputState=l,t.insertMode&&!r&&Be(e),a.isPlaying=!1}function Ve(e,t){it.lookupKey(t,"vim-insert",(function(t){return"string"==typeof t?it.commands[t](e):t(e),!0}))}function We(e,t,n){var r=e.getCursor("head"),i=kt.macroModeState.lastInsertModeChanges.visualBlock;i&&(G(e,r,i+1),n=e.listSelections().length,e.setCursor(r));for(var o=0;o<n;o++){i&&e.setCursor(H(r,o,0));for(var a=0;a<t.length;a++){var s=t[a];if(s instanceof _e)Ve(e,s.keyName);else if("string"==typeof s)e.replaceSelection(s);else{var l=e.getCursor(),c=H(l,0,s[0].length-(s[1]||0));e.replaceRange(s[0],l,s[1]?l:c),e.setCursor(c)}}}i&&e.setCursor(H(r,0,1))}function je(e){var t=new e.constructor;return Object.keys(e).forEach((function(n){if("insertEnd"!=n){var r=e[n];Array.isArray(r)?r=r.slice():r&&"object"==typeof r&&r.constructor!=Object&&(r=je(r)),t[n]=r}})),e.sel&&(t.sel={head:e.sel.head&&D(e.sel.head),anchor:e.sel.anchor&&D(e.sel.anchor)}),t}function Fe(e,t,n){var r=!1,i=Mt.maybeInitVimState_(e),o=i.visualBlock||i.wasInVisualBlock,a=e.ace.inMultiSelectMode;if(i.wasInVisualBlock&&!a?i.wasInVisualBlock=!1:a&&i.visualBlock&&(i.wasInVisualBlock=!0),"<Esc>"!=t||i.insertMode||i.visualMode||!a)if(o||!a||e.ace.inVirtualSelectionMode)r=Mt.handleKey(e,t,n);else{var s=je(i),l=i.inputState.changeQueueList||[];e.operation((function(){e.curOp.isVimOp=!0;var o=0;e.ace.forEachSelection((function(){var i=e.ace.selection;e.state.vim.lastHPos=null==i.$desiredColumn?i.lead.column:i.$desiredColumn,e.state.vim.inputState.changeQueue=l[o];var a=e.getCursor("head"),c=e.getCursor("anchor"),u=W(a,c)?0:-1,h=W(a,c)?-1:0;a=H(a,0,u),c=H(c,0,h),e.state.vim.sel.head=a,e.state.vim.sel.anchor=c,r=jt(e,t,n),i.$desiredColumn=-1==e.state.vim.lastHPos?null:e.state.vim.lastHPos,e.ace.inVirtualSelectionMode&&(l[o]=e.state.vim.inputState.changeQueue),e.virtualSelectionMode()&&(e.state.vim=je(s)),o++})),e.curOp.cursorActivity&&!r&&(e.curOp.cursorActivity=!1),i.status=e.state.vim.status,e.state.vim=i,i.inputState.changeQueueList=l,i.inputState.changeQueue=null}),!0)}else e.ace.exitMultiSelectMode();return r&&!i.visualMode&&!i.insert&&i.visualMode!=e.somethingSelected()&&He(e,i,!0),r}function Ue(e,t){t.off("beforeEndOperation",Ue);var n=t.state.cm.vimCmd;n&&t.execCommand(n.exec?n:n.name,n.args),t.curOp=t.prevOp}var ze=e("../range").Range,Qe=e("../lib/event_emitter").EventEmitter,qe=e("../lib/dom"),Je=e("../lib/oop"),Ge=e("../lib/keys"),Xe=e("../lib/event"),Ze=e("../search").Search,Ye=e("../lib/useragent"),et=e("../search_highlight").SearchHighlight,tt=e("../commands/multi_select_commands"),nt=e("../mode/text").Mode.prototype.tokenRe,rt=e("../ext/hardwrap").hardWrap;e("../multi_select");var it=function(e){this.ace=e,this.state={},this.marks={},this.options={},this.$uid=0,this.onChange=this.onChange.bind(this),this.onSelectionChange=this.onSelectionChange.bind(this),this.onBeforeEndOperation=this.onBeforeEndOperation.bind(this),this.ace.on("change",this.onChange),this.ace.on("changeSelection",this.onSelectionChange),this.ace.on("beforeEndOperation",this.onBeforeEndOperation)};it.Pos=function(e,t){if(!(this instanceof st))return new st(e,t);this.line=e,this.ch=t},it.defineOption=function(e,t,n){},it.commands={redo:function(e){e.ace.redo()},undo:function(e){e.ace.undo()},newlineAndIndent:function(e){e.ace.insert("\n")},goLineLeft:function(e){e.ace.selection.moveCursorLineStart()},goLineRight:function(e){e.ace.selection.moveCursorLineEnd()}},it.keyMap={},it.addClass=it.rmClass=function(){},it.e_stop=it.e_preventDefault=Xe.stopEvent,it.keyName=function(e){var t=Ge[e.keyCode]||e.key||"";return 1==t.length&&(t=t.toUpperCase()),t=Xe.getModifierString(e).replace(/(^|-)\w/g,(function(e){return e.toUpperCase()}))+t,t},it.keyMap.default=function(e){return function(t){var n=t.ace.commands.commandKeyBinding[e.toLowerCase()];return n&&!1!==t.ace.execCommand(n)}},it.lookupKey=function e(t,n,r){n||(n="default"),"string"==typeof n&&(n=it.keyMap[n]||it.keyMap.default);var i="function"==typeof n?n(t):n[t];if(!1===i)return"nothing";if("..."===i)return"multi";if(null!=i&&r(i))return"handled";if(n.fallthrough){if(!Array.isArray(n.fallthrough))return e(t,n.fallthrough,r);for(var o=0;o<n.fallthrough.length;o++){var a=e(t,n.fallthrough[o],r);if(a)return a}}},it.findMatchingTag=function(e,t){return e.findMatchingTag(t)},it.findEnclosingTag=function(e,t){},it.signal=function(e,t,n){return e._signal(t,n)},it.on=Xe.addListener,it.off=Xe.removeListener,it.isWordChar=function(e){return e<""?/^\w$/.test(e):(nt.lastIndex=0,nt.test(e))},function(){Je.implement(it.prototype,Qe),this.destroy=function(){this.ace.off("change",this.onChange),this.ace.off("changeSelection",this.onSelectionChange),this.ace.off("beforeEndOperation",this.onBeforeEndOperation),this.removeOverlay()},this.virtualSelectionMode=function(){return this.ace.inVirtualSelectionMode&&this.ace.selection.index},this.onChange=function(e){this.$lineHandleChanges&&this.$lineHandleChanges.push(e);var t={text:"i"==e.action[0]?e.lines:[]},n=this.curOp=this.curOp||{};n.changeHandlers||(n.changeHandlers=this._eventRegistry.change&&this._eventRegistry.change.slice()),n.lastChange?n.lastChange.next=n.lastChange=t:n.lastChange=n.change=t,this.$updateMarkers(e)},this.onSelectionChange=function(){var e=this.curOp=this.curOp||{};e.cursorActivityHandlers||(e.cursorActivityHandlers=this._eventRegistry.cursorActivity&&this._eventRegistry.cursorActivity.slice()),this.curOp.cursorActivity=!0,this.ace.inMultiSelectMode&&this.ace.keyBinding.removeKeyboardHandler(tt.keyboardHandler)},this.operation=function(e,t){if(!t&&this.curOp||t&&this.curOp&&this.curOp.force)return e();if((t||!this.ace.curOp)&&this.curOp&&this.onBeforeEndOperation(),!this.ace.curOp){var n=this.ace.prevOp;this.ace.startOperation({command:{name:"vim",scrollIntoView:"cursor"}})}var r=this.curOp=this.curOp||{};this.curOp.force=t;var i=e();return this.ace.curOp&&"vim"==this.ace.curOp.command.name&&(this.state.dialog&&(this.ace.curOp.command.scrollIntoView=this.ace.curOp.vimDialogScroll),this.ace.endOperation(),!r.cursorActivity&&!r.lastChange&&n&&(this.ace.prevOp=n)),(t||!this.ace.curOp)&&this.curOp&&this.onBeforeEndOperation(),i},this.onBeforeEndOperation=function(){var e=this.curOp;e&&(e.change&&this.signal("change",e.change,e),e&&e.cursorActivity&&this.signal("cursorActivity",null,e),this.curOp=null)},this.signal=function(e,t,n){var r=n?n[e+"Handlers"]:(this._eventRegistry||{})[e];if(r){r=r.slice();for(var i=0;i<r.length;i++)r[i](this,t)}},this.firstLine=function(){return 0},this.lastLine=function(){return this.ace.session.getLength()-1},this.lineCount=function(){return this.ace.session.getLength()},this.setCursor=function(e,t){"object"==typeof e&&(t=e.ch,e=e.line);var n=!this.curOp&&!this.ace.inVirtualSelectionMode;this.ace.inVirtualSelectionMode||this.ace.exitMultiSelectMode(),this.ace.session.unfold({row:e,column:t}),this.ace.selection.moveTo(e,t),n&&(this.ace.renderer.scrollCursorIntoView(),this.ace.endOperation())},this.getCursor=function(e){var t=this.ace.selection;return i("anchor"==e?t.isEmpty()?t.lead:t.anchor:"head"!=e&&e?t.getRange()[e]:t.lead)},this.listSelections=function(e){var t=this.ace.multiSelect.rangeList.ranges;return!t.length||this.ace.inVirtualSelectionMode?[{anchor:this.getCursor("anchor"),head:this.getCursor("head")}]:t.map((function(e){return{anchor:this.clipPos(i(e.cursor==e.end?e.start:e.end)),head:this.clipPos(i(e.cursor))}}),this)},this.setSelections=function(e,t){var n=this.ace.multiSelect,i=e.map((function(e){var t=r(e.anchor),n=r(e.head),i=ze.comparePoints(t,n)<0?new ze.fromPoints(t,n):new ze.fromPoints(n,t);return i.cursor=ze.comparePoints(i.start,n)?i.end:i.start,i}));if(this.ace.inVirtualSelectionMode)this.ace.selection.fromOrientedRange(i[0]);else{t?i[t]&&i.push(i.splice(t,1)[0]):i=i.reverse(),n.toSingleRange(i[0].clone());for(var o=this.ace.session,a=0;a<i.length;a++){var s=o.$clipRangeToDocument(i[a]);n.addRange(s)}}},this.setSelection=function(e,t,n){var r=this.ace.selection;r.moveTo(e.line,e.ch),r.selectTo(t.line,t.ch),n&&"*mouse"==n.origin&&this.onBeforeEndOperation()},this.somethingSelected=function(e){return!this.ace.selection.isEmpty()},this.clipPos=function(e){return i(this.ace.session.$clipPositionToDocument(e.line,e.ch))},this.foldCode=function(e){this.ace.session.$toggleFoldWidget(e.line,{})},this.markText=function(e){return{clear:function(){},find:function(){}}},this.$updateMarkers=function(e){var t="insert"==e.action,n=e.start,r=e.end,i=(r.row-n.row)*(t?1:-1),o=(r.column-n.column)*(t?1:-1);for(var a in t&&(r=n),this.marks){var s=this.marks[a],l=ze.comparePoints(s,n);if(!(l<0)){if(0===l&&t)if(s.$insertRight){if(1!=s.bias){s.bias=-1;continue}l=1}else l=1;var c=t?l:ze.comparePoints(s,r);c>0?(s.row+=i,s.column+=s.row==r.row?o:0):!t&&c<=0&&(s.row=n.row,s.column=n.column,0===c&&(s.bias=1))}}};var e=function(e,t,n,r){this.cm=e,this.id=t,this.row=n,this.column=r,e.marks[this.id]=this};e.prototype.clear=function(){delete this.cm.marks[this.id]},e.prototype.find=function(){return i(this)},this.setBookmark=function(t,n){var r=new e(this,this.$uid++,t.line,t.ch);return n&&n.insertLeft||(r.$insertRight=!0),this.marks[r.id]=r,r},this.moveH=function(e,t){if("char"==t){var n=this.ace.selection;n.clearSelection(),n.moveCursorBy(0,e)}},this.findPosV=function(e,t,n,r){if("page"==n){var o=this.ace.renderer.layerConfig;t*=Math.floor(o.height/o.lineHeight),n="line"}if("line"==n){var a=this.ace.session.documentToScreenPosition(e.line,e.ch);return null!=r&&(a.column=r),a.row+=t,a.row=Math.min(Math.max(0,a.row),this.ace.session.getScreenLength()-1),i(this.ace.session.screenToDocumentPosition(a.row,a.column))}},this.charCoords=function(e,t){if("div"==t||!t)return{left:(r=this.ace.session.documentToScreenPosition(e.line,e.ch)).column,top:r.row};if("local"==t){var n=this.ace.renderer,r=this.ace.session.documentToScreenPosition(e.line,e.ch),i=n.layerConfig.lineHeight,o=n.layerConfig.characterWidth,a=i*r.row;return{left:r.column*o,top:a,bottom:a+i}}},this.coordsChar=function(e,t){var n=this.ace.renderer;if("local"==t){var r=Math.max(0,Math.floor(e.top/n.lineHeight)),o=Math.max(0,Math.floor(e.left/n.characterWidth));return i(n.session.screenToDocumentPosition(r,o))}if("div"==t)throw"not implemented"},this.getSearchCursor=function(e,t,n){var r=!1,o=!1;e instanceof RegExp&&!e.global&&(r=!e.ignoreCase,e=e.source,o=!0),"\\n"==e&&(e="\n",o=!1);var a=new Ze;null==t.ch&&(t.ch=Number.MAX_VALUE);var s={row:t.line,column:t.ch},l=this,c=null;return{findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(t){a.setOptions({needle:e,caseSensitive:r,wrap:!1,backwards:t,regExp:o,start:c||s});var n=a.find(l.ace.session);return(c=n)&&[!c.isEmpty()]},from:function(){return c&&i(c.start)},to:function(){return c&&i(c.end)},replace:function(e){c&&(c.end=l.ace.session.doc.replace(c,e))}}},this.scrollTo=function(e,t){var n=this.ace.renderer,r=n.layerConfig,i=r.maxHeight;i-=(n.$size.scrollerHeight-n.lineHeight)*n.$scrollPastEnd,null!=t&&this.ace.session.setScrollTop(Math.max(0,Math.min(t,i))),null!=e&&this.ace.session.setScrollLeft(Math.max(0,Math.min(e,r.width)))},this.scrollInfo=function(){return 0},this.scrollIntoView=function(e,t){if(e){var n=this.ace.renderer,i={top:0,bottom:t};n.scrollCursorIntoView(r(e),2*n.lineHeight/n.$size.scrollerHeight,i)}},this.getLine=function(e){return this.ace.session.getLine(e)},this.getRange=function(e,t){return this.ace.session.getTextRange(new ze(e.line,e.ch,t.line,t.ch))},this.replaceRange=function(e,t,n){n||(n=t);var r=new ze(t.line,t.ch,n.line,n.ch);return this.ace.session.$clipRangeToDocument(r),this.ace.session.replace(r,e)},this.replaceSelection=this.replaceSelections=function(e){var t=Array.isArray(e)&&e,n=this.ace.selection;if(this.ace.inVirtualSelectionMode)this.ace.session.replace(n.getRange(),t?e[0]||"":e);else{n.inVirtualSelectionMode=!0;var r=n.rangeList.ranges;r.length||(r=[this.ace.multiSelect.getRange()]);for(var i=r.length;i--;)this.ace.session.replace(r[i],t?e[i]||"":e);n.inVirtualSelectionMode=!1}},this.getSelection=function(){return this.ace.getSelectedText()},this.getSelections=function(){return this.listSelections().map((function(e){return this.getRange(e.anchor,e.head)}),this)},this.getInputField=function(){return this.ace.textInput.getElement()},this.getWrapperElement=function(){return this.ace.container};var t={indentWithTabs:"useSoftTabs",indentUnit:"tabSize",tabSize:"tabSize",firstLineNumber:"firstLineNumber",readOnly:"readOnly"};this.setOption=function(e,n){switch(this.state[e]=n,e){case"indentWithTabs":e=t[e],n=!n;break;case"keyMap":return void(this.state.$keyMap=n);default:e=t[e]}e&&this.ace.setOption(e,n)},this.getOption=function(e){var n,r=t[e];switch(r&&(n=this.ace.getOption(r)),e){case"indentWithTabs":return e=t[e],!n;case"keyMap":return this.state.$keyMap||"vim"}return r?n:this.state[e]},this.toggleOverwrite=function(e){return this.state.overwrite=e,this.ace.setOverwrite(e)},this.addOverlay=function(e){if(!this.$searchHighlight||!this.$searchHighlight.session){var t=new et(null,"ace_highlight-marker","text"),n=this.ace.session.addDynamicMarker(t);t.id=n.id,t.session=this.ace.session,t.destroy=function(e){t.session.off("change",t.updateOnChange),t.session.off("changeEditor",t.destroy),t.session.removeMarker(t.id),t.session=null},t.updateOnChange=function(e){var n=e.start.row;n==e.end.row?t.cache[n]=void 0:t.cache.splice(n,t.cache.length)},t.session.on("changeEditor",t.destroy),t.session.on("change",t.updateOnChange)}var r=new RegExp(e.query.source,"gmi");this.$searchHighlight=e.highlight=t,this.$searchHighlight.setRegexp(r),this.ace.renderer.updateBackMarkers()},this.removeOverlay=function(e){this.$searchHighlight&&this.$searchHighlight.session&&this.$searchHighlight.destroy()},this.getScrollInfo=function(){var e=this.ace.renderer,t=e.layerConfig;return{left:e.scrollLeft,top:e.scrollTop,height:t.maxHeight,width:t.width,clientHeight:t.height,clientWidth:t.width}},this.getValue=function(){return this.ace.getValue()},this.setValue=function(e){return this.ace.setValue(e,-1)},this.getTokenTypeAt=function(e){var t=this.ace.session.getTokenAt(e.line,e.ch);return t&&/comment|string/.test(t.type)?"string":""},this.findMatchingBracket=function(e){var t=this.ace.session.findMatchingBracket(r(e));return{to:t&&i(t)}},this.findMatchingTag=function(e){var t=this.ace.session.getMatchingTags(r(e));if(t)return{open:{from:i(t.openTag.start),to:i(t.openTag.end)},close:{from:i(t.closeTag.start),to:i(t.closeTag.end)}}},this.indentLine=function(e,t){!0===t?this.ace.session.indentRows(e,e,"\t"):!1===t&&this.ace.session.outdentRows(new ze(e,0,e,0))},this.indexFromPos=function(e){return this.ace.session.doc.positionToIndex(r(e))},this.posFromIndex=function(e){return i(this.ace.session.doc.indexToPosition(e))},this.focus=function(e){return this.ace.textInput.focus()},this.blur=function(e){return this.ace.blur()},this.defaultTextHeight=function(e){return this.ace.renderer.layerConfig.lineHeight},this.scanForBracket=function(e,t,n,o){var a=o.bracketRegex.source,s=/paren|text|operator|tag/;if(1==t)var l=this.ace.session.$findClosingBracket(a.slice(1,2),r(e),s);else!(l=this.ace.session.$findOpeningBracket(a.slice(-2,-1),{row:e.line,column:e.ch+1},s))&&o.bracketRegex&&o.bracketRegex.test(this.getLine(e.line)[e.ch-1])&&(l={row:e.line,column:e.ch-1});return l&&{pos:i(l)}},this.refresh=function(){return this.ace.resize(!0)},this.getMode=function(){return{name:this.getOption("mode")}},this.execCommand=function(e){return it.commands.hasOwnProperty(e)?it.commands[e](this):"indentAuto"==e?this.ace.execCommand("autoindent"):void console.log(e+" is not implemented")},this.getLineNumber=function(e){var t=this.$lineHandleChanges;if(!t)return null;for(var n=e.row,r=0;r<t.length;r++){var i=t[r];if(i.start.row!=i.end.row)if("i"==i.action[0])i.start.row<n&&(n+=i.end.row-i.start.row);else if(i.start.row<n){if(n<i.end.row||n==i.end.row&&i.start.column>0)return null;n-=i.end.row-i.start.row}}return n},this.getLineHandle=function(e){return this.$lineHandleChanges||(this.$lineHandleChanges=[]),{text:this.ace.session.getLine(e),row:e}},this.releaseLineHandles=function(){this.$lineHandleChanges=void 0},this.getLastEditEnd=function(){var e=this.ace.session.$undoManager;if(e&&e.$lastDelta)return i(e.$lastDelta.end)}}.call(it.prototype);var ot=it.StringStream=function(e,t){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0};ot.prototype={eol:function(){return this.pos>=this.string.length},sol:function(){return this.pos==this.lineStart},peek:function(){return this.string.charAt(this.pos)||void 0},next:function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},eat:function(e){var t=this.string.charAt(this.pos);if("string"==typeof e)var n=t==e;else n=t&&(e.test?e.test(t):e(t));if(n)return++this.pos,t},eatWhile:function(e){for(var t=this.pos;this.eat(e););return this.pos>t},eatSpace:function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},skipToEnd:function(){this.pos=this.string.length},skipTo:function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},backUp:function(e){this.pos-=e},column:function(){throw"not implemented"},indentation:function(){throw"not implemented"},match:function(e,t,n){if("string"!=typeof e){var r=this.string.slice(this.pos).match(e);return r&&r.index>0?null:(r&&!1!==t&&(this.pos+=r[0].length),r)}var i=function(e){return n?e.toLowerCase():e};if(i(this.string.substr(this.pos,e.length))==i(e))return!1!==t&&(this.pos+=e.length),!0},current:function(){return this.string.slice(this.start,this.pos)},hideFirstChars:function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}}},it.defineExtension=function(e,t){it.prototype[e]=t},qe.importCssString(".normal-mode .ace_cursor{\n border: none;\n background-color: rgba(255,0,0,0.5);\n}\n.normal-mode .ace_hidden-cursors .ace_cursor{\n background-color: transparent;\n border: 1px solid red;\n opacity: 0.7\n}\n.ace_dialog {\n position: absolute;\n left: 0; right: 0;\n background: inherit;\n z-index: 15;\n padding: .1em .8em;\n overflow: hidden;\n color: inherit;\n}\n.ace_dialog-top {\n border-bottom: 1px solid #444;\n top: 0;\n}\n.ace_dialog-bottom {\n border-top: 1px solid #444;\n bottom: 0;\n}\n.ace_dialog input {\n border: none;\n outline: none;\n background: transparent;\n width: 20em;\n color: inherit;\n font-family: monospace;\n}","vimMode",!1),function(){function e(e,t,n){var r;return(r=e.ace.container.appendChild(document.createElement("div"))).className=n?"ace_dialog ace_dialog-bottom":"ace_dialog ace_dialog-top","string"==typeof t?r.innerHTML=t:r.appendChild(t),r}function t(e,t){e.state.currentNotificationClose&&e.state.currentNotificationClose(),e.state.currentNotificationClose=t}it.defineExtension("openDialog",(function(n,r,i){function o(e){if("string"==typeof e)u.value=e;else{if(s)return;if(e&&"blur"==e.type&&document.activeElement===u)return;l.state.dialog==a&&(l.state.dialog=null,l.focus()),s=!0,a.remove(),i.onClose&&i.onClose(a);var t=l;t.state.vim&&(t.state.vim.status=null,t.ace._signal("changeStatus"),t.ace.renderer.$loop.schedule(t.ace.renderer.CHANGE_CURSOR))}}if(!this.virtualSelectionMode()){i||(i={}),t(this,null);var a=e(this,n,i.bottom),s=!1,l=this;this.state.dialog=a;var c,u=a.getElementsByTagName("input")[0];return u?(i.value&&(u.value=i.value,!1!==i.selectValueOnOpen&&u.select()),i.onInput&&it.on(u,"input",(function(e){i.onInput(e,u.value,o)})),i.onKeyUp&&it.on(u,"keyup",(function(e){i.onKeyUp(e,u.value,o)})),it.on(u,"keydown",(function(e){i&&i.onKeyDown&&i.onKeyDown(e,u.value,o)||(13==e.keyCode&&r(u.value),(27==e.keyCode||!1!==i.closeOnEnter&&13==e.keyCode)&&(it.e_stop(e),o()))})),!1!==i.closeOnBlur&&it.on(u,"blur",o),u.focus()):(c=a.getElementsByTagName("button")[0])&&(it.on(c,"click",(function(){o(),l.focus()})),!1!==i.closeOnBlur&&it.on(c,"blur",o),c.focus()),o}})),it.defineExtension("openNotification",(function(n,r){function i(){s||(s=!0,clearTimeout(o),a.remove())}if(!this.virtualSelectionMode()){t(this,i);var o,a=e(this,n,r&&r.bottom),s=!1,l=r&&void 0!==r.duration?r.duration:5e3;return it.on(a,"click",(function(e){it.e_preventDefault(e),i()})),l&&(o=setTimeout(i,l)),i}}))}();var at,st=it.Pos,lt=[{keys:"<Left>",type:"keyToKey",toKeys:"h"},{keys:"<Right>",type:"keyToKey",toKeys:"l"},{keys:"<Up>",type:"keyToKey",toKeys:"k"},{keys:"<Down>",type:"keyToKey",toKeys:"j"},{keys:"g<Up>",type:"keyToKey",toKeys:"gk"},{keys:"g<Down>",type:"keyToKey",toKeys:"gj"},{keys:"<Space>",type:"keyToKey",toKeys:"l"},{keys:"<BS>",type:"keyToKey",toKeys:"h"},{keys:"<Del>",type:"keyToKey",toKeys:"x"},{keys:"<C-Space>",type:"keyToKey",toKeys:"W"},{keys:"<C-BS>",type:"keyToKey",toKeys:"B"},{keys:"<S-Space>",type:"keyToKey",toKeys:"w"},{keys:"<S-BS>",type:"keyToKey",toKeys:"b"},{keys:"<C-n>",type:"keyToKey",toKeys:"j"},{keys:"<C-p>",type:"keyToKey",toKeys:"k"},{keys:"<C-[>",type:"keyToKey",toKeys:"<Esc>"},{keys:"<C-c>",type:"keyToKey",toKeys:"<Esc>"},{keys:"<C-[>",type:"keyToKey",toKeys:"<Esc>",context:"insert"},{keys:"<C-c>",type:"keyToKey",toKeys:"<Esc>",context:"insert"},{keys:"<C-Esc>",type:"keyToKey",toKeys:"<Esc>"},{keys:"<C-Esc>",type:"keyToKey",toKeys:"<Esc>",context:"insert"},{keys:"s",type:"keyToKey",toKeys:"cl",context:"normal"},{keys:"s",type:"keyToKey",toKeys:"c",context:"visual"},{keys:"S",type:"keyToKey",toKeys:"cc",context:"normal"},{keys:"S",type:"keyToKey",toKeys:"VdO",context:"visual"},{keys:"<Home>",type:"keyToKey",toKeys:"0"},{keys:"<End>",type:"keyToKey",toKeys:"$"},{keys:"<PageUp>",type:"keyToKey",toKeys:"<C-b>"},{keys:"<PageDown>",type:"keyToKey",toKeys:"<C-f>"},{keys:"<CR>",type:"keyToKey",toKeys:"j^",context:"normal"},{keys:"<Ins>",type:"keyToKey",toKeys:"i",context:"normal"},{keys:"<Ins>",type:"action",action:"toggleOverwrite",context:"insert"},{keys:"H",type:"motion",motion:"moveToTopLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"M",type:"motion",motion:"moveToMiddleLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"L",type:"motion",motion:"moveToBottomLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"h",type:"motion",motion:"moveByCharacters",motionArgs:{forward:!1}},{keys:"l",type:"motion",motion:"moveByCharacters",motionArgs:{forward:!0}},{keys:"j",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,linewise:!0}},{keys:"k",type:"motion",motion:"moveByLines",motionArgs:{forward:!1,linewise:!0}},{keys:"gj",type:"motion",motion:"moveByDisplayLines",motionArgs:{forward:!0}},{keys:"gk",type:"motion",motion:"moveByDisplayLines",motionArgs:{forward:!1}},{keys:"w",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!1}},{keys:"W",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!1,bigWord:!0}},{keys:"e",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!0,inclusive:!0}},{keys:"E",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:"b",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1}},{keys:"B",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1,bigWord:!0}},{keys:"ge",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!0,inclusive:!0}},{keys:"gE",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:"{",type:"motion",motion:"moveByParagraph",motionArgs:{forward:!1,toJumplist:!0}},{keys:"}",type:"motion",motion:"moveByParagraph",motionArgs:{forward:!0,toJumplist:!0}},{keys:"(",type:"motion",motion:"moveBySentence",motionArgs:{forward:!1}},{keys:")",type:"motion",motion:"moveBySentence",motionArgs:{forward:!0}},{keys:"<C-f>",type:"motion",motion:"moveByPage",motionArgs:{forward:!0}},{keys:"<C-b>",type:"motion",motion:"moveByPage",motionArgs:{forward:!1}},{keys:"<C-d>",type:"motion",motion:"moveByScroll",motionArgs:{forward:!0,explicitRepeat:!0}},{keys:"<C-u>",type:"motion",motion:"moveByScroll",motionArgs:{forward:!1,explicitRepeat:!0}},{keys:"gg",type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:"G",type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!0,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:"g$",type:"motion",motion:"moveToEndOfDisplayLine"},{keys:"g^",type:"motion",motion:"moveToStartOfDisplayLine"},{keys:"g0",type:"motion",motion:"moveToStartOfDisplayLine"},{keys:"0",type:"motion",motion:"moveToStartOfLine"},{keys:"^",type:"motion",motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"+",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,toFirstChar:!0}},{keys:"-",type:"motion",motion:"moveByLines",motionArgs:{forward:!1,toFirstChar:!0}},{keys:"_",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,toFirstChar:!0,repeatOffset:-1}},{keys:"$",type:"motion",motion:"moveToEol",motionArgs:{inclusive:!0}},{keys:"%",type:"motion",motion:"moveToMatchedSymbol",motionArgs:{inclusive:!0,toJumplist:!0}},{keys:"f<character>",type:"motion",motion:"moveToCharacter",motionArgs:{forward:!0,inclusive:!0}},{keys:"F<character>",type:"motion",motion:"moveToCharacter",motionArgs:{forward:!1}},{keys:"t<character>",type:"motion",motion:"moveTillCharacter",motionArgs:{forward:!0,inclusive:!0}},{keys:"T<character>",type:"motion",motion:"moveTillCharacter",motionArgs:{forward:!1}},{keys:";",type:"motion",motion:"repeatLastCharacterSearch",motionArgs:{forward:!0}},{keys:",",type:"motion",motion:"repeatLastCharacterSearch",motionArgs:{forward:!1}},{keys:"'<register>",type:"motion",motion:"goToMark",motionArgs:{toJumplist:!0,linewise:!0}},{keys:"`<register>",type:"motion",motion:"goToMark",motionArgs:{toJumplist:!0}},{keys:"]`",type:"motion",motion:"jumpToMark",motionArgs:{forward:!0}},{keys:"[`",type:"motion",motion:"jumpToMark",motionArgs:{forward:!1}},{keys:"]'",type:"motion",motion:"jumpToMark",motionArgs:{forward:!0,linewise:!0}},{keys:"['",type:"motion",motion:"jumpToMark",motionArgs:{forward:!1,linewise:!0}},{keys:"]p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!0,isEdit:!0,matchIndent:!0}},{keys:"[p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!1,isEdit:!0,matchIndent:!0}},{keys:"]<character>",type:"motion",motion:"moveToSymbol",motionArgs:{forward:!0,toJumplist:!0}},{keys:"[<character>",type:"motion",motion:"moveToSymbol",motionArgs:{forward:!1,toJumplist:!0}},{keys:"|",type:"motion",motion:"moveToColumn"},{keys:"o",type:"motion",motion:"moveToOtherHighlightedEnd",context:"visual"},{keys:"O",type:"motion",motion:"moveToOtherHighlightedEnd",motionArgs:{sameLine:!0},context:"visual"},{keys:"d",type:"operator",operator:"delete"},{keys:"y",type:"operator",operator:"yank"},{keys:"c",type:"operator",operator:"change"},{keys:"=",type:"operator",operator:"indentAuto"},{keys:">",type:"operator",operator:"indent",operatorArgs:{indentRight:!0}},{keys:"<",type:"operator",operator:"indent",operatorArgs:{indentRight:!1}},{keys:"g~",type:"operator",operator:"changeCase"},{keys:"gu",type:"operator",operator:"changeCase",operatorArgs:{toLower:!0},isEdit:!0},{keys:"gU",type:"operator",operator:"changeCase",operatorArgs:{toLower:!1},isEdit:!0},{keys:"n",type:"motion",motion:"findNext",motionArgs:{forward:!0,toJumplist:!0}},{keys:"N",type:"motion",motion:"findNext",motionArgs:{forward:!1,toJumplist:!0}},{keys:"gn",type:"motion",motion:"findAndSelectNextInclusive",motionArgs:{forward:!0}},{keys:"gN",type:"motion",motion:"findAndSelectNextInclusive",motionArgs:{forward:!1}},{keys:"gq",type:"operator",operator:"hardWrap"},{keys:"gw",type:"operator",operator:"hardWrap",operatorArgs:{keepCursor:!0}},{keys:"x",type:"operatorMotion",operator:"delete",motion:"moveByCharacters",motionArgs:{forward:!0},operatorMotionArgs:{visualLine:!1}},{keys:"X",type:"operatorMotion",operator:"delete",motion:"moveByCharacters",motionArgs:{forward:!1},operatorMotionArgs:{visualLine:!0}},{keys:"D",type:"operatorMotion",operator:"delete",motion:"moveToEol",motionArgs:{inclusive:!0},context:"normal"},{keys:"D",type:"operator",operator:"delete",operatorArgs:{linewise:!0},context:"visual"},{keys:"Y",type:"operatorMotion",operator:"yank",motion:"expandToLine",motionArgs:{linewise:!0},context:"normal"},{keys:"Y",type:"operator",operator:"yank",operatorArgs:{linewise:!0},context:"visual"},{keys:"C",type:"operatorMotion",operator:"change",motion:"moveToEol",motionArgs:{inclusive:!0},context:"normal"},{keys:"C",type:"operator",operator:"change",operatorArgs:{linewise:!0},context:"visual"},{keys:"~",type:"operatorMotion",operator:"changeCase",motion:"moveByCharacters",motionArgs:{forward:!0},operatorArgs:{shouldMoveCursor:!0},context:"normal"},{keys:"~",type:"operator",operator:"changeCase",context:"visual"},{keys:"<C-u>",type:"operatorMotion",operator:"delete",motion:"moveToStartOfLine",context:"insert"},{keys:"<C-w>",type:"operatorMotion",operator:"delete",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1},context:"insert"},{keys:"<C-w>",type:"idle",context:"normal"},{keys:"<C-i>",type:"action",action:"jumpListWalk",actionArgs:{forward:!0}},{keys:"<C-o>",type:"action",action:"jumpListWalk",actionArgs:{forward:!1}},{keys:"<C-e>",type:"action",action:"scroll",actionArgs:{forward:!0,linewise:!0}},{keys:"<C-y>",type:"action",action:"scroll",actionArgs:{forward:!1,linewise:!0}},{keys:"a",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"charAfter"},context:"normal"},{keys:"A",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"eol"},context:"normal"},{keys:"A",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"endOfSelectedArea"},context:"visual"},{keys:"i",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"inplace"},context:"normal"},{keys:"gi",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"lastEdit"},context:"normal"},{keys:"I",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"firstNonBlank"},context:"normal"},{keys:"gI",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"bol"},context:"normal"},{keys:"I",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"startOfSelectedArea"},context:"visual"},{keys:"o",type:"action",action:"newLineAndEnterInsertMode",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!0},context:"normal"},{keys:"O",type:"action",action:"newLineAndEnterInsertMode",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!1},context:"normal"},{keys:"v",type:"action",action:"toggleVisualMode"},{keys:"V",type:"action",action:"toggleVisualMode",actionArgs:{linewise:!0}},{keys:"<C-v>",type:"action",action:"toggleVisualMode",actionArgs:{blockwise:!0}},{keys:"<C-q>",type:"action",action:"toggleVisualMode",actionArgs:{blockwise:!0}},{keys:"gv",type:"action",action:"reselectLastSelection"},{keys:"J",type:"action",action:"joinLines",isEdit:!0},{keys:"gJ",type:"action",action:"joinLines",actionArgs:{keepSpaces:!0},isEdit:!0},{keys:"p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!0,isEdit:!0}},{keys:"P",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!1,isEdit:!0}},{keys:"r<character>",type:"action",action:"replace",isEdit:!0},{keys:"@<register>",type:"action",action:"replayMacro"},{keys:"q<register>",type:"action",action:"enterMacroRecordMode"},{keys:"R",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{replace:!0},context:"normal"},{keys:"R",type:"operator",operator:"change",operatorArgs:{linewise:!0,fullLine:!0},context:"visual",exitVisualBlock:!0},{keys:"u",type:"action",action:"undo",context:"normal"},{keys:"u",type:"operator",operator:"changeCase",operatorArgs:{toLower:!0},context:"visual",isEdit:!0},{keys:"U",type:"operator",operator:"changeCase",operatorArgs:{toLower:!1},context:"visual",isEdit:!0},{keys:"<C-r>",type:"action",action:"redo"},{keys:"m<register>",type:"action",action:"setMark"},{keys:'"<register>',type:"action",action:"setRegister"},{keys:"<C-r><register>",type:"action",action:"insertRegister",context:"insert",isEdit:!0},{keys:"<C-o>",type:"action",action:"oneNormalCommand",context:"insert"},{keys:"zz",type:"action",action:"scrollToCursor",actionArgs:{position:"center"}},{keys:"z.",type:"action",action:"scrollToCursor",actionArgs:{position:"center"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"zt",type:"action",action:"scrollToCursor",actionArgs:{position:"top"}},{keys:"z<CR>",type:"action",action:"scrollToCursor",actionArgs:{position:"top"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"zb",type:"action",action:"scrollToCursor",actionArgs:{position:"bottom"}},{keys:"z-",type:"action",action:"scrollToCursor",actionArgs:{position:"bottom"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:".",type:"action",action:"repeatLastEdit"},{keys:"<C-a>",type:"action",action:"incrementNumberToken",isEdit:!0,actionArgs:{increase:!0,backtrack:!1}},{keys:"<C-x>",type:"action",action:"incrementNumberToken",isEdit:!0,actionArgs:{increase:!1,backtrack:!1}},{keys:"<C-t>",type:"action",action:"indent",actionArgs:{indentRight:!0},context:"insert"},{keys:"<C-d>",type:"action",action:"indent",actionArgs:{indentRight:!1},context:"insert"},{keys:"a<register>",type:"motion",motion:"textObjectManipulation"},{keys:"i<register>",type:"motion",motion:"textObjectManipulation",motionArgs:{textObjectInner:!0}},{keys:"/",type:"search",searchArgs:{forward:!0,querySrc:"prompt",toJumplist:!0}},{keys:"?",type:"search",searchArgs:{forward:!1,querySrc:"prompt",toJumplist:!0}},{keys:"*",type:"search",searchArgs:{forward:!0,querySrc:"wordUnderCursor",wholeWordOnly:!0,toJumplist:!0}},{keys:"#",type:"search",searchArgs:{forward:!1,querySrc:"wordUnderCursor",wholeWordOnly:!0,toJumplist:!0}},{keys:"g*",type:"search",searchArgs:{forward:!0,querySrc:"wordUnderCursor",toJumplist:!0}},{keys:"g#",type:"search",searchArgs:{forward:!1,querySrc:"wordUnderCursor",toJumplist:!0}},{keys:":",type:"ex"}],ct=lt.length,ut=[{name:"colorscheme",shortName:"colo"},{name:"map"},{name:"imap",shortName:"im"},{name:"nmap",shortName:"nm"},{name:"vmap",shortName:"vm"},{name:"omap",shortName:"om"},{name:"noremap",shortName:"no"},{name:"nnoremap",shortName:"nn"},{name:"vnoremap",shortName:"vn"},{name:"inoremap",shortName:"ino"},{name:"onoremap",shortName:"ono"},{name:"unmap"},{name:"mapclear",shortName:"mapc"},{name:"nmapclear",shortName:"nmapc"},{name:"vmapclear",shortName:"vmapc"},{name:"imapclear",shortName:"imapc"},{name:"omapclear",shortName:"omapc"},{name:"write",shortName:"w"},{name:"undo",shortName:"u"},{name:"redo",shortName:"red"},{name:"set",shortName:"se"},{name:"setlocal",shortName:"setl"},{name:"setglobal",shortName:"setg"},{name:"sort",shortName:"sor"},{name:"substitute",shortName:"s",possiblyAsync:!0},{name:"startinsert",shortName:"start"},{name:"nohlsearch",shortName:"noh"},{name:"yank",shortName:"y"},{name:"delmarks",shortName:"delm"},{name:"registers",shortName:"reg",excludeFromCommandHistory:!0},{name:"vglobal",shortName:"v"},{name:"delete",shortName:"d"},{name:"join",shortName:"j"},{name:"normal",shortName:"norm"},{name:"global",shortName:"g"}],ht=L(""),pt=/[\d]/,dt=[it.isWordChar,function(e){return e&&!it.isWordChar(e)&&!/\s/.test(e)}],ft=[function(e){return/\S/.test(e)}],mt=["<",">"],gt=["-",'"',".",":","_","/","+"],vt=/^\w$/;try{at=new RegExp("^[\\p{Lu}]$","u")}catch(e){at=/^[A-Z]$/}var yt={};v("filetype",void 0,"string",["ft"],(function(e,t){if(void 0!==t){if(void 0===e)return"null"==(n=t.getOption("mode"))?"":n;var n=""==e?"null":e;t.setOption("mode",n)}})),v("textwidth",80,"number",["tw"],(function(e,t){if(void 0!==t){if(void 0===e)return t.getOption("textwidth");var n=Math.round(e);n>1&&t.setOption("textwidth",n)}}));var Ct=function(){function e(e,a){(n+=a)>r?n=r:n<i&&(n=i);var s=o[(t+n)%t];if(s&&!s.find()){var l,c=a>0?1:-1,u=e.getCursor();do{if((s=o[(t+(n+=c))%t])&&(l=s.find())&&!V(u,l))break}while(n<r&&n>i)}return s}var t=100,n=-1,r=0,i=0,o=new Array(t);return{cachedCursor:void 0,add:function(e,a,s){function l(r){var i=++n%t,a=o[i];a&&a.clear(),o[i]=e.setBookmark(r)}var c=o[n%t];if(c){var u=c.find();u&&!V(u,a)&&l(a)}else l(a);l(s),r=n,(i=n-t+1)<0&&(i=0)},find:function(t,r){var i=n,o=e(t,r);return n=i,o&&o.find()},move:e}},wt=function(e){return e?{changes:e.changes,expectCursorActivityForChange:e.expectCursorActivityForChange}:{changes:[],expectCursorActivityForChange:!1}};w.prototype={exitMacroRecordMode:function(){var e=kt.macroModeState;e.onRecordingDone&&e.onRecordingDone(),e.onRecordingDone=void 0,e.isRecording=!1},enterMacroRecordMode:function(e,t){var n=kt.registerController.getRegister(t);if(n){if(n.clear(),this.latestRegister=t,e.openDialog){var r=we("span",{class:"cm-vim-message"},"recording @"+t);this.onRecordingDone=e.openDialog(r,null,{bottom:!0})}this.isRecording=!0}}};var kt,St,xt,Mt={enterVimMode:a,leaveVimMode:s,buildKeyMap:function(){},getRegisterController:function(){return kt.registerController},resetVimGlobalState_:S,getVimGlobalState_:function(){return kt},maybeInitVimState_:k,suppressErrorLogging:!1,InsertModeKey:_e,map:function(e,t,n){Vt.map(e,t,n)},unmap:function(e,t){return Vt.unmap(e,t)},noremap:function(e,t,n){Vt.map(e,t,n,!0)},mapclear:function(e){var t=lt.length,n=ct,r=lt.slice(0,t-n);if(lt=lt.slice(t-n),e)for(var i=r.length-1;i>=0;i--){var o=r[i];if(e!==o.context)if(o.context)this._mapCommand(o);else{var a=["normal","insert","visual"];for(var s in a)if(a[s]!==e){var l={};for(var c in o)l[c]=o[c];l.context=a[s],this._mapCommand(l)}}}},langmap:A,vimKeyFromEvent:b,setOption:y,getOption:C,defineOption:v,defineEx:function(e,t,n){if(t){if(0!==e.indexOf(t))throw new Error('(Vim.defineEx) "'+t+'" is not a prefix of "'+e+'", command not registered')}else t=e;Dt[e]=n,Vt.commandMap_[t]={name:e,shortName:t,type:"api"}},handleKey:function(e,t,n){var r=this.findKey(e,t,n);if("function"==typeof r)return r()},multiSelectHandleKey:Fe,findKey:function(e,t,n){function r(){var r=kt.macroModeState;if(r.isRecording){if("q"==t)return r.exitMacroRecordMode(),E(e),!0;"mapping"!=n&&function(e,t){if(!e.isPlaying){var n=e.latestRegister,r=kt.registerController.getRegister(n);r&&r.pushText(t)}}(r,t)}}function i(){if("<Esc>"==t){if(a.visualMode)ee(e);else{if(!a.insertMode)return;Be(e)}return E(e),!0}}var o,a=k(e);return o=a.insertMode?function(){if(i())return!0;a.inputState.keyBuffer.push(t);var n=a.inputState.keyBuffer.join(""),r=1==t.length,o=Ot.matchCommand(n,lt,a.inputState,"insert"),s=a.inputState.changeQueue;if("none"==o.type)return E(e),!1;if("partial"==o.type){if(o.expectLiteralNext&&(a.expectLiteralNext=!0),St&&window.clearTimeout(St),St=r&&window.setTimeout((function(){a.insertMode&&a.inputState.keyBuffer.length&&E(e)}),C("insertModeEscKeysTimeout")),r){var l=e.listSelections();s&&s.removed.length==l.length||(s=a.inputState.changeQueue=new O),s.inserted+=t;for(var c=0;c<l.length;c++){var u=j(l[c].anchor,l[c].head),h=F(l[c].anchor,l[c].head),p=e.getRange(u,e.state.overwrite?H(h,0,1):h);s.removed[c]=(s.removed[c]||"")+p}}return!r}if(a.expectLiteralNext=!1,St&&window.clearTimeout(St),o.command&&s){for(l=e.listSelections(),c=0;c<l.length;c++){var d=l[c].head;e.replaceRange(s.removed[c]||"",H(d,0,-s.inserted.length),d,"+input")}kt.macroModeState.lastInsertModeChanges.changes.pop()}return o.command||E(e),o.command}():function(){if(r()||i())return!0;a.inputState.keyBuffer.push(t);var n=a.inputState.keyBuffer.join("");if(/^[1-9]\d*$/.test(n))return!0;var o=/^(\d*)(.*)$/.exec(n);if(!o)return E(e),!1;var s=a.visualMode?"visual":"normal",l=o[2]||o[1];a.inputState.operatorShortcut&&a.inputState.operatorShortcut.slice(-1)==l&&(l=a.inputState.operatorShortcut);var c=Ot.matchCommand(l,lt,a.inputState,s);return"none"==c.type?(E(e),!1):"partial"==c.type?(c.expectLiteralNext&&(a.expectLiteralNext=!0),!0):"clear"==c.type?(E(e),!0):(a.expectLiteralNext=!1,a.inputState.keyBuffer.length=0,(o=/^(\d*)(.*)$/.exec(n))[1]&&"0"!=o[1]&&a.inputState.pushRepeatDigit(o[1]),c.command)}(),!1===o?a.insertMode||1!==t.length?void 0:function(){return!0}:!0===o?function(){return!0}:function(){if(!o.operator&&!o.isEdit||!e.getOption("readOnly"))return e.operation((function(){e.curOp.isVimOp=!0;try{"keyToKey"==o.type?M(e,o.toKeys,o):Ot.processCommand(e,a,o)}catch(t){throw e.state.vim=void 0,k(e),Mt.suppressErrorLogging||console.log(t),t}return!0}))}},handleEx:function(e,t){Vt.processCommand(e,t)},defineMotion:function(e,t){Rt[e]=t},defineAction:function(e,t){It[e]=t},defineOperator:function(e,t){Bt[e]=t},mapCommand:function(e,t,n,r,i){var o={keys:e,type:t};for(var a in o[t]=n,o[t+"Args"]=r,i)o[a]=i[a];Ie(o)},_mapCommand:Ie,defineRegister:function(e,t){var n=kt.registerController.registers;if(!e||1!=e.length)throw Error("Register name must be 1 character");n[e]=t,gt.push(e)},exitVisualMode:ee,exitInsertMode:Be},bt=[],At=!1,Lt={Return:"CR",Backspace:"BS",Delete:"Del",Escape:"Esc",Insert:"Ins",ArrowLeft:"Left",ArrowRight:"Right",ArrowUp:"Up",ArrowDown:"Down",Enter:"CR"," ":"Space"},Tt={Shift:1,Alt:1,Command:1,Control:1,CapsLock:1,AltGraph:1,Dead:1,Unidentified:1},Et={};"Left|Right|Up|Down|End|Home".split("|").concat(Object.keys(Lt)).forEach((function(e){Et[(Lt[e]||"").toLowerCase()]=Et[e.toLowerCase()]=e})),v("langmap",void 0,"string",["lmap"],(function(e,t){if(void 0===e)return ht.string;A(e)})),T.prototype.pushRepeatDigit=function(e){this.operator?this.motionRepeat=this.motionRepeat.concat(e):this.prefixRepeat=this.prefixRepeat.concat(e)},T.prototype.getRepeat=function(){var e=0;return(this.prefixRepeat.length>0||this.motionRepeat.length>0)&&(e=1,this.prefixRepeat.length>0&&(e*=parseInt(this.prefixRepeat.join(""),10)),this.motionRepeat.length>0&&(e*=parseInt(this.motionRepeat.join(""),10))),e},R.prototype={setText:function(e,t,n){this.keyBuffer=[e||""],this.linewise=!!t,this.blockwise=!!n},pushText:function(e,t){t&&(this.linewise||this.keyBuffer.push("\n"),this.linewise=!0),this.keyBuffer.push(e)},pushInsertModeChanges:function(e){this.insertModeChanges.push(wt(e))},pushSearchQuery:function(e){this.searchQueries.push(e)},clear:function(){this.keyBuffer=[],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!1},toString:function(){return this.keyBuffer.join("")}},B.prototype={pushText:function(e,t,n,r,i){if("_"!==e){r&&"\n"!==n.charAt(n.length-1)&&(n+="\n");var o=this.isValidRegister(e)?this.getRegister(e):null;if(o){d(e)?o.pushText(n,r):o.setText(n,r,i),"+"===e&&"undefined"!=typeof navigator&&void 0!==navigator.clipboard&&"function"==typeof navigator.clipboard.readText&&navigator.clipboard.writeText(n),this.unnamedRegister.setText(o.toString(),r)}else{switch(t){case"yank":this.registers[0]=new R(n,r,i);break;case"delete":case"change":-1==n.indexOf("\n")?this.registers["-"]=new R(n,r):(this.shiftNumericRegisters_(),this.registers[1]=new R(n,r))}this.unnamedRegister.setText(n,r,i)}}},getRegister:function(e){return this.isValidRegister(e)?(e=e.toLowerCase(),this.registers[e]||(this.registers[e]=new R),this.registers[e]):this.unnamedRegister},isValidRegister:function(e){return e&&(g(e,gt)||vt.test(e))},shiftNumericRegisters_:function(){for(var e=9;e>=2;e--)this.registers[e]=this.getRegister(""+(e-1))}},I.prototype={nextMatch:function(e,t){var n=this.historyBuffer,r=t?-1:1;null===this.initialPrefix&&(this.initialPrefix=e);for(var i=this.iterator+r;t?i>=0:i<n.length;i+=r)for(var o=n[i],a=0;a<=o.length;a++)if(this.initialPrefix==o.substring(0,a))return this.iterator=i,o;return i>=n.length?(this.iterator=n.length,this.initialPrefix):i<0?e:void 0},pushInput:function(e){var t=this.historyBuffer.indexOf(e);t>-1&&this.historyBuffer.splice(t,1),e.length&&this.historyBuffer.push(e)},reset:function(){this.initialPrefix=null,this.iterator=this.historyBuffer.length}};var Ot={matchCommand:function(e,t,n,r){var i,o=function(e,t,n,r){r.operator&&(n="operatorPending");for(var i,o=[],a=[],s=At?t.length-ct:0;s<t.length;s++){var l=t[s];"insert"==n&&"insert"!=l.context||l.context&&l.context!=n||r.operator&&"action"==l.type||!(i=_(e,l.keys))||("partial"==i&&o.push(l),"full"==i&&a.push(l))}return{partial:o.length&&o,full:a.length&&a}}(e,t,r,n);if(!o.full&&!o.partial)return{type:"none"};if(!o.full&&o.partial)return{type:"partial",expectLiteralNext:1==o.partial.length&&"<character>"==o.partial[0].keys.slice(-11)};for(var a=0;a<o.full.length;a++){var s=o.full[a];i||(i=s)}if("<character>"==i.keys.slice(-11)||"<register>"==i.keys.slice(-10)){var l=function(e){var t=/^.*(<[^>]+>)$/.exec(e),n=t?t[1]:e.slice(-1);if(n.length>1)switch(n){case"<CR>":n="\n";break;case"<Space>":n=" ";break;default:n=""}return n}(e);if(!l||l.length>1)return{type:"clear"};n.selectedCharacter=l}return{type:"full",command:i}},processCommand:function(e,t,n){switch(t.inputState.repeatOverride=n.repeatOverride,n.type){case"motion":this.processMotion(e,t,n);break;case"operator":this.processOperator(e,t,n);break;case"operatorMotion":this.processOperatorMotion(e,t,n);break;case"action":this.processAction(e,t,n);break;case"search":this.processSearch(e,t,n);break;case"ex":case"keyToEx":this.processEx(e,t,n)}},processMotion:function(e,t,n){t.inputState.motion=n.motion,t.inputState.motionArgs=P(n.motionArgs),this.evalInput(e,t)},processOperator:function(e,t,n){var r=t.inputState;if(r.operator){if(r.operator==n.operator)return r.motion="expandToLine",r.motionArgs={linewise:!0},void this.evalInput(e,t);E(e)}r.operator=n.operator,r.operatorArgs=P(n.operatorArgs),n.keys.length>1&&(r.operatorShortcut=n.keys),n.exitVisualBlock&&(t.visualBlock=!1,Z(e)),t.visualMode&&this.evalInput(e,t)},processOperatorMotion:function(e,t,n){var r=t.visualMode,i=P(n.operatorMotionArgs);i&&r&&i.visualLine&&(t.visualLine=!0),this.processOperator(e,t,n),r||this.processMotion(e,t,n)},processAction:function(e,t,n){var r=t.inputState,i=r.getRepeat(),o=!!i,a=P(n.actionArgs)||{};r.selectedCharacter&&(a.selectedCharacter=r.selectedCharacter),n.operator&&this.processOperator(e,t,n),n.motion&&this.processMotion(e,t,n),(n.motion||n.operator)&&this.evalInput(e,t),a.repeat=i||1,a.repeatIsExplicit=o,a.registerName=r.registerName,E(e),t.lastMotion=null,n.isEdit&&this.recordLastEdit(t,r,n),It[n.action](e,a,t)},processSearch:function(e,t,n){function r(r,i,o){kt.searchHistoryController.pushInput(r),kt.searchHistoryController.reset();try{xe(e,r,i,o)}catch(t){return ke(e,"Invalid regex: "+r),void E(e)}Ot.processMotion(e,t,{type:"motion",motion:"findNext",motionArgs:{forward:!0,toJumplist:n.searchArgs.toJumplist}})}if(e.getSearchCursor){var i=n.searchArgs.forward,o=n.searchArgs.wholeWordOnly;me(e).setReversed(!i);var a=i?"/":"?",s=me(e).getQuery(),l=e.getScrollInfo();switch(n.searchArgs.querySrc){case"prompt":var c=kt.macroModeState;if(c.isPlaying)r(p=c.replaySearchQueries.shift(),!0,!1);else Se(e,{onClose:function(e){r(e,!0,!0);var t=kt.macroModeState;t.isRecording&&function(e,t){if(!e.isPlaying){var n=e.latestRegister,r=kt.registerController.getRegister(n);r&&r.pushSearchQuery&&r.pushSearchQuery(t)}}(t,e)},prefix:a,desc:"(JavaScript regexp)",onKeyUp:function(t,n,r){var o,a,s,c=b(t);"<Up>"==c||"<Down>"==c?(o="<Up>"==c,a=t.target?t.target.selectionEnd:0,r(n=kt.searchHistoryController.nextMatch(n,o)||""),a&&t.target&&(t.target.selectionEnd=t.target.selectionStart=Math.min(a,t.target.value.length))):c&&"<Left>"!=c&&"<Right>"!=c&&kt.searchHistoryController.reset();try{s=xe(e,n,!0,!0)}catch(t){}s?e.scrollIntoView(be(e,!i,s),30):(Ae(e),e.scrollTo(l.left,l.top))},onKeyDown:function(t,n,r){var i=b(t);"<Esc>"==i||"<C-c>"==i||"<C-[>"==i||"<BS>"==i&&""==n?(kt.searchHistoryController.pushInput(n),kt.searchHistoryController.reset(),xe(e,s),Ae(e),e.scrollTo(l.left,l.top),it.e_stop(t),E(e),r(),e.focus()):"<Up>"==i||"<Down>"==i?it.e_stop(t):"<C-u>"==i&&(it.e_stop(t),r(""))}});break;case"wordUnderCursor":var u=ne(e,{noSymbol:!0}),h=!0;if(u||(u=ne(e,{noSymbol:!1}),h=!1),!u)return ke(e,"No word under cursor"),void E(e);var p=e.getLine(u.start.line).substring(u.start.ch,u.end.ch);p=h&&o?"\\b"+p+"\\b":function(e){return e.replace(/([.?*+$\[\]\/\\(){}|\-])/g,"\\$1")}(p),kt.jumpList.cachedCursor=e.getCursor(),e.setCursor(u.start),r(p,!0,!1)}}},processEx:function(e,t,n){function r(t){kt.exCommandHistoryController.pushInput(t),kt.exCommandHistoryController.reset(),Vt.processCommand(e,t),e.state.vim&&E(e)}function i(t,n,r){var i,o,a=b(t);("<Esc>"==a||"<C-c>"==a||"<C-[>"==a||"<BS>"==a&&""==n)&&(kt.exCommandHistoryController.pushInput(n),kt.exCommandHistoryController.reset(),it.e_stop(t),E(e),r(),e.focus()),"<Up>"==a||"<Down>"==a?(it.e_stop(t),i="<Up>"==a,o=t.target?t.target.selectionEnd:0,r(n=kt.exCommandHistoryController.nextMatch(n,i)||""),o&&t.target&&(t.target.selectionEnd=t.target.selectionStart=Math.min(o,t.target.value.length))):"<C-u>"==a?(it.e_stop(t),r("")):a&&"<Left>"!=a&&"<Right>"!=a&&kt.exCommandHistoryController.reset()}"keyToEx"==n.type?Vt.processCommand(e,n.exArgs.input):t.visualMode?Se(e,{onClose:r,prefix:":",value:"'<,'>",onKeyDown:i,selectValueOnOpen:!1}):Se(e,{onClose:r,prefix:":",onKeyDown:i})},evalInput:function(e,t){var n,r,i,a=t.inputState,s=a.motion,l=a.motionArgs||{},c=a.operator,u=a.operatorArgs||{},h=a.registerName,p=t.sel,d=D(t.visualMode?K(e,p.head):e.getCursor("head")),m=D(t.visualMode?K(e,p.anchor):e.getCursor("anchor")),g=D(d),v=D(m);if(c&&this.recordLastEdit(t,a),(i=void 0!==a.repeatOverride?a.repeatOverride:a.getRepeat())>0&&l.explicitRepeat?l.repeatIsExplicit=!0:(l.noRepeat||!l.explicitRepeat&&0===i)&&(i=1,l.repeatIsExplicit=!1),a.selectedCharacter&&(l.selectedCharacter=u.selectedCharacter=a.selectedCharacter),l.repeat=i,E(e),s){var y=Rt[s](e,d,l,t,a);if(t.lastMotion=Rt[s],!y)return;if(l.toJumplist){!c&&null!=e.ace.curOp&&(e.ace.curOp.command.scrollIntoView="center-animate");var C=kt.jumpList,w=C.cachedCursor;w?(ie(e,w,y),delete C.cachedCursor):ie(e,d,y)}y instanceof Array?(r=y[0],n=y[1]):n=y,n||(n=D(d)),t.visualMode?(t.visualBlock&&n.ch===1/0||(n=K(e,n,g)),r&&(r=K(e,r)),r=r||v,p.anchor=r,p.head=n,Z(e),ce(e,t,"<",W(r,n)?r:n),ce(e,t,">",W(r,n)?n:r)):c||(e.ace.curOp&&(e.ace.curOp.vimDialogScroll="center-animate"),n=K(e,n,g),e.setCursor(n.line,n.ch))}if(c){if(u.lastSel){r=v;var k=u.lastSel,S=Math.abs(k.head.line-k.anchor.line),x=Math.abs(k.head.ch-k.anchor.ch);n=k.visualLine?new st(v.line+S,v.ch):k.visualBlock?new st(v.line+S,v.ch+x):k.head.line==k.anchor.line?new st(v.line,v.ch+x):new st(v.line+S,v.ch),t.visualMode=!0,t.visualLine=k.visualLine,t.visualBlock=k.visualBlock,p=t.sel={anchor:r,head:n},Z(e)}else t.visualMode&&(u.lastSel={anchor:D(p.anchor),head:D(p.head),visualBlock:t.visualBlock,visualLine:t.visualLine});var M,b,A,L,T;if(t.visualMode){if(M=j(p.head,p.anchor),b=F(p.head,p.anchor),A=t.visualLine||u.linewise,L=t.visualBlock?"block":A?"line":"char",T=Y(e,{anchor:(I=o(e,M,b)).start,head:I.end},L),A){var O=T.ranges;if("block"==L)for(var R=0;R<O.length;R++)O[R].head.ch=z(e,O[R].head.line);else"line"==L&&(O[0].head=new st(O[0].head.line+1,0))}}else{if(M=D(r||v),W(b=D(n||g),M)){var B=M;M=b,b=B}(A=l.linewise||u.linewise)?function(e,t,n){t.ch=0,n.ch=0,n.line++}(0,M,b):l.forward&&function(e,t,n){var r=e.getRange(t,n);if(/\n\s*$/.test(r)){var i=r.split("\n");i.pop();for(var o=i.pop();i.length>0&&o&&f(o);o=i.pop())n.line--,n.ch=0;o?(n.line--,n.ch=z(e,n.line)):n.ch=0}}(e,M,b),L="char";var I,N=!l.inclusive||A;T=Y(e,{anchor:(I=o(e,M,b)).start,head:I.end},L,N)}e.setSelections(T.ranges,T.primary),t.lastMotion=null,u.repeat=i,u.registerName=h,u.linewise=A;var P=Bt[c](e,u,T.ranges,v,n);t.visualMode&&ee(e,null!=P),P&&e.setCursor(P)}},recordLastEdit:function(e,t,n){var r=kt.macroModeState;r.isPlaying||(e.lastEditInputState=t,e.lastEditActionCommand=n,r.lastInsertModeChanges.changes=[],r.lastInsertModeChanges.expectCursorActivityForChange=!1,r.lastInsertModeChanges.visualBlock=e.visualBlock?e.sel.head.line-e.sel.anchor.line:0)}},Rt={moveToTopLine:function(e,t,n){var r=Te(e).top+n.repeat-1;return new st(r,te(e.getLine(r)))},moveToMiddleLine:function(e){var t=Te(e),n=Math.floor(.5*(t.top+t.bottom));return new st(n,te(e.getLine(n)))},moveToBottomLine:function(e,t,n){var r=Te(e).bottom-n.repeat+1;return new st(r,te(e.getLine(r)))},expandToLine:function(e,t,n){return new st(t.line+n.repeat-1,1/0)},findNext:function(e,t,n){var r=me(e),i=r.getQuery();if(i){var o=!n.forward;return o=r.isReversed()?!o:o,Me(e,i),be(e,o,i,n.repeat)}},findAndSelectNextInclusive:function(e,t,n,r,i){var o=me(e),a=o.getQuery();if(a){var s=!n.forward,l=function(e,t,n,r,i){return void 0===r&&(r=1),e.operation((function(){var o=e.getCursor(),a=e.getSearchCursor(n,o),s=a.find(!t);!i.visualMode&&s&&V(a.from(),o)&&a.find(!t);for(var l=0;l<r;l++)if(!(s=a.find(t))&&!(a=e.getSearchCursor(n,t?new st(e.lastLine()):new st(e.firstLine(),0))).find(t))return;return[a.from(),a.to()]}))}(e,s=o.isReversed()?!s:s,a,n.repeat,r);if(l){if(i.operator)return l;var c=l[0],u=new st(l[1].line,l[1].ch-1);if(r.visualMode){(r.visualLine||r.visualBlock)&&(r.visualLine=!1,r.visualBlock=!1,it.signal(e,"vim-mode-change",{mode:"visual",subMode:""}));var h=r.sel.anchor;if(h)return o.isReversed()?n.forward?[h,c]:[h,u]:n.forward?[h,u]:[h,c]}else r.visualMode=!0,r.visualLine=!1,r.visualBlock=!1,it.signal(e,"vim-mode-change",{mode:"visual",subMode:""});return s?[u,c]:[c,u]}}},goToMark:function(e,t,n,r){var i=Ee(e,r,n.selectedCharacter);return i?n.linewise?{line:i.line,ch:te(e.getLine(i.line))}:i:null},moveToOtherHighlightedEnd:function(e,t,n,r){if(r.visualBlock&&n.sameLine){var i=r.sel;return[K(e,new st(i.anchor.line,i.head.ch)),K(e,new st(i.head.line,i.anchor.ch))]}return[r.sel.head,r.sel.anchor]},jumpToMark:function(e,t,n,r){for(var i=t,o=0;o<n.repeat;o++){var a=i;for(var s in r.marks)if(u(s)){var l=r.marks[s].find();if(!((n.forward?W(l,a):W(a,l))||n.linewise&&l.line==a.line)){var c=V(a,i),h=n.forward?U(a,l,i):U(i,l,a);(c||h)&&(i=l)}}}return n.linewise&&(i=new st(i.line,te(e.getLine(i.line)))),i},moveByCharacters:function(e,t,n){var r=t,i=n.repeat,o=n.forward?r.ch+i:r.ch-i;return new st(r.line,o)},moveByLines:function(e,t,n,r){var i=t,o=i.ch;switch(r.lastMotion){case this.moveByLines:case this.moveByDisplayLines:case this.moveByScroll:case this.moveToColumn:case this.moveToEol:o=r.lastHPos;break;default:r.lastHPos=o}var a=n.repeat+(n.repeatOffset||0),s=n.forward?i.line+a:i.line-a,l=e.firstLine(),c=e.lastLine();if(s<l&&i.line==l)return this.moveToStartOfLine(e,t,n,r);if(s>c&&i.line==c)return se(e,t,n,r,!0);var u=e.ace.session.getFoldLine(s);return u&&(n.forward?s>u.start.row&&(s=u.end.row+1):s=u.start.row),n.toFirstChar&&(o=te(e.getLine(s)),r.lastHPos=o),r.lastHSPos=e.charCoords(new st(s,o),"div").left,new st(s,o)},moveByDisplayLines:function(e,t,n,r){var i=t;switch(r.lastMotion){case this.moveByDisplayLines:case this.moveByScroll:case this.moveByLines:case this.moveToColumn:case this.moveToEol:break;default:r.lastHSPos=e.charCoords(i,"div").left}var o=n.repeat;if((s=e.findPosV(i,n.forward?o:-o,"line",r.lastHSPos)).hitSide)if(n.forward)var a={top:e.charCoords(s,"div").top+8,left:r.lastHSPos},s=e.coordsChar(a,"div");else{var l=e.charCoords(new st(e.firstLine(),0),"div");l.left=r.lastHSPos,s=e.coordsChar(l,"div")}return r.lastHPos=s.ch,s},moveByPage:function(e,t,n){var r=t,i=n.repeat;return e.findPosV(r,n.forward?i:-i,"page")},moveByParagraph:function(e,t,n){var r=n.forward?1:-1;return he(e,t,n.repeat,r)},moveBySentence:function(e,t,n){var r=n.forward?1:-1;return function(e,t,n,r){function i(e,t){if(t.pos+t.dir<0||t.pos+t.dir>=t.line.length){if(t.ln+=t.dir,!c(e,t.ln))return t.line=null,t.ln=null,void(t.pos=null);t.line=e.getLine(t.ln),t.pos=t.dir>0?0:t.line.length-1}else t.pos+=t.dir}function o(e,t,n,r){var o=""===(c=e.getLine(t)),a={line:c,ln:t,pos:n,dir:r},s={ln:a.ln,pos:a.pos},l=""===a.line;for(i(e,a);null!==a.line;){if(s.ln=a.ln,s.pos=a.pos,""===a.line&&!l)return{ln:a.ln,pos:a.pos};if(o&&""!==a.line&&!f(a.line[a.pos]))return{ln:a.ln,pos:a.pos};m(a.line[a.pos])&&!o&&(a.pos===a.line.length-1||f(a.line[a.pos+1]))&&(o=!0),i(e,a)}var c=e.getLine(s.ln);s.pos=0;for(var u=c.length-1;u>=0;--u)if(!f(c[u])){s.pos=u;break}return s}function a(e,t,n,r){var o={line:l=e.getLine(t),ln:t,pos:n,dir:r},a={ln:o.ln,pos:null},s=""===o.line;for(i(e,o);null!==o.line;){if(""===o.line&&!s)return null!==a.pos?a:{ln:o.ln,pos:o.pos};if(m(o.line[o.pos])&&null!==a.pos&&(o.ln!==a.ln||o.pos+1!==a.pos))return a;""!==o.line&&!f(o.line[o.pos])&&(s=!1,a={ln:o.ln,pos:o.pos}),i(e,o)}var l=e.getLine(a.ln);a.pos=0;for(var c=0;c<l.length;++c)if(!f(l[c])){a.pos=c;break}return a}for(var s={ln:t.line,pos:t.ch};n>0;)s=r<0?a(e,s.ln,s.pos,r):o(e,s.ln,s.pos,r),n--;return new st(s.ln,s.pos)}(e,t,n.repeat,r)},moveByScroll:function(e,t,n,r){var i,o=e.getScrollInfo(),a=n.repeat;a||(a=o.clientHeight/(2*e.defaultTextHeight()));var s=e.charCoords(t,"local");if(n.repeat=a,!(i=Rt.moveByDisplayLines(e,t,n,r)))return null;var l=e.charCoords(i,"local");return e.scrollTo(null,o.top+l.top-s.top),i},moveByWords:function(e,t,n){return function(e,t,n,r,i,o){var a=D(t),s=[];(r&&!i||!r&&i)&&n++;for(var l=!r||!i,c=0;c<n;c++){var u=ae(e,t,r,o,l);if(!u){var h=z(e,e.lastLine());s.push(r?{line:e.lastLine(),from:h,to:h}:{line:0,from:0,to:0});break}s.push(u),t=new st(u.line,r?u.to-1:u.from)}var p=s.length!=n,d=s[0],f=s.pop();return r&&!i?(!p&&(d.from!=a.ch||d.line!=a.line)&&(f=s.pop()),new st(f.line,f.from)):r&&i?new st(f.line,f.to-1):!r&&i?(!p&&(d.to!=a.ch||d.line!=a.line)&&(f=s.pop()),new st(f.line,f.to)):new st(f.line,f.from)}(e,t,n.repeat,!!n.forward,!!n.wordEnd,!!n.bigWord)},moveTillCharacter:function(e,t,n){var r=le(e,n.repeat,n.forward,n.selectedCharacter,t),i=n.forward?-1:1;return oe(i,n),r?(r.ch+=i,r):null},moveToCharacter:function(e,t,n){var r=n.repeat;return oe(0,n),le(e,r,n.forward,n.selectedCharacter,t)||t},moveToSymbol:function(e,t,n){return function(e,t,n,r){var i=D(e.getCursor()),o=n?1:-1,a=n?e.lineCount():-1,s=i.ch,l=i.line,c=e.getLine(l),u={lineText:c,nextCh:c.charAt(s),lastCh:null,index:s,symb:r,reverseSymb:(n?{")":"(","}":"{"}:{"(":")","{":"}"})[r],forward:n,depth:0,curMoveThrough:!1},h=Nt[r];if(!h)return i;var p=Kt[h].init,d=Kt[h].isComplete;for(p&&p(u);l!==a&&t;){if(u.index+=o,u.nextCh=u.lineText.charAt(u.index),!u.nextCh){if(l+=o,u.lineText=e.getLine(l)||"",o>0)u.index=0;else{var f=u.lineText.length;u.index=f>0?f-1:0}u.nextCh=u.lineText.charAt(u.index)}d(u)&&(i.line=l,i.ch=u.index,t--)}return u.nextCh||u.curMoveThrough?new st(l,u.index):i}(e,n.repeat,n.forward,n.selectedCharacter)||t},moveToColumn:function(e,t,n,r){var i=n.repeat;return r.lastHPos=i-1,r.lastHSPos=e.charCoords(t,"div").left,function(e,t){var n=e.getCursor().line;return K(e,new st(n,t-1))}(e,i)},moveToEol:function(e,t,n,r){return se(e,t,n,r,!1)},moveToFirstNonWhiteSpaceCharacter:function(e,t){var n=t;return new st(n.line,te(e.getLine(n.line)))},moveToMatchedSymbol:function(e,t){for(var n,r=t,i=r.line,o=r.ch,a=e.getLine(i);o<a.length;o++)if((n=a.charAt(o))&&h(n)){var s=e.getTokenTypeAt(new st(i,o+1));if("string"!==s&&"comment"!==s)break}if(o<a.length){var l=/[<>]/.test(a[o])?/[(){}[\]<>]/:/[(){}[\]]/;return e.findMatchingBracket(new st(i,o+1),{bracketRegex:l}).to}return r},moveToStartOfLine:function(e,t){return new st(t.line,0)},moveToLineOrEdgeOfDocument:function(e,t,n){var r=n.forward?e.lastLine():e.firstLine();return n.repeatIsExplicit&&(r=n.repeat-e.getOption("firstLineNumber")),new st(r,te(e.getLine(r)))},moveToStartOfDisplayLine:function(e){return e.execCommand("goLineLeft"),e.getCursor()},moveToEndOfDisplayLine:function(e){e.execCommand("goLineRight");var t=e.getCursor();return"before"==t.sticky&&t.ch--,t},textObjectManipulation:function(e,t,n,r){var i=n.selectedCharacter;"b"==i?i="(":"B"==i&&(i="{");var o,a,s=!n.textObjectInner;if({"(":")",")":"(","{":"}","}":"{","[":"]","]":"[","<":">",">":"<"}[i]){if(a=!0,!(o=de(e,t,i,s))){var l=e.getSearchCursor(new RegExp("\\"+i,"g"),t);l.find()&&(o=de(e,l.from(),i,s))}}else if({"'":!0,'"':!0,"`":!0}[i])a=!0,o=function(e,t,n,r){var i,o,a,s,l=D(t),c=e.getLine(l.line).split(""),u=c.indexOf(n);if(l.ch<u)l.ch=u;else if(u<l.ch&&c[l.ch]==n){var h=/string/.test(e.getTokenTypeAt(H(t,0,1))),p=/string/.test(e.getTokenTypeAt(t));h&&!p||(o=l.ch,--l.ch)}if(c[l.ch]!=n||o)for(a=l.ch;a>-1&&!i;a--)c[a]==n&&(i=a+1);else i=l.ch+1;if(i&&!o)for(a=i,s=c.length;a<s&&!o;a++)c[a]==n&&(o=a);return i&&o?(r&&(--i,++o),{start:new st(l.line,i),end:new st(l.line,o)}):{start:l,end:l}}(e,t,i,s);else if("W"===i||"w"===i)for(var c=n.repeat||1;c-- >0;){var u=ne(e,{inclusive:s,innerWord:!s,bigWord:"W"===i,noSymbol:"W"===i,multiline:!0},o&&o.end);u&&(o||(o=u),o.end=u.end)}else if("p"===i)if(o=he(e,t,n.repeat,0,s),n.linewise=!0,r.visualMode)r.visualLine||(r.visualLine=!0);else{var h=r.inputState.operatorArgs;h&&(h.linewise=!0),o.end.line--}else if("t"===i)o=re(e,t,s);else if("s"===i){var p=e.getLine(t.line);t.ch>0&&m(p[t.ch])&&(t.ch-=1);var d=pe(e,t,n.repeat,1,s),g=pe(e,t,n.repeat,-1,s);f(e.getLine(g.line)[g.ch])&&f(e.getLine(d.line)[d.ch-1])&&(g={line:g.line,ch:g.ch+1}),o={start:g,end:d}}return o?e.state.vim.visualMode?function(e,t,n,r){var i,o=e.state.vim.sel,a=r?t:o.head,s=r?t:o.anchor;return W(n,t)&&(i=n,n=t,t=i),W(a,s)?(a=j(t,a),s=F(s,n)):(s=j(t,s),-1==(a=H(a=F(a,n),0,-1)).ch&&a.line!=e.firstLine()&&(a=new st(a.line-1,z(e,a.line-1)))),[s,a]}(e,o.start,o.end,a):[o.start,o.end]:null},repeatLastCharacterSearch:function(e,t,n){var r=kt.lastCharacterSearch,i=n.repeat,o=n.forward===r.forward,a=(r.increment?1:0)*(o?-1:1);e.moveH(-a,"char"),n.inclusive=!!o;var s=le(e,i,o,r.selectedCharacter);return s?(s.ch+=a,s):(e.moveH(a,"char"),t)}},Bt={change:function(e,t,n){var r,i,o=e.state.vim,a=n[0].anchor,s=n[0].head;if(o.visualMode)if(t.fullLine)s.ch=Number.MAX_VALUE,s.line--,e.setSelection(a,s),i=e.getSelection(),e.replaceSelection(""),r=a;else{i=e.getSelection();var l=N("",n.length);e.replaceSelections(l),r=j(n[0].head,n[0].anchor)}else{i=e.getRange(a,s);var c=o.lastEditInputState||{};if("moveByWords"==c.motion&&!f(i)){var u=/\s+$/.exec(i);u&&c.motionArgs&&c.motionArgs.forward&&(s=H(s,0,-u[0].length),i=i.slice(0,-u[0].length))}t.linewise&&(a=new st(a.line,te(e.getLine(a.line))),s.line>a.line&&(s=new st(s.line-1,Number.MAX_VALUE))),e.replaceRange("",a,s),r=a}kt.registerController.pushText(t.registerName,"change",i,t.linewise,n.length>1),It.enterInsertMode(e,{head:r},e.state.vim)},delete:function(e,t,n){var r,i,o=e.state.vim;if(o.visualBlock){i=e.getSelection();var a=N("",n.length);e.replaceSelections(a),r=j(n[0].head,n[0].anchor)}else{var s=n[0].anchor,l=n[0].head;t.linewise&&l.line!=e.firstLine()&&s.line==e.lastLine()&&s.line==l.line-1&&(s.line==e.firstLine()?s.ch=0:s=new st(s.line-1,z(e,s.line-1))),i=e.getRange(s,l),e.replaceRange("",s,l),r=s,t.linewise&&(r=Rt.moveToFirstNonWhiteSpaceCharacter(e,s))}return kt.registerController.pushText(t.registerName,"delete",i,t.linewise,o.visualBlock),K(e,r)},indent:function(e,t,n){var r=e.state.vim,i=r.visualMode?t.repeat:1;if(r.visualBlock){for(var o,a=e.getOption("tabSize"),s=e.getOption("indentWithTabs")?"\t":" ".repeat(a),l=n.length-1;l>=0;l--)if(o=j(n[l].anchor,n[l].head),t.indentRight)e.replaceRange(s.repeat(i),o,o);else{for(var c=e.getLine(o.line),u=0,h=0;h<i;h++){var p=c[o.ch+u];if("\t"==p)u++;else{if(" "!=p)break;u++;for(var d=1;d<s.length&&" "===(p=c[o.ch+u]);d++)u++}}e.replaceRange("",o,H(o,0,u))}return o}if(e.indentMore)for(h=0;h<i;h++)t.indentRight?e.indentMore():e.indentLess();else{var f=n[0].anchor.line,m=r.visualBlock?n[n.length-1].anchor.line:n[0].head.line;t.linewise&&m--;for(l=f;l<=m;l++)for(h=0;h<i;h++)e.indentLine(l,t.indentRight)}return Rt.moveToFirstNonWhiteSpaceCharacter(e,n[0].anchor)},indentAuto:function(e,t,n){return e.execCommand("indentAuto"),Rt.moveToFirstNonWhiteSpaceCharacter(e,n[0].anchor)},hardWrap:function(e,t,n,r,i){if(e.hardWrap){var o=n[0].anchor.line,a=n[0].head.line;t.linewise&&a--;var s=e.hardWrap({from:o,to:a});return s>o&&t.linewise&&s--,t.keepCursor?r:new st(s,0)}},changeCase:function(e,t,n,r,i){for(var o=e.getSelections(),a=[],s=t.toLower,l=0;l<o.length;l++){var c=o[l],u="";if(!0===s)u=c.toLowerCase();else if(!1===s)u=c.toUpperCase();else for(var h=0;h<c.length;h++){var p=c.charAt(h);u+=d(p)?p.toLowerCase():p.toUpperCase()}a.push(u)}return e.replaceSelections(a),t.shouldMoveCursor?i:!e.state.vim.visualMode&&t.linewise&&n[0].anchor.line+1==n[0].head.line?Rt.moveToFirstNonWhiteSpaceCharacter(e,r):t.linewise?r:j(n[0].anchor,n[0].head)},yank:function(e,t,n,r){var i=e.state.vim,o=e.getSelection(),a=i.visualMode?j(i.sel.anchor,i.sel.head,n[0].head,n[0].anchor):r;return kt.registerController.pushText(t.registerName,"yank",o,t.linewise,i.visualBlock),a}},It={jumpListWalk:function(e,t,n){if(!n.visualMode){var r=t.repeat,i=t.forward,o=kt.jumpList.move(e,i?r:-r),a=o?o.find():void 0;a=a||e.getCursor(),e.setCursor(a),e.ace.curOp.command.scrollIntoView="center-animate"}},scroll:function(e,t,n){if(!n.visualMode){var r=t.repeat||1,i=e.defaultTextHeight(),o=e.getScrollInfo().top,a=i*r,s=t.forward?o+a:o-a,l=D(e.getCursor()),c=e.charCoords(l,"local");if(t.forward)s>c.top?(l.line+=(s-c.top)/i,l.line=Math.ceil(l.line),e.setCursor(l),c=e.charCoords(l,"local"),e.scrollTo(null,c.top)):e.scrollTo(null,s);else{var u=s+e.getScrollInfo().clientHeight;u<c.bottom?(l.line-=(c.bottom-u)/i,l.line=Math.floor(l.line),e.setCursor(l),c=e.charCoords(l,"local"),e.scrollTo(null,c.bottom-e.getScrollInfo().clientHeight)):e.scrollTo(null,s)}}},scrollToCursor:function(e,t){var n=e.getCursor().line,r=e.charCoords(new st(n,0),"local"),i=e.getScrollInfo().clientHeight,o=r.top;switch(t.position){case"center":o=r.bottom-i/2;break;case"bottom":var a=new st(n,e.getLine(n).length-1);o=o-i+(e.charCoords(a,"local").bottom-o)}e.scrollTo(null,o)},replayMacro:function(e,t,n){var r=t.selectedCharacter,i=t.repeat,o=kt.macroModeState;for("@"==r?r=o.latestRegister:o.latestRegister=r;i--;)Ne(e,n,o,r)},enterMacroRecordMode:function(e,t){var n=kt.macroModeState,r=t.selectedCharacter;kt.registerController.isValidRegister(r)&&n.enterMacroRecordMode(e,r)},toggleOverwrite:function(e){e.state.overwrite?(e.toggleOverwrite(!1),e.setOption("keyMap","vim-insert"),it.signal(e,"vim-mode-change",{mode:"insert"})):(e.toggleOverwrite(!0),e.setOption("keyMap","vim-replace"),it.signal(e,"vim-mode-change",{mode:"replace"}))},enterInsertMode:function(e,t,n){if(!e.getOption("readOnly")){n.insertMode=!0,n.insertModeRepeat=t&&t.repeat||1;var r=t?t.insertAt:null,i=n.sel,a=t.head||e.getCursor("head"),s=e.listSelections().length;if("eol"==r)a=new st(a.line,z(e,a.line));else if("bol"==r)a=new st(a.line,0);else if("charAfter"==r){a=o(e,a,H(a,0,1)).end}else if("firstNonBlank"==r){a=o(e,a,Rt.moveToFirstNonWhiteSpaceCharacter(e,a)).end}else if("startOfSelectedArea"==r){if(!n.visualMode)return;n.visualBlock?(a=new st(Math.min(i.head.line,i.anchor.line),Math.min(i.head.ch,i.anchor.ch)),s=Math.abs(i.head.line-i.anchor.line)+1):a=i.head.line<i.anchor.line?i.head:new st(i.anchor.line,0)}else if("endOfSelectedArea"==r){if(!n.visualMode)return;n.visualBlock?(a=new st(Math.min(i.head.line,i.anchor.line),Math.max(i.head.ch,i.anchor.ch)+1),s=Math.abs(i.head.line-i.anchor.line)+1):a=i.head.line>=i.anchor.line?H(i.head,0,1):new st(i.anchor.line,0)}else if("inplace"==r){if(n.visualMode)return}else"lastEdit"==r&&(a=Oe(e)||a);e.setOption("disableInput",!1),t&&t.replace?(e.toggleOverwrite(!0),e.setOption("keyMap","vim-replace"),it.signal(e,"vim-mode-change",{mode:"replace"})):(e.toggleOverwrite(!1),e.setOption("keyMap","vim-insert"),it.signal(e,"vim-mode-change",{mode:"insert"})),kt.macroModeState.isPlaying||(e.on("change",Ke),n.insertEnd&&n.insertEnd.clear(),n.insertEnd=e.setBookmark(a,{insertLeft:!0}),it.on(e.getInputField(),"keydown",$e)),n.visualMode&&ee(e),G(e,a,s)}},toggleVisualMode:function(e,t,n){var r,i=t.repeat,a=e.getCursor();if(n.visualMode)n.visualLine^t.linewise||n.visualBlock^t.blockwise?(n.visualLine=!!t.linewise,n.visualBlock=!!t.blockwise,it.signal(e,"vim-mode-change",{mode:"visual",subMode:n.visualLine?"linewise":n.visualBlock?"blockwise":""}),Z(e)):ee(e);else{n.visualMode=!0,n.visualLine=!!t.linewise,n.visualBlock=!!t.blockwise;var s=o(e,a,r=K(e,new st(a.line,a.ch+i-1)));n.sel={anchor:s.start,head:s.end},it.signal(e,"vim-mode-change",{mode:"visual",subMode:n.visualLine?"linewise":n.visualBlock?"blockwise":""}),Z(e),ce(e,n,"<",j(a,r)),ce(e,n,">",F(a,r))}},reselectLastSelection:function(e,t,n){var r=n.lastSelection;if(n.visualMode&&X(e,n),r){var i=r.anchorMark.find(),o=r.headMark.find();if(!i||!o)return;n.sel={anchor:i,head:o},n.visualMode=!0,n.visualLine=r.visualLine,n.visualBlock=r.visualBlock,Z(e),ce(e,n,"<",j(i,o)),ce(e,n,">",F(i,o)),it.signal(e,"vim-mode-change",{mode:"visual",subMode:n.visualLine?"linewise":n.visualBlock?"blockwise":""})}},joinLines:function(e,t,n){var r,i;if(n.visualMode){if(r=e.getCursor("anchor"),W(i=e.getCursor("head"),r)){var o=i;i=r,r=o}i.ch=z(e,i.line)-1}else{var a=Math.max(t.repeat,2);r=e.getCursor(),i=K(e,new st(r.line+a-1,1/0))}for(var s=0,l=r.line;l<i.line;l++){s=z(e,r.line);var c="",u=0;if(!t.keepSpaces){var h=e.getLine(r.line+1);-1==(u=h.search(/\S/))?u=h.length:c=" "}e.replaceRange(c,new st(r.line,s),new st(r.line+1,u))}var p=K(e,new st(r.line,s));n.visualMode&&ee(e,!1),e.setCursor(p)},newLineAndEnterInsertMode:function(e,t,n){n.insertMode=!0;var r=D(e.getCursor());r.line!==e.firstLine()||t.after?(r.line=t.after?r.line:r.line-1,r.ch=z(e,r.line),e.setCursor(r),(it.commands.newlineAndIndentContinueComment||it.commands.newlineAndIndent)(e)):(e.replaceRange("\n",new st(e.firstLine(),0)),e.setCursor(e.firstLine(),0));this.enterInsertMode(e,{repeat:t.repeat},n)},paste:function(e,t,n){var r=this,i=kt.registerController.getRegister(t.registerName),o=function(){var o=i.toString();r.continuePaste(e,t,n,o,i)};"+"===t.registerName&&"undefined"!=typeof navigator&&void 0!==navigator.clipboard&&"function"==typeof navigator.clipboard.readText?navigator.clipboard.readText().then((function(o){r.continuePaste(e,t,n,o,i)}),(function(){o()})):o()},continuePaste:function(e,t,n,r,i){var o=D(e.getCursor());if(r){if(t.matchIndent){var a=e.getOption("tabSize"),s=function(e){var t=e.split("\t").length-1,n=e.split(" ").length-1;return t*a+1*n},l=e.getLine(e.getCursor().line),c=s(l.match(/^\s*/)[0]),u=r.replace(/\n$/,""),h=r!==u,p=s(r.match(/^\s*/)[0]);r=u.replace(/^\s*/gm,(function(t){var n=c+(s(t)-p);if(n<0)return"";if(e.getOption("indentWithTabs")){var r=Math.floor(n/a);return Array(r+1).join("\t")}return Array(n+1).join(" ")}));r+=h?"\n":""}if(t.repeat>1)r=Array(t.repeat+1).join(r);var d,f=i.linewise,m=i.blockwise;if(m){r=r.split("\n"),f&&r.pop();for(var g=0;g<r.length;g++)r[g]=""==r[g]?" ":r[g];o.ch+=t.after?1:0,o.ch=Math.min(z(e,o.line),o.ch)}else f?n.visualMode?r=n.visualLine?r.slice(0,-1):"\n"+r.slice(0,r.length-1)+"\n":t.after?(r="\n"+r.slice(0,r.length-1),o.ch=z(e,o.line)):o.ch=0:o.ch+=t.after?1:0;if(n.visualMode){n.lastPastedText=r;var v,y=function(e,t){var n=t.lastSelection;return t.visualMode?function(){var t=e.listSelections(),n=t[0],r=t[t.length-1];return[W(n.anchor,n.head)?n.anchor:n.head,W(r.anchor,r.head)?r.head:r.anchor]}():function(){var t=e.getCursor(),r=e.getCursor(),i=n.visualBlock;if(i){var o=i.width,a=i.height;r=new st(t.line+a,t.ch+o);for(var s=[],l=t.line;l<r.line;l++){var c={anchor:new st(l,t.ch),head:new st(l,r.ch)};s.push(c)}e.setSelections(s)}else{var u=n.anchorMark.find(),h=n.headMark.find(),p=h.line-u.line,d=h.ch-u.ch;r={line:r.line+p,ch:p?r.ch:d+r.ch},n.visualLine&&(t=new st(t.line,0),r=new st(r.line,z(e,r.line))),e.setSelection(t,r)}return[t,r]}()}(e,n),C=y[0],w=y[1],k=e.getSelection(),S=e.listSelections(),x=new Array(S.length).join("1").split("1");n.lastSelection&&(v=n.lastSelection.headMark.find()),kt.registerController.unnamedRegister.setText(k),m?(e.replaceSelections(x),w=new st(C.line+r.length-1,C.ch),e.setCursor(C),J(e,w),e.replaceSelections(r),d=C):n.visualBlock?(e.replaceSelections(x),e.setCursor(C),e.replaceRange(r,C,C),d=C):(e.replaceRange(r,C,w),d=e.posFromIndex(e.indexFromPos(C)+r.length-1)),v&&(n.lastSelection.headMark=e.setBookmark(v)),f&&(d.ch=0)}else if(m){e.setCursor(o);for(g=0;g<r.length;g++){(M=o.line+g)>e.lastLine()&&e.replaceRange("\n",new st(M,0)),z(e,M)<o.ch&&q(e,M,o.ch)}e.setCursor(o),J(e,new st(o.line+r.length-1,o.ch)),e.replaceSelections(r),d=o}else if(e.replaceRange(r,o),f){var M=t.after?o.line+1:o.line;d=new st(M,te(e.getLine(M)))}else d=D(o),/\n/.test(r)||(d.ch+=r.length-(t.after?1:0));n.visualMode&&ee(e,!1),e.setCursor(d)}},undo:function(e,t){e.operation((function(){$(e,it.commands.undo,t.repeat)(),e.setCursor(K(e,e.getCursor("start")))}))},redo:function(e,t){$(e,it.commands.redo,t.repeat)()},setRegister:function(e,t,n){n.inputState.registerName=t.selectedCharacter},insertRegister:function(e,t,n){var r=t.selectedCharacter,i=kt.registerController.getRegister(r),o=i&&i.toString();o&&e.replaceSelection(o)},oneNormalCommand:function(e,t,n){Be(e,!0),n.insertModeReturn=!0,it.on(e,"vim-command-done",(function t(){n.visualMode||(n.insertModeReturn&&(n.insertModeReturn=!1,n.insertMode||It.enterInsertMode(e,{},n)),it.off(e,"vim-command-done",t))}))},setMark:function(e,t,n){ce(e,n,t.selectedCharacter,e.getCursor())},replace:function(e,t,n){var r,i,a=t.selectedCharacter,s=e.getCursor(),l=e.listSelections();if(n.visualMode)s=e.getCursor("start"),i=e.getCursor("end");else{var c=e.getLine(s.line);(r=s.ch+t.repeat)>c.length&&(r=c.length),i=new st(s.line,r)}var u=o(e,s,i);if(s=u.start,i=u.end,"\n"==a)n.visualMode||e.replaceRange("",s,i),(it.commands.newlineAndIndentContinueComment||it.commands.newlineAndIndent)(e);else{var h=e.getRange(s,i);if(h=(h=h.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,a)).replace(/[^\n]/g,a),n.visualBlock){var p=new Array(e.getOption("tabSize")+1).join(" ");h=(h=(h=e.getSelection()).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,a)).replace(/\t/g,p).replace(/[^\n]/g,a).split("\n"),e.replaceSelections(h)}else e.replaceRange(h,s,i);n.visualMode?(s=W(l[0].anchor,l[0].head)?l[0].anchor:l[0].head,e.setCursor(s),ee(e,!1)):e.setCursor(H(i,0,-1))}},incrementNumberToken:function(e,t){for(var n,r,i,o,a=e.getCursor(),s=e.getLine(a.line),l=/(-?)(?:(0x)([\da-f]+)|(0b|0|)(\d+))/gi;null!==(n=l.exec(s))&&(i=(r=n.index)+n[0].length,!(a.ch<i)););if((t.backtrack||!(i<=a.ch))&&n){var c=n[2]||n[4],u=n[3]||n[5],h=t.increase?1:-1,p={"0b":2,0:8,"":10,"0x":16}[c.toLowerCase()];o=(parseInt(n[1]+u,p)+h*t.repeat).toString(p);var d=c?new Array(u.length-o.length+1+n[1].length).join("0"):"";o="-"===o.charAt(0)?"-"+c+d+o.substr(1):c+d+o;var f=new st(a.line,r),m=new st(a.line,i);e.replaceRange(o,f,m),e.setCursor(new st(a.line,r+o.length-1))}},repeatLastEdit:function(e,t,n){if(n.lastEditInputState){var r=t.repeat;r&&t.repeatIsExplicit?n.lastEditInputState.repeatOverride=r:r=n.lastEditInputState.repeatOverride||r,De(e,n,r,!1)}},indent:function(e,t){e.indentLine(e.getCursor().line,t.indentRight)},exitInsertMode:Be},Nt={"(":"bracket",")":"bracket","{":"bracket","}":"bracket","[":"section","]":"section","*":"comment","/":"comment",m:"method",M:"method","#":"preprocess"},Kt={bracket:{isComplete:function(e){if(e.nextCh===e.symb){if(e.depth++,e.depth>=1)return!0}else e.nextCh===e.reverseSymb&&e.depth--;return!1}},section:{init:function(e){e.curMoveThrough=!0,e.symb=(e.forward?"]":"[")===e.symb?"{":"}"},isComplete:function(e){return 0===e.index&&e.nextCh===e.symb}},comment:{isComplete:function(e){var t="*"===e.lastCh&&"/"===e.nextCh;return e.lastCh=e.nextCh,t}},method:{init:function(e){e.symb="m"===e.symb?"{":"}",e.reverseSymb="{"===e.symb?"}":"{"},isComplete:function(e){return e.nextCh===e.symb}},preprocess:{init:function(e){e.index=0},isComplete:function(e){if("#"===e.nextCh){var t=e.lineText.match(/^#(\w+)/)[1];if("endif"===t){if(e.forward&&0===e.depth)return!0;e.depth++}else if("if"===t){if(!e.forward&&0===e.depth)return!0;e.depth--}if("else"===t&&0===e.depth)return!0}return!1}}};v("pcre",!0,"boolean"),fe.prototype={getQuery:function(){return kt.query},setQuery:function(e){kt.query=e},getOverlay:function(){return this.searchOverlay},setOverlay:function(e){this.searchOverlay=e},isReversed:function(){return kt.isReversed},setReversed:function(e){kt.isReversed=e},getScrollbarAnnotate:function(){return this.annotate},setScrollbarAnnotate:function(e){this.annotate=e}};var Pt={"\\n":"\n","\\r":"\r","\\t":"\t"},Ht={"\\/":"/","\\\\":"\\","\\n":"\n","\\r":"\r","\\t":"\t","\\&":"&"},_t=0,$t=function(){this.buildCommandMap_()};$t.prototype={processCommand:function(e,t,n){var r=this;e.operation((function(){e.curOp.isVimOp=!0,r._processCommand(e,t,n)}))},_processCommand:function(e,t,n){var r=e.state.vim,i=kt.registerController.getRegister(":"),o=i.toString(),a=new it.StringStream(t);i.setText(t);var s,l,c=n||{};c.input=t;try{this.parseInput_(e,a,c)}catch(t){throw ke(e,t.toString()),t}if(r.visualMode&&ee(e),c.commandName){if(s=this.matchCommand_(c.commandName)){if(l=s.name,s.excludeFromCommandHistory&&i.setText(o),this.parseCommandArgs_(a,c,s),"exToKey"==s.type)return void M(e,s.toKeys,s);if("exToEx"==s.type)return void this.processCommand(e,s.toInput)}}else void 0!==c.line&&(l="move");if(l)try{Dt[l](e,c),(!s||!s.possiblyAsync)&&c.callback&&c.callback()}catch(t){throw ke(e,t.toString()),t}else ke(e,'Not an editor command ":'+t+'"')},parseInput_:function(e,t,n){if(t.eatWhile(":"),t.eat("%")?(n.line=e.firstLine(),n.lineEnd=e.lastLine()):(n.line=this.parseLineSpec_(e,t),void 0!==n.line&&t.eat(",")&&(n.lineEnd=this.parseLineSpec_(e,t))),null==n.line)if(e.state.vim.visualMode){var r=Ee(e,e.state.vim,"<");n.selectionLine=r&&r.line,r=Ee(e,e.state.vim,">"),n.selectionLineEnd=r&&r.line}else n.selectionLine=e.getCursor().line;else n.selectionLine=n.line,n.selectionLineEnd=n.lineEnd;var i=t.match(/^(\w+|!!|@@|[!#&*<=>@~])/);return n.commandName=i?i[1]:t.match(/.*/)[0],n},parseLineSpec_:function(e,t){var n=t.match(/^(\d+)/);if(n)return parseInt(n[1],10)-1;switch(t.next()){case".":return this.parseLineSpecOffset_(t,e.getCursor().line);case"$":return this.parseLineSpecOffset_(t,e.lastLine());case"'":var r=t.next(),i=Ee(e,e.state.vim,r);if(!i)throw new Error("Mark not set");return this.parseLineSpecOffset_(t,i.line);case"-":case"+":return t.backUp(1),this.parseLineSpecOffset_(t,e.getCursor().line);default:return void t.backUp(1)}},parseLineSpecOffset_:function(e,t){var n=e.match(/^([+-])?(\d+)/);if(n){var r=parseInt(n[2],10);"-"==n[1]?t-=r:t+=r}return t},parseCommandArgs_:function(e,t,n){if(!e.eol()){t.argString=e.match(/.*/)[0];var r=n.argDelimiter||/\s+/,i=Q(t.argString).split(r);i.length&&i[0]&&(t.args=i)}},matchCommand_:function(e){for(var t=e.length;t>0;t--){var n=e.substring(0,t);if(this.commandMap_[n]){var r=this.commandMap_[n];if(0===r.name.indexOf(e))return r}}return null},buildCommandMap_:function(){this.commandMap_={};for(var e=0;e<ut.length;e++){var t=ut[e],n=t.shortName||t.name;this.commandMap_[n]=t}},map:function(e,t,n,r){if(":"!=e&&":"==e.charAt(0)){if(n)throw Error("Mode not supported for ex mappings");var i=e.substring(1);":"!=t&&":"==t.charAt(0)?this.commandMap_[i]={name:i,type:"exToEx",toInput:t.substring(1),user:!0}:this.commandMap_[i]={name:i,type:"exToKey",toKeys:t,user:!0}}else{var o={keys:e,type:"keyToKey",toKeys:t,noremap:!!r};n&&(o.context=n),lt.unshift(o)}},unmap:function(e,t){if(":"!=e&&":"==e.charAt(0)){if(t)throw Error("Mode not supported for ex mappings");var n=e.substring(1);if(this.commandMap_[n]&&this.commandMap_[n].user)return delete this.commandMap_[n],!0}else for(var r=e,i=0;i<lt.length;i++)if(r==lt[i].keys&<[i].context===t)return lt.splice(i,1),!0}};var Dt={colorscheme:function(e,t){!t.args||t.args.length<1?ke(e,e.getOption("theme")):e.setOption("theme",t.args[0])},map:function(e,t,n,r){var i=t.args;!i||i.length<2?e&&ke(e,"Invalid mapping: "+t.input):Vt.map(i[0],i[1],n,r)},imap:function(e,t){this.map(e,t,"insert")},nmap:function(e,t){this.map(e,t,"normal")},vmap:function(e,t){this.map(e,t,"visual")},omap:function(e,t){this.map(e,t,"operatorPending")},noremap:function(e,t){this.map(e,t,void 0,!0)},inoremap:function(e,t){this.map(e,t,"insert",!0)},nnoremap:function(e,t){this.map(e,t,"normal",!0)},vnoremap:function(e,t){this.map(e,t,"visual",!0)},onoremap:function(e,t){this.map(e,t,"operatorPending",!0)},unmap:function(e,t,n){var r=t.args;(!r||r.length<1||!Vt.unmap(r[0],n))&&e&&ke(e,"No such mapping: "+t.input)},mapclear:function(e,t){Mt.mapclear()},imapclear:function(e,t){Mt.mapclear("insert")},nmapclear:function(e,t){Mt.mapclear("normal")},vmapclear:function(e,t){Mt.mapclear("visual")},omapclear:function(e,t){Mt.mapclear("operatorPending")},move:function(e,t){Ot.processCommand(e,e.state.vim,{type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0},repeatOverride:t.line+1})},set:function(e,t){var n=t.args,r=t.setCfg||{};if(!n||n.length<1)e&&ke(e,"Invalid mapping: "+t.input);else{var i=n[0].split("="),o=i[0],a=i[1],s=!1,l=!1;if("?"==o.charAt(o.length-1)){if(a)throw Error("Trailing characters: "+t.argString);o=o.substring(0,o.length-1),s=!0}else"!"==o.charAt(o.length-1)&&(o=o.substring(0,o.length-1),l=!0);void 0===a&&"no"==o.substring(0,2)&&(o=o.substring(2),a=!1);var c=yt[o]&&"boolean"==yt[o].type;if(c&&(l?a=!C(o,e,r):null==a&&(a=!0)),!c&&void 0===a||s){var u=C(o,e,r);u instanceof Error?ke(e,u.message):ke(e,!0===u||!1===u?" "+(u?"":"no")+o:" "+o+"="+u)}else{var h=y(o,a,e,r);h instanceof Error&&ke(e,h.message)}}},setlocal:function(e,t){t.setCfg={scope:"local"},this.set(e,t)},setglobal:function(e,t){t.setCfg={scope:"global"},this.set(e,t)},registers:function(e,t){var n=t.args,r=kt.registerController.registers,i="----------Registers----------\n\n";if(n){n=n.join("");for(var o=0;o<n.length;o++){if(a=n.charAt(o),kt.registerController.isValidRegister(a))i+='"'+a+" "+(r[a]||new R).toString()+"\n"}}else for(var a in r){var s=r[a].toString();s.length&&(i+='"'+a+" "+s+"\n")}ke(e,i)},sort:function(e,t){function n(e,t){var n;r&&(n=e,e=t,t=n);i&&(e=e.toLowerCase(),t=t.toLowerCase());var o=a&&f.exec(e),s=a&&f.exec(t);return o?(o=parseInt((o[1]+o[2]).toLowerCase(),m))-(s=parseInt((s[1]+s[2]).toLowerCase(),m)):e<t?-1:1}var r,i,o,a,s,l=function(){if(t.argString){var e=new it.StringStream(t.argString);if(e.eat("!")&&(r=!0),e.eol())return;if(!e.eatSpace())return"Invalid arguments";var n=e.match(/([dinuox]+)?\s*(\/.+\/)?\s*/);if(!n&&!e.eol())return"Invalid arguments";if(n[1]){i=-1!=n[1].indexOf("i"),o=-1!=n[1].indexOf("u");var l=-1!=n[1].indexOf("d")||-1!=n[1].indexOf("n")&&1,c=-1!=n[1].indexOf("x")&&1,u=-1!=n[1].indexOf("o")&&1;if(l+c+u>1)return"Invalid arguments";a=(l?"decimal":c&&"hex")||u&&"octal"}n[2]&&(s=new RegExp(n[2].substr(1,n[2].length-2),i?"i":""))}}();if(l)ke(e,l+": "+t.argString);else{var c=t.line||e.firstLine(),u=t.lineEnd||t.line||e.lastLine();if(c!=u){var h=new st(c,0),p=new st(u,z(e,u)),d=e.getRange(h,p).split("\n"),f=s||("decimal"==a?/(-?)([\d]+)/:"hex"==a?/(-?)(?:0x)?([0-9a-f]+)/i:"octal"==a?/([0-7]+)/:null),m="decimal"==a?10:"hex"==a?16:"octal"==a?8:null,g=[],v=[];if(a||s)for(var y=0;y<d.length;y++){var C=s?d[y].match(s):null;C&&""!=C[0]?g.push(C):!s&&f.exec(d[y])?g.push(d[y]):v.push(d[y])}else v=d;if(g.sort(s?function(e,t){var n;return r&&(n=e,e=t,t=n),i&&(e[0]=e[0].toLowerCase(),t[0]=t[0].toLowerCase()),e[0]<t[0]?-1:1}:n),s)for(y=0;y<g.length;y++)g[y]=g[y].input;else a||v.sort(n);if(d=r?g.concat(v):v.concat(g),o){var w,k=d;d=[];for(y=0;y<k.length;y++)k[y]!=w&&d.push(k[y]),w=k[y]}e.replaceRange(d.join("\n"),h,p)}}},vglobal:function(e,t){this.global(e,t)},normal:function(e,t){var n=t.argString;if(n&&"!"==n[0]&&(n=n.slice(1),At=!0),n=n.trimStart()){var r=t.line;if("number"==typeof r)for(var i=isNaN(t.lineEnd)?r:t.lineEnd,o=r;o<=i;o++)e.setCursor(o,0),M(e,t.argString.trimStart()),e.state.vim.insertMode&&Be(e,!0);else M(e,t.argString.trimStart()),e.state.vim.insertMode&&Be(e,!0)}else ke(e,"Argument is required.")},global:function(e,t){var n=t.argString;if(n){var r="v"===t.commandName[0];"!"===n[0]&&"g"===t.commandName[0]&&(r=!0,n=n.slice(1));var i,o=void 0!==t.line?t.line:e.firstLine(),a=t.lineEnd||t.line||e.lastLine(),s=function(e){return ge(e,"/")}(n),l=n;if(s.length&&(l=s[0],i=s.slice(1,s.length).join("/")),l)try{xe(e,l,!0,!0)}catch(t){return void ke(e,"Invalid regex: "+l)}for(var c=me(e).getQuery(),u=[],h=o;h<=a;h++){var p=e.getLine(h);c.test(p)!==r&&u.push(i?e.getLineHandle(h):p)}if(i){var d=0,f=function(){if(d<u.length){var t=u[d++],n=e.getLineNumber(t);if(null==n)return void f();var r=n+1+i;Vt.processCommand(e,r,{callback:f})}else e.releaseLineHandles&&e.releaseLineHandles()};f()}else ke(e,u.join("\n"))}else ke(e,"Regular Expression missing from global")},substitute:function(e,t){if(!e.getSearchCursor)throw new Error("Search feature not available. Requires searchcursor.js or any other getSearchCursor implementation.");var n,r,i,o,a=t.argString,s=a?ge(a,a[0]):[],l="",c=!1,u=!1;if(s.length)n=s[0],C("pcre")&&""!==n&&(n=new RegExp(n).source),void 0!==(l=s[1])&&(l=C("pcre")?ye(l.replace(/([^\\])&/g,"$1$$&")):function(e){for(var t=!1,n=[],r=-1;r<e.length;r++){var i=e.charAt(r)||"",o=e.charAt(r+1)||"";Pt[i+o]?(n.push(Pt[i+o]),r++):t?(n.push(i),t=!1):"\\"===i?(t=!0,p(o)||"$"===o?n.push("$"):"/"!==o&&"\\"!==o&&n.push("\\")):("$"===i&&n.push("$"),n.push(i),"/"===o&&n.push("\\"))}return n.join("")}(l),kt.lastSubstituteReplacePart=l),r=s[2]?s[2].split(" "):[];else if(a&&a.length)return void ke(e,"Substitutions should be of the form :s/pattern/replace/");if(r&&(i=r[0],o=parseInt(r[1]),i&&(-1!=i.indexOf("c")&&(c=!0),-1!=i.indexOf("g")&&(u=!0),n=C("pcre")?n+"/"+i:n.replace(/\//g,"\\/")+"/"+i)),n)try{xe(e,n,!0,!0)}catch(t){return void ke(e,"Invalid regex: "+n)}if(void 0!==(l=l||kt.lastSubstituteReplacePart)){var h=me(e).getQuery(),d=void 0!==t.line?t.line:e.getCursor().line,f=t.lineEnd||d;d==e.firstLine()&&f==e.lastLine()&&(f=1/0),o&&(f=(d=f)+o-1);var m=K(e,new st(d,0)),g=e.getSearchCursor(h,m);Re(e,c,u,d,f,g,h,l,t.callback)}else ke(e,"No previous substitute regular expression")},startinsert:function(e,t){M(e,"!"==t.argString?"A":"i",{})},redo:it.commands.redo,undo:it.commands.undo,write:function(e){it.commands.save?it.commands.save(e):e.save&&e.save()},nohlsearch:function(e){Ae(e)},yank:function(e){var t=D(e.getCursor()).line,n=e.getLine(t);kt.registerController.pushText("0","yank",n,!0,!0)},delete:function(e,t){var n=t.selectionLine,r=isNaN(t.selectionLineEnd)?n:t.selectionLineEnd;Bt.delete(e,{linewise:!0},[{anchor:new st(n,0),head:new st(r+1,0)}])},join:function(e,t){var n=t.selectionLine,r=isNaN(t.selectionLineEnd)?n:t.selectionLineEnd;e.setCursor(new st(n,0)),It.joinLines(e,{repeat:r-n},e.state.vim)},delmarks:function(e,t){if(t.argString&&Q(t.argString))for(var n=e.state.vim,r=new it.StringStream(Q(t.argString));!r.eol();){r.eatSpace();var i=r.pos;if(!r.match(/[a-zA-Z]/,!1))return void ke(e,"Invalid argument: "+t.argString.substring(i));var o=r.next();if(r.match("-",!0)){if(!r.match(/[a-zA-Z]/,!1))return void ke(e,"Invalid argument: "+t.argString.substring(i));var a=o,s=r.next();if(!(u(a)&&u(s)||d(a)&&d(s)))return void ke(e,"Invalid argument: "+a+"-");var l=a.charCodeAt(0),c=s.charCodeAt(0);if(l>=c)return void ke(e,"Invalid argument: "+t.argString.substring(i));for(var h=0;h<=c-l;h++){var p=String.fromCharCode(l+h);delete n.marks[p]}}else delete n.marks[o]}else ke(e,"Argument required")}},Vt=new $t;v("insertModeEscKeysTimeout",200,"number"),it.Vim=Mt;var Wt={return:"CR",backspace:"BS",delete:"Del",esc:"Esc",left:"Left",right:"Right",up:"Up",down:"Down",space:"Space",insert:"Ins",home:"Home",end:"End",pageup:"PageUp",pagedown:"PageDown",enter:"CR"},jt=Mt.handleKey.bind(Mt);Mt.handleKey=function(e,t,n){return e.operation((function(){return jt(e,t,n)}),!0)},S(),t.CodeMirror=it;var Ft=Mt.maybeInitVimState_;t.handler={$id:"ace/keyboard/vim",drawCursor:function(e,t,n,r,i){var o=this.state.vim||{},a=n.characterWidth,s=n.lineHeight,l=t.top,c=t.left;o.insertMode||!(r.cursor?ze.comparePoints(r.cursor,r.start)<=0:i.selection.isBackwards()||i.selection.isEmpty())&&c>a&&(c-=a);!o.insertMode&&o.status&&(l+=s/=2),qe.translate(e,c,l),qe.setStyle(e.style,"width",a+"px"),qe.setStyle(e.style,"height",s+"px")},$getDirectionForHighlight:function(e){var t=e.state.cm;if(!Ft(t).insertMode)return e.session.selection.isBackwards()||e.session.selection.isEmpty()},handleKeyboard:function(e,t,n,r,i){var o=e.editor,a=o.state.cm,s=Ft(a);if(-1!=r){if(s.insertMode||(-1==t?(n.charCodeAt(0)>255&&e.inputKey&&((n=e.inputKey)&&4==e.inputHash&&(n=n.toUpperCase())),e.inputChar=n):4==t||0==t?e.inputKey==n&&e.inputHash==t&&e.inputChar?(n=e.inputChar,t=-1):(e.inputChar=null,e.inputKey=n,e.inputHash=t):e.inputChar=e.inputKey=null),a.state.overwrite&&s.insertMode&&"backspace"==n&&0==t)return{command:"gotoleft"};if("c"==n&&1==t&&!Ye.isMac&&o.getCopyText())return o.once("copy",(function(){s.insertMode?o.selection.clearSelection():a.operation((function(){ee(a)}))})),{command:"null",passEvent:!0};if("esc"==n&&!s.insertMode&&!s.visualMode&&!a.ace.inMultiSelectMode){var l=me(a).getOverlay();l&&a.removeOverlay(l)}if(-1==t||1&t||0===t&&n.length>1){var c=s.insertMode,u=function(e,t,n,r){t.length>1&&"n"==t[0]&&(t=t.replace("numpad","")),t=Wt[t]||t;var i="";if(n.ctrlKey&&(i+="C-"),n.altKey&&(i+="A-"),(i||t.length>1)&&n.shiftKey&&(i+="S-"),r&&!r.expectLiteralNext&&1==t.length)if(ht.keymap&&t in ht.keymap)!1===ht.remapCtrl&&i||(t=ht.keymap[t]);else if(t.charCodeAt(0)>255){var o=n.code&&n.code.slice(-1)||"";n.shiftKey||(o=o.toLowerCase()),o&&(t=o)}return(i+=t).length>1&&(i="<"+i+">"),i}(0,n,i||{},s);null==s.status&&(s.status="");var h=Fe(a,u,"user");if(s=Ft(a),h&&null!=s.status?s.status+=u:null==s.status&&(s.status=""),a._signal("changeStatus"),!h&&(-1!=t||c))return;return{command:"null",passEvent:!h}}}},attach:function(e){function t(){var t=Ft(n).insertMode;n.ace.renderer.setStyle("normal-mode",!t),e.textInput.setCommandMode(!t),e.renderer.$keepTextAreaAtCursor=t,e.renderer.$blockCursor=!t}e.state||(e.state={});var n=new it(e);e.state.cm=n,e.$vimModeHandler=this,a(n),Ft(n).status=null,n.on("vim-command-done",(function(){n.virtualSelectionMode()||(Ft(n).status=null,n.ace._signal("changeStatus"),n.ace.session.markUndoGroup())})),n.on("changeStatus",(function(){n.ace.renderer.updateCursor(),n.ace._signal("changeStatus")})),n.on("vim-mode-change",(function(){n.virtualSelectionMode()||(t(),n._signal("changeStatus"))})),t(),e.renderer.$cursorLayer.drawCursor=this.drawCursor.bind(n)},detach:function(e){var t=e.state.cm;s(t),t.destroy(),e.state.cm=null,e.$vimModeHandler=null,e.renderer.$cursorLayer.drawCursor=null,e.renderer.setStyle("normal-mode",!1),e.textInput.setCommandMode(!1),e.renderer.$keepTextAreaAtCursor=!0},getStatusText:function(e){var t=e.state.cm,n=Ft(t);if(n.insertMode)return"INSERT";var r="";return n.visualMode&&(r+="VISUAL",n.visualLine&&(r+=" LINE"),n.visualBlock&&(r+=" BLOCK")),n.status&&(r+=(r?" ":"")+n.status),r}},Mt.defineOption({name:"wrap",set:function(e,t){t&&t.ace.setOption("wrap",e)},type:"boolean"},!1),Mt.defineEx("write","w",(function(){console.log(":write is not implemented")})),lt.push({keys:"zc",type:"action",action:"fold",actionArgs:{open:!1}},{keys:"zC",type:"action",action:"fold",actionArgs:{open:!1,all:!0}},{keys:"zo",type:"action",action:"fold",actionArgs:{open:!0}},{keys:"zO",type:"action",action:"fold",actionArgs:{open:!0,all:!0}},{keys:"za",type:"action",action:"fold",actionArgs:{toggle:!0}},{keys:"zA",type:"action",action:"fold",actionArgs:{toggle:!0,all:!0}},{keys:"zf",type:"action",action:"fold",actionArgs:{open:!0,all:!0}},{keys:"zd",type:"action",action:"fold",actionArgs:{open:!0,all:!0}},{keys:"<C-A-k>",type:"action",action:"aceCommand",actionArgs:{name:"addCursorAbove"}},{keys:"<C-A-j>",type:"action",action:"aceCommand",actionArgs:{name:"addCursorBelow"}},{keys:"<C-A-S-k>",type:"action",action:"aceCommand",actionArgs:{name:"addCursorAboveSkipCurrent"}},{keys:"<C-A-S-j>",type:"action",action:"aceCommand",actionArgs:{name:"addCursorBelowSkipCurrent"}},{keys:"<C-A-h>",type:"action",action:"aceCommand",actionArgs:{name:"selectMoreBefore"}},{keys:"<C-A-l>",type:"action",action:"aceCommand",actionArgs:{name:"selectMoreAfter"}},{keys:"<C-A-S-h>",type:"action",action:"aceCommand",actionArgs:{name:"selectNextBefore"}},{keys:"<C-A-S-l>",type:"action",action:"aceCommand",actionArgs:{name:"selectNextAfter"}}),lt.push({keys:"gq",type:"operator",operator:"hardWrap"}),Mt.defineOperator("hardWrap",(function(e,t,n,r,i){var o=n[0].anchor.line,a=n[0].head.line;return t.linewise&&a--,rt(e.ace,{startRow:o,endRow:a}),st(a,0)})),v("textwidth",void 0,"number",["tw"],(function(e,t){if(void 0!==t){if(void 0===e)return t.ace.getOption("printMarginColumn");var n=Math.round(e);n>1&&t.ace.setOption("printMarginColumn",n)}})),It.aceCommand=function(e,t,n){e.vimCmd=t,e.ace.inVirtualSelectionMode?e.ace.on("beforeEndOperation",Ue):Ue(0,e.ace)},It.fold=function(e,t,n){e.ace.execCommand(["toggleFoldWidget","toggleFoldWidget","foldOther","unfoldall"][(t.all?2:0)+(t.open?1:0)])},ct=lt.length,t.handler.defaultKeymap=lt,t.handler.actions=It,t.Vim=Mt})),ace.require(["ace/keyboard/vim"],(function(e){"object"==typeof module&&"object"==typeof exports&&module&&(module.exports=e)}));
|