Current File : /home/pacjaorg/public_html/kmm/media/vendor/codemirror/keymap/vim.min.js |
(function(ne){typeof exports=="object"&&typeof module=="object"?ne(require("../lib/codemirror"),require("../addon/search/searchcursor"),require("../addon/dialog/dialog"),require("../addon/edit/matchbrackets.js")):typeof define=="function"&&define.amd?define(["../lib/codemirror","../addon/search/searchcursor","../addon/dialog/dialog","../addon/edit/matchbrackets"],ne):ne(CodeMirror)})(function(ne){"use strict";function It(k){var g=k.Pos;function Et(e,t){var r=e.state.vim;if(!r||r.insertMode)return t.head;var n=r.sel.head;if(!n)return t.head;if(!(r.visualBlock&&t.head.line!=n.line))return t.from()==t.anchor&&!t.empty()&&t.head.line==n.line&&t.head.ch!=n.ch?new g(t.head.line,t.head.ch-1):t.head}var E=[{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",context:"normal"},{keys:"<Del>",type:"keyToKey",toKeys:"x",context:"normal"},{keys:"<C-Space>",type:"keyToKey",toKeys:"W"},{keys:"<C-BS>",type:"keyToKey",toKeys:"B",context:"normal"},{keys:"<S-Space>",type:"keyToKey",toKeys:"w"},{keys:"<S-BS>",type:"keyToKey",toKeys:"b",context:"normal"},{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:"'<character>",type:"motion",motion:"goToMark",motionArgs:{toJumplist:!0,linewise:!0}},{keys:"`<character>",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:"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:"@<character>",type:"action",action:"replayMacro"},{keys:"q<character>",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<character>",type:"action",action:"setMark"},{keys:'"<character>',type:"action",action:"setRegister"},{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<character>",type:"motion",motion:"textObjectManipulation"},{keys:"i<character>",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"}],De=E.length,Fe=[{name:"colorscheme",shortName:"colo"},{name:"map"},{name:"imap",shortName:"im"},{name:"nmap",shortName:"nm"},{name:"vmap",shortName:"vm"},{name:"unmap"},{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:"nohlsearch",shortName:"noh"},{name:"yank",shortName:"y"},{name:"delmarks",shortName:"delm"},{name:"registers",shortName:"reg",excludeFromCommandHistory:!0},{name:"vglobal",shortName:"v"},{name:"global",shortName:"g"}];function Ve(e){e.setOption("disableInput",!0),e.setOption("showCursorWhenSelecting",!1),k.signal(e,"vim-mode-change",{mode:"normal"}),e.on("cursorActivity",bt),ve(e),k.on(e.getInputField(),"paste",Ue(e))}function Ot(e){e.setOption("disableInput",!1),e.off("cursorActivity",bt),k.off(e.getInputField(),"paste",Ue(e)),e.state.vim=null,Ce&&clearTimeout(Ce)}function xe(e,t){this==k.keyMap.vim&&(e.options.$customCursor=null,k.rmClass(e.getWrapperElement(),"cm-fat-cursor")),(!t||t.attach!=oe)&&Ot(e)}function oe(e,t){this==k.keyMap.vim&&(e.curOp&&(e.curOp.selectionChanged=!0),e.options.$customCursor=Et,k.addClass(e.getWrapperElement(),"cm-fat-cursor")),(!t||t.attach!=oe)&&Ve(e)}k.defineOption("vimMode",!1,function(e,t,r){t&&e.getOption("keyMap")!="vim"?e.setOption("keyMap","vim"):!t&&r!=k.Init&&/^vim/.test(e.getOption("keyMap"))&&e.setOption("keyMap","default")});function Se(e,t){if(t){if(this[e])return this[e];var r=Kt(e);if(!r)return!1;var n=G.findKey(t,r);return typeof n=="function"&&k.signal(t,"vim-keypress",r),n}}var je={Shift:"S",Ctrl:"C",Alt:"A",Cmd:"D",Mod:"A",CapsLock:""},We={Enter:"CR",Backspace:"BS",Delete:"Del",Insert:"Ins"};function Kt(e){if(e.charAt(0)=="'")return e.charAt(1);var t=e.split(/-(?!$)/),r=t[t.length-1];if(t.length==1&&t[0].length==1)return!1;if(t.length==2&&t[0]=="Shift"&&r.length==1)return!1;for(var n=!1,i=0;i<t.length;i++){var a=t[i];a in je?t[i]=je[a]:n=!0,a in We&&(t[i]=We[a])}return n?(se(r)&&(t[t.length-1]=r.toLowerCase()),"<"+t.join("-")+">"):!1}function Ue(e){var t=e.state.vim;return t.onPasteFn||(t.onPasteFn=function(){t.insertMode||(e.setCursor(O(e.getCursor(),0,1)),ge.enterInsertMode(e,{},t))}),t.onPasteFn}var Pt=/[\d]/,he=[k.isWordChar,function(e){return e&&!k.isWordChar(e)&&!/\s/.test(e)}],Me=[function(e){return/\S/.test(e)}];function me(e,t){for(var r=[],n=e;n<e+t;n++)r.push(String.fromCharCode(n));return r}var $e=me(65,26),Je=me(97,26),Qe=me(48,10),Nt=[].concat($e,Je,Qe,["<",">"]),ze=[].concat($e,Je,Qe,["-",'"',".",":","_","/"]),be;try{be=new RegExp("^[\\p{Lu}]$","u")}catch{be=/^[A-Z]$/}function Le(e,t){return t>=e.firstLine()&&t<=e.lastLine()}function Ae(e){return/^[a-z]$/.test(e)}function _t(e){return"()[]{}".indexOf(e)!=-1}function Ht(e){return Pt.test(e)}function se(e){return be.test(e)}function D(e){return/^\s*$/.test(e)}function ie(e){return".?!".indexOf(e)!=-1}function Te(e,t){for(var r=0;r<t.length;r++)if(t[r]==e)return!0;return!1}var z={};function pe(e,t,r,n,i){if(t===void 0&&!i)throw Error("defaultValue is required unless callback is provided");if(r||(r="string"),z[e]={type:r,defaultValue:t,callback:i},n)for(var a=0;a<n.length;a++)z[n[a]]=z[e];t&&Re(e,t)}function Re(e,t,r,n){var i=z[e];n=n||{};var a=n.scope;if(!i)return new Error("Unknown option: "+e);if(i.type=="boolean"){if(t&&t!==!0)return new Error("Invalid argument: "+e+"="+t);t!==!1&&(t=!0)}i.callback?(a!=="local"&&i.callback(t,void 0),a!=="global"&&r&&i.callback(t,r)):(a!=="local"&&(i.value=i.type=="boolean"?!!t:t),a!=="global"&&r&&(r.state.vim.options[e]={value:t}))}function ee(e,t,r){var n=z[e];r=r||{};var i=r.scope;if(!n)return new Error("Unknown option: "+e);if(n.callback){var a=t&&n.callback(void 0,t);return i!=="global"&&a!==void 0?a:i!=="local"?n.callback():void 0}else{var a=i!=="global"&&t&&t.state.vim.options[e];return(a||i!=="local"&&n||{}).value}}pe("filetype",void 0,"string",["ft"],function(e,t){if(t!==void 0)if(e===void 0){var r=t.getOption("mode");return r=="null"?"":r}else{var r=e==""?"null":e;t.setOption("mode",r)}});var Dt=function(){var e=100,t=-1,r=0,n=0,i=new Array(e);function a(s,u,f){var p=t%e,v=i[p];function h(y){var d=++t%e,C=i[d];C&&C.clear(),i[d]=s.setBookmark(y)}if(v){var c=v.find();c&&!V(c,u)&&h(u)}else h(u);h(f),r=t,n=t-e+1,n<0&&(n=0)}function o(s,u){t+=u,t>r?t=r:t<n&&(t=n);var f=i[(e+t)%e];if(f&&!f.find()){var p=u>0?1:-1,v,h=s.getCursor();do if(t+=p,f=i[(e+t)%e],f&&(v=f.find())&&!V(h,v))break;while(t<r&&t>n)}return f}function l(s,u){var f=t,p=o(s,u);return t=f,p&&p.find()}return{cachedCursor:void 0,add:a,find:l,move:o}},Ge=function(e){return e?{changes:e.changes,expectCursorActivityForChange:e.expectCursorActivityForChange}:{changes:[],expectCursorActivityForChange:!1}};function qe(){this.latestRegister=void 0,this.isPlaying=!1,this.isRecording=!1,this.replaySearchQueries=[],this.onRecordingDone=void 0,this.lastInsertModeChanges=Ge()}qe.prototype={exitMacroRecordMode:function(){var e=w.macroModeState;e.onRecordingDone&&e.onRecordingDone(),e.onRecordingDone=void 0,e.isRecording=!1},enterMacroRecordMode:function(e,t){var r=w.registerController.getRegister(t);if(r){if(r.clear(),this.latestRegister=t,e.openDialog){var n=Z("span",{class:"cm-vim-message"},"recording @"+t);this.onRecordingDone=e.openDialog(n,null,{bottom:!0})}this.isRecording=!0}}};function ve(e){return e.state.vim||(e.state.vim={inputState:new de,lastEditInputState:void 0,lastEditActionCommand:void 0,lastHPos:-1,lastHSPos:-1,lastMotion:null,marks:{},insertMode:!1,insertModeRepeat:void 0,visualMode:!1,visualLine:!1,visualBlock:!1,lastSelection:null,lastPastedText:null,sel:{},options:{}}),e.state.vim}var w;function Xe(){w={searchQuery:null,searchIsReversed:!1,lastSubstituteReplacePart:void 0,jumpList:Dt(),macroModeState:new qe,lastCharacterSearch:{increment:0,forward:!0,selectedCharacter:""},registerController:new Ye({}),searchHistoryController:new Ie,exCommandHistoryController:new Ie};for(var e in z){var t=z[e];t.value=t.defaultValue}}var le,G={enterVimMode:Ve,buildKeyMap:function(){},getRegisterController:function(){return w.registerController},resetVimGlobalState_:Xe,getVimGlobalState_:function(){return w},maybeInitVimState_:ve,suppressErrorLogging:!1,InsertModeKey:Ne,map:function(e,t,r){Q.map(e,t,r)},unmap:function(e,t){return Q.unmap(e,t)},noremap:function(e,t,r){function n(v){return v?[v]:["normal","insert","visual"]}for(var i=n(r),a=E.length,o=De,l=a-o;l<a&&i.length;l++){var s=E[l];if(s.keys==t&&(!r||!s.context||s.context===r)&&s.type.substr(0,2)!=="ex"&&s.type.substr(0,3)!=="key"){var u={};for(var f in s)u[f]=s[f];u.keys=e,r&&!u.context&&(u.context=r),this._mapCommand(u);var p=n(s.context);i=i.filter(function(v){return p.indexOf(v)===-1})}}},mapclear:function(e){var t=E.length,r=De,n=E.slice(0,t-r);if(E=E.slice(t-r),e)for(var i=n.length-1;i>=0;i--){var a=n[i];if(e!==a.context)if(a.context)this._mapCommand(a);else{var o=["normal","insert","visual"];for(var l in o)if(o[l]!==e){var s={};for(var u in a)s[u]=a[u];s.context=o[l],this._mapCommand(s)}}}},setOption:Re,getOption:ee,defineOption:pe,defineEx:function(e,t,r){if(!t)t=e;else if(e.indexOf(t)!==0)throw new Error('(Vim.defineEx) "'+t+'" is not a prefix of "'+e+'", command not registered');St[e]=r,Q.commandMap_[t]={name:e,shortName:t,type:"api"}},handleKey:function(e,t,r){var n=this.findKey(e,t,r);if(typeof n=="function")return n()},multiSelectHandleKey:Tr,findKey:function(e,t,r){var n=ve(e);function i(){var f=w.macroModeState;if(f.isRecording){if(t=="q")return f.exitMacroRecordMode(),_(e),!0;r!="mapping"&&br(f,t)}}function a(){if(t=="<Esc>"){if(n.visualMode)U(e);else if(n.insertMode)fe(e);else return;return _(e),!0}}function o(f){for(var p;f;)p=/<\w+-.+?>|<\w+>|./.exec(f),t=p[0],f=f.substring(p.index+t.length),G.handleKey(e,t,"mapping")}function l(){if(a())return!0;for(var f=n.inputState.keyBuffer=n.inputState.keyBuffer+t,p=t.length==1,v=Y.matchCommand(f,E,n.inputState,"insert");f.length>1&&v.type!="full";){var f=n.inputState.keyBuffer=f.slice(1),h=Y.matchCommand(f,E,n.inputState,"insert");h.type!="none"&&(v=h)}if(v.type=="none")return _(e),!1;if(v.type=="partial")return le&&window.clearTimeout(le),le=window.setTimeout(function(){n.insertMode&&n.inputState.keyBuffer&&_(e)},ee("insertModeEscKeysTimeout")),!p;if(le&&window.clearTimeout(le),p){for(var c=e.listSelections(),y=0;y<c.length;y++){var d=c[y].head;e.replaceRange("",O(d,0,-(f.length-1)),d,"+input")}w.macroModeState.lastInsertModeChanges.changes.pop()}return _(e),v.command}function s(){if(i()||a())return!0;var f=n.inputState.keyBuffer=n.inputState.keyBuffer+t;if(/^[1-9]\d*$/.test(f))return!0;var p=/^(\d*)(.*)$/.exec(f);if(!p)return _(e),!1;var v=n.visualMode?"visual":"normal",h=p[2]||p[1];n.inputState.operatorShortcut&&n.inputState.operatorShortcut.slice(-1)==h&&(h=n.inputState.operatorShortcut);var c=Y.matchCommand(h,E,n.inputState,v);return c.type=="none"?(_(e),!1):c.type=="partial"?!0:c.type=="clear"?(_(e),!0):(n.inputState.keyBuffer="",p=/^(\d*)(.*)$/.exec(f),p[1]&&p[1]!="0"&&n.inputState.pushRepeatDigit(p[1]),c.command)}var u;return n.insertMode?u=l():u=s(),u===!1?!n.insertMode&&t.length===1?function(){return!0}:void 0:u===!0?function(){return!0}:function(){return e.operation(function(){e.curOp.isVimOp=!0;try{u.type=="keyToKey"?o(u.toKeys):Y.processCommand(e,n,u)}catch(f){throw e.state.vim=void 0,ve(e),G.suppressErrorLogging||console.log(f),f}return!0})}},handleEx:function(e,t){Q.processCommand(e,t)},defineMotion:Vt,defineAction:Wt,defineOperator:jt,mapCommand:Mr,_mapCommand:Mt,defineRegister:Ft,exitVisualMode:U,exitInsertMode:fe};function de(){this.prefixRepeat=[],this.motionRepeat=[],this.operator=null,this.operatorArgs=null,this.motion=null,this.motionArgs=null,this.keyBuffer=[],this.registerName=null}de.prototype.pushRepeatDigit=function(e){this.operator?this.motionRepeat=this.motionRepeat.concat(e):this.prefixRepeat=this.prefixRepeat.concat(e)},de.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};function _(e,t){e.state.vim.inputState=new de,k.signal(e,"vim-command-done",t)}function W(e,t,r){this.clear(),this.keyBuffer=[e||""],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!!t,this.blockwise=!!r}W.prototype={setText:function(e,t,r){this.keyBuffer=[e||""],this.linewise=!!t,this.blockwise=!!r},pushText:function(e,t){t&&(this.linewise||this.keyBuffer.push(`
`),this.linewise=!0),this.keyBuffer.push(e)},pushInsertModeChanges:function(e){this.insertModeChanges.push(Ge(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("")}};function Ft(e,t){var r=w.registerController.registers;if(!e||e.length!=1)throw Error("Register name must be 1 character");if(r[e])throw Error("Register already defined "+e);r[e]=t,ze.push(e)}function Ye(e){this.registers=e,this.unnamedRegister=e['"']=new W,e["."]=new W,e[":"]=new W,e["/"]=new W}Ye.prototype={pushText:function(e,t,r,n,i){if(e!=="_"){n&&r.charAt(r.length-1)!==`
`&&(r+=`
`);var a=this.isValidRegister(e)?this.getRegister(e):null;if(!a){switch(t){case"yank":this.registers[0]=new W(r,n,i);break;case"delete":case"change":r.indexOf(`
`)==-1?this.registers["-"]=new W(r,n):(this.shiftNumericRegisters_(),this.registers[1]=new W(r,n));break}this.unnamedRegister.setText(r,n,i);return}var o=se(e);o?a.pushText(r,n):a.setText(r,n,i),this.unnamedRegister.setText(a.toString(),n)}},getRegister:function(e){return this.isValidRegister(e)?(e=e.toLowerCase(),this.registers[e]||(this.registers[e]=new W),this.registers[e]):this.unnamedRegister},isValidRegister:function(e){return e&&Te(e,ze)},shiftNumericRegisters_:function(){for(var e=9;e>=2;e--)this.registers[e]=this.getRegister(""+(e-1))}};function Ie(){this.historyBuffer=[],this.iterator=0,this.initialPrefix=null}Ie.prototype={nextMatch:function(e,t){var r=this.historyBuffer,n=t?-1:1;this.initialPrefix===null&&(this.initialPrefix=e);for(var i=this.iterator+n;t?i>=0:i<r.length;i+=n)for(var a=r[i],o=0;o<=a.length;o++)if(this.initialPrefix==a.substring(0,o))return this.iterator=i,a;if(i>=r.length)return this.iterator=r.length,this.initialPrefix;if(i<0)return e},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 Y={matchCommand:function(e,t,r,n){var i=Ut(e,t,n,r);if(!i.full&&!i.partial)return{type:"none"};if(!i.full&&i.partial)return{type:"partial"};for(var a,o=0;o<i.full.length;o++){var l=i.full[o];a||(a=l)}if(a.keys.slice(-11)=="<character>"){var s=Jt(e);if(!s||s.length>1)return{type:"clear"};r.selectedCharacter=s}return{type:"full",command:a}},processCommand:function(e,t,r){switch(t.inputState.repeatOverride=r.repeatOverride,r.type){case"motion":this.processMotion(e,t,r);break;case"operator":this.processOperator(e,t,r);break;case"operatorMotion":this.processOperatorMotion(e,t,r);break;case"action":this.processAction(e,t,r);break;case"search":this.processSearch(e,t,r);break;case"ex":case"keyToEx":this.processEx(e,t,r);break}},processMotion:function(e,t,r){t.inputState.motion=r.motion,t.inputState.motionArgs=ye(r.motionArgs),this.evalInput(e,t)},processOperator:function(e,t,r){var n=t.inputState;if(n.operator)if(n.operator==r.operator){n.motion="expandToLine",n.motionArgs={linewise:!0},this.evalInput(e,t);return}else _(e);n.operator=r.operator,n.operatorArgs=ye(r.operatorArgs),r.keys.length>1&&(n.operatorShortcut=r.keys),r.exitVisualBlock&&(t.visualBlock=!1,ae(e)),t.visualMode&&this.evalInput(e,t)},processOperatorMotion:function(e,t,r){var n=t.visualMode,i=ye(r.operatorMotionArgs);i&&n&&i.visualLine&&(t.visualLine=!0),this.processOperator(e,t,r),n||this.processMotion(e,t,r)},processAction:function(e,t,r){var n=t.inputState,i=n.getRepeat(),a=!!i,o=ye(r.actionArgs)||{};n.selectedCharacter&&(o.selectedCharacter=n.selectedCharacter),r.operator&&this.processOperator(e,t,r),r.motion&&this.processMotion(e,t,r),(r.motion||r.operator)&&this.evalInput(e,t),o.repeat=i||1,o.repeatIsExplicit=a,o.registerName=n.registerName,_(e),t.lastMotion=null,r.isEdit&&this.recordLastEdit(t,n,r),ge[r.action](e,o,t)},processSearch:function(e,t,r){if(!e.getSearchCursor)return;var n=r.searchArgs.forward,i=r.searchArgs.wholeWordOnly;J(e).setReversed(!n);var a=n?"/":"?",o=J(e).getQuery(),l=e.getScrollInfo();function s(d,C,S){w.searchHistoryController.pushInput(d),w.searchHistoryController.reset();try{ue(e,d,C,S)}catch{L(e,"Invalid regex: "+d),_(e);return}Y.processMotion(e,t,{type:"motion",motion:"findNext",motionArgs:{forward:!0,toJumplist:r.searchArgs.toJumplist}})}function u(d){e.scrollTo(l.left,l.top),s(d,!0,!0);var C=w.macroModeState;C.isRecording&&Ar(C,d)}function f(d,C,S){var x=k.keyName(d),m,B;x=="Up"||x=="Down"?(m=x=="Up",B=d.target?d.target.selectionEnd:0,C=w.searchHistoryController.nextMatch(C,m)||"",S(C),B&&d.target&&(d.target.selectionEnd=d.target.selectionStart=Math.min(B,d.target.value.length))):x!="Left"&&x!="Right"&&x!="Ctrl"&&x!="Alt"&&x!="Shift"&&w.searchHistoryController.reset();var R;try{R=ue(e,C,!0,!0)}catch{}R?e.scrollIntoView(kt(e,!n,R),30):(Ke(e),e.scrollTo(l.left,l.top))}function p(d,C,S){var x=k.keyName(d);x=="Esc"||x=="Ctrl-C"||x=="Ctrl-["||x=="Backspace"&&C==""?(w.searchHistoryController.pushInput(C),w.searchHistoryController.reset(),ue(e,o),Ke(e),e.scrollTo(l.left,l.top),k.e_stop(d),_(e),S(),e.focus()):x=="Up"||x=="Down"?k.e_stop(d):x=="Ctrl-U"&&(k.e_stop(d),S(""))}switch(r.searchArgs.querySrc){case"prompt":var v=w.macroModeState;if(v.isPlaying){var y=v.replaySearchQueries.shift();s(y,!0,!1)}else we(e,{onClose:u,prefix:a,desc:"(JavaScript regexp)",onKeyUp:f,onKeyDown:p});break;case"wordUnderCursor":var h=ke(e,!1,!0,!1,!0),c=!0;if(h||(h=ke(e,!1,!0,!1,!1),c=!1),!h)return;var y=e.getLine(h.start.line).substring(h.start.ch,h.end.ch);c&&i?y="\\b"+y+"\\b":y=Qt(y),w.jumpList.cachedCursor=e.getCursor(),e.setCursor(h.start),s(y,!0,!1);break}},processEx:function(e,t,r){function n(a){w.exCommandHistoryController.pushInput(a),w.exCommandHistoryController.reset(),Q.processCommand(e,a),_(e)}function i(a,o,l){var s=k.keyName(a),u,f;(s=="Esc"||s=="Ctrl-C"||s=="Ctrl-["||s=="Backspace"&&o=="")&&(w.exCommandHistoryController.pushInput(o),w.exCommandHistoryController.reset(),k.e_stop(a),_(e),l(),e.focus()),s=="Up"||s=="Down"?(k.e_stop(a),u=s=="Up",f=a.target?a.target.selectionEnd:0,o=w.exCommandHistoryController.nextMatch(o,u)||"",l(o),f&&a.target&&(a.target.selectionEnd=a.target.selectionStart=Math.min(f,a.target.value.length))):s=="Ctrl-U"?(k.e_stop(a),l("")):s!="Left"&&s!="Right"&&s!="Ctrl"&&s!="Alt"&&s!="Shift"&&w.exCommandHistoryController.reset()}r.type=="keyToEx"?Q.processCommand(e,r.exArgs.input):t.visualMode?we(e,{onClose:n,prefix:":",value:"'<,'>",onKeyDown:i,selectValueOnOpen:!1}):we(e,{onClose:n,prefix:":",onKeyDown:i})},evalInput:function(e,t){var r=t.inputState,n=r.motion,i=r.motionArgs||{},a=r.operator,o=r.operatorArgs||{},l=r.registerName,s=t.sel,u=A(t.visualMode?F(e,s.head):e.getCursor("head")),f=A(t.visualMode?F(e,s.anchor):e.getCursor("anchor")),p=A(u),v=A(f),h,c,y;if(a&&this.recordLastEdit(t,r),r.repeatOverride!==void 0?y=r.repeatOverride:y=r.getRepeat(),y>0&&i.explicitRepeat?i.repeatIsExplicit=!0:(i.noRepeat||!i.explicitRepeat&&y===0)&&(y=1,i.repeatIsExplicit=!1),r.selectedCharacter&&(i.selectedCharacter=o.selectedCharacter=r.selectedCharacter),i.repeat=y,_(e),n){var d=q[n](e,u,i,t,r);if(t.lastMotion=q[n],!d)return;if(i.toJumplist){var C=w.jumpList,S=C.cachedCursor;S?(ot(e,S,d),delete C.cachedCursor):ot(e,u,d)}d instanceof Array?(c=d[0],h=d[1]):h=d,h||(h=A(u)),t.visualMode?(t.visualBlock&&h.ch===1/0||(h=F(e,h)),c&&(c=F(e,c)),c=c||v,s.anchor=c,s.head=h,ae(e),X(e,t,"<",T(c,h)?c:h),X(e,t,">",T(c,h)?h:c)):a||(h=F(e,h),e.setCursor(h.line,h.ch))}if(a){if(o.lastSel){c=v;var x=o.lastSel,m=Math.abs(x.head.line-x.anchor.line),B=Math.abs(x.head.ch-x.anchor.ch);x.visualLine?h=new g(v.line+m,v.ch):x.visualBlock?h=new g(v.line+m,v.ch+B):x.head.line==x.anchor.line?h=new g(v.line,v.ch+B):h=new g(v.line+m,v.ch),t.visualMode=!0,t.visualLine=x.visualLine,t.visualBlock=x.visualBlock,s=t.sel={anchor:c,head:h},ae(e)}else t.visualMode&&(o.lastSel={anchor:A(s.anchor),head:A(s.head),visualBlock:t.visualBlock,visualLine:t.visualLine});var R,K,b,M,P;if(t.visualMode){if(R=j(s.head,s.anchor),K=te(s.head,s.anchor),b=t.visualLine||o.linewise,M=t.visualBlock?"block":b?"line":"char",P=Ee(e,{anchor:R,head:K},M),b){var H=P.ranges;if(M=="block")for(var N=0;N<H.length;N++)H[N].head.ch=I(e,H[N].head.line);else M=="line"&&(H[0].head=new g(H[0].head.line+1,0))}}else{if(R=A(c||v),K=A(h||p),T(K,R)){var re=R;R=K,K=re}b=i.linewise||o.linewise,b?er(e,R,K):i.forward&&Zt(e,R,K),M="char";var ce=!i.inclusive||b;P=Ee(e,{anchor:R,head:K},M,ce)}e.setSelections(P.ranges,P.primary),t.lastMotion=null,o.repeat=y,o.registerName=l,o.linewise=b;var He=et[a](e,o,P.ranges,v,h);t.visualMode&&U(e,He!=null),He&&e.setCursor(He)}},recordLastEdit:function(e,t,r){var n=w.macroModeState;n.isPlaying||(e.lastEditInputState=t,e.lastEditActionCommand=r,n.lastInsertModeChanges.changes=[],n.lastInsertModeChanges.expectCursorActivityForChange=!1,n.lastInsertModeChanges.visualBlock=e.visualBlock?e.sel.head.line-e.sel.anchor.line:0)}},q={moveToTopLine:function(e,t,r){var n=Pe(e).top+r.repeat-1;return new g(n,$(e.getLine(n)))},moveToMiddleLine:function(e){var t=Pe(e),r=Math.floor((t.top+t.bottom)*.5);return new g(r,$(e.getLine(r)))},moveToBottomLine:function(e,t,r){var n=Pe(e).bottom-r.repeat+1;return new g(n,$(e.getLine(n)))},expandToLine:function(e,t,r){var n=t;return new g(n.line+r.repeat-1,1/0)},findNext:function(e,t,r){var n=J(e),i=n.getQuery();if(i){var a=!r.forward;return a=n.isReversed()?!a:a,yt(e,i),kt(e,a,i,r.repeat)}},findAndSelectNextInclusive:function(e,t,r,n,i){var a=J(e),o=a.getQuery();if(o){var l=!r.forward;l=a.isReversed()?!l:l;var s=Cr(e,l,o,r.repeat,n);if(s){if(i.operator)return s;var u=s[0],f=new g(s[1].line,s[1].ch-1);if(n.visualMode){(n.visualLine||n.visualBlock)&&(n.visualLine=!1,n.visualBlock=!1,k.signal(e,"vim-mode-change",{mode:"visual",subMode:""}));var p=n.sel.anchor;if(p)return a.isReversed()?r.forward?[p,u]:[p,f]:r.forward?[p,f]:[p,u]}else n.visualMode=!0,n.visualLine=!1,n.visualBlock=!1,k.signal(e,"vim-mode-change",{mode:"visual",subMode:""});return l?[f,u]:[u,f]}}},goToMark:function(e,t,r,n){var i=wt(e,n,r.selectedCharacter);return i?r.linewise?{line:i.line,ch:$(e.getLine(i.line))}:i:null},moveToOtherHighlightedEnd:function(e,t,r,n){if(n.visualBlock&&r.sameLine){var i=n.sel;return[F(e,new g(i.anchor.line,i.head.ch)),F(e,new g(i.head.line,i.anchor.ch))]}else return[n.sel.head,n.sel.anchor]},jumpToMark:function(e,t,r,n){for(var i=t,a=0;a<r.repeat;a++){var o=i;for(var l in n.marks)if(Ae(l)){var s=n.marks[l].find(),u=r.forward?T(s,o):T(o,s);if(!u&&!(r.linewise&&s.line==o.line)){var f=V(o,i),p=r.forward?rt(o,s,i):rt(i,s,o);(f||p)&&(i=s)}}}return r.linewise&&(i=new g(i.line,$(e.getLine(i.line)))),i},moveByCharacters:function(e,t,r){var n=t,i=r.repeat,a=r.forward?n.ch+i:n.ch-i;return new g(n.line,a)},moveByLines:function(e,t,r,n){var i=t,a=i.ch;switch(n.lastMotion){case this.moveByLines:case this.moveByDisplayLines:case this.moveByScroll:case this.moveToColumn:case this.moveToEol:a=n.lastHPos;break;default:n.lastHPos=a}var o=r.repeat+(r.repeatOffset||0),l=r.forward?i.line+o:i.line-o,s=e.firstLine(),u=e.lastLine(),f=e.findPosV(i,r.forward?o:-o,"line",n.lastHSPos),p=r.forward?f.line>l:f.line<l;return p&&(l=f.line,a=f.ch),l<s&&i.line==s?this.moveToStartOfLine(e,t,r,n):l>u&&i.line==u?ut(e,t,r,n,!0):(r.toFirstChar&&(a=$(e.getLine(l)),n.lastHPos=a),n.lastHSPos=e.charCoords(new g(l,a),"div").left,new g(l,a))},moveByDisplayLines:function(e,t,r,n){var i=t;switch(n.lastMotion){case this.moveByDisplayLines:case this.moveByScroll:case this.moveByLines:case this.moveToColumn:case this.moveToEol:break;default:n.lastHSPos=e.charCoords(i,"div").left}var a=r.repeat,o=e.findPosV(i,r.forward?a:-a,"line",n.lastHSPos);if(o.hitSide)if(r.forward)var l=e.charCoords(o,"div"),s={top:l.top+8,left:n.lastHSPos},o=e.coordsChar(s,"div");else{var u=e.charCoords(new g(e.firstLine(),0),"div");u.left=n.lastHSPos,o=e.coordsChar(u,"div")}return n.lastHPos=o.ch,o},moveByPage:function(e,t,r){var n=t,i=r.repeat;return e.findPosV(n,r.forward?i:-i,"page")},moveByParagraph:function(e,t,r){var n=r.forward?1:-1;return ft(e,t,r.repeat,n)},moveBySentence:function(e,t,r){var n=r.forward?1:-1;return lr(e,t,r.repeat,n)},moveByScroll:function(e,t,r,n){var i=e.getScrollInfo(),a=null,o=r.repeat;o||(o=i.clientHeight/(2*e.defaultTextHeight()));var l=e.charCoords(t,"local");if(r.repeat=o,a=q.moveByDisplayLines(e,t,r,n),!a)return null;var s=e.charCoords(a,"local");return e.scrollTo(null,i.top+s.top-l.top),a},moveByWords:function(e,t,r){return ar(e,t,r.repeat,!!r.forward,!!r.wordEnd,!!r.bigWord)},moveTillCharacter:function(e,t,r){var n=r.repeat,i=Oe(e,n,r.forward,r.selectedCharacter),a=r.forward?-1:1;return st(a,r),i?(i.ch+=a,i):null},moveToCharacter:function(e,t,r){var n=r.repeat;return st(0,r),Oe(e,n,r.forward,r.selectedCharacter)||t},moveToSymbol:function(e,t,r){var n=r.repeat;return nr(e,n,r.forward,r.selectedCharacter)||t},moveToColumn:function(e,t,r,n){var i=r.repeat;return n.lastHPos=i-1,n.lastHSPos=e.charCoords(t,"div").left,or(e,i)},moveToEol:function(e,t,r,n){return ut(e,t,r,n,!1)},moveToFirstNonWhiteSpaceCharacter:function(e,t){var r=t;return new g(r.line,$(e.getLine(r.line)))},moveToMatchedSymbol:function(e,t){for(var r=t,n=r.line,i=r.ch,a=e.getLine(n),o;i<a.length;i++)if(o=a.charAt(i),o&&_t(o)){var l=e.getTokenTypeAt(new g(n,i+1));if(l!=="string"&&l!=="comment")break}if(i<a.length){var s=i==="<"||i===">"?/[(){}[\]<>]/:/[(){}[\]]/,u=e.findMatchingBracket(new g(n,i),{bracketRegex:s});return u.to}else return r},moveToStartOfLine:function(e,t){return new g(t.line,0)},moveToLineOrEdgeOfDocument:function(e,t,r){var n=r.forward?e.lastLine():e.firstLine();return r.repeatIsExplicit&&(n=r.repeat-e.getOption("firstLineNumber")),new g(n,$(e.getLine(n)))},moveToStartOfDisplayLine:function(e){return e.execCommand("goLineLeft"),e.getCursor()},moveToEndOfDisplayLine:function(e){e.execCommand("goLineRight");var t=e.getCursor();return t.sticky=="before"&&t.ch--,t},textObjectManipulation:function(e,t,r,n){var i={"(":")",")":"(","{":"}","}":"{","[":"]","]":"[","<":">",">":"<"},a={"'":!0,'"':!0,"`":!0},o=r.selectedCharacter;o=="b"?o="(":o=="B"&&(o="{");var l=!r.textObjectInner,s;if(i[o])s=ur(e,t,o,l);else if(a[o])s=fr(e,t,o,l);else if(o==="W")s=ke(e,l,!0,!0);else if(o==="w")s=ke(e,l,!0,!1);else if(o==="p")if(s=ft(e,t,r.repeat,0,l),r.linewise=!0,n.visualMode)n.visualLine||(n.visualLine=!0);else{var u=n.inputState.operatorArgs;u&&(u.linewise=!0),s.end.line--}else if(o==="t")s=tr(e,t,l);else if(o==="s"){var f=e.getLine(t.line);t.ch>0&&ie(f[t.ch])&&(t.ch-=1);var p=ct(e,t,r.repeat,1,l),v=ct(e,t,r.repeat,-1,l);D(e.getLine(v.line)[v.ch])&&D(e.getLine(p.line)[p.ch-1])&&(v={line:v.line,ch:v.ch+1}),s={start:v,end:p}}else return null;return e.state.vim.visualMode?Xt(e,s.start,s.end):[s.start,s.end]},repeatLastCharacterSearch:function(e,t,r){var n=w.lastCharacterSearch,i=r.repeat,a=r.forward===n.forward,o=(n.increment?1:0)*(a?-1:1);e.moveH(-o,"char"),r.inclusive=!!a;var l=Oe(e,i,a,n.selectedCharacter);return l?(l.ch+=o,l):(e.moveH(o,"char"),t)}};function Vt(e,t){q[e]=t}function Ze(e,t){for(var r=[],n=0;n<t;n++)r.push(e);return r}var et={change:function(e,t,r){var n,i,a=e.state.vim,o=r[0].anchor,l=r[0].head;if(a.visualMode)if(t.fullLine)l.ch=Number.MAX_VALUE,l.line--,e.setSelection(o,l),i=e.getSelection(),e.replaceSelection(""),n=o;else{i=e.getSelection();var v=Ze("",r.length);e.replaceSelections(v),n=j(r[0].head,r[0].anchor)}else{i=e.getRange(o,l);var s=a.lastEditInputState||{};if(s.motion=="moveByWords"&&!D(i)){var u=/\s+$/.exec(i);u&&s.motionArgs&&s.motionArgs.forward&&(l=O(l,0,-u[0].length),i=i.slice(0,-u[0].length))}var f=new g(o.line-1,Number.MAX_VALUE),p=e.firstLine()==e.lastLine();l.line>e.lastLine()&&t.linewise&&!p?e.replaceRange("",f,l):e.replaceRange("",o,l),t.linewise&&(p||(e.setCursor(f),k.commands.newlineAndIndent(e)),o.ch=Number.MAX_VALUE),n=o}w.registerController.pushText(t.registerName,"change",i,t.linewise,r.length>1),ge.enterInsertMode(e,{head:n},e.state.vim)},delete:function(e,t,r){var n,i,a=e.state.vim;if(a.visualBlock){i=e.getSelection();var s=Ze("",r.length);e.replaceSelections(s),n=j(r[0].head,r[0].anchor)}else{var o=r[0].anchor,l=r[0].head;t.linewise&&l.line!=e.firstLine()&&o.line==e.lastLine()&&o.line==l.line-1&&(o.line==e.firstLine()?o.ch=0:o=new g(o.line-1,I(e,o.line-1))),i=e.getRange(o,l),e.replaceRange("",o,l),n=o,t.linewise&&(n=q.moveToFirstNonWhiteSpaceCharacter(e,o))}return w.registerController.pushText(t.registerName,"delete",i,t.linewise,a.visualBlock),F(e,n)},indent:function(e,t,r){var n=e.state.vim;if(e.indentMore)for(var i=n.visualMode?t.repeat:1,a=0;a<i;a++)t.indentRight?e.indentMore():e.indentLess();else{var o=r[0].anchor.line,l=n.visualBlock?r[r.length-1].anchor.line:r[0].head.line,i=n.visualMode?t.repeat:1;t.linewise&&l--;for(var s=o;s<=l;s++)for(var a=0;a<i;a++)e.indentLine(s,t.indentRight)}return q.moveToFirstNonWhiteSpaceCharacter(e,r[0].anchor)},indentAuto:function(e,t,r){return e.execCommand("indentAuto"),q.moveToFirstNonWhiteSpaceCharacter(e,r[0].anchor)},changeCase:function(e,t,r,n,i){for(var a=e.getSelections(),o=[],l=t.toLower,s=0;s<a.length;s++){var u=a[s],f="";if(l===!0)f=u.toLowerCase();else if(l===!1)f=u.toUpperCase();else for(var p=0;p<u.length;p++){var v=u.charAt(p);f+=se(v)?v.toLowerCase():v.toUpperCase()}o.push(f)}return e.replaceSelections(o),t.shouldMoveCursor?i:!e.state.vim.visualMode&&t.linewise&&r[0].anchor.line+1==r[0].head.line?q.moveToFirstNonWhiteSpaceCharacter(e,n):t.linewise?n:j(r[0].anchor,r[0].head)},yank:function(e,t,r,n){var i=e.state.vim,a=e.getSelection(),o=i.visualMode?j(i.sel.anchor,i.sel.head,r[0].head,r[0].anchor):n;return w.registerController.pushText(t.registerName,"yank",a,t.linewise,i.visualBlock),o}};function jt(e,t){et[e]=t}var ge={jumpListWalk:function(e,t,r){if(!r.visualMode){var n=t.repeat,i=t.forward,a=w.jumpList,o=a.move(e,i?n:-n),l=o?o.find():void 0;l=l||e.getCursor(),e.setCursor(l)}},scroll:function(e,t,r){if(!r.visualMode){var n=t.repeat||1,i=e.defaultTextHeight(),a=e.getScrollInfo().top,o=i*n,l=t.forward?a+o:a-o,s=A(e.getCursor()),u=e.charCoords(s,"local");if(t.forward)l>u.top?(s.line+=(l-u.top)/i,s.line=Math.ceil(s.line),e.setCursor(s),u=e.charCoords(s,"local"),e.scrollTo(null,u.top)):e.scrollTo(null,l);else{var f=l+e.getScrollInfo().clientHeight;f<u.bottom?(s.line-=(u.bottom-f)/i,s.line=Math.floor(s.line),e.setCursor(s),u=e.charCoords(s,"local"),e.scrollTo(null,u.bottom-e.getScrollInfo().clientHeight)):e.scrollTo(null,l)}}},scrollToCursor:function(e,t){var r=e.getCursor().line,n=e.charCoords(new g(r,0),"local"),i=e.getScrollInfo().clientHeight,a=n.top;switch(t.position){case"center":a=n.bottom-i/2;break;case"bottom":var o=new g(r,e.getLine(r).length-1),l=e.charCoords(o,"local"),s=l.bottom-a;a=a-i+s;break}e.scrollTo(null,a)},replayMacro:function(e,t,r){var n=t.selectedCharacter,i=t.repeat,a=w.macroModeState;for(n=="@"?n=a.latestRegister:a.latestRegister=n;i--;)mr(e,r,a,n)},enterMacroRecordMode:function(e,t){var r=w.macroModeState,n=t.selectedCharacter;w.registerController.isValidRegister(n)&&r.enterMacroRecordMode(e,n)},toggleOverwrite:function(e){e.state.overwrite?(e.toggleOverwrite(!1),e.setOption("keyMap","vim-insert"),k.signal(e,"vim-mode-change",{mode:"insert"})):(e.toggleOverwrite(!0),e.setOption("keyMap","vim-replace"),k.signal(e,"vim-mode-change",{mode:"replace"}))},enterInsertMode:function(e,t,r){if(!e.getOption("readOnly")){r.insertMode=!0,r.insertModeRepeat=t&&t.repeat||1;var n=t?t.insertAt:null,i=r.sel,a=t.head||e.getCursor("head"),o=e.listSelections().length;if(n=="eol")a=new g(a.line,I(e,a.line));else if(n=="bol")a=new g(a.line,0);else if(n=="charAfter")a=O(a,0,1);else if(n=="firstNonBlank")a=q.moveToFirstNonWhiteSpaceCharacter(e,a);else if(n=="startOfSelectedArea"){if(!r.visualMode)return;r.visualBlock?(a=new g(Math.min(i.head.line,i.anchor.line),Math.min(i.head.ch,i.anchor.ch)),o=Math.abs(i.head.line-i.anchor.line)+1):i.head.line<i.anchor.line?a=i.head:a=new g(i.anchor.line,0)}else if(n=="endOfSelectedArea"){if(!r.visualMode)return;r.visualBlock?(a=new g(Math.min(i.head.line,i.anchor.line),Math.max(i.head.ch,i.anchor.ch)+1),o=Math.abs(i.head.line-i.anchor.line)+1):i.head.line>=i.anchor.line?a=O(i.head,0,1):a=new g(i.anchor.line,0)}else if(n=="inplace"){if(r.visualMode)return}else n=="lastEdit"&&(a=Ct(e)||a);e.setOption("disableInput",!1),t&&t.replace?(e.toggleOverwrite(!0),e.setOption("keyMap","vim-replace"),k.signal(e,"vim-mode-change",{mode:"replace"})):(e.toggleOverwrite(!1),e.setOption("keyMap","vim-insert"),k.signal(e,"vim-mode-change",{mode:"insert"})),w.macroModeState.isPlaying||(e.on("change",mt),k.on(e.getInputField(),"keydown",At)),r.visualMode&&U(e),it(e,a,o)}},toggleVisualMode:function(e,t,r){var n=t.repeat,i=e.getCursor(),a;r.visualMode?r.visualLine^t.linewise||r.visualBlock^t.blockwise?(r.visualLine=!!t.linewise,r.visualBlock=!!t.blockwise,k.signal(e,"vim-mode-change",{mode:"visual",subMode:r.visualLine?"linewise":r.visualBlock?"blockwise":""}),ae(e)):U(e):(r.visualMode=!0,r.visualLine=!!t.linewise,r.visualBlock=!!t.blockwise,a=F(e,new g(i.line,i.ch+n-1)),r.sel={anchor:i,head:a},k.signal(e,"vim-mode-change",{mode:"visual",subMode:r.visualLine?"linewise":r.visualBlock?"blockwise":""}),ae(e),X(e,r,"<",j(i,a)),X(e,r,">",te(i,a)))},reselectLastSelection:function(e,t,r){var n=r.lastSelection;if(r.visualMode&&at(e,r),n){var i=n.anchorMark.find(),a=n.headMark.find();if(!i||!a)return;r.sel={anchor:i,head:a},r.visualMode=!0,r.visualLine=n.visualLine,r.visualBlock=n.visualBlock,ae(e),X(e,r,"<",j(i,a)),X(e,r,">",te(i,a)),k.signal(e,"vim-mode-change",{mode:"visual",subMode:r.visualLine?"linewise":r.visualBlock?"blockwise":""})}},joinLines:function(e,t,r){var n,i;if(r.visualMode){if(n=e.getCursor("anchor"),i=e.getCursor("head"),T(i,n)){var a=i;i=n,n=a}i.ch=I(e,i.line)-1}else{var o=Math.max(t.repeat,2);n=e.getCursor(),i=F(e,new g(n.line+o-1,1/0))}for(var l=0,s=n.line;s<i.line;s++){l=I(e,n.line);var a=new g(n.line+1,I(e,n.line+1)),u=e.getRange(n,a);u=t.keepSpaces?u.replace(/\n\r?/g,""):u.replace(/\n\s*/g," "),e.replaceRange(u,n,a)}var f=new g(n.line,l);r.visualMode&&U(e,!1),e.setCursor(f)},newLineAndEnterInsertMode:function(e,t,r){r.insertMode=!0;var n=A(e.getCursor());if(n.line===e.firstLine()&&!t.after)e.replaceRange(`
`,new g(e.firstLine(),0)),e.setCursor(e.firstLine(),0);else{n.line=t.after?n.line:n.line-1,n.ch=I(e,n.line),e.setCursor(n);var i=k.commands.newlineAndIndentContinueComment||k.commands.newlineAndIndent;i(e)}this.enterInsertMode(e,{repeat:t.repeat},r)},paste:function(e,t,r){var n=A(e.getCursor()),i=w.registerController.getRegister(t.registerName),a=i.toString();if(a){if(t.matchIndent){var o=e.getOption("tabSize"),l=function(N){var re=N.split(" ").length-1,ce=N.split(" ").length-1;return re*o+ce*1},s=e.getLine(e.getCursor().line),u=l(s.match(/^\s*/)[0]),f=a.replace(/\n$/,""),p=a!==f,v=l(a.match(/^\s*/)[0]),a=f.replace(/^\s*/gm,function(N){var re=u+(l(N)-v);if(re<0)return"";if(e.getOption("indentWithTabs")){var ce=Math.floor(re/o);return Array(ce+1).join(" ")}else return Array(re+1).join(" ")});a+=p?`
`:""}if(t.repeat>1)var a=Array(t.repeat+1).join(a);var h=i.linewise,c=i.blockwise;if(c){a=a.split(`
`),h&&a.pop();for(var y=0;y<a.length;y++)a[y]=a[y]==""?" ":a[y];n.ch+=t.after?1:0,n.ch=Math.min(I(e,n.line),n.ch)}else h?r.visualMode?a=r.visualLine?a.slice(0,-1):`
`+a.slice(0,a.length-1)+`
`:t.after?(a=`
`+a.slice(0,a.length-1),n.ch=I(e,n.line)):n.ch=0:n.ch+=t.after?1:0;var d,C;if(r.visualMode){r.lastPastedText=a;var S,x=qt(e,r),m=x[0],B=x[1],R=e.getSelection(),K=e.listSelections(),b=new Array(K.length).join("1").split("1");r.lastSelection&&(S=r.lastSelection.headMark.find()),w.registerController.unnamedRegister.setText(R),c?(e.replaceSelections(b),B=new g(m.line+a.length-1,m.ch),e.setCursor(m),nt(e,B),e.replaceSelections(a),d=m):r.visualBlock?(e.replaceSelections(b),e.setCursor(m),e.replaceRange(a,m,m),d=m):(e.replaceRange(a,m,B),d=e.posFromIndex(e.indexFromPos(m)+a.length-1)),S&&(r.lastSelection.headMark=e.setBookmark(S)),h&&(d.ch=0)}else if(c){e.setCursor(n);for(var y=0;y<a.length;y++){var M=n.line+y;M>e.lastLine()&&e.replaceRange(`
`,new g(M,0));var P=I(e,M);P<n.ch&&zt(e,M,n.ch)}e.setCursor(n),nt(e,new g(n.line+a.length-1,n.ch)),e.replaceSelections(a),d=n}else e.replaceRange(a,n),h&&t.after?d=new g(n.line+1,$(e.getLine(n.line+1))):h&&!t.after?d=new g(n.line,$(e.getLine(n.line))):!h&&t.after?(C=e.indexFromPos(n),d=e.posFromIndex(C+a.length-1)):(C=e.indexFromPos(n),d=e.posFromIndex(C+a.length));r.visualMode&&U(e,!1),e.setCursor(d)}},undo:function(e,t){e.operation(function(){tt(e,k.commands.undo,t.repeat)(),e.setCursor(e.getCursor("anchor"))})},redo:function(e,t){tt(e,k.commands.redo,t.repeat)()},setRegister:function(e,t,r){r.inputState.registerName=t.selectedCharacter},setMark:function(e,t,r){var n=t.selectedCharacter;X(e,r,n,e.getCursor())},replace:function(e,t,r){var n=t.selectedCharacter,i=e.getCursor(),a,o,l=e.listSelections();if(r.visualMode)i=e.getCursor("start"),o=e.getCursor("end");else{var s=e.getLine(i.line);a=i.ch+t.repeat,a>s.length&&(a=s.length),o=new g(i.line,a)}if(n==`
`)r.visualMode||e.replaceRange("",i,o),(k.commands.newlineAndIndentContinueComment||k.commands.newlineAndIndent)(e);else{var u=e.getRange(i,o);if(u=u.replace(/[^\n]/g,n),r.visualBlock){var f=new Array(e.getOption("tabSize")+1).join(" ");u=e.getSelection(),u=u.replace(/\t/g,f).replace(/[^\n]/g,n).split(`
`),e.replaceSelections(u)}else e.replaceRange(u,i,o);r.visualMode?(i=T(l[0].anchor,l[0].head)?l[0].anchor:l[0].head,e.setCursor(i),U(e,!1)):e.setCursor(O(o,0,-1))}},incrementNumberToken:function(e,t){for(var r=e.getCursor(),n=e.getLine(r.line),i=/(-?)(?:(0x)([\da-f]+)|(0b|0|)(\d+))/gi,a,o,l,s;(a=i.exec(n))!==null&&(o=a.index,l=o+a[0].length,!(r.ch<l)););if(!(!t.backtrack&&l<=r.ch)){if(a){var u=a[2]||a[4],f=a[3]||a[5],p=t.increase?1:-1,v={"0b":2,0:8,"":10,"0x":16}[u.toLowerCase()],h=parseInt(a[1]+f,v)+p*t.repeat;s=h.toString(v);var c=u?new Array(f.length-s.length+1+a[1].length).join("0"):"";s.charAt(0)==="-"?s="-"+u+c+s.substr(1):s=u+c+s;var y=new g(r.line,o),d=new g(r.line,l);e.replaceRange(s,y,d)}else return;e.setCursor(new g(r.line,o+s.length-1))}},repeatLastEdit:function(e,t,r){var n=r.lastEditInputState;if(n){var i=t.repeat;i&&t.repeatIsExplicit?r.lastEditInputState.repeatOverride=i:i=r.lastEditInputState.repeatOverride||i,Tt(e,r,i,!1)}},indent:function(e,t){e.indentLine(e.getCursor().line,t.indentRight)},exitInsertMode:fe};function Wt(e,t){ge[e]=t}function F(e,t){var r=e.state.vim,n=r.insertMode||r.visualMode,i=Math.min(Math.max(e.firstLine(),t.line),e.lastLine()),a=I(e,i)-1+!!n,o=Math.min(Math.max(0,t.ch),a);return new g(i,o)}function ye(e){var t={};for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return t}function O(e,t,r){return typeof t=="object"&&(r=t.ch,t=t.line),new g(e.line+t,e.ch+r)}function Ut(e,t,r,n){for(var i,a=[],o=[],l=0;l<t.length;l++){var s=t[l];r=="insert"&&s.context!="insert"||s.context&&s.context!=r||n.operator&&s.type=="action"||!(i=$t(e,s.keys))||(i=="partial"&&a.push(s),i=="full"&&o.push(s))}return{partial:a.length&&a,full:o.length&&o}}function $t(e,t){if(t.slice(-11)=="<character>"){var r=t.length-11,n=e.slice(0,r),i=t.slice(0,r);return n==i&&e.length>r?"full":i.indexOf(n)==0?"partial":!1}else return e==t?"full":t.indexOf(e)==0?"partial":!1}function Jt(e){var t=/^.*(<[^>]+>)$/.exec(e),r=t?t[1]:e.slice(-1);if(r.length>1)switch(r){case"<CR>":r=`
`;break;case"<Space>":r=" ";break;default:r="";break}return r}function tt(e,t,r){return function(){for(var n=0;n<r;n++)t(e)}}function A(e){return new g(e.line,e.ch)}function V(e,t){return e.ch==t.ch&&e.line==t.line}function T(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))),T(e,t)?e:t}function te(e,t){return arguments.length>2&&(t=te.apply(void 0,Array.prototype.slice.call(arguments,1))),T(e,t)?t:e}function rt(e,t,r){var n=T(e,t),i=T(t,r);return n&&i}function I(e,t){return e.getLine(t).length}function Be(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function Qt(e){return e.replace(/([.?*+$\[\]\/\\(){}|\-])/g,"\\$1")}function zt(e,t,r){var n=I(e,t),i=new Array(r-n+1).join(" ");e.setCursor(new g(t,n)),e.replaceRange(i,e.getCursor())}function nt(e,t){var r=[],n=e.listSelections(),i=A(e.clipPos(t)),a=!V(t,i),o=e.getCursor("head"),l=Gt(n,o),s=V(n[l].head,n[l].anchor),u=n.length-1,f=u-l>l?u:0,p=n[f].anchor,v=Math.min(p.line,i.line),h=Math.max(p.line,i.line),c=p.ch,y=i.ch,d=n[f].head.ch-c,C=y-c;d>0&&C<=0?(c++,a||y--):d<0&&C>=0?(c--,s||y++):d<0&&C==-1&&(c--,y++);for(var S=v;S<=h;S++){var x={anchor:new g(S,c),head:new g(S,y)};r.push(x)}return e.setSelections(r),t.ch=y,p.ch=c,p}function it(e,t,r){for(var n=[],i=0;i<r;i++){var a=O(t,i,0);n.push({anchor:a,head:a})}e.setSelections(n,0)}function Gt(e,t,r){for(var n=0;n<e.length;n++){var i=r!="head"&&V(e[n].anchor,t),a=r!="anchor"&&V(e[n].head,t);if(i||a)return n}return-1}function qt(e,t){var r=t.lastSelection,n=function(){var a=e.listSelections(),o=a[0],l=a[a.length-1],s=T(o.anchor,o.head)?o.anchor:o.head,u=T(l.anchor,l.head)?l.head:l.anchor;return[s,u]},i=function(){var a=e.getCursor(),o=e.getCursor(),l=r.visualBlock;if(l){var s=l.width,u=l.height;o=new g(a.line+u,a.ch+s);for(var f=[],p=a.line;p<o.line;p++){var v=new g(p,a.ch),h=new g(p,o.ch),c={anchor:v,head:h};f.push(c)}e.setSelections(f)}else{var y=r.anchorMark.find(),d=r.headMark.find(),C=d.line-y.line,S=d.ch-y.ch;o={line:o.line+C,ch:C?o.ch:S+o.ch},r.visualLine&&(a=new g(a.line,0),o=new g(o.line,I(e,o.line))),e.setSelection(a,o)}return[a,o]};return t.visualMode?n():i()}function at(e,t){var r=t.sel.anchor,n=t.sel.head;t.lastPastedText&&(n=e.posFromIndex(e.indexFromPos(r)+t.lastPastedText.length),t.lastPastedText=null),t.lastSelection={anchorMark:e.setBookmark(r),headMark:e.setBookmark(n),anchor:A(r),head:A(n),visualMode:t.visualMode,visualLine:t.visualLine,visualBlock:t.visualBlock}}function Xt(e,t,r){var n=e.state.vim.sel,i=n.head,a=n.anchor,o;return T(r,t)&&(o=r,r=t,t=o),T(i,a)?(i=j(t,i),a=te(a,r)):(a=j(t,a),i=te(i,r),i=O(i,0,-1),i.ch==-1&&i.line!=e.firstLine()&&(i=new g(i.line-1,I(e,i.line-1)))),[a,i]}function ae(e,t,i){var n=e.state.vim;t=t||n.sel;var i=i||n.visualLine?"line":n.visualBlock?"block":"char",a=Ee(e,t,i);e.setSelections(a.ranges,a.primary)}function Ee(e,t,r,n){var i=A(t.head),a=A(t.anchor);if(r=="char"){var o=!n&&!T(t.head,t.anchor)?1:0,l=T(t.head,t.anchor)?1:0;return i=O(t.head,0,o),a=O(t.anchor,0,l),{ranges:[{anchor:a,head:i}],primary:0}}else if(r=="line"){if(T(t.head,t.anchor))i.ch=0,a.ch=I(e,a.line);else{a.ch=0;var s=e.lastLine();i.line>s&&(i.line=s),i.ch=I(e,i.line)}return{ranges:[{anchor:a,head:i}],primary:0}}else if(r=="block"){var u=Math.min(a.line,i.line),f=a.ch,p=Math.max(a.line,i.line),v=i.ch;f<v?v+=1:f+=1;for(var h=p-u+1,c=i.line==u?0:h-1,y=[],d=0;d<h;d++)y.push({anchor:new g(u+d,f),head:new g(u+d,v)});return{ranges:y,primary:c}}}function Yt(e){var t=e.getCursor("head");return e.getSelection().length==1&&(t=j(t,e.getCursor("anchor"))),t}function U(e,t){var r=e.state.vim;t!==!1&&e.setCursor(F(e,r.sel.head)),at(e,r),r.visualMode=!1,r.visualLine=!1,r.visualBlock=!1,r.insertMode||k.signal(e,"vim-mode-change",{mode:"normal"})}function Zt(e,t,r){var n=e.getRange(t,r);if(/\n\s*$/.test(n)){var i=n.split(`
`);i.pop();for(var a,a=i.pop();i.length>0&&a&&D(a);a=i.pop())r.line--,r.ch=0;a?(r.line--,r.ch=I(e,r.line)):r.ch=0}}function er(e,t,r){t.ch=0,r.ch=0,r.line++}function $(e){if(!e)return 0;var t=e.search(/\S/);return t==-1?e.length:t}function ke(e,t,r,n,i){for(var a=Yt(e),o=e.getLine(a.line),l=a.ch,s=i?he[0]:Me[0];!s(o.charAt(l));)if(l++,l>=o.length)return null;n?s=Me[0]:(s=he[0],s(o.charAt(l))||(s=he[1]));for(var u=l,f=l;s(o.charAt(u))&&u<o.length;)u++;for(;s(o.charAt(f))&&f>=0;)f--;if(f++,t){for(var p=u;/\s/.test(o.charAt(u))&&u<o.length;)u++;if(p==u){for(var v=f;/\s/.test(o.charAt(f-1))&&f>0;)f--;f||(f=v)}}return{start:new g(a.line,f),end:new g(a.line,u)}}function tr(e,t,r){var n=t;if(!k.findMatchingTag||!k.findEnclosingTag)return{start:n,end:n};var i=k.findMatchingTag(e,t)||k.findEnclosingTag(e,t);return!i||!i.open||!i.close?{start:n,end:n}:r?{start:i.open.from,end:i.close.to}:{start:i.open.to,end:i.close.from}}function ot(e,t,r){V(t,r)||w.jumpList.add(e,t,r)}function st(e,t){w.lastCharacterSearch.increment=e,w.lastCharacterSearch.forward=t.forward,w.lastCharacterSearch.selectedCharacter=t.selectedCharacter}var rr={"(":"bracket",")":"bracket","{":"bracket","}":"bracket","[":"section","]":"section","*":"comment","/":"comment",m:"method",M:"method","#":"preprocess"},lt={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 e.index===0&&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=e.symb==="m"?"{":"}",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(t==="endif"){if(e.forward&&e.depth===0)return!0;e.depth++}else if(t==="if"){if(!e.forward&&e.depth===0)return!0;e.depth--}if(t==="else"&&e.depth===0)return!0}return!1}}};function nr(e,t,r,n){var i=A(e.getCursor()),a=r?1:-1,o=r?e.lineCount():-1,l=i.ch,s=i.line,u=e.getLine(s),f={lineText:u,nextCh:u.charAt(l),lastCh:null,index:l,symb:n,reverseSymb:(r?{")":"(","}":"{"}:{"(":")","{":"}"})[n],forward:r,depth:0,curMoveThrough:!1},p=rr[n];if(!p)return i;var v=lt[p].init,h=lt[p].isComplete;for(v&&v(f);s!==o&&t;){if(f.index+=a,f.nextCh=f.lineText.charAt(f.index),!f.nextCh){if(s+=a,f.lineText=e.getLine(s)||"",a>0)f.index=0;else{var c=f.lineText.length;f.index=c>0?c-1:0}f.nextCh=f.lineText.charAt(f.index)}h(f)&&(i.line=s,i.ch=f.index,t--)}return f.nextCh||f.curMoveThrough?new g(s,f.index):i}function ir(e,t,r,n,i){var a=t.line,o=t.ch,l=e.getLine(a),s=r?1:-1,u=n?Me:he;if(i&&l==""){if(a+=s,l=e.getLine(a),!Le(e,a))return null;o=r?0:l.length}for(;;){if(i&&l=="")return{from:0,to:0,line:a};for(var f=s>0?l.length:-1,p=f,v=f;o!=f;){for(var h=!1,c=0;c<u.length&&!h;++c)if(u[c](l.charAt(o))){for(p=o;o!=f&&u[c](l.charAt(o));)o+=s;if(v=o,h=p!=v,p==t.ch&&a==t.line&&v==p+s)continue;return{from:Math.min(p,v+1),to:Math.max(p,v),line:a}}h||(o+=s)}if(a+=s,!Le(e,a))return null;l=e.getLine(a),o=s>0?0:l.length}}function ar(e,t,r,n,i,a){var o=A(t),l=[];(n&&!i||!n&&i)&&r++;for(var s=!(n&&i),u=0;u<r;u++){var f=ir(e,t,n,a,s);if(!f){var p=I(e,e.lastLine());l.push(n?{line:e.lastLine(),from:p,to:p}:{line:0,from:0,to:0});break}l.push(f),t=new g(f.line,n?f.to-1:f.from)}var v=l.length!=r,h=l[0],c=l.pop();return n&&!i?(!v&&(h.from!=o.ch||h.line!=o.line)&&(c=l.pop()),new g(c.line,c.from)):n&&i?new g(c.line,c.to-1):!n&&i?(!v&&(h.to!=o.ch||h.line!=o.line)&&(c=l.pop()),new g(c.line,c.to)):new g(c.line,c.from)}function ut(e,t,r,n,i){var a=t,o=new g(a.line+r.repeat-1,1/0),l=e.clipPos(o);return l.ch--,i||(n.lastHPos=1/0,n.lastHSPos=e.charCoords(l,"div").left),o}function Oe(e,t,r,n){for(var i=e.getCursor(),a=i.ch,o,l=0;l<t;l++){var s=e.getLine(i.line);if(o=sr(a,s,n,r,!0),o==-1)return null;a=o}return new g(e.getCursor().line,o)}function or(e,t){var r=e.getCursor().line;return F(e,new g(r,t-1))}function X(e,t,r,n){Te(r,Nt)&&(t.marks[r]&&t.marks[r].clear(),t.marks[r]=e.setBookmark(n))}function sr(e,t,r,n,i){var a;return n?(a=t.indexOf(r,e+1),a!=-1&&!i&&(a-=1)):(a=t.lastIndexOf(r,e-1),a!=-1&&!i&&(a+=1)),a}function ft(e,t,r,n,i){var a=t.line,o=e.firstLine(),l=e.lastLine(),s,u,f=a;function p(d){return!e.getLine(d)}function v(d,C,S){return S?p(d)!=p(d+C):!p(d)&&p(d+C)}if(n){for(;o<=f&&f<=l&&r>0;)v(f,n)&&r--,f+=n;return new g(f,0)}var h=e.state.vim;if(h.visualLine&&v(a,1,!0)){var c=h.sel.anchor;v(c.line,-1,!0)&&(!i||c.line!=a)&&(a+=1)}var y=p(a);for(f=a;f<=l&&r;f++)v(f,1,!0)&&(!i||p(f)!=y)&&r--;for(u=new g(f,0),f>l&&!y?y=!0:i=!1,f=a;f>o&&!((!i||p(f)==y||f==a)&&v(f,-1,!0));f--);return s=new g(f,0),{start:s,end:u}}function ct(e,t,r,n,i){function a(u){u.pos+u.dir<0||u.pos+u.dir>=u.line.length?u.line=null:u.pos+=u.dir}function o(u,f,p,v){var h=u.getLine(f),c={line:h,ln:f,pos:p,dir:v};if(c.line==="")return{ln:c.ln,pos:c.pos};var y=c.pos;for(a(c);c.line!==null;){if(y=c.pos,ie(c.line[c.pos]))if(i){for(a(c);c.line!==null&&D(c.line[c.pos]);)y=c.pos,a(c);return{ln:c.ln,pos:y+1}}else return{ln:c.ln,pos:c.pos+1};a(c)}return{ln:c.ln,pos:y+1}}function l(u,f,p,v){var h=u.getLine(f),c={line:h,ln:f,pos:p,dir:v};if(c.line==="")return{ln:c.ln,pos:c.pos};var y=c.pos;for(a(c);c.line!==null;){if(!D(c.line[c.pos])&&!ie(c.line[c.pos]))y=c.pos;else if(ie(c.line[c.pos]))return i?D(c.line[c.pos+1])?{ln:c.ln,pos:c.pos+1}:{ln:c.ln,pos:y}:{ln:c.ln,pos:y};a(c)}return c.line=h,i&&D(c.line[c.pos])?{ln:c.ln,pos:c.pos}:{ln:c.ln,pos:y}}for(var s={ln:t.line,pos:t.ch};r>0;)n<0?s=l(e,s.ln,s.pos,n):s=o(e,s.ln,s.pos,n),r--;return new g(s.ln,s.pos)}function lr(e,t,r,n){function i(s,u){if(u.pos+u.dir<0||u.pos+u.dir>=u.line.length){if(u.ln+=u.dir,!Le(s,u.ln)){u.line=null,u.ln=null,u.pos=null;return}u.line=s.getLine(u.ln),u.pos=u.dir>0?0:u.line.length-1}else u.pos+=u.dir}function a(s,u,f,p){var d=s.getLine(u),v=d==="",h={line:d,ln:u,pos:f,dir:p},c={ln:h.ln,pos:h.pos},y=h.line==="";for(i(s,h);h.line!==null;){if(c.ln=h.ln,c.pos=h.pos,h.line===""&&!y)return{ln:h.ln,pos:h.pos};if(v&&h.line!==""&&!D(h.line[h.pos]))return{ln:h.ln,pos:h.pos};ie(h.line[h.pos])&&!v&&(h.pos===h.line.length-1||D(h.line[h.pos+1]))&&(v=!0),i(s,h)}var d=s.getLine(c.ln);c.pos=0;for(var C=d.length-1;C>=0;--C)if(!D(d[C])){c.pos=C;break}return c}function o(s,u,f,p){var y=s.getLine(u),v={line:y,ln:u,pos:f,dir:p},h={ln:v.ln,pos:null},c=v.line==="";for(i(s,v);v.line!==null;){if(v.line===""&&!c)return h.pos!==null?h:{ln:v.ln,pos:v.pos};if(ie(v.line[v.pos])&&h.pos!==null&&!(v.ln===h.ln&&v.pos+1===h.pos))return h;v.line!==""&&!D(v.line[v.pos])&&(c=!1,h={ln:v.ln,pos:v.pos}),i(s,v)}var y=s.getLine(h.ln);h.pos=0;for(var d=0;d<y.length;++d)if(!D(y[d])){h.pos=d;break}return h}for(var l={ln:t.line,pos:t.ch};r>0;)n<0?l=o(e,l.ln,l.pos,n):l=a(e,l.ln,l.pos,n),r--;return new g(l.ln,l.pos)}function ur(e,t,r,n){var i=t,a,o,l={"(":/[()]/,")":/[()]/,"[":/[[\]]/,"]":/[[\]]/,"{":/[{}]/,"}":/[{}]/,"<":/[<>]/,">":/[<>]/}[r],s={"(":"(",")":"(","[":"[","]":"[","{":"{","}":"{","<":"<",">":"<"}[r],u=e.getLine(i.line).charAt(i.ch),f=u===s?1:0;if(a=e.scanForBracket(new g(i.line,i.ch+f),-1,void 0,{bracketRegex:l}),o=e.scanForBracket(new g(i.line,i.ch+f),1,void 0,{bracketRegex:l}),!a||!o)return{start:i,end:i};if(a=a.pos,o=o.pos,a.line==o.line&&a.ch>o.ch||a.line>o.line){var p=a;a=o,o=p}return n?o.ch+=1:a.ch+=1,{start:a,end:o}}function fr(e,t,r,n){var i=A(t),a=e.getLine(i.line),o=a.split(""),l,s,u,f,p=o.indexOf(r);if(i.ch<p?i.ch=p:p<i.ch&&o[i.ch]==r&&(s=i.ch,--i.ch),o[i.ch]==r&&!s)l=i.ch+1;else for(u=i.ch;u>-1&&!l;u--)o[u]==r&&(l=u+1);if(l&&!s)for(u=l,f=o.length;u<f&&!s;u++)o[u]==r&&(s=u);return!l||!s?{start:i,end:i}:(n&&(--l,++s),{start:new g(i.line,l),end:new g(i.line,s)})}pe("pcre",!0,"boolean");function ht(){}ht.prototype={getQuery:function(){return w.query},setQuery:function(e){w.query=e},getOverlay:function(){return this.searchOverlay},setOverlay:function(e){this.searchOverlay=e},isReversed:function(){return w.isReversed},setReversed:function(e){w.isReversed=e},getScrollbarAnnotate:function(){return this.annotate},setScrollbarAnnotate:function(e){this.annotate=e}};function J(e){var t=e.state.vim;return t.searchState_||(t.searchState_=new ht)}function cr(e){return pt(e,"/")}function hr(e){return vt(e,"/")}function pt(e,t){var r=vt(e,t)||[];if(!r.length)return[];var n=[];if(r[0]===0){for(var i=0;i<r.length;i++)typeof r[i]=="number"&&n.push(e.substring(r[i]+1,r[i+1]));return n}}function vt(e,t){t||(t="/");for(var r=!1,n=[],i=0;i<e.length;i++){var a=e.charAt(i);!r&&a==t&&n.push(i),r=!r&&a=="\\"}return n}function pr(e){for(var t="|(){",r="}",n=!1,i=[],a=-1;a<e.length;a++){var o=e.charAt(a)||"",l=e.charAt(a+1)||"",s=l&&t.indexOf(l)!=-1;n?((o!=="\\"||!s)&&i.push(o),n=!1):o==="\\"?(n=!0,l&&r.indexOf(l)!=-1&&(s=!0),(!s||l==="\\")&&i.push(o)):(i.push(o),s&&l!=="\\"&&i.push("\\"))}return i.join("")}var dt={"\\n":`
`,"\\r":"\r","\\t":" "};function vr(e){for(var t=!1,r=[],n=-1;n<e.length;n++){var i=e.charAt(n)||"",a=e.charAt(n+1)||"";dt[i+a]?(r.push(dt[i+a]),n++):t?(r.push(i),t=!1):i==="\\"?(t=!0,Ht(a)||a==="$"?r.push("$"):a!=="/"&&a!=="\\"&&r.push("\\")):(i==="$"&&r.push("$"),r.push(i),a==="/"&&r.push("\\"))}return r.join("")}var gt={"\\/":"/","\\\\":"\\","\\n":`
`,"\\r":"\r","\\t":" ","\\&":"&"};function dr(e){for(var t=new k.StringStream(e),r=[];!t.eol();){for(;t.peek()&&t.peek()!="\\";)r.push(t.next());var n=!1;for(var i in gt)if(t.match(i,!0)){n=!0,r.push(gt[i]);break}n||r.push(t.next())}return r.join("")}function gr(e,t,r){var n=w.registerController.getRegister("/");if(n.setText(e),e instanceof RegExp)return e;var i=hr(e),a,o;if(!i.length)a=e;else{a=e.substring(0,i[0]);var l=e.substring(i[0]);o=l.indexOf("i")!=-1}if(!a)return null;ee("pcre")||(a=pr(a)),r&&(t=/^[^A-Z]*$/.test(a));var s=new RegExp(a,t||o?"im":"m");return s}function Z(e){typeof e=="string"&&(e=document.createElement(e));for(var t,r=1;r<arguments.length;r++)if(t=arguments[r])if(typeof t!="object"&&(t=document.createTextNode(t)),t.nodeType)e.appendChild(t);else for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(n[0]==="$"?e.style[n.slice(1)]=t[n]:e.setAttribute(n,t[n]));return e}function L(e,t){var r=Z("div",{$color:"red",$whiteSpace:"pre",class:"cm-vim-message"},t);e.openNotification?e.openNotification(r,{bottom:!0,duration:5e3}):alert(r.innerText)}function yr(e,t){return Z(document.createDocumentFragment(),Z("span",{$fontFamily:"monospace",$whiteSpace:"pre"},e,Z("input",{type:"text",autocorrect:"off",autocapitalize:"off",spellcheck:"false"})),t&&Z("span",{$color:"#888"},t))}function we(e,t){var r=yr(t.prefix,t.desc);if(e.openDialog)e.openDialog(r,t.onClose,{onKeyDown:t.onKeyDown,onKeyUp:t.onKeyUp,bottom:!0,selectValueOnOpen:!1,value:t.value});else{var n="";typeof t.prefix!="string"&&t.prefix&&(n+=t.prefix.textContent),t.desc&&(n+=" "+t.desc),t.onClose(prompt(n,""))}}function kr(e,t){if(e instanceof RegExp&&t instanceof RegExp){for(var r=["global","multiline","ignoreCase","source"],n=0;n<r.length;n++){var i=r[n];if(e[i]!==t[i])return!1}return!0}return!1}function ue(e,t,r,n){if(t){var i=J(e),a=gr(t,!!r,!!n);if(a)return yt(e,a),kr(a,i.getQuery())||i.setQuery(a),a}}function wr(e){if(e.source.charAt(0)=="^")var t=!0;return{token:function(r){if(t&&!r.sol()){r.skipToEnd();return}var n=r.match(e,!1);if(n)return n[0].length==0?(r.next(),"searching"):!r.sol()&&(r.backUp(1),!e.exec(r.next()+n[0]))?(r.next(),null):(r.match(e),"searching");for(;!r.eol()&&(r.next(),!r.match(e,!1)););},query:e}}var Ce=0;function yt(e,t){clearTimeout(Ce),Ce=setTimeout(function(){if(e.state.vim){var r=J(e),n=r.getOverlay();(!n||t!=n.query)&&(n&&e.removeOverlay(n),n=wr(t),e.addOverlay(n),e.showMatchesOnScrollbar&&(r.getScrollbarAnnotate()&&r.getScrollbarAnnotate().clear(),r.setScrollbarAnnotate(e.showMatchesOnScrollbar(t))),r.setOverlay(n))}},50)}function kt(e,t,r,n){return n===void 0&&(n=1),e.operation(function(){for(var i=e.getCursor(),a=e.getSearchCursor(r,i),o=0;o<n;o++){var l=a.find(t);if(o==0&&l&&V(a.from(),i)){var s=t?a.from():a.to();l=a.find(t),l&&!l[0]&&V(a.from(),s)&&e.getLine(s.line).length==s.ch&&(l=a.find(t))}if(!l&&(a=e.getSearchCursor(r,t?new g(e.lastLine()):new g(e.firstLine(),0)),!a.find(t)))return}return a.from()})}function Cr(e,t,r,n,i){return n===void 0&&(n=1),e.operation(function(){var a=e.getCursor(),o=e.getSearchCursor(r,a),l=o.find(!t);!i.visualMode&&l&&V(o.from(),a)&&o.find(!t);for(var s=0;s<n;s++)if(l=o.find(t),!l&&(o=e.getSearchCursor(r,t?new g(e.lastLine()):new g(e.firstLine(),0)),!o.find(t)))return;return[o.from(),o.to()]})}function Ke(e){var t=J(e);e.removeOverlay(J(e).getOverlay()),t.setOverlay(null),t.getScrollbarAnnotate()&&(t.getScrollbarAnnotate().clear(),t.setScrollbarAnnotate(null))}function xr(e,t,r){return typeof e!="number"&&(e=e.line),t instanceof Array?Te(e,t):typeof r=="number"?e>=t&&e<=r:e==t}function Pe(e){var t=e.getScrollInfo(),r=6,n=10,i=e.coordsChar({left:0,top:r+t.top},"local"),a=t.clientHeight-n+t.top,o=e.coordsChar({left:0,top:a},"local");return{top:i.line,bottom:o.line}}function wt(e,t,r){if(r=="'"||r=="`")return w.jumpList.find(e,-1)||new g(0,0);if(r==".")return Ct(e);var n=t.marks[r];return n&&n.find()}function Ct(e){for(var t=e.doc.history.done,r=t.length;r--;)if(t[r].changes)return A(t[r].changes[0].to)}var xt=function(){this.buildCommandMap_()};xt.prototype={processCommand:function(e,t,r){var n=this;e.operation(function(){e.curOp.isVimOp=!0,n._processCommand(e,t,r)})},_processCommand:function(e,t,r){var n=e.state.vim,i=w.registerController.getRegister(":"),a=i.toString();n.visualMode&&U(e);var o=new k.StringStream(t);i.setText(t);var l=r||{};l.input=t;try{this.parseInput_(e,o,l)}catch(p){throw L(e,p.toString()),p}var s,u;if(!l.commandName)l.line!==void 0&&(u="move");else if(s=this.matchCommand_(l.commandName),s){if(u=s.name,s.excludeFromCommandHistory&&i.setText(a),this.parseCommandArgs_(o,l,s),s.type=="exToKey"){for(var f=0;f<s.toKeys.length;f++)G.handleKey(e,s.toKeys[f],"mapping");return}else if(s.type=="exToEx"){this.processCommand(e,s.toInput);return}}if(!u){L(e,'Not an editor command ":'+t+'"');return}try{St[u](e,l),(!s||!s.possiblyAsync)&&l.callback&&l.callback()}catch(p){throw L(e,p.toString()),p}},parseInput_:function(e,t,r){t.eatWhile(":"),t.eat("%")?(r.line=e.firstLine(),r.lineEnd=e.lastLine()):(r.line=this.parseLineSpec_(e,t),r.line!==void 0&&t.eat(",")&&(r.lineEnd=this.parseLineSpec_(e,t)));var n=t.match(/^(\w+|!!|@@|[!#&*<=>@~])/);return n?r.commandName=n[1]:r.commandName=t.match(/.*/)[0],r},parseLineSpec_:function(e,t){var r=t.match(/^(\d+)/);if(r)return parseInt(r[1],10)-1;switch(t.next()){case".":return this.parseLineSpecOffset_(t,e.getCursor().line);case"$":return this.parseLineSpecOffset_(t,e.lastLine());case"'":var n=t.next(),i=wt(e,e.state.vim,n);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:t.backUp(1);return}},parseLineSpecOffset_:function(e,t){var r=e.match(/^([+-])?(\d+)/);if(r){var n=parseInt(r[2],10);r[1]=="-"?t-=n:t+=n}return t},parseCommandArgs_:function(e,t,r){if(!e.eol()){t.argString=e.match(/.*/)[0];var n=r.argDelimiter||/\s+/,i=Be(t.argString).split(n);i.length&&i[0]&&(t.args=i)}},matchCommand_:function(e){for(var t=e.length;t>0;t--){var r=e.substring(0,t);if(this.commandMap_[r]){var n=this.commandMap_[r];if(n.name.indexOf(e)===0)return n}}return null},buildCommandMap_:function(){this.commandMap_={};for(var e=0;e<Fe.length;e++){var t=Fe[e],r=t.shortName||t.name;this.commandMap_[r]=t}},map:function(e,t,r){if(e!=":"&&e.charAt(0)==":"){if(r)throw Error("Mode not supported for ex mappings");var n=e.substring(1);t!=":"&&t.charAt(0)==":"?this.commandMap_[n]={name:n,type:"exToEx",toInput:t.substring(1),user:!0}:this.commandMap_[n]={name:n,type:"exToKey",toKeys:t,user:!0}}else if(t!=":"&&t.charAt(0)==":"){var i={keys:e,type:"keyToEx",exArgs:{input:t.substring(1)}};r&&(i.context=r),E.unshift(i)}else{var i={keys:e,type:"keyToKey",toKeys:t};r&&(i.context=r),E.unshift(i)}},unmap:function(e,t){if(e!=":"&&e.charAt(0)==":"){if(t)throw Error("Mode not supported for ex mappings");var r=e.substring(1);if(this.commandMap_[r]&&this.commandMap_[r].user)return delete this.commandMap_[r],!0}else for(var n=e,i=0;i<E.length;i++)if(n==E[i].keys&&E[i].context===t)return E.splice(i,1),!0}};var St={colorscheme:function(e,t){if(!t.args||t.args.length<1){L(e,e.getOption("theme"));return}e.setOption("theme",t.args[0])},map:function(e,t,r){var n=t.args;if(!n||n.length<2){e&&L(e,"Invalid mapping: "+t.input);return}Q.map(n[0],n[1],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")},unmap:function(e,t,r){var n=t.args;(!n||n.length<1||!Q.unmap(n[0],r))&&e&&L(e,"No such mapping: "+t.input)},move:function(e,t){Y.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 r=t.args,n=t.setCfg||{};if(!r||r.length<1){e&&L(e,"Invalid mapping: "+t.input);return}var i=r[0].split("="),a=i[0],o=i[1],l=!1;if(a.charAt(a.length-1)=="?"){if(o)throw Error("Trailing characters: "+t.argString);a=a.substring(0,a.length-1),l=!0}o===void 0&&a.substring(0,2)=="no"&&(a=a.substring(2),o=!1);var s=z[a]&&z[a].type=="boolean";if(s&&o==null&&(o=!0),!s&&o===void 0||l){var u=ee(a,e,n);u instanceof Error?L(e,u.message):u===!0||u===!1?L(e," "+(u?"":"no")+a):L(e," "+a+"="+u)}else{var f=Re(a,o,e,n);f instanceof Error&&L(e,f.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 r=t.args,n=w.registerController.registers,i=`----------Registers----------
`;if(r){var a;r=r.join("");for(var l=0;l<r.length;l++)if(a=r.charAt(l),!!w.registerController.isValidRegister(a)){var s=n[a]||new W;i+='"'+a+" "+s.toString()+`
`}}else for(var a in n){var o=n[a].toString();o.length&&(i+='"'+a+" "+o+`
`)}L(e,i)},sort:function(e,t){var r,n,i,a,o;function l(){if(t.argString){var b=new k.StringStream(t.argString);if(b.eat("!")&&(r=!0),b.eol())return;if(!b.eatSpace())return"Invalid arguments";var M=b.match(/([dinuox]+)?\s*(\/.+\/)?\s*/);if(!M&&!b.eol())return"Invalid arguments";if(M[1]){n=M[1].indexOf("i")!=-1,i=M[1].indexOf("u")!=-1;var P=M[1].indexOf("d")!=-1||M[1].indexOf("n")!=-1&&1,H=M[1].indexOf("x")!=-1&&1,N=M[1].indexOf("o")!=-1&&1;if(P+H+N>1)return"Invalid arguments";a=P&&"decimal"||H&&"hex"||N&&"octal"}M[2]&&(o=new RegExp(M[2].substr(1,M[2].length-2),n?"i":""))}}var s=l();if(s){L(e,s+": "+t.argString);return}var u=t.line||e.firstLine(),f=t.lineEnd||t.line||e.lastLine();if(u==f)return;var p=new g(u,0),v=new g(f,I(e,f)),h=e.getRange(p,v).split(`
`),c=o||(a=="decimal"?/(-?)([\d]+)/:a=="hex"?/(-?)(?:0x)?([0-9a-f]+)/i:a=="octal"?/([0-7]+)/:null),y=a=="decimal"?10:a=="hex"?16:a=="octal"?8:null,d=[],C=[];if(a||o)for(var S=0;S<h.length;S++){var x=o?h[S].match(o):null;x&&x[0]!=""?d.push(x):!o&&c.exec(h[S])?d.push(h[S]):C.push(h[S])}else C=h;function m(b,M){if(r){var P;P=b,b=M,M=P}n&&(b=b.toLowerCase(),M=M.toLowerCase());var H=a&&c.exec(b),N=a&&c.exec(M);return H?(H=parseInt((H[1]+H[2]).toLowerCase(),y),N=parseInt((N[1]+N[2]).toLowerCase(),y),H-N):b<M?-1:1}function B(b,M){if(r){var P;P=b,b=M,M=P}return n&&(b[0]=b[0].toLowerCase(),M[0]=M[0].toLowerCase()),b[0]<M[0]?-1:1}if(d.sort(o?B:m),o)for(var S=0;S<d.length;S++)d[S]=d[S].input;else a||C.sort(m);if(h=r?d.concat(C):C.concat(d),i){var R=h,K;h=[];for(var S=0;S<R.length;S++)R[S]!=K&&h.push(R[S]),K=R[S]}e.replaceRange(h.join(`
`),p,v)},vglobal:function(e,t){this.global(e,t)},global:function(e,t){var r=t.argString;if(!r){L(e,"Regular Expression missing from global");return}var n=t.commandName[0]==="v",i=t.line!==void 0?t.line:e.firstLine(),a=t.lineEnd||t.line||e.lastLine(),o=cr(r),l=r,s;if(o.length&&(l=o[0],s=o.slice(1,o.length).join("/")),l)try{ue(e,l,!0,!0)}catch{L(e,"Invalid regex: "+l);return}for(var u=J(e).getQuery(),f=[],p=i;p<=a;p++){var v=e.getLineHandle(p),h=u.test(v.text);h!==n&&f.push(s?v:v.text)}if(!s){L(e,f.join(`
`));return}var c=0,y=function(){if(c<f.length){var d=f[c++],C=e.getLineNumber(d);if(C==null){y();return}var S=C+1+s;Q.processCommand(e,S,{callback:y})}};y()},substitute:function(e,t){if(!e.getSearchCursor)throw new Error("Search feature not available. Requires searchcursor.js or any other getSearchCursor implementation.");var r=t.argString,n=r?pt(r,r[0]):[],i,a="",o,l,s,u=!1,f=!1;if(n.length)i=n[0],ee("pcre")&&i!==""&&(i=new RegExp(i).source),a=n[1],a!==void 0&&(ee("pcre")?a=dr(a.replace(/([^\\])&/g,"$1$$&")):a=vr(a),w.lastSubstituteReplacePart=a),o=n[2]?n[2].split(" "):[];else if(r&&r.length){L(e,"Substitutions should be of the form :s/pattern/replace/");return}if(o&&(l=o[0],s=parseInt(o[1]),l&&(l.indexOf("c")!=-1&&(u=!0),l.indexOf("g")!=-1&&(f=!0),ee("pcre")?i=i+"/"+l:i=i.replace(/\//g,"\\/")+"/"+l)),i)try{ue(e,i,!0,!0)}catch{L(e,"Invalid regex: "+i);return}if(a=a||w.lastSubstituteReplacePart,a===void 0){L(e,"No previous substitute regular expression");return}var p=J(e),v=p.getQuery(),h=t.line!==void 0?t.line:e.getCursor().line,c=t.lineEnd||h;h==e.firstLine()&&c==e.lastLine()&&(c=1/0),s&&(h=c,c=h+s-1);var y=F(e,new g(h,0)),d=e.getSearchCursor(v,y);Sr(e,u,f,h,c,d,v,a,t.callback)},redo:k.commands.redo,undo:k.commands.undo,write:function(e){k.commands.save?k.commands.save(e):e.save&&e.save()},nohlsearch:function(e){Ke(e)},yank:function(e){var t=A(e.getCursor()),r=t.line,n=e.getLine(r);w.registerController.pushText("0","yank",n,!0,!0)},delmarks:function(e,t){if(!t.argString||!Be(t.argString)){L(e,"Argument required");return}for(var r=e.state.vim,n=new k.StringStream(Be(t.argString));!n.eol();){n.eatSpace();var i=n.pos;if(!n.match(/[a-zA-Z]/,!1)){L(e,"Invalid argument: "+t.argString.substring(i));return}var a=n.next();if(n.match("-",!0)){if(!n.match(/[a-zA-Z]/,!1)){L(e,"Invalid argument: "+t.argString.substring(i));return}var o=a,l=n.next();if(Ae(o)&&Ae(l)||se(o)&&se(l)){var s=o.charCodeAt(0),u=l.charCodeAt(0);if(s>=u){L(e,"Invalid argument: "+t.argString.substring(i));return}for(var f=0;f<=u-s;f++){var p=String.fromCharCode(s+f);delete r.marks[p]}}else{L(e,"Invalid argument: "+o+"-");return}}else delete r.marks[a]}}},Q=new xt;function Sr(e,t,r,n,i,a,o,l,s){e.state.vim.exMode=!0;var u=!1,f,p,v;function h(){e.operation(function(){for(;!u;)c(),d();C()})}function c(){var x=e.getRange(a.from(),a.to()),m=x.replace(o,l),B=a.to().line;a.replace(m),p=a.to().line,i+=p-B,v=p<B}function y(){var x=f&&A(a.to()),m=a.findNext();return m&&!m[0]&&x&&V(a.from(),x)&&(m=a.findNext()),m}function d(){for(;y()&&xr(a.from(),n,i);)if(!(!r&&a.from().line==p&&!v)){e.scrollIntoView(a.from(),30),e.setSelection(a.from(),a.to()),f=a.from(),u=!1;return}u=!0}function C(x){if(x&&x(),e.focus(),f){e.setCursor(f);var m=e.state.vim;m.exMode=!1,m.lastHPos=m.lastHSPos=f.ch}s&&s()}function S(x,m,B){k.e_stop(x);var R=k.keyName(x);switch(R){case"Y":c(),d();break;case"N":d();break;case"A":var K=s;s=void 0,e.operation(h),s=K;break;case"L":c();case"Q":case"Esc":case"Ctrl-C":case"Ctrl-[":C(B);break}return u&&C(B),!0}if(d(),u){L(e,"No matches for "+o.source);return}if(!t){h(),s&&s();return}we(e,{prefix:Z("span","replace with ",Z("strong",l)," (y/n/a/q/l)"),onKeyDown:S})}k.keyMap.vim={attach:oe,detach:xe,call:Se};function fe(e){var t=e.state.vim,r=w.macroModeState,n=w.registerController.getRegister("."),i=r.isPlaying,a=r.lastInsertModeChanges;i||(e.off("change",mt),k.off(e.getInputField(),"keydown",At)),!i&&t.insertModeRepeat>1&&(Tt(e,t,t.insertModeRepeat-1,!0),t.lastEditInputState.repeatOverride=t.insertModeRepeat),delete t.insertModeRepeat,t.insertMode=!1,e.setCursor(e.getCursor().line,e.getCursor().ch-1),e.setOption("keyMap","vim"),e.setOption("disableInput",!0),e.toggleOverwrite(!1),n.setText(a.changes.join("")),k.signal(e,"vim-mode-change",{mode:"normal"}),r.isRecording&&Lr(r)}function Mt(e){E.unshift(e)}function Mr(e,t,r,n,i){var a={keys:e,type:t};a[t]=r,a[t+"Args"]=n;for(var o in i)a[o]=i[o];Mt(a)}pe("insertModeEscKeysTimeout",200,"number"),k.keyMap["vim-insert"]={fallthrough:["default"],attach:oe,detach:xe,call:Se},k.keyMap["vim-replace"]={Backspace:"goCharLeft",fallthrough:["vim-insert"],attach:oe,detach:xe,call:Se};function mr(e,t,r,n){var i=w.registerController.getRegister(n);if(n==":"){i.keyBuffer[0]&&Q.processCommand(e,i.keyBuffer[0]),r.isPlaying=!1;return}var a=i.keyBuffer,o=0;r.isPlaying=!0,r.replaySearchQueries=i.searchQueries.slice(0);for(var l=0;l<a.length;l++)for(var s=a[l],u,f;s;)if(u=/<\w+-.+?>|<\w+>|./.exec(s),f=u[0],s=s.substring(u.index+f.length),G.handleKey(e,f,"macro"),t.insertMode){var p=i.insertModeChanges[o++].changes;w.macroModeState.lastInsertModeChanges.changes=p,Rt(e,p,1),fe(e)}r.isPlaying=!1}function br(e,t){if(!e.isPlaying){var r=e.latestRegister,n=w.registerController.getRegister(r);n&&n.pushText(t)}}function Lr(e){if(!e.isPlaying){var t=e.latestRegister,r=w.registerController.getRegister(t);r&&r.pushInsertModeChanges&&r.pushInsertModeChanges(e.lastInsertModeChanges)}}function Ar(e,t){if(!e.isPlaying){var r=e.latestRegister,n=w.registerController.getRegister(r);n&&n.pushSearchQuery&&n.pushSearchQuery(t)}}function mt(e,t){var r=w.macroModeState,n=r.lastInsertModeChanges;if(!r.isPlaying)for(;t;){if(n.expectCursorActivityForChange=!0,n.ignoreCount>1)n.ignoreCount--;else if(t.origin=="+input"||t.origin=="paste"||t.origin===void 0){var i=e.listSelections().length;i>1&&(n.ignoreCount=i);var a=t.text.join(`
`);n.maybeReset&&(n.changes=[],n.maybeReset=!1),a&&(e.state.overwrite&&!/\n/.test(a)?n.changes.push([a]):n.changes.push(a))}t=t.next}}function bt(e){var t=e.state.vim;if(t.insertMode){var r=w.macroModeState;if(r.isPlaying)return;var n=r.lastInsertModeChanges;n.expectCursorActivityForChange?n.expectCursorActivityForChange=!1:n.maybeReset=!0}else e.curOp.isVimOp||Lt(e,t)}function Lt(e,t){var r=e.getCursor("anchor"),n=e.getCursor("head");if(t.visualMode&&!e.somethingSelected()?U(e,!1):!t.visualMode&&!t.insertMode&&e.somethingSelected()&&(t.visualMode=!0,t.visualLine=!1,k.signal(e,"vim-mode-change",{mode:"visual"})),t.visualMode){var i=T(n,r)?0:-1,a=T(n,r)?-1:0;n=O(n,0,i),r=O(r,0,a),t.sel={anchor:r,head:n},X(e,t,"<",j(n,r)),X(e,t,">",te(n,r))}else t.insertMode||(t.lastHPos=e.getCursor().ch)}function Ne(e){this.keyName=e}function At(e){var t=w.macroModeState,r=t.lastInsertModeChanges,n=k.keyName(e);if(!n)return;function i(){return r.maybeReset&&(r.changes=[],r.maybeReset=!1),r.changes.push(new Ne(n)),!0}(n.indexOf("Delete")!=-1||n.indexOf("Backspace")!=-1)&&k.lookupKey(n,"vim-insert",i)}function Tt(e,t,r,n){var i=w.macroModeState;i.isPlaying=!0;var a=!!t.lastEditActionCommand,o=t.inputState;function l(){a?Y.processAction(e,t,t.lastEditActionCommand):Y.evalInput(e,t)}function s(f){if(i.lastInsertModeChanges.changes.length>0){f=t.lastEditActionCommand?f:1;var p=i.lastInsertModeChanges;Rt(e,p.changes,f)}}if(t.inputState=t.lastEditInputState,a&&t.lastEditActionCommand.interlaceInsertRepeat)for(var u=0;u<r;u++)l(),s(1);else n||l(),s(r);t.inputState=o,t.insertMode&&!n&&fe(e),i.isPlaying=!1}function Rt(e,t,r){function n(p){return typeof p=="string"?k.commands[p](e):p(e),!0}var i=e.getCursor("head"),a=w.macroModeState.lastInsertModeChanges.visualBlock;a&&(it(e,i,a+1),r=e.listSelections().length,e.setCursor(i));for(var o=0;o<r;o++){a&&e.setCursor(O(i,o,0));for(var l=0;l<t.length;l++){var s=t[l];if(s instanceof Ne)k.lookupKey(s.keyName,"vim-insert",n);else if(typeof s=="string")e.replaceSelection(s);else{var u=e.getCursor(),f=O(u,0,s[0].length);e.replaceRange(s[0],u,f),e.setCursor(f)}}}a&&e.setCursor(O(i,0,1))}function _e(e){var t=new e.constructor;return Object.keys(e).forEach(function(r){var n=e[r];Array.isArray(n)?n=n.slice():n&&typeof n=="object"&&n.constructor!=Object&&(n=_e(n)),t[r]=n}),e.sel&&(t.sel={head:e.sel.head&&A(e.sel.head),anchor:e.sel.anchor&&A(e.sel.anchor)}),t}function Tr(e,t,r){var n=!1,i=G.maybeInitVimState_(e),a=i.visualBlock||i.wasInVisualBlock,o=e.isInMultiSelectMode();if(i.wasInVisualBlock&&!o?i.wasInVisualBlock=!1:o&&i.visualBlock&&(i.wasInVisualBlock=!0),t=="<Esc>"&&!i.insertMode&&!i.visualMode&&o&&i.status=="<Esc>")_(e);else if(a||!o||e.inVirtualSelectionMode)n=G.handleKey(e,t,r);else{var l=_e(i);e.operation(function(){e.curOp.isVimOp=!0,e.forEachSelection(function(){var s=e.getCursor("head"),u=e.getCursor("anchor"),f=T(s,u)?0:-1,p=T(s,u)?-1:0;s=O(s,0,f),u=O(u,0,p),e.state.vim.sel.head=s,e.state.vim.sel.anchor=u,n=G.handleKey(e,t,r),e.virtualSelection&&(e.state.vim=_e(l))}),e.curOp.cursorActivity&&!n&&(e.curOp.cursorActivity=!1),e.state.vim=i},!0)}return n&&!i.visualMode&&!i.insert&&i.visualMode!=e.somethingSelected()&&Lt(e,i),n}return Xe(),G}function Bt(k){return k.Vim=It(k),k.Vim}ne.Vim=Bt(ne)});