My dotfiles
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

49 rader
1.6 MiB

  1. !function(t,e){for(var n in e)t[n]=e[n]}(exports,function(t){var e={};function n(i){if(e[i])return e[i].exports;var r=e[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(i,r,function(e){return t[e]}.bind(null,r));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=13)}([function(t,e){t.exports=require("path")},function(t,e){t.exports=require("os")},function(t,e){t.exports=require("crypto")},function(t,e){t.exports=require("net")},function(t,e){t.exports=require("url")},function(t,e){t.exports=require("fs")},function(t,e){t.exports=require("child_process")},function(t,e){t.exports=require("util")},function(t,e){t.exports=require("events")},function(t,e){t.exports=require("stream")},,,,function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),n(14)},function(t,e,n){!function(t,e){for(var n in e)t[n]=e[n]}(e,function(t){var e={};function n(i){if(e[i])return e[i].exports;var r=e[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(i,r,function(e){return t[e]}.bind(null,r));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=0)}([function(t,e,n){"use strict";var i=this&&this.__assign||function(){return(i=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)},r=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e},o=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var a=r(n(1)),s=n(2),l=n(44),c=n(45),u=n(157),d=n(158),m=n(159),h=n(160),p=n(161),f=n(162),g=n(163),b=n(164),x=n(60),w=o(n(56)),T=n(139),_=n(57),y=n(165),v=n(368),k=n(369);T.connection.onInitialize((function(t){var e=t.initializationOptions,n=void 0===e?{}:e,r=n.iskeyword,o=n.runtimepath,c=n.vimruntime,u=n.diagnostic,d=n.suggest,m=n.indexes,h={iskeyword:r||"",runtimepath:o?o.split(","):[],vimruntime:(c||"").trim(),diagnostic:i({enable:!0},u||{}),snippetSupport:a.get(t,"capabilities.textDocument.completion.completionItem.snippetSupport"),suggest:i({fromRuntimepath:!1,fromVimruntime:!0},d||{}),indexes:i({runtimepath:!0,gap:100,count:1,projectRootPatterns:l.projectRootPatterns},m||{})};return w.default.init(h),x.builtinDocs.init(),{capabilities:{textDocumentSync:s.TextDocumentSyncKind.Incremental,documentHighlightProvider:!0,foldingRangeProvider:!0,selectionRangeProvider:!0,documentSymbolProvider:!0,hoverProvider:!0,completionProvider:{triggerCharacters:[".",":","#","[","&","$","<",'"',"'"],resolveProvider:!0},signatureHelpProvider:{triggerCharacters:["(",","]},definitionProvider:!0,referencesProvider:!0,renameProvider:{prepareProvider:!0}}}})),_.documents.onDidChangeContent((function(t){y.next(t.document)})),_.documents.onDidClose((function(t){y.unsubscribe(t.document)})),_.documents.listen(T.connection),T.connection.onCompletion(c.completionProvider),T.connection.onCompletionResolve(u.completionResolveProvider),T.connection.onSignatureHelp(b.signatureHelpProvider),T.connection.onHover(p.hoverProvider),T.connection.onDefinition(d.definitionProvider),T.connection.onReferences(f.referencesProvider),T.connection.onPrepareRename(g.prepareProvider),T.connection.onRenameRequest(g.renameProvider),T.connection.onDocumentHighlight(m.documentHighlightProvider),T.connection.onFoldingRanges(h.foldingRangeProvider),T.connection.onSelectionRanges(v.selectionRangeProvider),T.connection.onDocumentSymbol(k.documentSymbolProvider),T.connection.listen()},function(t,e,n){"use strict";function i(t,e,n){return void 0===(t=(e.split?e.split("."):e).reduce((function(t,e){return t&&t[e]}),t))?n:t}function r(t,e,n,i){return(e=e.split?e.split("."):e).slice(0,-1).reduce((function(t,e){return t[e]=t[e]||{}}),t)[e.pop()]=n,t}n.r(e),n.d(e,"get",(function(){return i})),n.d(e,"set",(function(){return r}))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(3);e.Event=i.Event;const r=n(33),o=n(35),a=n(36),s=n(34),l=n(37);!function(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}(n(3));const c=n(38);!function(t){t.uriToFilePath=c.uriToFilePath,t.resolveGlobalNodePath=c.resolveGlobalNodePath,t.resolveGlobalYarnPath=c.resolveGlobalYarnPath,t.resolve=c.resolve,t.resolveModulePath=c.resolveModulePath}(e.Files||(e.Files={}));let u=!1,d=void 0;function m(t){if(null!==t)return t}!function(){function t(t){try{let e=parseInt(t);isNaN(e)||(d=setInterval(()=>{try{process.kill(e,0)}catch(t){process.exit(u?0:1)}},3e3))}catch(t){}}for(let e=2;e<process.argv.length;e++){let n=process.argv[e];if("--clientProcessId"===n&&e+1<process.argv.length)return void t(process.argv[e+1]);{let e=n.split("=");"--clientProcessId"===e[0]&&t(e[1])}}}();e.TextDocuments=class{constructor(t){this._documents=Object.create(null),this._configuration=t,this._onDidChangeContent=new i.Emitter,this._onDidOpen=new i.Emitter,this._onDidClose=new i.Emitter,this._onDidSave=new i.Emitter,this._onWillSave=new i.Emitter}get onDidChangeContent(){return this._onDidChangeContent.event}get onDidOpen(){return this._onDidOpen.event}get onWillSave(){return this._onWillSave.event}onWillSaveWaitUntil(t){this._willSaveWaitUntil=t}get onDidSave(){return this._onDidSave.event}get onDidClose(){return this._onDidClose.event}get(t){return this._documents[t]}all(){return Object.keys(this._documents).map(t=>this._documents[t])}keys(){return Object.keys(this._documents)}listen(t){t.__textDocumentSync=i.TextDocumentSyncKind.Full,t.onDidOpenTextDocument(t=>{let e=t.textDocument,n=this._configuration.create(e.uri,e.languageId,e.version,e.text);this._documents[e.uri]=n;let i=Object.freeze({document:n});this._onDidOpen.fire(i),this._onDidChangeContent.fire(i)}),t.onDidChangeTextDocument(t=>{let e=t.textDocument,n=t.contentChanges;if(0===n.length)return;let i=this._documents[e.uri];const{version:r}=e;if(null==r)throw new Error(`Received document change event for ${e.uri} without valid version identifier`);i=this._configuration.update(i,n,r),this._documents[e.uri]=i,this._onDidChangeContent.fire(Object.freeze({document:i}))}),t.onDidCloseTextDocument(t=>{let e=this._documents[t.textDocument.uri];e&&(delete this._documents[t.textDocument.uri],this._onDidClose.fire(Object.freeze({document:e})))}),t.onWillSaveTextDocument(t=>{let e=this._documents[t.textDocument.uri];e&&this._onWillSave.fire(Object.freeze({document:e,reason:t.reason}))}),t.onWillSaveTextDocumentWaitUntil((t,e)=>{let n=this._documents[t.textDocument.uri];return n&&this._willSaveWaitUntil?this._willSaveWaitUntil(Object.freeze({document:n,reason:t.reason}),e):[]}),t.onDidSaveTextDocument(t=>{let e=this._documents[t.textDocument.uri];e&&this._onDidSave.fire(Object.freeze({document:e}))})}};e.ErrorMessageTracker=class{constructor(){this._messages=Object.create(null)}add(t){let e=this._messages[t];e||(e=0),e++,this._messages[t]=e}sendErrors(t){Object.keys(this._messages).forEach(e=>{t.window.showErrorMessage(e)})}};class h{constructor(){}rawAttach(t){this._rawConnection=t}attach(t){this._connection=t}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}fillServerCapabilities(t){}initialize(t){}error(t){this.send(i.MessageType.Error,t)}warn(t){this.send(i.MessageType.Warning,t)}info(t){this.send(i.MessageType.Info,t)}log(t){this.send(i.MessageType.Log,t)}send(t,e){this._rawConnection&&this._rawConnection.sendNotification(i.LogMessageNotification.type,{type:t,message:e})}}const p=a.ProgressFeature(class{constructor(){}attach(t){this._connection=t}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(t){}fillServerCapabilities(t){}showErrorMessage(t,...e){let n={type:i.MessageType.Error,message:t,actions:e};return this._connection.sendRequest(i.ShowMessageRequest.type,n).then(m)}showWarningMessage(t,...e){let n={type:i.MessageType.Warning,message:t,actions:e};return this._connection.sendRequest(i.ShowMessageRequest.type,n).then(m)}showInformationMessage(t,...e){let n={type:i.MessageType.Info,message:t,actions:e};return this._connection.sendRequest(i.ShowMessageRequest.type,n).then(m)}});!function(t){t.create=function(){return new f}}(e.BulkRegistration||(e.BulkRegistration={}));class f{constructor(){this._registrations=[],this._registered=new Set}add(t,e){const n=s.string(t)?t:t.method;if(this._registered.has(n))throw new Error(`${n} is already added to this registration`);const i=l.generateUuid();this._registrations.push({id:i,method:n,registerOptions:e||{}}),this._registered.add(n)}asRegistrationParams(){return{registrations:this._registrations}}}!function(t){t.create=function(){return new g(void 0,[])}}(e.BulkUnregistration||(e.BulkUnregistration={}));class g{constructor(t,e){this._connection=t,this._unregistrations=new Map,e.forEach(t=>{this._unregistrations.set(t.method,t)})}get isAttached(){return!!this._connection}attach(t){this._connection=t}add(t){this._unregistrations.set(t.method,t)}dispose(){let t=[];for(let e of this._unregistrations.values())t.push(e);let e={unregisterations:t};this._connection.sendRequest(i.UnregistrationRequest.type,e).then(void 0,t=>{this._connection.console.info("Bulk unregistration failed.")})}disposeSingle(t){const e=s.string(t)?t:t.method,n=this._unregistrations.get(e);if(!n)return!1;let r={unregisterations:[n]};return this._connection.sendRequest(i.UnregistrationRequest.type,r).then(()=>{this._unregistrations.delete(e)},t=>{this._connection.console.info(`Unregistering request handler for ${n.id} failed.`)}),!0}}class b{attach(t){this._connection=t}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(t){}fillServerCapabilities(t){}register(t,e,n){return t instanceof f?this.registerMany(t):t instanceof g?this.registerSingle1(t,e,n):this.registerSingle2(t,e)}registerSingle1(t,e,n){const r=s.string(e)?e:e.method,o=l.generateUuid();let a={registrations:[{id:o,method:r,registerOptions:n||{}}]};return t.isAttached||t.attach(this._connection),this._connection.sendRequest(i.RegistrationRequest.type,a).then(e=>(t.add({id:o,method:r}),t),t=>(this.connection.console.info(`Registering request handler for ${r} failed.`),Promise.reject(t)))}registerSingle2(t,e){const n=s.string(t)?t:t.method,r=l.generateUuid();let o={registrations:[{id:r,method:n,registerOptions:e||{}}]};return this._connection.sendRequest(i.RegistrationRequest.type,o).then(t=>i.Disposable.create(()=>{this.unregisterSingle(r,n)}),t=>(this.connection.console.info(`Registering request handler for ${n} failed.`),Promise.reject(t)))}unregisterSingle(t,e){let n={unregisterations:[{id:t,method:e}]};return this._connection.sendRequest(i.UnregistrationRequest.type,n).then(void 0,e=>{this.connection.console.info(`Unregistering request handler for ${t} failed.`)})}registerMany(t){let e=t.asRegistrationParams();return this._connection.sendRequest(i.RegistrationRequest.type,e).then(()=>new g(this._connection,e.registrations.map(t=>({id:t.id,method:t.method}))),t=>(this.connection.console.info("Bulk registration failed."),Promise.reject(t)))}}const x=o.WorkspaceFoldersFeature(r.ConfigurationFeature(class{constructor(){}attach(t){this._connection=t}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(t){}fillServerCapabilities(t){}applyEdit(t){let e=(n=t)&&n.edit?t:{edit:t};var n;return this._connection.sendRequest(i.ApplyWorkspaceEditRequest.type,e)}}));class w{constructor(){}attach(t){this._connection=t}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(t){}fillServerCapabilities(t){}logEvent(t){this._connection.sendNotification(i.TelemetryEventNotification.type,t)}}class T{constructor(){this._trace=i.Trace.Off}attach(t){this._connection=t}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(t){}fillServerCapabilities(t){}set trace(t){this._trace=t}log(t,e){this._trace!==i.Trace.Off&&this._connection.sendNotification(i.LogTraceNotification.type,{message:t,verbose:this._trace===i.Trace.Verbose?e:void 0})}}class _{constructor(){}attach(t){this._connection=t}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(t){}fillServerCapabilities(t){}attachWorkDoneProgress(t){return a.attachWorkDone(this.connection,t)}attachPartialResultProgress(t,e){return a.attachPartialResult(this.connection,e)}}function y(t,e){return function(n){return e(t(n))}}function v(t,e){return function(n){return e(t(n))}}function k(t,e){return function(n){return e(t(n))}}function R(t,e){return function(n){return e(t(n))}}function F(t,e){return function(n){return e(t(n))}}function A(t,e){return function(n){return e(t(n))}}function E(t,e){return function(n){return e(t(n))}}e.LanguagesImpl=_,e.combineConsoleFeatures=y,e.combineTelemetryFeatures=v,e.combineTracerFeatures=k,e.combineClientFeatures=R,e.combineWindowFeatures=F,e.combineWorkspaceFeatures=A,e.combineLanguagesFeatures=E,e.combineFeatures=function(t,e){function n(t,e,n){return t&&e?n(t,e):t||e}return{__brand:"features",console:n(t.console,e.console,y),tracer:n(t.tracer,e.tracer,k),telemetry:n(t.telemetry,e.telemetry,v),client:n(t.client,e.client,R),window:n(t.window,e.window,F),workspace:n(t.workspace,e.workspace,A)}},e.createConnection=function(t,e,n,r){let o,l,c,m;return void 0!==t&&"features"===t.__brand&&(o=t,t=e,e=n,n=r),i.ConnectionStrategy.is(t)?m=t:(l=t,c=e,m=n),function(t,e,n,r){if(!t&&!e&&process.argv.length>2){let n=void 0,r=void 0,a=process.argv.slice(2);for(let s=0;s<a.length;s++){let l=a[s];if("--node-ipc"===l){t=new i.IPCMessageReader(process),e=new i.IPCMessageWriter(process);break}if("--stdio"===l){t=process.stdin,e=process.stdout;break}if("--socket"===l){n=parseInt(a[s+1]);break}if("--pipe"===l){r=a[s+1];break}var o=l.split("=");if("--socket"===o[0]){n=parseInt(o[1]);break}if("--pipe"===o[0]){r=o[1];break}}if(n){let r=i.createServerSocketTransport(n);t=r[0],e=r[1]}else if(r){let n=i.createServerPipeTransport(r);t=n[0],e=n[1]}}var l="Use arguments of createConnection or set command line parameters: '--node-ipc', '--stdio' or '--socket={number}'";if(!t)throw new Error("Connection input stream is not set. "+l);if(!e)throw new Error("Connection output stream is not set. "+l);if(s.func(t.read)&&s.func(t.on)){let e=t;e.on("end",()=>{process.exit(u?0:1)}),e.on("close",()=>{process.exit(u?0:1)})}const c=r&&r.console?new(r.console(h)):new h,m=i.createProtocolConnection(t,e,c,n);c.rawAttach(m);const f=r&&r.tracer?new(r.tracer(T)):new T,g=r&&r.telemetry?new(r.telemetry(w)):new w,y=r&&r.client?new(r.client(b)):new b,v=r&&r.window?new(r.window(p)):new p,k=r&&r.workspace?new(r.workspace(x)):new x,R=r&&r.languages?new(r.languages(_)):new _,F=[c,f,g,y,v,k,R];let A=void 0,E=void 0,N=void 0,S={listen:()=>m.listen(),sendRequest:(t,...e)=>m.sendRequest(s.string(t)?t:t.method,...e),onRequest:(t,e)=>m.onRequest(t,e),sendNotification:(t,e)=>{const n=s.string(t)?t:t.method;1===arguments.length?m.sendNotification(n):m.sendNotification(n,e)},onNotification:(t,e)=>m.onNotification(t,e),onProgress:m.onProgress,sendProgress:m.sendProgress,onInitialize:t=>E=t,onInitialized:t=>m.onNotification(i.InitializedNotification.type,t),onShutdown:t=>A=t,onExit:t=>N=t,get console(){return c},get telemetry(){return g},get tracer(){return f},get client(){return y},get window(){return v},get workspace(){return k},get languages(){return R},onDidChangeConfiguration:t=>m.onNotification(i.DidChangeConfigurationNotification.type,t),onDidChangeWatchedFiles:t=>m.onNotification(i.DidChangeWatchedFilesNotification.type,t),__textDocumentSync:void 0,onDidOpenTextDocument:t=>m.onNotification(i.DidOpenTextDocumentNotification.type,t),onDidChangeTextDocument:t=>m.onNotification(i.DidChangeTextDocumentNotification.type,t),onDidCloseTextDocument:t=>m.onNotification(i.DidCloseTextDocumentNotification.type,t),onWillSaveTextDocument:t=>m.onNotification(i.WillSaveTextDocumentNotification.type,t),onWillSaveTextDocumentWaitUntil:t=>m.onRequest(i.WillSaveTextDocumentWaitUntilRequest.type,t),onDidSaveTextDocument:t=>m.onNotification(i.DidSaveTextDocumentNotification.type,t),sendDiagnostics:t=>m.sendNotification(i.PublishDiagnosticsNotification.type,t),onHover:t=>m.onRequest(i.HoverRequest.type,(e,n)=>t(e,n,a.attachWorkDone(m,e),void 0)),onCompletion:t=>m.onRequest(i.CompletionRequest.type,(e,n)=>t(e,n,a.attachWorkDone(m,e),a.attachPartialResult(m,e))),onCompletionResolve:t=>m.onRequest(i.CompletionResolveRequest.type,t),onSignatureHelp:t=>m.onRequest(i.SignatureHelpRequest.type,(e,n)=>t(e,n,a.attachWorkDone(m,e),void 0)),onDeclaration:t=>m.onRequest(i.DeclarationRequest.type,(e,n)=>t(e,n,a.attachWorkDone(m,e),a.attachPartialResult(m,e))),onDefinition:t=>m.onRequest(i.DefinitionRequest.type,(e,n)=>t(e,n,a.attachWorkDone(m,e),a.attachPartialResult(m,e))),onTypeDefinition:t=>m.onRequest(i.TypeDefinitionRequest.type,(e,n)=>t(e,n,a.attachWorkDone(m,e),a.attachPartialResult(m,e))),onImplementation:t=>m.onRequest(i.ImplementationRequest.type,(e,n)=>t(e,n,a.attachWorkDone(m,e),a.attachPartialResult(m,e))),onReferences:t=>m.onRequest(i.ReferencesRequest.type,(e,n)=>t(e,n,a.attachWorkDone(m,e),a.attachPartialResult(m,e))),onDocumentHighlight:t=>m.onRequest(i.DocumentHighlightRequest.type,(e,n)=>t(e,n,a.attachWorkDone(m,e),a.attachPartialResult(m,e))),onDocumentSymbol:t=>m.onRequest(i.DocumentSymbolRequest.type,(e,n)=>t(e,n,a.attachWorkDone(m,e),a.attachPartialResult(m,e))),onWorkspaceSymbol:t=>m.onRequest(i.WorkspaceSymbolRequest.type,(e,n)=>t(e,n,a.attachWorkDone(m,e),a.attachPartialResult(m,e))),onCodeAction:t=>m.onRequest(i.CodeActionRequest.type,(e,n)=>t(e,n,a.attachWorkDone(m,e),a.attachPartialResult(m,e))),onCodeLens:t=>m.onRequest(i.CodeLensRequest.type,(e,n)=>t(e,n,a.attachWorkDone(m,e),a.attachPartialResult(m,e))),onCodeLensResolve:t=>m.onRequest(i.CodeLensResolveRequest.type,(e,n)=>t(e,n)),onDocumentFormatting:t=>m.onRequest(i.DocumentFormattingRequest.type,(e,n)=>t(e,n,a.attachWorkDone(m,e),void 0)),onDocumentRangeFormatting:t=>m.onRequest(i.DocumentRangeFormattingRequest.type,(e,n)=>t(e,n,a.attachWorkDone(m,e),void 0)),onDocumentOnTypeFormatting:t=>m.onRequest(i.DocumentOnTypeFormattingRequest.type,(e,n)=>t(e,n)),onRenameRequest:t=>m.onRequest(i.RenameRequest.type,(e,n)=>t(e,n,a.attachWorkDone(m,e),void 0)),onPrepareRename:t=>m.onRequest(i.PrepareRenameRequest.type,(e,n)=>t(e,n)),onDocumentLinks:t=>m.onRequest(i.DocumentLinkRequest.type,(e,n)=>t(e,n,a.attachWorkDone(m,e),a.attachPartialResult(m,e))),onDocumentLinkResolve:t=>m.onRequest(i.DocumentLinkResolveRequest.type,(e,n)=>t(e,n)),onDocumentColor:t=>m.onRequest(i.DocumentColorRequest.type,(e,n)=>t(e,n,a.attachWorkDone(m,e),a.attachPartialResult(m,e))),onColorPresentation:t=>m.onRequest(i.ColorPresentationRequest.type,(e,n)=>t(e,n,a.attachWorkDone(m,e),a.attachPartialResult(m,e))),onFoldingRanges:t=>m.onRequest(i.FoldingRangeRequest.type,(e,n)=>t(e,n,a.attachWorkDone(m,e),a.attachPartialResult(m,e))),onSelectionRanges:t=>m.onRequest(i.SelectionRangeRequest.type,(e,n)=>t(e,n,a.attachWorkDone(m,e),a.attachPartialResult(m,e))),onExecuteCommand:t=>m.onRequest(i.ExecuteCommandRequest.type,(e,n)=>t(e,n,a.attachWorkDone(m,e),void 0)),dispose:()=>m.dispose()};for(let t of F)t.attach(S);return m.onRequest(i.InitializeRequest.type,t=>{const e=t.processId;s.number(e)&&void 0===d&&setInterval(()=>{try{process.kill(e,0)}catch(t){process.exit(u?0:1)}},3e3),s.string(t.trace)&&(f.trace=i.Trace.fromString(t.trace));for(let e of F)e.initialize(t.capabilities);if(E){return function(t){return t instanceof Promise?t:s.thenable(t)?new Promise((e,n)=>{t.then(t=>e(t),t=>n(t))}):Promise.resolve(t)}(E(t,(new i.CancellationTokenSource).token,a.attachWorkDone(m,t),void 0)).then(t=>{if(t instanceof i.ResponseError)return t;let e=t;e||(e={capabilities:{}});let n=e.capabilities;n||(n={},e.capabilities=n),void 0===n.textDocumentSync||null===n.textDocumentSync?n.textDocumentSync=s.number(S.__textDocumentSync)?S.__textDocumentSync:i.TextDocumentSyncKind.None:s.number(n.textDocumentSync)||s.number(n.textDocumentSync.change)||(n.textDocumentSync.change=s.number(S.__textDocumentSync)?S.__textDocumentSync:i.TextDocumentSyncKind.None);for(let t of F)t.fillServerCapabilities(n);return e})}{let t={capabilities:{textDocumentSync:i.TextDocumentSyncKind.None}};for(let e of F)e.fillServerCapabilities(t.capabilities);return t}}),m.onRequest(i.ShutdownRequest.type,()=>(u=!0,A?A((new i.CancellationTokenSource).token):void 0)),m.onNotification(i.ExitNotification.type,()=>{try{N&&N()}finally{u?process.exit(0):process.exit(1)}}),m.onNotification(i.SetTraceNotification.type,t=>{f.trace=i.Trace.fromString(t.value)}),S}(l,c,m,o)};const N=n(42),S=n(43);!function(t){t.all={__brand:"features",languages:E(N.CallHierarchyFeature,S.SemanticTokensFeature)},t.SemanticTokensBuilder=S.SemanticTokensBuilder}(e.ProposedFeatures||(e.ProposedFeatures={}))},function(t,e,n){"use strict";function i(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0});const r=n(4);e.ErrorCodes=r.ErrorCodes,e.ResponseError=r.ResponseError,e.CancellationToken=r.CancellationToken,e.CancellationTokenSource=r.CancellationTokenSource,e.Disposable=r.Disposable,e.Event=r.Event,e.Emitter=r.Emitter,e.Trace=r.Trace,e.TraceFormat=r.TraceFormat,e.SetTraceNotification=r.SetTraceNotification,e.LogTraceNotification=r.LogTraceNotification,e.RequestType=r.RequestType,e.RequestType0=r.RequestType0,e.NotificationType=r.NotificationType,e.NotificationType0=r.NotificationType0,e.MessageReader=r.MessageReader,e.MessageWriter=r.MessageWriter,e.ConnectionStrategy=r.ConnectionStrategy,e.StreamMessageReader=r.StreamMessageReader,e.StreamMessageWriter=r.StreamMessageWriter,e.IPCMessageReader=r.IPCMessageReader,e.IPCMessageWriter=r.IPCMessageWriter,e.createClientPipeTransport=r.createClientPipeTransport,e.createServerPipeTransport=r.createServerPipeTransport,e.generateRandomPipeName=r.generateRandomPipeName,e.createClientSocketTransport=r.createClientSocketTransport,e.createServerSocketTransport=r.createServerSocketTransport,e.ProgressType=r.ProgressType,i(n(18)),i(n(19));const o=n(31),a=n(32);!function(t){let e,n,i,r,s,l;!function(t){t.method=o.CallHierarchyPrepareRequest.method,t.type=o.CallHierarchyPrepareRequest.type}(e=t.CallHierarchyPrepareRequest||(t.CallHierarchyPrepareRequest={})),function(t){t.method=o.CallHierarchyIncomingCallsRequest.method,t.type=o.CallHierarchyIncomingCallsRequest.type}(n=t.CallHierarchyIncomingCallsRequest||(t.CallHierarchyIncomingCallsRequest={})),function(t){t.method=o.CallHierarchyOutgoingCallsRequest.method,t.type=o.CallHierarchyOutgoingCallsRequest.type}(i=t.CallHierarchyOutgoingCallsRequest||(t.CallHierarchyOutgoingCallsRequest={})),t.SemanticTokenTypes=a.SemanticTokenTypes,t.SemanticTokenModifiers=a.SemanticTokenModifiers,t.SemanticTokens=a.SemanticTokens,function(t){t.method=a.SemanticTokensRequest.method,t.type=a.SemanticTokensRequest.type}(r=t.SemanticTokensRequest||(t.SemanticTokensRequest={})),function(t){t.method=a.SemanticTokensEditsRequest.method,t.type=a.SemanticTokensEditsRequest.type}(s=t.SemanticTokensEditsRequest||(t.SemanticTokensEditsRequest={})),function(t){t.method=a.SemanticTokensRangeRequest.method,t.type=a.SemanticTokensRangeRequest.type}(l=t.SemanticTokensRangeRequest||(t.SemanticTokensRangeRequest={}))}(e.Proposed||(e.Proposed={})),e.createProtocolConnection=function(t,e,n,i){return r.createMessageConnection(t,e,n,i)}},function(t,e,n){"use strict";function i(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0});const r=n(5),o=n(6);e.RequestType=o.RequestType,e.RequestType0=o.RequestType0,e.RequestType1=o.RequestType1,e.RequestType2=o.RequestType2,e.RequestType3=o.RequestType3,e.RequestType4=o.RequestType4,e.RequestType5=o.RequestType5,e.RequestType6=o.RequestType6,e.RequestType7=o.RequestType7,e.RequestType8=o.RequestType8,e.RequestType9=o.RequestType9,e.ResponseError=o.ResponseError,e.ErrorCodes=o.ErrorCodes,e.NotificationType=o.NotificationType,e.NotificationType0=o.NotificationType0,e.NotificationType1=o.NotificationType1,e.NotificationType2=o.NotificationType2,e.NotificationType3=o.NotificationType3,e.NotificationType4=o.NotificationType4,e.NotificationType5=o.NotificationType5,e.NotificationType6=o.NotificationType6,e.NotificationType7=o.NotificationType7,e.NotificationType8=o.NotificationType8,e.NotificationType9=o.NotificationType9;const a=n(7);e.MessageReader=a.MessageReader,e.StreamMessageReader=a.StreamMessageReader,e.IPCMessageReader=a.IPCMessageReader,e.SocketMessageReader=a.SocketMessageReader;const s=n(9);e.MessageWriter=s.MessageWriter,e.StreamMessageWriter=s.StreamMessageWriter,e.IPCMessageWriter=s.IPCMessageWriter,e.SocketMessageWriter=s.SocketMessageWriter;const l=n(8);e.Disposable=l.Disposable,e.Event=l.Event,e.Emitter=l.Emitter;const c=n(10);e.CancellationTokenSource=c.CancellationTokenSource,e.CancellationToken=c.CancellationToken;const u=n(11);var d,m,h,p,f,g,b,x;i(n(12)),i(n(17)),function(t){t.type=new o.NotificationType("$/cancelRequest")}(d||(d={})),function(t){t.type=new o.NotificationType("$/progress")}(m||(m={}));e.ProgressType=class{constructor(){}},e.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}}),function(t){t[t.Off=0]="Off",t[t.Messages=1]="Messages",t[t.Verbose=2]="Verbose"}(h=e.Trace||(e.Trace={})),function(t){t.fromString=function(e){if(!r.string(e))return t.Off;switch(e=e.toLowerCase()){case"off":return t.Off;case"messages":return t.Messages;case"verbose":return t.Verbose;default:return t.Off}},t.toString=function(e){switch(e){case t.Off:return"off";case t.Messages:return"messages";case t.Verbose:return"verbose";default:return"off"}}}(h=e.Trace||(e.Trace={})),function(t){t.Text="text",t.JSON="json"}(p=e.TraceFormat||(e.TraceFormat={})),function(t){t.fromString=function(e){return"json"===(e=e.toLowerCase())?t.JSON:t.Text}}(p=e.TraceFormat||(e.TraceFormat={})),function(t){t.type=new o.NotificationType("$/setTraceNotification")}(f=e.SetTraceNotification||(e.SetTraceNotification={})),function(t){t.type=new o.NotificationType("$/logTraceNotification")}(g=e.LogTraceNotification||(e.LogTraceNotification={})),function(t){t[t.Closed=1]="Closed",t[t.Disposed=2]="Disposed",t[t.AlreadyListening=3]="AlreadyListening"}(b=e.ConnectionErrors||(e.ConnectionErrors={}));class w extends Error{constructor(t,e){super(e),this.code=t,Object.setPrototypeOf(this,w.prototype)}}function T(t,e,n,i){let a=0,s=0,T=0;const _="2.0";let y,v,k=void 0,R=Object.create(null),F=void 0,A=Object.create(null),E=new Map,N=new u.LinkedMap,S=Object.create(null),C=Object.create(null),O=h.Off,L=p.Text,I=x.New,$=new l.Emitter,D=new l.Emitter,W=new l.Emitter,G=new l.Emitter,M=new l.Emitter;function P(t){return"req-"+t.toString()}function B(t,e){var n;o.isRequestMessage(e)?t.set(P(e.id),e):o.isResponseMessage(e)?t.set(null===(n=e.id)?"res-unknown-"+(++T).toString():"res-"+n.toString(),e):t.set("not-"+(++s).toString(),e)}function j(t){}function U(){return I===x.Listening}function q(){return I===x.Closed}function V(){return I===x.Disposed}function z(){I!==x.New&&I!==x.Listening||(I=x.Closed,D.fire(void 0))}function H(){y||0===N.size||(y=setImmediate(()=>{y=void 0,function(){if(0===N.size)return;let t=N.shift();try{o.isRequestMessage(t)?function(t){if(V())return;function n(n,i,r){let a={jsonrpc:_,id:t.id};n instanceof o.ResponseError?a.error=n.toJson():a.result=void 0===n?null:n,K(a,i,r),e.write(a)}function i(n,i,r){let o={jsonrpc:_,id:t.id,error:n.toJson()};K(o,i,r),e.write(o)}!function(t){if(O===h.Off||!v)return;if(L===p.Text){let e=void 0;O===h.Verbose&&t.params&&(e=`Params: ${JSON.stringify(t.params,null,4)}\n\n`),v.log(`Received request '${t.method} - (${t.id})'.`,e)}else Y("receive-request",t)}(t);let a,s,l=R[t.method];l&&(a=l.type,s=l.handler);let u=Date.now();if(s||k){let l=new c.CancellationTokenSource,d=String(t.id);C[d]=l;try{let c,m=c=void 0===t.params||void 0!==a&&0===a.numberOfParams?s?s(l.token):k(t.method,l.token):r.array(t.params)&&(void 0===a||a.numberOfParams>1)?s?s(...t.params,l.token):k(t.method,...t.params,l.token):s?s(t.params,l.token):k(t.method,t.params,l.token);c?m.then?m.then(e=>{delete C[d],n(e,t.method,u)},e=>{delete C[d],e instanceof o.ResponseError?i(e,t.method,u):e&&r.string(e.message)?i(new o.ResponseError(o.ErrorCodes.InternalError,`Request ${t.method} failed with message: ${e.message}`),t.method,u):i(new o.ResponseError(o.ErrorCodes.InternalError,`Request ${t.method} failed unexpectedly without providing any details.`),t.method,u)}):(delete C[d],n(c,t.method,u)):(delete C[d],function(n,i,r){void 0===n&&(n=null);let o={jsonrpc:_,id:t.id,result:n};K(o,i,r),e.write(o)}(c,t.method,u))}catch(e){delete C[d],e instanceof o.ResponseError?n(e,t.method,u):e&&r.string(e.message)?i(new o.ResponseError(o.ErrorCodes.InternalError,`Request ${t.method} failed with message: ${e.message}`),t.method,u):i(new o.ResponseError(o.ErrorCodes.InternalError,`Request ${t.method} failed unexpectedly without providing any details.`),t.method,u)}}else i(new o.ResponseError(o.ErrorCodes.MethodNotFound,`Unhandled method ${t.method}`),t.method,u)}(t):o.isNotificationMessage(t)?function(t){if(V())return;let e,i=void 0;if(t.method===d.type.method)e=t=>{let e=t.id,n=C[String(e)];n&&n.cancel()};else{let n=A[t.method];n&&(e=n.handler,i=n.type)}if(e||F)try{!function(t){if(O===h.Off||!v||t.method===g.type.method)return;if(L===p.Text){let e=void 0;O===h.Verbose&&(e=t.params?`Params: ${JSON.stringify(t.params,null,4)}\n\n`:"No parameters provided.\n\n"),v.log(`Received notification '${t.method}'.`,e)}else Y("receive-notification",t)}(t),void 0===t.params||void 0!==i&&0===i.numberOfParams?e?e():F(t.method):r.array(t.params)&&(void 0===i||i.numberOfParams>1)?e?e(...t.params):F(t.method,...t.params):e?e(t.params):F(t.method,t.params)}catch(e){e.message?n.error(`Notification handler '${t.method}' failed with message: ${e.message}`):n.error(`Notification handler '${t.method}' failed unexpectedly.`)}else W.fire(t)}(t):o.isResponseMessage(t)?function(t){if(V())return;if(null===t.id)t.error?n.error(`Received response message without id: Error is: \n${JSON.stringify(t.error,void 0,4)}`):n.error("Received response message without id. No further error information provided.");else{let e=String(t.id),i=S[e];if(function(t,e){if(O===h.Off||!v)return;if(L===p.Text){let n=void 0;if(O===h.Verbose&&(t.error&&t.error.data?n=`Error data: ${JSON.stringify(t.error.data,null,4)}\n\n`:t.result?n=`Result: ${JSON.stringify(t.result,null,4)}\n\n`:void 0===t.error&&(n="No result returned.\n\n")),e){let i=t.error?` Request failed: ${t.error.message} (${t.error.code}).`:"";v.log(`Received response '${e.method} - (${t.id})' in ${Date.now()-e.timerStart}ms.${i}`,n)}else v.log(`Received response ${t.id} without active response promise.`,n)}else Y("receive-response",t)}(t,i),i){delete S[e];try{if(t.error){let e=t.error;i.reject(new o.ResponseError(e.code,e.message,e.data))}else{if(void 0===t.result)throw new Error("Should never happen.");i.resolve(t.result)}}catch(t){t.message?n.error(`Response handler '${i.method}' failed with message: ${t.message}`):n.error(`Response handler '${i.method}' failed unexpectedly.`)}}}}(t):function(t){if(!t)return void n.error("Received empty message.");n.error(`Received message which is neither a response nor a notification message:\n${JSON.stringify(t,null,4)}`);let e=t;if(r.string(e.id)||r.number(e.id)){let t=String(e.id),n=S[t];n&&n.reject(new Error("The received response has neither a result nor an error property."))}}(t)}finally{H()}}()}))}t.onClose(z),t.onError((function(t){$.fire([t,void 0,void 0])})),e.onClose(z),e.onError((function(t){$.fire(t)}));let X=t=>{try{if(o.isNotificationMessage(t)&&t.method===d.type.method){let n=P(t.params.id),r=N.get(n);if(o.isRequestMessage(r)){let o=i&&i.cancelUndispatched?i.cancelUndispatched(r,j):void 0;if(o&&(void 0!==o.error||void 0!==o.result))return N.delete(n),o.id=r.id,K(o,t.method,Date.now()),void e.write(o)}}B(N,t)}finally{H()}};function K(t,e,n){if(O!==h.Off&&v)if(L===p.Text){let i=void 0;O===h.Verbose&&(t.error&&t.error.data?i=`Error data: ${JSON.stringify(t.error.data,null,4)}\n\n`:t.result?i=`Result: ${JSON.stringify(t.result,null,4)}\n\n`:void 0===t.error&&(i="No result returned.\n\n")),v.log(`Sending response '${e} - (${t.id})'. Processing request took ${Date.now()-n}ms`,i)}else Y("send-response",t)}function Y(t,e){if(!v||O===h.Off)return;const n={isLSPMessage:!0,type:t,message:e,timestamp:Date.now()};v.log(n)}function Z(){if(q())throw new w(b.Closed,"Connection is closed.");if(V())throw new w(b.Disposed,"Connection is disposed.")}function J(t){return void 0===t?null:t}function Q(t,e){let n,i=t.numberOfParams;switch(i){case 0:n=null;break;case 1:n=J(e[0]);break;default:n=[];for(let t=0;t<e.length&&t<i;t++)n.push(J(e[t]));if(e.length<i)for(let t=e.length;t<i;t++)n.push(null)}return n}let tt={sendNotification:(t,...n)=>{let i,o;if(Z(),r.string(t))switch(i=t,n.length){case 0:o=null;break;case 1:o=n[0];break;default:o=n}else i=t.method,o=Q(t,n);let a={jsonrpc:_,method:i,params:o};!function(t){if(O!==h.Off&&v)if(L===p.Text){let e=void 0;O===h.Verbose&&(e=t.params?`Params: ${JSON.stringify(t.params,null,4)}\n\n`:"No parameters provided.\n\n"),v.log(`Sending notification '${t.method}'.`,e)}else Y("send-notification",t)}(a),e.write(a)},onNotification:(t,e)=>{Z(),r.func(t)?F=t:e&&(r.string(t)?A[t]={type:void 0,handler:e}:A[t.method]={type:t,handler:e})},onProgress:(t,e,n)=>{if(E.has(e))throw new Error(`Progress handler for token ${e} already registered`);return E.set(e,n),{dispose:()=>{E.delete(e)}}},sendProgress:(t,e,n)=>{tt.sendNotification(m.type,{token:e,value:n})},onUnhandledProgress:G.event,sendRequest:(t,...n)=>{let i,s;Z(),function(){if(!U())throw new Error("Call listen() first.")}();let l=void 0;if(r.string(t))switch(i=t,n.length){case 0:s=null;break;case 1:c.CancellationToken.is(n[0])?(s=null,l=n[0]):s=J(n[0]);break;default:const t=n.length-1;c.CancellationToken.is(n[t])?(l=n[t],s=2===n.length?J(n[0]):n.slice(0,t).map(t=>J(t))):s=n.map(t=>J(t))}else{i=t.method,s=Q(t,n);let e=t.numberOfParams;l=c.CancellationToken.is(n[e])?n[e]:void 0}let u=a++,m=new Promise((t,n)=>{let r={jsonrpc:_,id:u,method:i,params:s},a={method:i,timerStart:Date.now(),resolve:t,reject:n};!function(t){if(O!==h.Off&&v)if(L===p.Text){let e=void 0;O===h.Verbose&&t.params&&(e=`Params: ${JSON.stringify(t.params,null,4)}\n\n`),v.log(`Sending request '${t.method} - (${t.id})'.`,e)}else Y("send-request",t)}(r);try{e.write(r)}catch(t){a.reject(new o.ResponseError(o.ErrorCodes.MessageWriteError,t.message?t.message:"Unknown reason")),a=null}a&&(S[String(u)]=a)});return l&&l.onCancellationRequested(()=>{tt.sendNotification(d.type,{id:u})}),m},onRequest:(t,e)=>{Z(),r.func(t)?k=t:e&&(r.string(t)?R[t]={type:void 0,handler:e}:R[t.method]={type:t,handler:e})},trace:(t,e,n)=>{let i=!1,o=p.Text;void 0!==n&&(r.boolean(n)?i=n:(i=n.sendNotification||!1,o=n.traceFormat||p.Text)),L=o,v=(O=t)===h.Off?void 0:e,!i||q()||V()||tt.sendNotification(f.type,{value:h.toString(t)})},onError:$.event,onClose:D.event,onUnhandledNotification:W.event,onDispose:M.event,dispose:()=>{if(V())return;I=x.Disposed,M.fire(void 0);let n=new Error("Connection got disposed.");Object.keys(S).forEach(t=>{S[t].reject(n)}),S=Object.create(null),C=Object.create(null),N=new u.LinkedMap,r.func(e.dispose)&&e.dispose(),r.func(t.dispose)&&t.dispose()},listen:()=>{Z(),function(){if(U())throw new w(b.AlreadyListening,"Connection is already listening")}(),I=x.Listening,t.listen(X)},inspect:()=>{console.log("inspect")}};return tt.onNotification(g.type,t=>{O!==h.Off&&v&&v.log(t.message,O===h.Verbose?t.verbose:void 0)}),tt.onNotification(m.type,t=>{const e=E.get(t.token);e?e(t.value):G.fire(t)}),tt}e.ConnectionError=w,function(t){t.is=function(t){let e=t;return e&&r.func(e.cancelUndispatched)}}(e.ConnectionStrategy||(e.ConnectionStrategy={})),function(t){t[t.New=1]="New",t[t.Listening=2]="Listening",t[t.Closed=3]="Closed",t[t.Disposed=4]="Disposed"}(x||(x={})),e.createMessageConnection=function(t,n,i,r){var o;return i||(i=e.NullLogger),T(void 0!==(o=t).listen&&void 0===o.read?t:new a.StreamMessageReader(t),function(t){return void 0!==t.write&&void 0===t.end}(n)?n:new s.StreamMessageWriter(n),i,r)}},function(t,e,n){"use strict";function i(t){return"string"==typeof t||t instanceof String}function r(t){return Array.isArray(t)}Object.defineProperty(e,"__esModule",{value:!0}),e.boolean=function(t){return!0===t||!1===t},e.string=i,e.number=function(t){return"number"==typeof t||t instanceof Number},e.error=function(t){return t instanceof Error},e.func=function(t){return"function"==typeof t},e.array=r,e.stringArray=function(t){return r(t)&&t.every(t=>i(t))}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(5);var r;!function(t){t.ParseError=-32700,t.InvalidRequest=-32600,t.MethodNotFound=-32601,t.InvalidParams=-32602,t.InternalError=-32603,t.serverErrorStart=-32099,t.serverErrorEnd=-32e3,t.ServerNotInitialized=-32002,t.UnknownErrorCode=-32001,t.RequestCancelled=-32800,t.ContentModified=-32801,t.MessageWriteError=1,t.MessageReadError=2}(r=e.ErrorCodes||(e.ErrorCodes={}));class o extends Error{constructor(t,e,n){super(e),this.code=i.number(t)?t:r.UnknownErrorCode,this.data=n,Object.setPrototypeOf(this,o.prototype)}toJson(){return{code:this.code,message:this.message,data:this.data}}}e.ResponseError=o;class a{constructor(t,e){this._method=t,this._numberOfParams=e}get method(){return this._method}get numberOfParams(){return this._numberOfParams}}e.AbstractMessageType=a;e.RequestType0=class extends a{constructor(t){super(t,0)}};e.RequestType=class extends a{constructor(t){super(t,1)}};e.RequestType1=class extends a{constructor(t){super(t,1)}};e.RequestType2=class extends a{constructor(t){super(t,2)}};e.RequestType3=class extends a{constructor(t){super(t,3)}};e.RequestType4=class extends a{constructor(t){super(t,4)}};e.RequestType5=class extends a{constructor(t){super(t,5)}};e.RequestType6=class extends a{constructor(t){super(t,6)}};e.RequestType7=class extends a{constructor(t){super(t,7)}};e.RequestType8=class extends a{constructor(t){super(t,8)}};e.RequestType9=class extends a{constructor(t){super(t,9)}};e.NotificationType=class extends a{constructor(t){super(t,1),this._=void 0}};e.NotificationType0=class extends a{constructor(t){super(t,0)}};e.NotificationType1=class extends a{constructor(t){super(t,1)}};e.NotificationType2=class extends a{constructor(t){super(t,2)}};e.NotificationType3=class extends a{constructor(t){super(t,3)}};e.NotificationType4=class extends a{constructor(t){super(t,4)}};e.NotificationType5=class extends a{constructor(t){super(t,5)}};e.NotificationType6=class extends a{constructor(t){super(t,6)}};e.NotificationType7=class extends a{constructor(t){super(t,7)}};e.NotificationType8=class extends a{constructor(t){super(t,8)}};e.NotificationType9=class extends a{constructor(t){super(t,9)}},e.isRequestMessage=function(t){let e=t;return e&&i.string(e.method)&&(i.string(e.id)||i.number(e.id))},e.isNotificationMessage=function(t){let e=t;return e&&i.string(e.method)&&void 0===t.id},e.isResponseMessage=function(t){let e=t;return e&&(void 0!==e.result||!!e.error)&&(i.string(e.id)||i.number(e.id)||null===e.id)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(8),r=n(5);let o=8192,a=Buffer.from("\r","ascii")[0],s=Buffer.from("\n","ascii")[0],l="\r\n";class c{constructor(t="utf8"){this.encoding=t,this.index=0,this.buffer=Buffer.allocUnsafe(o)}append(t){var e=t;if("string"==typeof t){var n=t,i=Buffer.byteLength(n,this.encoding);(e=Buffer.allocUnsafe(i)).write(n,0,i,this.encoding)}if(this.buffer.length-this.index>=e.length)e.copy(this.buffer,this.index,0,e.length);else{var r=(Math.ceil((this.index+e.length)/o)+1)*o;0===this.index?(this.buffer=Buffer.allocUnsafe(r),e.copy(this.buffer,0,0,e.length)):this.buffer=Buffer.concat([this.buffer.slice(0,this.index),e],r)}this.index+=e.length}tryReadHeaders(){let t=void 0,e=0;for(;e+3<this.index&&(this.buffer[e]!==a||this.buffer[e+1]!==s||this.buffer[e+2]!==a||this.buffer[e+3]!==s);)e++;if(e+3>=this.index)return t;t=Object.create(null),this.buffer.toString("ascii",0,e).split(l).forEach(e=>{let n=e.indexOf(":");if(-1===n)throw new Error("Message header must separate key and value using :");let i=e.substr(0,n),r=e.substr(n+1).trim();t[i]=r});let n=e+4;return this.buffer=this.buffer.slice(n),this.index=this.index-n,t}tryReadContent(t){if(this.index<t)return null;let e=this.buffer.toString(this.encoding,0,t),n=t;return this.buffer.copy(this.buffer,0,n),this.index=this.index-n,e}get numberOfBytes(){return this.index}}!function(t){t.is=function(t){let e=t;return e&&r.func(e.listen)&&r.func(e.dispose)&&r.func(e.onError)&&r.func(e.onClose)&&r.func(e.onPartialMessage)}}(e.MessageReader||(e.MessageReader={}));class u{constructor(){this.errorEmitter=new i.Emitter,this.closeEmitter=new i.Emitter,this.partialMessageEmitter=new i.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(t){this.errorEmitter.fire(this.asError(t))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(t){this.partialMessageEmitter.fire(t)}asError(t){return t instanceof Error?t:new Error(`Reader received error. Reason: ${r.string(t.message)?t.message:"unknown"}`)}}e.AbstractMessageReader=u;class d extends u{constructor(t,e="utf8"){super(),this.readable=t,this.buffer=new c(e),this._partialMessageTimeout=1e4}set partialMessageTimeout(t){this._partialMessageTimeout=t}get partialMessageTimeout(){return this._partialMessageTimeout}listen(t){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=t,this.readable.on("data",t=>{this.onData(t)}),this.readable.on("error",t=>this.fireError(t)),this.readable.on("close",()=>this.fireClose())}onData(t){for(this.buffer.append(t);;){if(-1===this.nextMessageLength){let t=this.buffer.tryReadHeaders();if(!t)return;let e=t["Content-Length"];if(!e)throw new Error("Header must provide a Content-Length property.");let n=parseInt(e);if(isNaN(n))throw new Error("Content-Length value must be a number.");this.nextMessageLength=n}var e=this.buffer.tryReadContent(this.nextMessageLength);if(null===e)return void this.setPartialMessageTimer();this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.messageToken++;var n=JSON.parse(e);this.callback(n)}}clearPartialMessageTimer(){this.partialMessageTimer&&(clearTimeout(this.partialMessageTimer),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),this._partialMessageTimeout<=0||(this.partialMessageTimer=setTimeout((t,e)=>{this.partialMessageTimer=void 0,t===this.messageToken&&(this.firePartialMessage({messageToken:t,waitingTime:e}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}}e.StreamMessageReader=d;e.IPCMessageReader=class extends u{constructor(t){super(),this.process=t;let e=this.process;e.on("error",t=>this.fireError(t)),e.on("close",()=>this.fireClose())}listen(t){this.process.on("message",t)}};e.SocketMessageReader=class extends d{constructor(t,e="utf-8"){super(t,e)}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.create=function(t){return{dispose:t}}}(e.Disposable||(e.Disposable={})),function(t){const e={dispose(){}};t.None=function(){return e}}(e.Event||(e.Event={}));class i{add(t,e=null,n){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(t),this._contexts.push(e),Array.isArray(n)&&n.push({dispose:()=>this.remove(t,e)})}remove(t,e=null){if(this._callbacks){for(var n=!1,i=0,r=this._callbacks.length;i<r;i++)if(this._callbacks[i]===t){if(this._contexts[i]===e)return this._callbacks.splice(i,1),void this._contexts.splice(i,1);n=!0}if(n)throw new Error("When adding a listener with a context, you should remove it with the same context")}}invoke(...t){if(!this._callbacks)return[];for(var e=[],n=this._callbacks.slice(0),i=this._contexts.slice(0),r=0,o=n.length;r<o;r++)try{e.push(n[r].apply(i[r],t))}catch(t){console.error(t)}return e}isEmpty(){return!this._callbacks||0===this._callbacks.length}dispose(){this._callbacks=void 0,this._contexts=void 0}}class r{constructor(t){this._options=t}get event(){return this._event||(this._event=(t,e,n)=>{let o;return this._callbacks||(this._callbacks=new i),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(t,e),o={dispose:()=>{this._callbacks.remove(t,e),o.dispose=r._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this)}},Array.isArray(n)&&n.push(o),o}),this._event}fire(t){this._callbacks&&this._callbacks.invoke.call(this._callbacks,t)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}}e.Emitter=r,r._noop=function(){}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(8),r=n(5);let o="Content-Length: ",a="\r\n";!function(t){t.is=function(t){let e=t;return e&&r.func(e.dispose)&&r.func(e.onClose)&&r.func(e.onError)&&r.func(e.write)}}(e.MessageWriter||(e.MessageWriter={}));class s{constructor(){this.errorEmitter=new i.Emitter,this.closeEmitter=new i.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(t,e,n){this.errorEmitter.fire([this.asError(t),e,n])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(t){return t instanceof Error?t:new Error(`Writer received error. Reason: ${r.string(t.message)?t.message:"unknown"}`)}}e.AbstractMessageWriter=s;e.StreamMessageWriter=class extends s{constructor(t,e="utf8"){super(),this.writable=t,this.encoding=e,this.errorCount=0,this.writable.on("error",t=>this.fireError(t)),this.writable.on("close",()=>this.fireClose())}write(t){let e=JSON.stringify(t),n=Buffer.byteLength(e,this.encoding),i=[o,n.toString(),a,a];try{this.writable.write(i.join(""),"ascii"),this.writable.write(e,this.encoding),this.errorCount=0}catch(e){this.errorCount++,this.fireError(e,t,this.errorCount)}}};e.IPCMessageWriter=class extends s{constructor(t){super(),this.process=t,this.errorCount=0,this.queue=[],this.sending=!1;let e=this.process;e.on("error",t=>this.fireError(t)),e.on("close",()=>this.fireClose)}write(t){this.sending||0!==this.queue.length?this.queue.push(t):this.doWriteMessage(t)}doWriteMessage(t){try{this.process.send&&(this.sending=!0,this.process.send(t,void 0,void 0,e=>{this.sending=!1,e?(this.errorCount++,this.fireError(e,t,this.errorCount)):this.errorCount=0,this.queue.length>0&&this.doWriteMessage(this.queue.shift())}))}catch(e){this.errorCount++,this.fireError(e,t,this.errorCount)}}};e.SocketMessageWriter=class extends s{constructor(t,e="utf8"){super(),this.socket=t,this.queue=[],this.sending=!1,this.encoding=e,this.errorCount=0,this.socket.on("error",t=>this.fireError(t)),this.socket.on("close",()=>this.fireClose())}dispose(){super.dispose(),this.socket.destroy()}write(t){this.sending||0!==this.queue.length?this.queue.push(t):this.doWriteMessage(t)}doWriteMessage(t){let e=JSON.stringify(t),n=Buffer.byteLength(e,this.encoding),i=[o,n.toString(),a,a];try{this.sending=!0,this.socket.write(i.join(""),"ascii",n=>{n&&this.handleError(n,t);try{this.socket.write(e,this.encoding,e=>{this.sending=!1,e?this.handleError(e,t):this.errorCount=0,this.queue.length>0&&this.doWriteMessage(this.queue.shift())})}catch(n){this.handleError(n,t)}})}catch(e){this.handleError(e,t)}}handleError(t,e){this.errorCount++,this.fireError(t,e,this.errorCount)}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(8),r=n(5);var o;!function(t){t.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:i.Event.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:i.Event.None}),t.is=function(e){let n=e;return n&&(n===t.None||n===t.Cancelled||r.boolean(n.isCancellationRequested)&&!!n.onCancellationRequested)}}(o=e.CancellationToken||(e.CancellationToken={}));const a=Object.freeze((function(t,e){let n=setTimeout(t.bind(e),0);return{dispose(){clearTimeout(n)}}}));class s{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?a:(this._emitter||(this._emitter=new i.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}}e.CancellationTokenSource=class{get token(){return this._token||(this._token=new s),this._token}cancel(){this._token?this._token.cancel():this._token=o.Cancelled}dispose(){this._token?this._token instanceof s&&this._token.dispose():this._token=o.None}}},function(t,e,n){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.None=0,t.First=1,t.Last=2}(i=e.Touch||(e.Touch={}));e.LinkedMap=class{constructor(){this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}has(t){return this._map.has(t)}get(t){const e=this._map.get(t);if(e)return e.value}set(t,e,n=i.None){let r=this._map.get(t);if(r)r.value=e,n!==i.None&&this.touch(r,n);else{switch(r={key:t,value:e,next:void 0,previous:void 0},n){case i.None:this.addItemLast(r);break;case i.First:this.addItemFirst(r);break;case i.Last:default:this.addItemLast(r)}this._map.set(t,r),this._size++}}delete(t){const e=this._map.get(t);return!!e&&(this._map.delete(t),this.removeItem(e),this._size--,!0)}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");const t=this._head;return this._map.delete(t.key),this.removeItem(t),this._size--,t.value}forEach(t,e){let n=this._head;for(;n;)e?t.bind(e)(n.value,n.key,this):t(n.value,n.key,this),n=n.next}forEachReverse(t,e){let n=this._tail;for(;n;)e?t.bind(e)(n.value,n.key,this):t(n.value,n.key,this),n=n.previous}values(){let t=[],e=this._head;for(;e;)t.push(e.value),e=e.next;return t}keys(){let t=[],e=this._head;for(;e;)t.push(e.key),e=e.next;return t}addItemFirst(t){if(this._head||this._tail){if(!this._head)throw new Error("Invalid list");t.next=this._head,this._head.previous=t}else this._tail=t;this._head=t}addItemLast(t){if(this._head||this._tail){if(!this._tail)throw new Error("Invalid list");t.previous=this._tail,this._tail.next=t}else this._head=t;this._tail=t}removeItem(t){if(t===this._head&&t===this._tail)this._head=void 0,this._tail=void 0;else if(t===this._head)this._head=t.next;else if(t===this._tail)this._tail=t.previous;else{const e=t.next,n=t.previous;if(!e||!n)throw new Error("Invalid list");e.previous=n,n.next=e}}touch(t,e){if(!this._head||!this._tail)throw new Error("Invalid list");if(e===i.First||e===i.Last)if(e===i.First){if(t===this._head)return;const e=t.next,n=t.previous;t===this._tail?(n.next=void 0,this._tail=n):(e.previous=n,n.next=e),t.previous=void 0,t.next=this._head,this._head.previous=t,this._head=t}else if(e===i.Last){if(t===this._tail)return;const e=t.next,n=t.previous;t===this._head?(e.previous=void 0,this._head=e):(e.previous=n,n.next=e),t.next=void 0,t.previous=this._tail,this._tail.next=t,this._tail=t}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(13),r=n(14),o=n(15),a=n(16),s=n(7),l=n(9);e.generateRandomPipeName=function(){const t=o.randomBytes(21).toString("hex");return"win32"===process.platform?`\\\\.\\pipe\\vscode-jsonrpc-${t}-sock`:i.join(r.tmpdir(),`vscode-${t}.sock`)},e.createClientPipeTransport=function(t,e="utf-8"){let n,i=new Promise((t,e)=>{n=t});return new Promise((r,o)=>{let c=a.createServer(t=>{c.close(),n([new s.SocketMessageReader(t,e),new l.SocketMessageWriter(t,e)])});c.on("error",o),c.listen(t,()=>{c.removeListener("error",o),r({onConnected:()=>i})})})},e.createServerPipeTransport=function(t,e="utf-8"){const n=a.createConnection(t);return[new s.SocketMessageReader(n,e),new l.SocketMessageWriter(n,e)]}},function(t,e){t.exports=n(0)},function(t,e){t.exports=n(1)},function(t,e){t.exports=n(2)},function(t,e){t.exports=n(3)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(16),r=n(7),o=n(9);e.createClientSocketTransport=function(t,e="utf-8"){let n,a=new Promise((t,e)=>{n=t});return new Promise((s,l)=>{let c=i.createServer(t=>{c.close(),n([new r.SocketMessageReader(t,e),new o.SocketMessageWriter(t,e)])});c.on("error",l),c.listen(t,"127.0.0.1",()=>{c.removeListener("error",l),s({onConnected:()=>a})})})},e.createServerSocketTransport=function(t,e="utf-8"){const n=i.createConnection(t,"127.0.0.1");return[new r.SocketMessageReader(n,e),new o.SocketMessageWriter(n,e)]}},function(t,e,n){"use strict";var i,r,o,a,s,l,c,u,d,m,h,p,f,g,b,x,w,T,_,y;n.r(e),n.d(e,"Position",(function(){return i})),n.d(e,"Range",(function(){return r})),n.d(e,"Location",(function(){return o})),n.d(e,"LocationLink",(function(){return a})),n.d(e,"Color",(function(){return s})),n.d(e,"ColorInformation",(function(){return l})),n.d(e,"ColorPresentation",(function(){return c})),n.d(e,"FoldingRangeKind",(function(){return u})),n.d(e,"FoldingRange",(function(){return d})),n.d(e,"DiagnosticRelatedInformation",(function(){return m})),n.d(e,"DiagnosticSeverity",(function(){return h})),n.d(e,"DiagnosticTag",(function(){return p})),n.d(e,"Diagnostic",(function(){return f})),n.d(e,"Command",(function(){return g})),n.d(e,"TextEdit",(function(){return b})),n.d(e,"TextDocumentEdit",(function(){return x})),n.d(e,"CreateFile",(function(){return w})),n.d(e,"RenameFile",(function(){return T})),n.d(e,"DeleteFile",(function(){return _})),n.d(e,"WorkspaceEdit",(function(){return y})),n.d(e,"WorkspaceChange",(function(){return Z})),n.d(e,"TextDocumentIdentifier",(function(){return v})),n.d(e,"VersionedTextDocumentIdentifier",(function(){return k})),n.d(e,"TextDocumentItem",(function(){return R})),n.d(e,"MarkupKind",(function(){return F})),n.d(e,"MarkupContent",(function(){return A})),n.d(e,"CompletionItemKind",(function(){return E})),n.d(e,"InsertTextFormat",(function(){return N})),n.d(e,"CompletionItemTag",(function(){return S})),n.d(e,"CompletionItem",(function(){return C})),n.d(e,"CompletionList",(function(){return O})),n.d(e,"MarkedString",(function(){return L})),n.d(e,"Hover",(function(){return I})),n.d(e,"ParameterInformation",(function(){return $})),n.d(e,"SignatureInformation",(function(){return D})),n.d(e,"DocumentHighlightKind",(function(){return W})),n.d(e,"DocumentHighlight",(function(){return G})),n.d(e,"SymbolKind",(function(){return M})),n.d(e,"SymbolTag",(function(){return P})),n.d(e,"SymbolInformation",(function(){return B})),n.d(e,"DocumentSymbol",(function(){return j})),n.d(e,"CodeActionKind",(function(){return U})),n.d(e,"CodeActionContext",(function(){return q})),n.d(e,"CodeAction",(function(){return V})),n.d(e,"CodeLens",(function(){return z})),n.d(e,"FormattingOptions",(function(){return H})),n.d(e,"DocumentLink",(function(){return X})),n.d(e,"SelectionRange",(function(){return K})),n.d(e,"EOL",(function(){return Q})),n.d(e,"TextDocument",(function(){return J})),function(t){t.create=function(t,e){return{line:t,character:e}},t.is=function(t){var e=t;return tt.objectLiteral(e)&&tt.number(e.line)&&tt.number(e.character)}}(i||(i={})),function(t){t.create=function(t,e,n,r){if(tt.number(t)&&tt.number(e)&&tt.number(n)&&tt.number(r))return{start:i.create(t,e),end:i.create(n,r)};if(i.is(t)&&i.is(e))return{start:t,end:e};throw new Error("Range#create called with invalid arguments["+t+", "+e+", "+n+", "+r+"]")},t.is=function(t){var e=t;return tt.objectLiteral(e)&&i.is(e.start)&&i.is(e.end)}}(r||(r={})),function(t){t.create=function(t,e){return{uri:t,range:e}},t.is=function(t){var e=t;return tt.defined(e)&&r.is(e.range)&&(tt.string(e.uri)||tt.undefined(e.uri))}}(o||(o={})),function(t){t.create=function(t,e,n,i){return{targetUri:t,targetRange:e,targetSelectionRange:n,originSelectionRange:i}},t.is=function(t){var e=t;return tt.defined(e)&&r.is(e.targetRange)&&tt.string(e.targetUri)&&(r.is(e.targetSelectionRange)||tt.undefined(e.targetSelectionRange))&&(r.is(e.originSelectionRange)||tt.undefined(e.originSelectionRange))}}(a||(a={})),function(t){t.create=function(t,e,n,i){return{red:t,green:e,blue:n,alpha:i}},t.is=function(t){var e=t;return tt.number(e.red)&&tt.number(e.green)&&tt.number(e.blue)&&tt.number(e.alpha)}}(s||(s={})),function(t){t.create=function(t,e){return{range:t,color:e}},t.is=function(t){var e=t;return r.is(e.range)&&s.is(e.color)}}(l||(l={})),function(t){t.create=function(t,e,n){return{label:t,textEdit:e,additionalTextEdits:n}},t.is=function(t){var e=t;return tt.string(e.label)&&(tt.undefined(e.textEdit)||b.is(e))&&(tt.undefined(e.additionalTextEdits)||tt.typedArray(e.additionalTextEdits,b.is))}}(c||(c={})),function(t){t.Comment="comment",t.Imports="imports",t.Region="region"}(u||(u={})),function(t){t.create=function(t,e,n,i,r){var o={startLine:t,endLine:e};return tt.defined(n)&&(o.startCharacter=n),tt.defined(i)&&(o.endCharacter=i),tt.defined(r)&&(o.kind=r),o},t.is=function(t){var e=t;return tt.number(e.startLine)&&tt.number(e.startLine)&&(tt.undefined(e.startCharacter)||tt.number(e.startCharacter))&&(tt.undefined(e.endCharacter)||tt.number(e.endCharacter))&&(tt.undefined(e.kind)||tt.string(e.kind))}}(d||(d={})),function(t){t.create=function(t,e){return{location:t,message:e}},t.is=function(t){var e=t;return tt.defined(e)&&o.is(e.location)&&tt.string(e.message)}}(m||(m={})),function(t){t.Error=1,t.Warning=2,t.Information=3,t.Hint=4}(h||(h={})),function(t){t.Unnecessary=1,t.Deprecated=2}(p||(p={})),function(t){t.create=function(t,e,n,i,r,o){var a={range:t,message:e};return tt.defined(n)&&(a.severity=n),tt.defined(i)&&(a.code=i),tt.defined(r)&&(a.source=r),tt.defined(o)&&(a.relatedInformation=o),a},t.is=function(t){var e=t;return tt.defined(e)&&r.is(e.range)&&tt.string(e.message)&&(tt.number(e.severity)||tt.undefined(e.severity))&&(tt.number(e.code)||tt.string(e.code)||tt.undefined(e.code))&&(tt.string(e.source)||tt.undefined(e.source))&&(tt.undefined(e.relatedInformation)||tt.typedArray(e.relatedInformation,m.is))}}(f||(f={})),function(t){t.create=function(t,e){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];var r={title:t,command:e};return tt.defined(n)&&n.length>0&&(r.arguments=n),r},t.is=function(t){var e=t;return tt.defined(e)&&tt.string(e.title)&&tt.string(e.command)}}(g||(g={})),function(t){t.replace=function(t,e){return{range:t,newText:e}},t.insert=function(t,e){return{range:{start:t,end:t},newText:e}},t.del=function(t){return{range:t,newText:""}},t.is=function(t){var e=t;return tt.objectLiteral(e)&&tt.string(e.newText)&&r.is(e.range)}}(b||(b={})),function(t){t.create=function(t,e){return{textDocument:t,edits:e}},t.is=function(t){var e=t;return tt.defined(e)&&k.is(e.textDocument)&&Array.isArray(e.edits)}}(x||(x={})),function(t){t.create=function(t,e){var n={kind:"create",uri:t};return void 0===e||void 0===e.overwrite&&void 0===e.ignoreIfExists||(n.options=e),n},t.is=function(t){var e=t;return e&&"create"===e.kind&&tt.string(e.uri)&&(void 0===e.options||(void 0===e.options.overwrite||tt.boolean(e.options.overwrite))&&(void 0===e.options.ignoreIfExists||tt.boolean(e.options.ignoreIfExists)))}}(w||(w={})),function(t){t.create=function(t,e,n){var i={kind:"rename",oldUri:t,newUri:e};return void 0===n||void 0===n.overwrite&&void 0===n.ignoreIfExists||(i.options=n),i},t.is=function(t){var e=t;return e&&"rename"===e.kind&&tt.string(e.oldUri)&&tt.string(e.newUri)&&(void 0===e.options||(void 0===e.options.overwrite||tt.boolean(e.options.overwrite))&&(void 0===e.options.ignoreIfExists||tt.boolean(e.options.ignoreIfExists)))}}(T||(T={})),function(t){t.create=function(t,e){var n={kind:"delete",uri:t};return void 0===e||void 0===e.recursive&&void 0===e.ignoreIfNotExists||(n.options=e),n},t.is=function(t){var e=t;return e&&"delete"===e.kind&&tt.string(e.uri)&&(void 0===e.options||(void 0===e.options.recursive||tt.boolean(e.options.recursive))&&(void 0===e.options.ignoreIfNotExists||tt.boolean(e.options.ignoreIfNotExists)))}}(_||(_={})),function(t){t.is=function(t){var e=t;return e&&(void 0!==e.changes||void 0!==e.documentChanges)&&(void 0===e.documentChanges||e.documentChanges.every((function(t){return tt.string(t.kind)?w.is(t)||T.is(t)||_.is(t):x.is(t)})))}}(y||(y={}));var v,k,R,F,A,E,N,S,C,O,L,I,$,D,W,G,M,P,B,j,U,q,V,z,H,X,K,Y=function(){function t(t){this.edits=t}return t.prototype.insert=function(t,e){this.edits.push(b.insert(t,e))},t.prototype.replace=function(t,e){this.edits.push(b.replace(t,e))},t.prototype.delete=function(t){this.edits.push(b.del(t))},t.prototype.add=function(t){this.edits.push(t)},t.prototype.all=function(){return this.edits},t.prototype.clear=function(){this.edits.splice(0,this.edits.length)},t}(),Z=function(){function t(t){var e=this;this._textEditChanges=Object.create(null),t&&(this._workspaceEdit=t,t.documentChanges?t.documentChanges.forEach((function(t){if(x.is(t)){var n=new Y(t.edits);e._textEditChanges[t.textDocument.uri]=n}})):t.changes&&Object.keys(t.changes).forEach((function(n){var i=new Y(t.changes[n]);e._textEditChanges[n]=i})))}return Object.defineProperty(t.prototype,"edit",{get:function(){return this._workspaceEdit},enumerable:!0,configurable:!0}),t.prototype.getTextEditChange=function(t){if(k.is(t)){if(this._workspaceEdit||(this._workspaceEdit={documentChanges:[]}),!this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var e=t;if(!(i=this._textEditChanges[e.uri])){var n={textDocument:e,edits:r=[]};this._workspaceEdit.documentChanges.push(n),i=new Y(r),this._textEditChanges[e.uri]=i}return i}if(this._workspaceEdit||(this._workspaceEdit={changes:Object.create(null)}),!this._workspaceEdit.changes)throw new Error("Workspace edit is not configured for normal text edit changes.");var i;if(!(i=this._textEditChanges[t])){var r=[];this._workspaceEdit.changes[t]=r,i=new Y(r),this._textEditChanges[t]=i}return i},t.prototype.createFile=function(t,e){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(w.create(t,e))},t.prototype.renameFile=function(t,e,n){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(T.create(t,e,n))},t.prototype.deleteFile=function(t,e){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(_.create(t,e))},t.prototype.checkDocumentChanges=function(){if(!this._workspaceEdit||!this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.")},t}();!function(t){t.create=function(t){return{uri:t}},t.is=function(t){var e=t;return tt.defined(e)&&tt.string(e.uri)}}(v||(v={})),function(t){t.create=function(t,e){return{uri:t,version:e}},t.is=function(t){var e=t;return tt.defined(e)&&tt.string(e.uri)&&(null===e.version||tt.number(e.version))}}(k||(k={})),function(t){t.create=function(t,e,n,i){return{uri:t,languageId:e,version:n,text:i}},t.is=function(t){var e=t;return tt.defined(e)&&tt.string(e.uri)&&tt.string(e.languageId)&&tt.number(e.version)&&tt.string(e.text)}}(R||(R={})),function(t){t.PlainText="plaintext",t.Markdown="markdown"}(F||(F={})),function(t){t.is=function(e){var n=e;return n===t.PlainText||n===t.Markdown}}(F||(F={})),function(t){t.is=function(t){var e=t;return tt.objectLiteral(t)&&F.is(e.kind)&&tt.string(e.value)}}(A||(A={})),function(t){t.Text=1,t.Method=2,t.Function=3,t.Constructor=4,t.Field=5,t.Variable=6,t.Class=7,t.Interface=8,t.Module=9,t.Property=10,t.Unit=11,t.Value=12,t.Enum=13,t.Keyword=14,t.Snippet=15,t.Color=16,t.File=17,t.Reference=18,t.Folder=19,t.EnumMember=20,t.Constant=21,t.Struct=22,t.Event=23,t.Operator=24,t.TypeParameter=25}(E||(E={})),function(t){t.PlainText=1,t.Snippet=2}(N||(N={})),function(t){t.Deprecated=1}(S||(S={})),function(t){t.create=function(t){return{label:t}}}(C||(C={})),function(t){t.create=function(t,e){return{items:t||[],isIncomplete:!!e}}}(O||(O={})),function(t){t.fromPlainText=function(t){return t.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")},t.is=function(t){var e=t;return tt.string(e)||tt.objectLiteral(e)&&tt.string(e.language)&&tt.string(e.value)}}(L||(L={})),function(t){t.is=function(t){var e=t;return!!e&&tt.objectLiteral(e)&&(A.is(e.contents)||L.is(e.contents)||tt.typedArray(e.contents,L.is))&&(void 0===t.range||r.is(t.range))}}(I||(I={})),function(t){t.create=function(t,e){return e?{label:t,documentation:e}:{label:t}}}($||($={})),function(t){t.create=function(t,e){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];var r={label:t};return tt.defined(e)&&(r.documentation=e),tt.defined(n)?r.parameters=n:r.parameters=[],r}}(D||(D={})),function(t){t.Text=1,t.Read=2,t.Write=3}(W||(W={})),function(t){t.create=function(t,e){var n={range:t};return tt.number(e)&&(n.kind=e),n}}(G||(G={})),function(t){t.File=1,t.Module=2,t.Namespace=3,t.Package=4,t.Class=5,t.Method=6,t.Property=7,t.Field=8,t.Constructor=9,t.Enum=10,t.Interface=11,t.Function=12,t.Variable=13,t.Constant=14,t.String=15,t.Number=16,t.Boolean=17,t.Array=18,t.Object=19,t.Key=20,t.Null=21,t.EnumMember=22,t.Struct=23,t.Event=24,t.Operator=25,t.TypeParameter=26}(M||(M={})),function(t){t.Deprecated=1}(P||(P={})),function(t){t.create=function(t,e,n,i,r){var o={name:t,kind:e,location:{uri:i,range:n}};return r&&(o.containerName=r),o}}(B||(B={})),function(t){t.create=function(t,e,n,i,r,o){var a={name:t,detail:e,kind:n,range:i,selectionRange:r};return void 0!==o&&(a.children=o),a},t.is=function(t){var e=t;return e&&tt.string(e.name)&&tt.number(e.kind)&&r.is(e.range)&&r.is(e.selectionRange)&&(void 0===e.detail||tt.string(e.detail))&&(void 0===e.deprecated||tt.boolean(e.deprecated))&&(void 0===e.children||Array.isArray(e.children))}}(j||(j={})),function(t){t.Empty="",t.QuickFix="quickfix",t.Refactor="refactor",t.RefactorExtract="refactor.extract",t.RefactorInline="refactor.inline",t.RefactorRewrite="refactor.rewrite",t.Source="source",t.SourceOrganizeImports="source.organizeImports",t.SourceFixAll="source.fixAll"}(U||(U={})),function(t){t.create=function(t,e){var n={diagnostics:t};return null!=e&&(n.only=e),n},t.is=function(t){var e=t;return tt.defined(e)&&tt.typedArray(e.diagnostics,f.is)&&(void 0===e.only||tt.typedArray(e.only,tt.string))}}(q||(q={})),function(t){t.create=function(t,e,n){var i={title:t};return g.is(e)?i.command=e:i.edit=e,void 0!==n&&(i.kind=n),i},t.is=function(t){var e=t;return e&&tt.string(e.title)&&(void 0===e.diagnostics||tt.typedArray(e.diagnostics,f.is))&&(void 0===e.kind||tt.string(e.kind))&&(void 0!==e.edit||void 0!==e.command)&&(void 0===e.command||g.is(e.command))&&(void 0===e.isPreferred||tt.boolean(e.isPreferred))&&(void 0===e.edit||y.is(e.edit))}}(V||(V={})),function(t){t.create=function(t,e){var n={range:t};return tt.defined(e)&&(n.data=e),n},t.is=function(t){var e=t;return tt.defined(e)&&r.is(e.range)&&(tt.undefined(e.command)||g.is(e.command))}}(z||(z={})),function(t){t.create=function(t,e){return{tabSize:t,insertSpaces:e}},t.is=function(t){var e=t;return tt.defined(e)&&tt.number(e.tabSize)&&tt.boolean(e.insertSpaces)}}(H||(H={})),function(t){t.create=function(t,e,n){return{range:t,target:e,data:n}},t.is=function(t){var e=t;return tt.defined(e)&&r.is(e.range)&&(tt.undefined(e.target)||tt.string(e.target))}}(X||(X={})),function(t){t.create=function(t,e){return{range:t,parent:e}},t.is=function(e){var n=e;return void 0!==n&&r.is(n.range)&&(void 0===n.parent||t.is(n.parent))}}(K||(K={}));var J,Q=["\n","\r\n","\r"];!function(t){t.create=function(t,e,n,i){return new et(t,e,n,i)},t.is=function(t){var e=t;return!!(tt.defined(e)&&tt.string(e.uri)&&(tt.undefined(e.languageId)||tt.string(e.languageId))&&tt.number(e.lineCount)&&tt.func(e.getText)&&tt.func(e.positionAt)&&tt.func(e.offsetAt))},t.applyEdits=function(t,e){for(var n=t.getText(),i=function t(e,n){if(e.length<=1)return e;var i=e.length/2|0;var r=e.slice(0,i);var o=e.slice(i);t(r,n);t(o,n);var a=0;var s=0;var l=0;for(;a<r.length&&s<o.length;){var c=n(r[a],o[s]);e[l++]=c<=0?r[a++]:o[s++]}for(;a<r.length;)e[l++]=r[a++];for(;s<o.length;)e[l++]=o[s++];return e}(e,(function(t,e){var n=t.range.start.line-e.range.start.line;return 0===n?t.range.start.character-e.range.start.character:n})),r=n.length,o=i.length-1;o>=0;o--){var a=i[o],s=t.offsetAt(a.range.start),l=t.offsetAt(a.range.end);if(!(l<=r))throw new Error("Overlapping edit");n=n.substring(0,s)+a.newText+n.substring(l,n.length),r=s}return n}}(J||(J={}));var tt,et=function(){function t(t,e,n,i){this._uri=t,this._languageId=e,this._version=n,this._content=i,this._lineOffsets=void 0}return Object.defineProperty(t.prototype,"uri",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"languageId",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"version",{get:function(){return this._version},enumerable:!0,configurable:!0}),t.prototype.getText=function(t){if(t){var e=this.offsetAt(t.start),n=this.offsetAt(t.end);return this._content.substring(e,n)}return this._content},t.prototype.update=function(t,e){this._content=t.text,this._version=e,this._lineOffsets=void 0},t.prototype.getLineOffsets=function(){if(void 0===this._lineOffsets){for(var t=[],e=this._content,n=!0,i=0;i<e.length;i++){n&&(t.push(i),n=!1);var r=e.charAt(i);n="\r"===r||"\n"===r,"\r"===r&&i+1<e.length&&"\n"===e.charAt(i+1)&&i++}n&&e.length>0&&t.push(e.length),this._lineOffsets=t}return this._lineOffsets},t.prototype.positionAt=function(t){t=Math.max(Math.min(t,this._content.length),0);var e=this.getLineOffsets(),n=0,r=e.length;if(0===r)return i.create(0,t);for(;n<r;){var o=Math.floor((n+r)/2);e[o]>t?r=o:n=o+1}var a=n-1;return i.create(a,t-e[a])},t.prototype.offsetAt=function(t){var e=this.getLineOffsets();if(t.line>=e.length)return this._content.length;if(t.line<0)return 0;var n=e[t.line],i=t.line+1<e.length?e[t.line+1]:this._content.length;return Math.max(Math.min(n+t.character,i),n)},Object.defineProperty(t.prototype,"lineCount",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),t}();!function(t){var e=Object.prototype.toString;t.defined=function(t){return void 0!==t},t.undefined=function(t){return void 0===t},t.boolean=function(t){return!0===t||!1===t},t.string=function(t){return"[object String]"===e.call(t)},t.number=function(t){return"[object Number]"===e.call(t)},t.func=function(t){return"[object Function]"===e.call(t)},t.objectLiteral=function(t){return null!==t&&"object"==typeof t},t.typedArray=function(t,e){return Array.isArray(t)&&t.every(e)}}(tt||(tt={}))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(20),r=n(4),o=n(21),a=n(22);e.ImplementationRequest=a.ImplementationRequest;const s=n(23);e.TypeDefinitionRequest=s.TypeDefinitionRequest;const l=n(24);e.WorkspaceFoldersRequest=l.WorkspaceFoldersRequest,e.DidChangeWorkspaceFoldersNotification=l.DidChangeWorkspaceFoldersNotification;const c=n(25);e.ConfigurationRequest=c.ConfigurationRequest;const u=n(26);e.DocumentColorRequest=u.DocumentColorRequest,e.ColorPresentationRequest=u.ColorPresentationRequest;const d=n(27);e.FoldingRangeRequest=d.FoldingRangeRequest;const m=n(28);e.DeclarationRequest=m.DeclarationRequest;const h=n(29);e.SelectionRangeRequest=h.SelectionRangeRequest;const p=n(30);var f,g;e.WorkDoneProgress=p.WorkDoneProgress,e.WorkDoneProgressCreateRequest=p.WorkDoneProgressCreateRequest,e.WorkDoneProgressCancelNotification=p.WorkDoneProgressCancelNotification,function(t){t.is=function(t){const e=t;return i.string(e.language)||i.string(e.scheme)||i.string(e.pattern)}}(f=e.DocumentFilter||(e.DocumentFilter={})),function(t){t.is=function(t){if(!Array.isArray(t))return!1;for(let e of t)if(!i.string(e)&&!f.is(e))return!1;return!0}}(g=e.DocumentSelector||(e.DocumentSelector={})),function(t){t.type=new o.ProtocolRequestType("client/registerCapability")}(e.RegistrationRequest||(e.RegistrationRequest={})),function(t){t.type=new o.ProtocolRequestType("client/unregisterCapability")}(e.UnregistrationRequest||(e.UnregistrationRequest={})),function(t){t.Create="create",t.Rename="rename",t.Delete="delete"}(e.ResourceOperationKind||(e.ResourceOperationKind={})),function(t){t.Abort="abort",t.Transactional="transactional",t.TextOnlyTransactional="textOnlyTransactional",t.Undo="undo"}(e.FailureHandlingKind||(e.FailureHandlingKind={})),function(t){t.hasId=function(t){const e=t;return e&&i.string(e.id)&&e.id.length>0}}(e.StaticRegistrationOptions||(e.StaticRegistrationOptions={})),function(t){t.is=function(t){const e=t;return e&&(null===e.documentSelector||g.is(e.documentSelector))}}(e.TextDocumentRegistrationOptions||(e.TextDocumentRegistrationOptions={})),function(t){t.is=function(t){const e=t;return i.objectLiteral(e)&&(void 0===e.workDoneProgress||i.boolean(e.workDoneProgress))},t.hasWorkDoneProgress=function(t){const e=t;return e&&i.boolean(e.workDoneProgress)}}(e.WorkDoneProgressOptions||(e.WorkDoneProgressOptions={})),function(t){t.type=new o.ProtocolRequestType("initialize")}(e.InitializeRequest||(e.InitializeRequest={})),function(t){t.unknownProtocolVersion=1}(e.InitializeError||(e.InitializeError={})),function(t){t.type=new o.ProtocolNotificationType("initialized")}(e.InitializedNotification||(e.InitializedNotification={})),function(t){t.type=new o.ProtocolRequestType0("shutdown")}(e.ShutdownRequest||(e.ShutdownRequest={})),function(t){t.type=new o.ProtocolNotificationType0("exit")}(e.ExitNotification||(e.ExitNotification={})),function(t){t.type=new o.ProtocolNotificationType("workspace/didChangeConfiguration")}(e.DidChangeConfigurationNotification||(e.DidChangeConfigurationNotification={})),function(t){t.Error=1,t.Warning=2,t.Info=3,t.Log=4}(e.MessageType||(e.MessageType={})),function(t){t.type=new o.ProtocolNotificationType("window/showMessage")}(e.ShowMessageNotification||(e.ShowMessageNotification={})),function(t){t.type=new o.ProtocolRequestType("window/showMessageRequest")}(e.ShowMessageRequest||(e.ShowMessageRequest={})),function(t){t.type=new o.ProtocolNotificationType("window/logMessage")}(e.LogMessageNotification||(e.LogMessageNotification={})),function(t){t.type=new o.ProtocolNotificationType("telemetry/event")}(e.TelemetryEventNotification||(e.TelemetryEventNotification={})),function(t){t.None=0,t.Full=1,t.Incremental=2}(e.TextDocumentSyncKind||(e.TextDocumentSyncKind={})),function(t){t.method="textDocument/didOpen",t.type=new o.ProtocolNotificationType(t.method)}(e.DidOpenTextDocumentNotification||(e.DidOpenTextDocumentNotification={})),function(t){t.method="textDocument/didChange",t.type=new o.ProtocolNotificationType(t.method)}(e.DidChangeTextDocumentNotification||(e.DidChangeTextDocumentNotification={})),function(t){t.method="textDocument/didClose",t.type=new o.ProtocolNotificationType(t.method)}(e.DidCloseTextDocumentNotification||(e.DidCloseTextDocumentNotification={})),function(t){t.method="textDocument/didSave",t.type=new o.ProtocolNotificationType(t.method)}(e.DidSaveTextDocumentNotification||(e.DidSaveTextDocumentNotification={})),function(t){t.Manual=1,t.AfterDelay=2,t.FocusOut=3}(e.TextDocumentSaveReason||(e.TextDocumentSaveReason={})),function(t){t.method="textDocument/willSave",t.type=new o.ProtocolNotificationType(t.method)}(e.WillSaveTextDocumentNotification||(e.WillSaveTextDocumentNotification={})),function(t){t.method="textDocument/willSaveWaitUntil",t.type=new o.ProtocolRequestType(t.method)}(e.WillSaveTextDocumentWaitUntilRequest||(e.WillSaveTextDocumentWaitUntilRequest={})),function(t){t.type=new o.ProtocolNotificationType("workspace/didChangeWatchedFiles")}(e.DidChangeWatchedFilesNotification||(e.DidChangeWatchedFilesNotification={})),function(t){t.Created=1,t.Changed=2,t.Deleted=3}(e.FileChangeType||(e.FileChangeType={})),function(t){t.Create=1,t.Change=2,t.Delete=4}(e.WatchKind||(e.WatchKind={})),function(t){t.type=new o.ProtocolNotificationType("textDocument/publishDiagnostics")}(e.PublishDiagnosticsNotification||(e.PublishDiagnosticsNotification={})),function(t){t.Invoked=1,t.TriggerCharacter=2,t.TriggerForIncompleteCompletions=3}(e.CompletionTriggerKind||(e.CompletionTriggerKind={})),function(t){t.method="textDocument/completion",t.type=new o.ProtocolRequestType(t.method),t.resultType=new r.ProgressType}(e.CompletionRequest||(e.CompletionRequest={})),function(t){t.method="completionItem/resolve",t.type=new o.ProtocolRequestType(t.method)}(e.CompletionResolveRequest||(e.CompletionResolveRequest={})),function(t){t.method="textDocument/hover",t.type=new o.ProtocolRequestType(t.method)}(e.HoverRequest||(e.HoverRequest={})),function(t){t.Invoked=1,t.TriggerCharacter=2,t.ContentChange=3}(e.SignatureHelpTriggerKind||(e.SignatureHelpTriggerKind={})),function(t){t.method="textDocument/signatureHelp",t.type=new o.ProtocolRequestType(t.method)}(e.SignatureHelpRequest||(e.SignatureHelpRequest={})),function(t){t.method="textDocument/definition",t.type=new o.ProtocolRequestType(t.method),t.resultType=new r.ProgressType}(e.DefinitionRequest||(e.DefinitionRequest={})),function(t){t.method="textDocument/references",t.type=new o.ProtocolRequestType(t.method),t.resultType=new r.ProgressType}(e.ReferencesRequest||(e.ReferencesRequest={})),function(t){t.method="textDocument/documentHighlight",t.type=new o.ProtocolRequestType(t.method),t.resultType=new r.ProgressType}(e.DocumentHighlightRequest||(e.DocumentHighlightRequest={})),function(t){t.method="textDocument/documentSymbol",t.type=new o.ProtocolRequestType(t.method),t.resultType=new r.ProgressType}(e.DocumentSymbolRequest||(e.DocumentSymbolRequest={})),function(t){t.method="textDocument/codeAction",t.type=new o.ProtocolRequestType(t.method),t.resultType=new r.ProgressType}(e.CodeActionRequest||(e.CodeActionRequest={})),function(t){t.method="workspace/symbol",t.type=new o.ProtocolRequestType(t.method),t.resultType=new r.ProgressType}(e.WorkspaceSymbolRequest||(e.WorkspaceSymbolRequest={})),function(t){t.type=new o.ProtocolRequestType("textDocument/codeLens"),t.resultType=new r.ProgressType}(e.CodeLensRequest||(e.CodeLensRequest={})),function(t){t.type=new o.ProtocolRequestType("codeLens/resolve")}(e.CodeLensResolveRequest||(e.CodeLensResolveRequest={})),function(t){t.method="textDocument/documentLink",t.type=new o.ProtocolRequestType(t.method),t.resultType=new r.ProgressType}(e.DocumentLinkRequest||(e.DocumentLinkRequest={})),function(t){t.type=new o.ProtocolRequestType("documentLink/resolve")}(e.DocumentLinkResolveRequest||(e.DocumentLinkResolveRequest={})),function(t){t.method="textDocument/formatting",t.type=new o.ProtocolRequestType(t.method)}(e.DocumentFormattingRequest||(e.DocumentFormattingRequest={})),function(t){t.method="textDocument/rangeFormatting",t.type=new o.ProtocolRequestType(t.method)}(e.DocumentRangeFormattingRequest||(e.DocumentRangeFormattingRequest={})),function(t){t.method="textDocument/onTypeFormatting",t.type=new o.ProtocolRequestType(t.method)}(e.DocumentOnTypeFormattingRequest||(e.DocumentOnTypeFormattingRequest={})),function(t){t.method="textDocument/rename",t.type=new o.ProtocolRequestType(t.method)}(e.RenameRequest||(e.RenameRequest={})),function(t){t.method="textDocument/prepareRename",t.type=new o.ProtocolRequestType(t.method)}(e.PrepareRenameRequest||(e.PrepareRenameRequest={})),function(t){t.type=new o.ProtocolRequestType("workspace/executeCommand")}(e.ExecuteCommandRequest||(e.ExecuteCommandRequest={})),function(t){t.type=new o.ProtocolRequestType("workspace/applyEdit")}(e.ApplyWorkspaceEditRequest||(e.ApplyWorkspaceEditRequest={}))},function(t,e,n){"use strict";function i(t){return"string"==typeof t||t instanceof String}function r(t){return Array.isArray(t)}Object.defineProperty(e,"__esModule",{value:!0}),e.boolean=function(t){return!0===t||!1===t},e.string=i,e.number=function(t){return"number"==typeof t||t instanceof Number},e.error=function(t){return t instanceof Error},e.func=function(t){return"function"==typeof t},e.array=r,e.stringArray=function(t){return r(t)&&t.every(t=>i(t))},e.typedArray=function(t,e){return Array.isArray(t)&&t.every(e)},e.objectLiteral=function(t){return null!==t&&"object"==typeof t}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(4);class r extends i.RequestType0{constructor(t){super(t)}}e.ProtocolRequestType0=r;class o extends i.RequestType{constructor(t){super(t)}}e.ProtocolRequestType=o;class a extends i.NotificationType{constructor(t){super(t)}}e.ProtocolNotificationType=a;class s extends i.NotificationType0{constructor(t){super(t)}}e.ProtocolNotificationType0=s},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(4),r=n(21);!function(t){t.method="textDocument/implementation",t.type=new r.ProtocolRequestType(t.method),t.resultType=new i.ProgressType}(e.ImplementationRequest||(e.ImplementationRequest={}))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(4),r=n(21);!function(t){t.method="textDocument/typeDefinition",t.type=new r.ProtocolRequestType(t.method),t.resultType=new i.ProgressType}(e.TypeDefinitionRequest||(e.TypeDefinitionRequest={}))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(21);!function(t){t.type=new i.ProtocolRequestType0("workspace/workspaceFolders")}(e.WorkspaceFoldersRequest||(e.WorkspaceFoldersRequest={})),function(t){t.type=new i.ProtocolNotificationType("workspace/didChangeWorkspaceFolders")}(e.DidChangeWorkspaceFoldersNotification||(e.DidChangeWorkspaceFoldersNotification={}))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(21);!function(t){t.type=new i.ProtocolRequestType("workspace/configuration")}(e.ConfigurationRequest||(e.ConfigurationRequest={}))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(4),r=n(21);!function(t){t.method="textDocument/documentColor",t.type=new r.ProtocolRequestType(t.method),t.resultType=new i.ProgressType}(e.DocumentColorRequest||(e.DocumentColorRequest={})),function(t){t.type=new r.ProtocolRequestType("textDocument/colorPresentation")}(e.ColorPresentationRequest||(e.ColorPresentationRequest={}))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(4),r=n(21);!function(t){t.Comment="comment",t.Imports="imports",t.Region="region"}(e.FoldingRangeKind||(e.FoldingRangeKind={})),function(t){t.method="textDocument/foldingRange",t.type=new r.ProtocolRequestType(t.method),t.resultType=new i.ProgressType}(e.FoldingRangeRequest||(e.FoldingRangeRequest={}))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(4),r=n(21);!function(t){t.method="textDocument/declaration",t.type=new r.ProtocolRequestType(t.method),t.resultType=new i.ProgressType}(e.DeclarationRequest||(e.DeclarationRequest={}))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(4),r=n(21);!function(t){t.method="textDocument/selectionRange",t.type=new r.ProtocolRequestType(t.method),t.resultType=new i.ProgressType}(e.SelectionRangeRequest||(e.SelectionRangeRequest={}))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(4),r=n(21);!function(t){t.type=new i.ProgressType}(e.WorkDoneProgress||(e.WorkDoneProgress={})),function(t){t.type=new r.ProtocolRequestType("window/workDoneProgress/create")}(e.WorkDoneProgressCreateRequest||(e.WorkDoneProgressCreateRequest={})),function(t){t.type=new r.ProtocolNotificationType("window/workDoneProgress/cancel")}(e.WorkDoneProgressCancelNotification||(e.WorkDoneProgressCancelNotification={}))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(21);!function(t){t.method="textDocument/prepareCallHierarchy",t.type=new i.ProtocolRequestType(t.method)}(e.CallHierarchyPrepareRequest||(e.CallHierarchyPrepareRequest={})),function(t){t.method="callHierarchy/incomingCalls",t.type=new i.ProtocolRequestType(t.method)}(e.CallHierarchyIncomingCallsRequest||(e.CallHierarchyIncomingCallsRequest={})),function(t){t.method="callHierarchy/outgoingCalls",t.type=new i.ProtocolRequestType(t.method)}(e.CallHierarchyOutgoingCallsRequest||(e.CallHierarchyOutgoingCallsRequest={}))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(21);!function(t){t.comment="comment",t.keyword="keyword",t.string="string",t.number="number",t.regexp="regexp",t.operator="operator",t.namespace="namespace",t.type="type",t.struct="struct",t.class="class",t.interface="interface",t.enum="enum",t.typeParameter="typeParameter",t.function="function",t.member="member",t.property="property",t.macro="macro",t.variable="variable",t.parameter="parameter",t.label="label"}(e.SemanticTokenTypes||(e.SemanticTokenTypes={})),function(t){t.documentation="documentation",t.declaration="declaration",t.definition="definition",t.reference="reference",t.static="static",t.abstract="abstract",t.deprecated="deprecated",t.async="async",t.volatile="volatile",t.readonly="readonly"}(e.SemanticTokenModifiers||(e.SemanticTokenModifiers={})),function(t){t.is=function(t){const e=t;return void 0!==e&&(void 0===e.resultId||"string"==typeof e.resultId)&&Array.isArray(e.data)&&(0===e.data.length||"number"==typeof e.data[0])}}(e.SemanticTokens||(e.SemanticTokens={})),function(t){t.method="textDocument/semanticTokens",t.type=new i.ProtocolRequestType(t.method)}(e.SemanticTokensRequest||(e.SemanticTokensRequest={})),function(t){t.method="textDocument/semanticTokens/edits",t.type=new i.ProtocolRequestType(t.method)}(e.SemanticTokensEditsRequest||(e.SemanticTokensEditsRequest={})),function(t){t.method="textDocument/semanticTokens/range",t.type=new i.ProtocolRequestType(t.method)}(e.SemanticTokensRangeRequest||(e.SemanticTokensRangeRequest={}))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(3),r=n(34);e.ConfigurationFeature=t=>(class extends t{getConfiguration(t){return t?r.string(t)?this._getConfiguration({section:t}):this._getConfiguration(t):this._getConfiguration({})}_getConfiguration(t){let e={items:Array.isArray(t)?t:[t]};return this.connection.sendRequest(i.ConfigurationRequest.type,e).then(e=>Array.isArray(t)?e:e[0])}})},function(t,e,n){"use strict";function i(t){return"string"==typeof t||t instanceof String}function r(t){return"function"==typeof t}function o(t){return Array.isArray(t)}Object.defineProperty(e,"__esModule",{value:!0}),e.boolean=function(t){return!0===t||!1===t},e.string=i,e.number=function(t){return"number"==typeof t||t instanceof Number},e.error=function(t){return t instanceof Error},e.func=r,e.array=o,e.stringArray=function(t){return o(t)&&t.every(t=>i(t))},e.typedArray=function(t,e){return Array.isArray(t)&&t.every(e)},e.thenable=function(t){return t&&r(t.then)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(3);e.WorkspaceFoldersFeature=t=>(class extends t{initialize(t){let e=t.workspace;e&&e.workspaceFolders&&(this._onDidChangeWorkspaceFolders=new i.Emitter,this.connection.onNotification(i.DidChangeWorkspaceFoldersNotification.type,t=>{this._onDidChangeWorkspaceFolders.fire(t.event)}))}getWorkspaceFolders(){return this.connection.sendRequest(i.WorkspaceFoldersRequest.type)}get onDidChangeWorkspaceFolders(){if(!this._onDidChangeWorkspaceFolders)throw new Error("Client doesn't support sending workspace folder change events.");return this._unregistration||(this._unregistration=this.connection.client.register(i.DidChangeWorkspaceFoldersNotification.type)),this._onDidChangeWorkspaceFolders.event}})},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(3),r=n(37);class o{constructor(t,e){this._connection=t,this._token=e,o.Instances.set(this._token,this),this._source=new i.CancellationTokenSource}get token(){return this._source.token}begin(t,e,n,r){let o={kind:"begin",title:t,percentage:e,message:n,cancellable:r};this._connection.sendProgress(i.WorkDoneProgress.type,this._token,o)}report(t,e){let n={kind:"report"};"number"==typeof t?(n.percentage=t,void 0!==e&&(n.message=e)):n.message=t,this._connection.sendProgress(i.WorkDoneProgress.type,this._token,n)}done(){o.Instances.delete(this._token),this._source.dispose(),this._connection.sendProgress(i.WorkDoneProgress.type,this._token,{kind:"end"})}cancel(){this._source.cancel()}}o.Instances=new Map;class a{constructor(){this._source=new i.CancellationTokenSource}get token(){return this._source.token}begin(){}report(){}done(){}}var s;e.attachWorkDone=function(t,e){if(void 0===e||void 0===e.workDoneToken)return new a;const n=e.workDoneToken;return delete e.workDoneToken,new o(t,n)},e.ProgressFeature=t=>(class extends t{initialize(t){var e;!0===(null===(e=null==t?void 0:t.window)||void 0===e?void 0:e.workDoneProgress)&&(this._progressSupported=!0,this.connection.onNotification(i.WorkDoneProgressCancelNotification.type,t=>{let e=o.Instances.get(t.token);void 0!==e&&e.cancel()}))}attachWorkDoneProgress(t){return void 0===t?new a:new o(this.connection,t)}createWorkDoneProgress(){if(this._progressSupported){const t=r.generateUuid();return this.connection.sendRequest(i.WorkDoneProgressCreateRequest.type,{token:t}).then(()=>{return new o(this.connection,t)})}return Promise.resolve(new a)}}),function(t){t.type=new i.ProgressType}(s||(s={}));class l{constructor(t,e){this._connection=t,this._token=e}report(t){this._connection.sendProgress(s.type,this._token,t)}}e.attachPartialResult=function(t,e){if(void 0===e||void 0===e.partialResultToken)return;const n=e.partialResultToken;return delete e.partialResultToken,new l(t,n)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});class i{constructor(t){this._value=t}asHex(){return this._value}equals(t){return this.asHex()===t.asHex()}}class r extends i{constructor(){super([r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),"-",r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),"-","4",r._randomHex(),r._randomHex(),r._randomHex(),"-",r._oneOf(r._timeHighBits),r._randomHex(),r._randomHex(),r._randomHex(),"-",r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex()].join(""))}static _oneOf(t){return t[Math.floor(t.length*Math.random())]}static _randomHex(){return r._oneOf(r._chars)}}function o(){return new r}r._chars=["0","1","2","3","4","5","6","6","7","8","9","a","b","c","d","e","f"],r._timeHighBits=["8","9","a","b"],e.empty=new i("00000000-0000-0000-0000-000000000000"),e.v4=o;const a=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function s(t){return a.test(t)}e.isUUID=s,e.parse=function(t){if(!s(t))throw new Error("invalid uuid");return new i(t)},e.generateUuid=function(){return o().asHex()}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(39),r=n(13),o=n(40),a=n(41);function s(){return"win32"===process.platform}function l(t,e,n,i){const s=["var p = process;","p.on('message',function(m){","if(m.c==='e'){","p.exit(0);","}","else if(m.c==='rs'){","try{","var r=require.resolve(m.a);","p.send({c:'r',s:true,r:r});","}","catch(err){","p.send({c:'r',s:false});","}","}","});"].join("");return new Promise((l,c)=>{let u=process.env,d=Object.create(null);Object.keys(u).forEach(t=>d[t]=u[t]),e&&o.existsSync(e)&&(d.NODE_PATH?d.NODE_PATH=e+r.delimiter+d.NODE_PATH:d.NODE_PATH=e,i&&i(`NODE_PATH value is: ${d.NODE_PATH}`)),d.ELECTRON_RUN_AS_NODE="1";try{let e=a.fork("",[],{cwd:n,env:d,execArgv:["-e",s]});if(void 0===e.pid)return void c(new Error(`Starting process to resolve node module ${t} failed`));e.on("error",t=>{c(t)}),e.on("message",n=>{"r"===n.c&&(e.send({c:"e"}),n.s?l(n.r):c(new Error(`Failed to resolve module: ${t}`)))});let i={c:"rs",a:t};e.send(i)}catch(t){c(t)}})}function c(t){let e="npm";const n=Object.create(null);Object.keys(process.env).forEach(t=>n[t]=process.env[t]),n.NO_UPDATE_NOTIFIER="true";const i={encoding:"utf8",env:n};s()&&(e="npm.cmd",i.shell=!0);let o=()=>{};try{process.on("SIGPIPE",o);let n=a.spawnSync(e,["config","get","prefix"],i).stdout;if(!n)return void(t&&t("'npm config get prefix' didn't return a value."));let l=n.trim();return t&&t(`'npm config get prefix' value is: ${l}`),l.length>0?s()?r.join(l,"node_modules"):r.join(l,"lib","node_modules"):void 0}catch(t){return}finally{process.removeListener("SIGPIPE",o)}}var u;e.uriToFilePath=function(t){let e=i.parse(t);if("file:"!==e.protocol||!e.path)return;let n=e.path.split("/");for(var o=0,a=n.length;o<a;o++)n[o]=decodeURIComponent(n[o]);if("win32"===process.platform&&n.length>1){let t=n[0],e=n[1];0===t.length&&e.length>1&&":"===e[1]&&n.shift()}return r.normalize(n.join("/"))},e.resolve=l,e.resolveGlobalNodePath=c,e.resolveGlobalYarnPath=function(t){let e="yarn",n={encoding:"utf8"};s()&&(e="yarn.cmd",n.shell=!0);let i=()=>{};try{process.on("SIGPIPE",i);let o=a.spawnSync(e,["global","dir","--json"],n),s=o.stdout;if(!s)return void(t&&(t("'yarn global dir' didn't return a value."),o.stderr&&t(o.stderr)));let l=s.trim().split(/\r?\n/);for(let t of l)try{let e=JSON.parse(t);if("log"===e.type)return r.join(e.data,"node_modules")}catch(t){}return}catch(t){return}finally{process.removeListener("SIGPIPE",i)}},function(t){let e=void 0;function n(){return void 0!==e?e:e="win32"!==process.platform&&(!o.existsSync(__filename.toUpperCase())||!o.existsSync(__filename.toLowerCase()))}t.isCaseSensitive=n,t.isParent=function(t,e){return n()?0===r.normalize(e).indexOf(r.normalize(t)):0===r.normalize(e).toLowerCase().indexOf(r.normalize(t).toLowerCase())}}(u=e.FileSystem||(e.FileSystem={})),e.resolveModulePath=function(t,e,n,i){return n?(r.isAbsolute(n)||(n=r.join(t,n)),l(e,n,n,i).then(t=>u.isParent(n,t)?t:Promise.reject(new Error(`Failed to load ${e} from node path location.`))).then(void 0,n=>l(e,c(i),t,i))):l(e,c(i),t,i)}},function(t,e){t.exports=n(4)},function(t,e){t.exports=n(5)},function(t,e){t.exports=n(6)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(3);e.CallHierarchyFeature=t=>(class extends t{get callHierarchy(){return{onPrepare:t=>{this.connection.onRequest(i.Proposed.CallHierarchyPrepareRequest.type,(e,n)=>t(e,n,this.attachWorkDoneProgress(e),void 0))},onIncomingCalls:t=>{const e=i.Proposed.CallHierarchyIncomingCallsRequest.type;this.connection.onRequest(e,(n,i)=>t(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(e,n)))},onOutgoingCalls:t=>{const e=i.Proposed.CallHierarchyOutgoingCallsRequest.type;this.connection.onRequest(e,(n,i)=>t(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(e,n)))}}}})},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(3);e.SemanticTokensFeature=t=>(class extends t{get semanticTokens(){return{on:t=>{const e=i.Proposed.SemanticTokensRequest.type;this.connection.onRequest(e,(n,i)=>t(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(e,n)))},onEdits:t=>{const e=i.Proposed.SemanticTokensEditsRequest.type;this.connection.onRequest(e,(n,i)=>t(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(e,n)))},onRange:t=>{const e=i.Proposed.SemanticTokensRangeRequest.type;this.connection.onRequest(e,(n,i)=>t(n,i,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(e,n)))}}}});e.SemanticTokensBuilder=class{constructor(){this._prevData=void 0,this.initialize()}initialize(){this._id=Date.now(),this._prevLine=0,this._prevChar=0,this._data=[],this._dataLen=0}push(t,e,n,i,r){let o=t,a=e;this._dataLen>0&&0===(o-=this._prevLine)&&(a-=this._prevChar),this._data[this._dataLen++]=o,this._data[this._dataLen++]=a,this._data[this._dataLen++]=n,this._data[this._dataLen++]=i,this._data[this._dataLen++]=r,this._prevLine=t,this._prevChar=e}get id(){return this._id.toString()}previousResult(t){this.id===t&&(this._prevData=this._data),this.initialize()}build(){return this._prevData=void 0,{resultId:this.id,data:this._data}}canBuildEdits(){return void 0!==this._prevData}buildEdits(){if(void 0!==this._prevData){const t=this._prevData.length,e=this._data.length;let n=0;for(;n<e&&n<t&&this._prevData[n]===this._data[n];)n++;if(n<e&&n<t){let i=0;for(;i<e&&i<t&&this._prevData[t-1-i]===this._data[e-1-i];)i++;const r=this._data.slice(n,e-i);return{resultId:this.id,edits:[{start:n,deleteCount:t-i-n,data:r}]}}return n<e?{resultId:this.id,edits:[{start:n,deleteCount:0,data:this._data.slice(n)}]}:n<t?{resultId:this.id,edits:[{start:n,deleteCount:t-n}]}:{resultId:this.id,edits:[]}}return this.build()}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.sortTexts={one:"00001",two:"00002",three:"00003",four:"00004"},e.projectRootPatterns=[".git","autoload","plugin"]},function(t,e,n){"use strict";var i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=i(n(46)),a=n(47),s=i(n(56)),l=n(57);n(59),n(142),n(143),n(144),n(146),n(147),n(151),n(152),n(153),n(154),n(155),n(156);var c=n(141).getProvider();e.completionProvider=function(t){var e=t.textDocument,n=t.position,i=l.documents.get(e.uri);if(i){var u=i.getText(r.Range.create(r.Position.create(n.line,0),n)),d=c(u,i.uri,n,[]);if(!s.default.snippetSupport)return a.removeSnippets(d);var m=a.getWordFromPosition(i,{line:n.line,character:n.character-1}),h=m&&m.word||"";""===h&&m&&":"===m.wordRight.trim()&&(h=":");var p=h.replace(/^&/,"").length;return d.filter((function(t){return o.default(t.label,h)>=p}))}return[]}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){for(var n=0,i=0,r=0;i<e.length&&r<t.length;i++)for(var o=e.charAt(i).toLowerCase();r<t.length;r++){if(o===t.charAt(r).toLowerCase()){n++,r++;break}}return n}},function(t,e,n){"use strict";var i=this&&this.__assign||function(){return(i=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)},r=this&&this.__awaiter||function(t,e,n,i){return new(n||(n=Promise))((function(r,o){function a(t){try{l(i.next(t))}catch(t){o(t)}}function s(t){try{l(i.throw(t))}catch(t){o(t)}}function l(t){var e;t.done?r(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,s)}l((i=i.apply(t,e||[])).next())}))},o=this&&this.__generator||function(t,e){var n,i,r,o,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,i&&(r=2&o[0]?i.return:o[0]?i.throw||((r=i.return)&&r.call(i),0):i.next)&&!(r=r.call(i,o[1])).done)return r;switch(i=0,r&&(o=[2&o[0],r.value]),o[0]){case 0:case 1:r=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,i=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]<r[3])){a.label=o[1];break}if(6===o[0]&&a.label<r[1]){a.label=r[1],r=o;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(o);break}r[2]&&a.ops.pop(),a.trys.pop();continue}o=e.call(t,a)}catch(t){o=[6,t],i=0}finally{n=r=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}},a=this&&this.__spreadArrays||function(){for(var t=0,e=0,n=arguments.length;e<n;e++)t+=arguments[e].length;var i=Array(t),r=0;for(e=0;e<n;e++)for(var o=arguments[e],a=0,s=o.length;a<s;a++,r++)i[r]=o[a];return i},s=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var l=n(41),c=s(n(48)),u=s(n(40)),d=s(n(13)),m=n(2),h=n(53),p=n(55);function f(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return new Promise((function(n){t.apply(void 0,a(e,[function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];n(t)}]))}))}}e.isSomeMatchPattern=function(t,e){return t.some((function(t){return t.test(e)}))},e.executeFile=function(t,e,n,i){return new Promise((function(r,o){var a,s="",c="",u=!1;n=(n||[]).map((function(e){return/%text/.test(e)?(u=!0,e.replace(/%text/g,t.toString())):e}));var d=l.spawn(e,n,i);d.stdout.on("data",(function(t){s+=t})),d.stderr.on("data",(function(t){c+=t})),d.on("error",(function(t){o(a=t)})),d.on("close",(function(t){a||r({code:t,stdout:s,stderr:c})})),u||t.pipe(d.stdin).on("error",(function(){}))}))},e.pcb=f,e.findProjectRoot=function(t,e){return r(this,void 0,void 0,(function(){var n,i,r,a,s,l,u,m,h;return o(this,(function(o){switch(o.label){case 0:n=d.default.dirname(t),i=[].concat(e),r="",a=0,s=i,o.label=1;case 1:return a<s.length?(l=s[a],[4,f(c.default)(n,l)]):[3,4];case 2:u=o.sent(),m=u[0],h=u[1],!m&&h&&"/"!==h&&h.length>r.length&&(r=h),o.label=3;case 3:return a++,[3,1];case 4:return r.length?[2,r]:[2,n]}}))}))},e.markupSnippets=function(t){return["```vim",t.replace(/\$\{[0-9]+(:([^}]+))?\}/g,"$2"),"```"].join("\n")},e.getWordFromPosition=function(t,e){if(t){var n=t.getText(m.Range.create(m.Position.create(e.line,e.character),m.Position.create(e.line,e.character+1)));if(n&&p.keywordPattern.test(n)){var i=t.getText(m.Range.create(m.Position.create(e.line,0),m.Position.create(e.line+1,0)));if(!p.commentPattern.test(i)){var r=i.slice(0,e.character),o=i.slice(e.character),a=r.match(p.wordPrePattern),s=o.match(p.wordNextPattern),l=""+(a&&a[1]||"")+(s&&s[1]||"");return{word:l,left:a&&a[1]||"",right:s&&s[1]||"",wordLeft:a&&a[1]?r.replace(new RegExp(a[1]+"$"),l):""+r+l,wordRight:s&&s[1]?o.replace(new RegExp("^"+s[1]),l):""+l+o}}}}},e.handleParse=function(t){return r(this,void 0,void 0,(function(){var e,n;return o(this,(function(i){e=t instanceof Object?t.getText():t,n=new h.StringReader(e.split(/\r\n|\r|\n/));try{return[2,[new h.VimLParser(!0).parse(n),""]]}catch(t){return[2,[null,t]]}return[2]}))}))},e.removeSnippets=function(t){return void 0===t&&(t=[]),t.map((function(t){return t.insertTextFormat===m.InsertTextFormat.Snippet?i(i({},t),{insertText:t.label,insertTextFormat:m.InsertTextFormat.PlainText}):t}))},e.isSymbolLink=function(t){return r(void 0,void 0,void 0,(function(){return o(this,(function(e){return[2,new Promise((function(e){u.default.lstat(t,(function(t,n){e({err:t,stats:n&&n.isSymbolicLink()})}))}))]}))}))},e.getRealPath=function(t){return r(void 0,void 0,void 0,(function(){var n,i,r;return o(this,(function(o){switch(o.label){case 0:return[4,e.isSymbolLink(t)];case 1:return n=o.sent(),i=n.err,r=n.stats,!i&&r?[2,new Promise((function(e){u.default.realpath(t,(function(n,i){if(n)return e(t);e(i)}))}))]:[2,t]}}))}))}},function(t,e,n){var i=n(40),r=n(13),o=n(49),a=(n(50),n(52).EventEmitter),s=i.exists?i.exists:r.exists,l=i.existsSync?i.existsSync:r.existsSync;function c(t,e,n,i){if(!(this instanceof c))return new c(t,e,n,i);"function"==typeof n&&(i=n,n={}),n=n||{},a.call(this),this.found=!1,this.stopPlease=!1;var o=this;if("string"==typeof e){var l=e;e=function(t,e){return s(r.join(t,l),e)}}i&&(this.on("found",(function(t){n.verbose&&console.log(("found "+t).green),i(null,t),o.stop()})),this.on("end",(function(){n.verbose&&console.log("end".grey),o.found||i(new Error("not found"))})),this.on("error",(function(t){n.verbose&&console.log("error".red,t),i(t)}))),this._find(t,e,n,i)}t.exports=function(t,e,n,i){return c(t,e,n,i)},o.inherits(c,a),c.prototype._find=function(t,e,n,i){var o=this;e(t,(function(a){n.verbose&&console.log(("traverse "+t).grey),a&&(o.found=!0,o.emit("found",t));var s=r.join(t,"..");return o.stopPlease?o.emit("end"):t===s?o.emit("end"):-1!==t.indexOf("../../")?o.emit("error",new Error(t+" is not correct.")):void o._find(s,e,n,i)}))},c.prototype.stop=function(){this.stopPlease=!0},t.exports.FindUp=c,t.exports.sync=function(t,e){if("string"==typeof e){var n=e;e=function(t){return l(r.join(t,n))}}for(var i=t;t!==r.join(t,"..");){if(-1!==t.indexOf("../../"))throw new Error(i+" is not correct.");if(e(t))return t;t=r.join(t,"..")}throw new Error("not found")}},function(t,e){t.exports=n(7)},function(t,e,n){var i=!1;if(void 0!==t&&(i=!0),i)e.mode="console";else{t={},e={};e.mode="browser"}var r=function(t,n){e[t]=function(t){return n.apply(t)},String.prototype.__defineGetter__(t,n)};function o(t,n){var i;if("console"===e.mode)i={bold:["",""],italic:["",""],underline:["",""],inverse:["",""],strikethrough:["",""],white:["",""],grey:["",""],black:["",""],blue:["",""],cyan:["",""],green:["",""],magenta:["",""],red:["",""],yellow:["",""],whiteBG:["",""],greyBG:["",""],blackBG:["",""],blueBG:["",""],cyanBG:["",""],greenBG:["",""],magentaBG:["",""],redBG:["",""],yellowBG:["",""]};else if("browser"===e.mode)i={bold:["<b>","</b>"],italic:["<i>","</i>"],underline:["<u>","</u>"],inverse:['<span style="background-color:black;color:white;">',"</span>"],strikethrough:["<del>","</del>"],white:['<span style="color:white;">',"</span>"],grey:['<span style="color:gray;">',"</span>"],black:['<span style="color:black;">',"</span>"],blue:['<span style="color:blue;">',"</span>"],cyan:['<span style="color:cyan;">',"</span>"],green:['<span style="color:green;">',"</span>"],magenta:['<span style="color:magenta;">',"</span>"],red:['<span style="color:red;">',"</span>"],yellow:['<span style="color:yellow;">',"</span>"],whiteBG:['<span style="background-color:white;">',"</span>"],greyBG:['<span style="background-color:gray;">',"</span>"],blackBG:['<span style="background-color:black;">',"</span>"],blueBG:['<span style="background-color:blue;">',"</span>"],cyanBG:['<span style="background-color:cyan;">',"</span>"],greenBG:['<span style="background-color:green;">',"</span>"],magentaBG:['<span style="background-color:magenta;">',"</span>"],redBG:['<span style="background-color:red;">',"</span>"],yellowBG:['<span style="background-color:yellow;">',"</span>"]};else{if("none"===e.mode)return t+"";console.log('unsupported mode, try "browser", "console" or "none"')}return i[n][0]+t+i[n][1]}function a(t){var n=["__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","charAt","constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf","charCodeAt","indexOf","lastIndexof","length","localeCompare","match","replace","search","slice","split","substring","toLocaleLowerCase","toLocaleUpperCase","toLowerCase","toUpperCase","trim","trimLeft","trimRight"];Object.keys(t).forEach((function(i){-1!==n.indexOf(i)?console.log("warn: ".red+("String.prototype"+i).magenta+" is probably something you don't want to override. Ignoring style name"):"string"==typeof t[i]?r(i,(function(){return e[t[i]](this)})):r(i,(function(){for(var n=this,r=0;r<t[i].length;r++)n=e[t[i][r]](n);return n}))}))}["bold","underline","strikethrough","italic","inverse","grey","black","yellow","red","green","blue","white","cyan","magenta","greyBG","blackBG","yellowBG","redBG","greenBG","blueBG","whiteBG","cyanBG","magentaBG"].forEach((function(t){r(t,(function(){return o(this,t)}))}));var s,l=(s=["red","yellow","green","blue","magenta"],function(t,e,n){return" "===t?t:o(t,s[e++%s.length])});e.themes={},e.addSequencer=function(t,e){r(t,function(t){return function(){if(!i)return this.replace(/( )/,"$1");var e=this.split("");return(e=e.map(t)).join("")}}(e))},e.addSequencer("rainbow",l),e.addSequencer("zebra",(function(t,e,n){return e%2==0?t:t.inverse})),e.setTheme=function(t){if("string"==typeof t)try{return e.themes[t]=n(51)(t),a(e.themes[t]),e.themes[t]}catch(t){return console.log(t),t}else a(t)},r("stripColors",(function(){return(""+this).replace(/\x1B\[\d+m/g,"")})),r("zalgo",(function(){return function(t,e){var n={up:["̍","̎","̄","̅","̿","̑","̆","̐","͒","͗","͑","̇","̈","̊","͂","̓","̈","͊","͋","͌","̃","̂","̌","͐","̀","́","̋","̏","̒","̓","̔","̽","̉","ͣ","ͤ","ͥ","ͦ","ͧ","ͨ","ͩ","ͪ","ͫ","ͬ","ͭ","ͮ","ͯ","̾","͛","͆","̚"],down:["̖","̗","̘","̙","̜","̝","̞","̟","̠","̤","̥","̦","̩","̪","̫","̬","̭","̮","̯","̰","̱","̲","̳","̹","̺","̻","̼","ͅ","͇","͈","͉","͍","͎","͓","͔","͕","͖","͙","͚","̣"],mid:["̕","̛","̀","́","͘","̡","̢","̧","̨","̴","̵","̶","͜","͝","͞","͟","͠","͢","̸","̷","͡"," ҉"]},i=[].concat(n.up,n.down,n.mid);function r(t){return Math.floor(Math.random()*t)}function o(t){var e=!1;return i.filter((function(n){e=n===t})),e}return function(t,e){var i,a,s="";for(a in(e=e||{}).up=e.up||!0,e.mid=e.mid||!0,e.down=e.down||!0,e.size=e.size||"maxi",t=t.split(""))if(!o(a)){switch(s+=t[a],i={up:0,down:0,mid:0},e.size){case"mini":i.up=r(8),i.min=r(2),i.down=r(8);break;case"maxi":i.up=r(16)+3,i.min=r(4)+1,i.down=r(64)+3;break;default:i.up=r(8)+1,i.mid=r(6)/2,i.down=r(8)+1}var l=["up","mid","down"];for(var c in l)for(var u=l[c],d=0;d<=i[u];d++)e[u]&&(s+=n[u][r(n[u].length)])}return s}(t)}(this)}))},function(t,e){function n(t){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}n.keys=function(){return[]},n.resolve=n,t.exports=n,n.id=51},function(t,e){t.exports=n(8)},function(t,e,n){(function(t){//!/usr/bin/env nodejs
  2. var e=n(40),i=n(49);var r={"[0-9a-zA-Z]":"[0-9a-zA-Z]","[@*!=><&~#]":"[@*!=><&~#]","\\<ARGOPT\\>":"\\bARGOPT\\b","\\<BANG\\>":"\\bBANG\\b","\\<EDITCMD\\>":"\\bEDITCMD\\b","\\<NOTRLCOM\\>":"\\bNOTRLCOM\\b","\\<TRLBAR\\>":"\\bTRLBAR\\b","\\<USECTRLV\\>":"\\bUSECTRLV\\b","\\<USERCMD\\>":"\\bUSERCMD\\b","\\<\\(XFILE\\|FILES\\|FILE1\\)\\>":"\\b(XFILE|FILES|FILE1)\\b","\\S":"\\S","\\a":"[A-Za-z]","\\d":"\\d","\\h":"[A-Za-z_]","\\s":"\\s","\\v^d%[elete][lp]$":"^d(elete|elet|ele|el|e)[lp]$","\\v^s%(c[^sr][^i][^p]|g|i[^mlg]|I|r[^e])":"^s(c[^sr][^i][^p]|g|i[^mlg]|I|r[^e])","\\w":"[0-9A-Za-z_]","\\w\\|[:#]":"[0-9A-Za-z_]|[:#]","\\x":"[0-9A-Fa-f]","^++":"^++","^++bad=\\(keep\\|drop\\|.\\)\\>":"^\\+\\+bad=(keep|drop|.)\\b","^++bad=drop":"^\\+\\+bad=drop","^++bad=keep":"^\\+\\+bad=keep","^++bin\\>":"^\\+\\+bin\\b","^++edit\\>":"^\\+\\+edit\\b","^++enc=\\S":"^\\+\\+enc=\\S","^++encoding=\\S":"^\\+\\+encoding=\\S","^++ff=\\(dos\\|unix\\|mac\\)\\>":"^\\+\\+ff=(dos|unix|mac)\\b","^++fileformat=\\(dos\\|unix\\|mac\\)\\>":"^\\+\\+fileformat=(dos|unix|mac)\\b","^++nobin\\>":"^\\+\\+nobin\\b","^[A-Z]":"^[A-Z]","^\\$\\w\\+":"^\\$[0-9A-Za-z_]+","^\\(!\\|global\\|vglobal\\)$":"^(!|global|vglobal)$","^\\(WHILE\\|FOR\\)$":"^(WHILE|FOR)$","^\\(vimgrep\\|vimgrepadd\\|lvimgrep\\|lvimgrepadd\\)$":"^(vimgrep|vimgrepadd|lvimgrep|lvimgrepadd)$","^\\d":"^\\d","^\\h":"^[A-Za-z_]","^\\s":"^\\s","^\\s*\\\\":"^\\s*\\\\","^[ \\t]$":"^[ \\t]$","^[A-Za-z]$":"^[A-Za-z]$","^[0-9A-Za-z]$":"^[0-9A-Za-z]$","^[0-9]$":"^[0-9]$","^[0-9A-Fa-f]$":"^[0-9A-Fa-f]$","^[0-9A-Za-z_]$":"^[0-9A-Za-z_]$","^[A-Za-z_]$":"^[A-Za-z_]$","^[0-9A-Za-z_:#]$":"^[0-9A-Za-z_:#]$","^[A-Za-z_][0-9A-Za-z_]*$":"^[A-Za-z_][0-9A-Za-z_]*$","^[A-Z]$":"^[A-Z]$","^[a-z]$":"^[a-z]$","^[vgslabwt]:$\\|^\\([vgslabwt]:\\)\\?[A-Za-z_][0-9A-Za-z_#]*$":"^[vgslabwt]:$|^([vgslabwt]:)?[A-Za-z_][0-9A-Za-z_#]*$","^[0-7]$":"^[0-7]$","^[0-9A-Fa-f][0-9A-Fa-f]$":"^[0-9A-Fa-f][0-9A-Fa-f]$","^\\.[0-9A-Fa-f]$":"^\\.[0-9A-Fa-f]$","^[0-9A-Fa-f][^0-9A-Fa-f]$":"^[0-9A-Fa-f][^0-9A-Fa-f]$"};function o(t,e){t.push(e)}function a(t){return t.charCodeAt(0)}function s(t){return 0==t.length}function l(t,e){return t.toLowerCase()==e.toLowerCase()}function c(t,e){return null!=new RegExp(r[e]).exec(t)}function u(t,e){for(var n="",i=0;i<t.length;++i)-1!=e.indexOf(t.charAt(i))?n=n+"\\"+t.charAt(i):n+=t.charAt(i);return n}function d(t,e){arguments.length>=3&&arguments[2];t.splice(0,0,e)}function m(t,e){return t.join(e)}function h(t){if("string"==typeof t){for(var e=0,n=0;n<t.length;n++){var i=t.charCodeAt(n);e+=i<128?1:i>127&&i<2048?2:3}return e}return t.length}function p(){var t=Array.prototype.slice.call(arguments,0);return 1==t.length?t[0]:i.format.apply(null,t)}function f(t){var e=arguments.length>=2?arguments[1]:null;if(null==e){for(var n=[],i=0;i<t;++i)n.push(i);return n}for(n=[],i=t;i<=e;++i)n.push(i);return n}function g(t,e){t.splice(e,1)}function b(t,e){if("\\zs"==e)return t.split("");throw"NotImplemented"}function x(t){var e=arguments.length>=2?arguments[1]:10;return parseInt(t,e)}function w(t){return t.toString()}function T(t,e){return void 0!==t[e]}function _(t,e){return t.indexOf(e)}var y=[],v=0;function k(t){return c(t,"^[0-9A-Za-z]$")}function R(t){return c(t,"^[0-9]$")}function F(t){return c(t,"^[0-9A-Fa-f]$")}function A(t){return c(t,"^[0-9A-Za-z_]$")}function E(t){return c(t,"^[ \\t]$")}function N(t){return c(t,"^[0-9A-Za-z_:#]$")}function S(t){return c(t,"^[A-Za-z_][0-9A-Za-z_]*$")}function C(t){return c(t,"^[vgslabwt]:$\\|^\\([vgslabwt]:\\)\\?[A-Za-z_][0-9A-Za-z_#]*$")}function O(t){return c(t,"^[0-9A-Za-z_]$")}function L(t){return{type:t}}function I(t,e){return p("vimlparser: %s: line %d col %d",t,e.lnum,e.col)}function $(){this.__init__.apply(this,arguments)}function D(){this.__init__.apply(this,arguments)}function W(){this.__init__.apply(this,arguments)}function G(){W.apply(this,arguments),this.__init__.apply(this,arguments)}function M(){this.__init__.apply(this,arguments)}function P(){this.__init__.apply(this,arguments)}function B(){this.__init__.apply(this,arguments)}$.prototype.__init__=function(){var t=Array.prototype.slice.call(arguments,0);h(t)>0?this.neovim=t[0]:this.neovim=0,this.find_command_cache={}},$.prototype.push_context=function(t){d(this.context,t)},$.prototype.pop_context=function(){g(this.context,0)},$.prototype.find_context=function(t){for(var e=0,n=this.context,i=0;i<n.length;++i){if(n[i].type==t)return e;e+=1}return-1},$.prototype.add_node=function(t){o(this.context[0].body,t)},$.prototype.check_missing_endfunction=function(t,e){if(4==this.context[0].type)throw I(p("E126: Missing :endfunction: %s",t),e)},$.prototype.check_missing_endif=function(t,e){if(13==this.context[0].type||14==this.context[0].type||15==this.context[0].type)throw I(p("E171: Missing :endif: %s",t),e)},$.prototype.check_missing_endtry=function(t,e){if(23==this.context[0].type||24==this.context[0].type||25==this.context[0].type)throw I(p("E600: Missing :endtry: %s",t),e)},$.prototype.check_missing_endwhile=function(t,e){if(17==this.context[0].type)throw I(p("E170: Missing :endwhile: %s",t),e)},$.prototype.check_missing_endfor=function(t,e){if(19==this.context[0].type)throw I(p("E170: Missing :endfor: %s",t),e)},$.prototype.parse=function(t){this.reader=t,this.context=[];var e=L(1);for(e.pos=this.reader.getpos(),e.body=[],this.push_context(e);"<EOF>"!=this.reader.peek();)this.parse_one_cmd();return this.check_missing_endfunction("TOPLEVEL",this.reader.getpos()),this.check_missing_endif("TOPLEVEL",this.reader.getpos()),this.check_missing_endtry("TOPLEVEL",this.reader.getpos()),this.check_missing_endwhile("TOPLEVEL",this.reader.getpos()),this.check_missing_endfor("TOPLEVEL",this.reader.getpos()),this.pop_context(),e},$.prototype.parse_one_cmd=function(){var t;if(this.ea=((t={}).forceit=v,t.addr_count=0,t.line1=0,t.line2=0,t.flags=0,t.do_ecmd_cmd="",t.do_ecmd_lnum=0,t.append=0,t.usefilter=v,t.amount=0,t.regname=0,t.force_bin=0,t.read_edit=0,t.force_ff=0,t.force_enc=0,t.bad_char=0,t.linepos={},t.cmdpos=[],t.argpos=[],t.cmd={},t.modifiers=[],t.range=[],t.argopt={},t.argcmd={},t),"#!"==this.reader.peekn(2))return this.parse_hashbang(),void this.reader.get();if(this.reader.skip_white_and_colon(),""!=this.reader.peekn(1)){if('"'==this.reader.peekn(1))return this.parse_comment(),void this.reader.get();this.ea.linepos=this.reader.getpos(),this.parse_command_modifiers(),this.parse_range(),this.parse_command(),this.parse_trail()}else this.reader.get()},$.prototype.parse_command_modifiers=function(){for(var t=[];;){var e=this.reader.tell(),n="";if(R(this.reader.peekn(1))){n=this.reader.read_digit();this.reader.skip_white()}var i=this.reader.read_alpha(),r=this.reader.peekn(1);if(this.reader.skip_white(),0==_("aboveleft",i)&&h(i)>=3)o(t,{name:"aboveleft"});else if(0==_("belowright",i)&&h(i)>=3)o(t,{name:"belowright"});else if(0==_("browse",i)&&h(i)>=3)o(t,{name:"browse"});else if(0==_("botright",i)&&h(i)>=2)o(t,{name:"botright"});else if(0==_("confirm",i)&&h(i)>=4)o(t,{name:"confirm"});else if(0==_("keepmarks",i)&&h(i)>=3)o(t,{name:"keepmarks"});else if(0==_("keepalt",i)&&h(i)>=5)o(t,{name:"keepalt"});else if(0==_("keepjumps",i)&&h(i)>=5)o(t,{name:"keepjumps"});else if(0==_("keeppatterns",i)&&h(i)>=5)o(t,{name:"keeppatterns"});else if(0==_("hide",i)&&h(i)>=3){if(this.ends_excmds(r))break;o(t,{name:"hide"})}else if(0==_("lockmarks",i)&&h(i)>=3)o(t,{name:"lockmarks"});else if(0==_("leftabove",i)&&h(i)>=5)o(t,{name:"leftabove"});else if(0==_("noautocmd",i)&&h(i)>=3)o(t,{name:"noautocmd"});else if(0==_("noswapfile",i)&&h(i)>=3)o(t,{name:"noswapfile"});else if(0==_("rightbelow",i)&&h(i)>=6)o(t,{name:"rightbelow"});else if(0==_("sandbox",i)&&h(i)>=3)o(t,{name:"sandbox"});else if(0==_("silent",i)&&h(i)>=3)"!"==r?(this.reader.get(),o(t,{name:"silent",bang:1})):o(t,{name:"silent",bang:0});else if("tab"==i)o(t,""!=n?{name:"tab",count:x(n,10)}:{name:"tab"});else if(0==_("topleft",i)&&h(i)>=2)o(t,{name:"topleft"});else if(0==_("unsilent",i)&&h(i)>=3)o(t,{name:"unsilent"});else if(0==_("vertical",i)&&h(i)>=4)o(t,{name:"vertical"});else{if(!(0==_("verbose",i)&&h(i)>=4)){this.reader.seek_set(e);break}o(t,""!=n?{name:"verbose",count:x(n,10)}:{name:"verbose",count:1})}}this.ea.modifiers=t},$.prototype.parse_range=function(){for(var t=[];;){for(;;){this.reader.skip_white();var e=this.reader.peekn(1);if(""==e)break;if("."==e)o(t,this.reader.getn(1));else if("$"==e)o(t,this.reader.getn(1));else if("'"==e){if(this.reader.getn(1),""==(r=this.reader.getn(1)))break;o(t,"'"+r)}else if("/"==e){this.reader.getn(1);var n=(i=this.parse_pattern(e))[0];i[1];o(t,n)}else if("?"==e){this.reader.getn(1);var i;n=(i=this.parse_pattern(e))[0],i[1];o(t,n)}else if("\\"==e){var r;if("&"!=(r=this.reader.p(1))&&"?"!=r&&"/"!=r)throw I("E10: \\\\ should be followed by /, ? or &",this.reader.getpos());this.reader.seek_cur(2),o(t,"\\"+r)}else R(e)&&o(t,this.reader.read_digit());for(;this.reader.skip_white(),""!=this.reader.peekn(1);){var a=this.reader.read_integer();if(""==a)break;o(t,a)}if("/"!=this.reader.p(0)&&"?"!=this.reader.p(0))break}if("%"==this.reader.peekn(1)?o(t,this.reader.getn(1)):"*"==this.reader.peekn(1)&&o(t,this.reader.getn(1)),";"!=this.reader.peekn(1)){if(","!=this.reader.peekn(1))break;o(t,this.reader.getn(1))}else o(t,this.reader.getn(1))}this.ea.range=t},$.prototype.parse_pattern=function(t){for(var e="",n="",i=0;;){if(""==(r=this.reader.getn(1)))break;if(r==t&&0==i){n=r;break}if(e+=r,"\\"==r){var r;if(""==(r=this.reader.peekn(1)))throw I("E682: Invalid search pattern or delimiter",this.reader.getpos());this.reader.getn(1),e+=r}else"["==r?i+=1:"]"==r&&(i-=1)}return[e,n]},$.prototype.parse_command=function(){if(this.reader.skip_white_and_colon(),this.ea.cmdpos=this.reader.getpos(),""!=this.reader.peekn(1)&&'"'!=this.reader.peekn(1)){if(this.ea.cmd=this.find_command(),this.ea.cmd===y)throw this.reader.setpos(this.ea.cmdpos),I(p("E492: Not an editor command: %s",this.reader.peekline()),this.ea.cmdpos);if("!"==this.reader.peekn(1)&&"substitute"!=this.ea.cmd.name&&"smagic"!=this.ea.cmd.name&&"snomagic"!=this.ea.cmd.name?(this.reader.getn(1),this.ea.forceit=1):this.ea.forceit=v,!c(this.ea.cmd.flags,"\\<BANG\\>")&&this.ea.forceit&&!c(this.ea.cmd.flags,"\\<USERCMD\\>"))throw I("E477: No ! allowed",this.ea.cmdpos);if("!"!=this.ea.cmd.name&&this.reader.skip_white(),this.ea.argpos=this.reader.getpos(),c(this.ea.cmd.flags,"\\<ARGOPT\\>")&&this.parse_argopt(),"write"==this.ea.cmd.name||"update"==this.ea.cmd.name)if(">"==this.reader.p(0)){if(">"!=this.reader.p(1))throw I("E494: Use w or w>>",this.ea.cmdpos);this.reader.seek_cur(2),this.reader.skip_white(),this.ea.append=1}else"!"==this.reader.peekn(1)&&"write"==this.ea.cmd.name&&(this.reader.getn(1),this.ea.usefilter=1);if("read"==this.ea.cmd.name&&(this.ea.forceit?(this.ea.usefilter=1,this.ea.forceit=v):"!"==this.reader.peekn(1)&&(this.reader.getn(1),this.ea.usefilter=1)),"<"==this.ea.cmd.name||">"==this.ea.cmd.name){for(this.ea.amount=1;this.reader.peekn(1)==this.ea.cmd.name;)this.reader.getn(1),this.ea.amount+=1;this.reader.skip_white()}c(this.ea.cmd.flags,"\\<EDITCMD\\>")&&!this.ea.usefilter&&this.parse_argcmd(),this._parse_command(this.ea.cmd.parser)}else s(this.ea.modifiers)&&s(this.ea.range)||this.parse_cmd_modifier_range()},$.prototype._parse_command=function(t){if("parse_cmd_append"==t)this.parse_cmd_append();else if("parse_cmd_break"==t)this.parse_cmd_break();else if("parse_cmd_call"==t)this.parse_cmd_call();else if("parse_cmd_catch"==t)this.parse_cmd_catch();else if("parse_cmd_common"==t)this.parse_cmd_common();else if("parse_cmd_continue"==t)this.parse_cmd_continue();else if("parse_cmd_delfunction"==t)this.parse_cmd_delfunction();else if("parse_cmd_echo"==t)this.parse_cmd_echo();else if("parse_cmd_echoerr"==t)this.parse_cmd_echoerr();else if("parse_cmd_echohl"==t)this.parse_cmd_echohl();else if("parse_cmd_echomsg"==t)this.parse_cmd_echomsg();else if("parse_cmd_echon"==t)this.parse_cmd_echon();else if("parse_cmd_else"==t)this.parse_cmd_else();else if("parse_cmd_elseif"==t)this.parse_cmd_elseif();else if("parse_cmd_endfor"==t)this.parse_cmd_endfor();else if("parse_cmd_endfunction"==t)this.parse_cmd_endfunction();else if("parse_cmd_endif"==t)this.parse_cmd_endif();else if("parse_cmd_endtry"==t)this.parse_cmd_endtry();else if("parse_cmd_endwhile"==t)this.parse_cmd_endwhile();else if("parse_cmd_execute"==t)this.parse_cmd_execute();else if("parse_cmd_finally"==t)this.parse_cmd_finally();else if("parse_cmd_finish"==t)this.parse_cmd_finish();else if("parse_cmd_for"==t)this.parse_cmd_for();else if("parse_cmd_function"==t)this.parse_cmd_function();else if("parse_cmd_if"==t)this.parse_cmd_if();else if("parse_cmd_insert"==t)this.parse_cmd_insert();else if("parse_cmd_let"==t)this.parse_cmd_let();else if("parse_cmd_const"==t)this.parse_cmd_const();else if("parse_cmd_loadkeymap"==t)this.parse_cmd_loadkeymap();else if("parse_cmd_lockvar"==t)this.parse_cmd_lockvar();else if("parse_cmd_lua"==t)this.parse_cmd_lua();else if("parse_cmd_modifier_range"==t)this.parse_cmd_modifier_range();else if("parse_cmd_mzscheme"==t)this.parse_cmd_mzscheme();else if("parse_cmd_perl"==t)this.parse_cmd_perl();else if("parse_cmd_python"==t)this.parse_cmd_python();else if("parse_cmd_python3"==t)this.parse_cmd_python3();else if("parse_cmd_return"==t)this.parse_cmd_return();else if("parse_cmd_ruby"==t)this.parse_cmd_ruby();else if("parse_cmd_tcl"==t)this.parse_cmd_tcl();else if("parse_cmd_throw"==t)this.parse_cmd_throw();else if("parse_cmd_eval"==t)this.parse_cmd_eval();else if("parse_cmd_try"==t)this.parse_cmd_try();else if("parse_cmd_unlet"==t)this.parse_cmd_unlet();else if("parse_cmd_unlockvar"==t)this.parse_cmd_unlockvar();else if("parse_cmd_usercmd"==t)this.parse_cmd_usercmd();else if("parse_cmd_while"==t)this.parse_cmd_while();else if("parse_wincmd"==t)this.parse_wincmd();else{if("parse_cmd_syntax"!=t)throw p("unknown parser: %s",w(t));this.parse_cmd_syntax()}},$.prototype.find_command=function(){var t=this.reader.peekn(1),e="";if("k"==t){this.reader.getn(1);e="k"}else if("s"==t&&c(this.reader.peekn(5),"\\v^s%(c[^sr][^i][^p]|g|i[^mlg]|I|r[^e])")){this.reader.getn(1);e="substitute"}else if(c(t,"[@*!=><&~#]")){this.reader.getn(1);e=t}else if("py"==this.reader.peekn(2))e=this.reader.read_alnum();else{var n=this.reader.tell();if("del"!=(e=this.reader.read_alpha())&&c(e,"\\v^d%[elete][lp]$")){this.reader.seek_set(n);e=this.reader.getn(h(e)-1)}}if(""==e)return y;if(T(this.find_command_cache,e))return this.find_command_cache[e];for(var i=y,r=this.builtin_commands,o=0;o<r.length;++o){if(0==_((d=r[o]).name,e)&&h(e)>=d.minlen){delete i;i=d;break}}if(this.neovim){for(var a=this.neovim_additional_commands,s=0;s<a.length;++s){if(0==_((d=a[s]).name,e)&&h(e)>=d.minlen){delete i;i=d;break}}for(var l=this.neovim_removed_commands,u=0;u<l.length;++u){var d;if(0==_((d=l[u]).name,e)&&h(e)>=d.minlen){delete i;i=y;break}}}if((i===y||"Print"==i.name)&&c(e,"^[A-Z]")){delete i;i={name:e+=this.reader.read_alnum(),flags:"USERCMD",parser:"parse_cmd_usercmd"}}return this.find_command_cache[e]=i,i},$.prototype.parse_hashbang=function(){this.reader.getn(-1)},$.prototype.parse_argopt=function(){for(;"+"==this.reader.p(0)&&"+"==this.reader.p(1);){var t=this.reader.peekn(20);if(c(t,"^++bin\\>"))this.reader.getn(5),this.ea.force_bin=1;else if(c(t,"^++nobin\\>"))this.reader.getn(7),this.ea.force_bin=2;else if(c(t,"^++edit\\>"))this.reader.getn(6),this.ea.read_edit=1;else if(c(t,"^++ff=\\(dos\\|unix\\|mac\\)\\>"))this.reader.getn(5),this.ea.force_ff=this.reader.read_alpha();else if(c(t,"^++fileformat=\\(dos\\|unix\\|mac\\)\\>"))this.reader.getn(13),this.ea.force_ff=this.reader.read_alpha();else if(c(t,"^++enc=\\S"))this.reader.getn(6),this.ea.force_enc=this.reader.read_nonwhite();else if(c(t,"^++encoding=\\S"))this.reader.getn(11),this.ea.force_enc=this.reader.read_nonwhite();else{if(!c(t,"^++bad=\\(keep\\|drop\\|.\\)\\>")){if(c(t,"^++"))throw I("E474: Invalid Argument",this.reader.getpos());break}this.reader.getn(6),c(t,"^++bad=keep")?this.ea.bad_char=this.reader.getn(4):c(t,"^++bad=drop")?this.ea.bad_char=this.reader.getn(4):this.ea.bad_char=this.reader.getn(1)}this.reader.skip_white()}},$.prototype.parse_argcmd=function(){"+"==this.reader.peekn(1)&&(this.reader.getn(1)," "==this.reader.peekn(1)?this.ea.do_ecmd_cmd="$":this.ea.do_ecmd_cmd=this.read_cmdarg())},$.prototype.read_cmdarg=function(){for(var t="";;){if(""==(e=this.reader.peekn(1))||E(e))break;if(this.reader.getn(1),"\\"==e)var e=this.reader.getn(1);t+=e}return t},$.prototype.parse_comment=function(){var t=this.reader.getpos(),e=this.reader.get();if('"'!=e)throw I(p("unexpected character: %s",e),t);var n=L(2);n.pos=t,n.str=this.reader.getn(-1),this.add_node(n)},$.prototype.parse_trail=function(){this.reader.skip_white();var t=this.reader.peek();if("<EOF>"==t);else if("<EOL>"==t)this.reader.get();else if("|"==t)this.reader.get();else{if('"'!=t)throw I(p("E488: Trailing characters: %s",t),this.reader.getpos());this.parse_comment(),this.reader.get()}},$.prototype.parse_cmd_modifier_range=function(){var t=L(3);t.pos=this.ea.cmdpos,t.ea=this.ea,t.str=this.reader.getstr(this.ea.linepos,this.reader.getpos()),this.add_node(t)},$.prototype.parse_cmd_common=function(){var t=this.reader.getpos();if(c(this.ea.cmd.flags,"\\<TRLBAR\\>")&&!this.ea.usefilter)t=this.separate_nextcmd();else if("!"==this.ea.cmd.name||"global"==this.ea.cmd.name||"vglobal"==this.ea.cmd.name||this.ea.usefilter)for(;;){t=this.reader.getpos();if(""==this.reader.getn(1))break}else for(;;){t=this.reader.getpos();if(""==this.reader.getn(1))break}var e=L(3);e.pos=this.ea.cmdpos,e.ea=this.ea,e.str=this.reader.getstr(this.ea.linepos,t),this.add_node(e)},$.prototype.separate_nextcmd=function(){"vimgrep"!=this.ea.cmd.name&&"vimgrepadd"!=this.ea.cmd.name&&"lvimgrep"!=this.ea.cmd.name&&"lvimgrepadd"!=this.ea.cmd.name||this.skip_vimgrep_pat();for(var t="",e=n=this.reader.getpos();;){var n=this.reader.getpos();if(!E(t))e=n;if("<EOF>"==(i=this.reader.peek())||"<EOL>"==i)break;if(""==i){this.reader.get();n=this.reader.getpos(),e=this.reader.getpos();if("<EOF>"==(i=this.reader.peek())||"<EOL>"==i)break;this.reader.get()}else if("`="==this.reader.peekn(2)&&c(this.ea.cmd.flags,"\\<\\(XFILE\\|FILES\\|FILE1\\)\\>")){var i;if(this.reader.getn(2),this.parse_expr(),"`"!=(i=this.reader.peekn(1)))throw I(p("unexpected character: %s",i),this.reader.getpos());this.reader.getn(1)}else if("|"!=i&&"\n"!=i&&('"'!=i||c(this.ea.cmd.flags,"\\<NOTRLCOM\\>")||("@"==this.ea.cmd.name||"*"==this.ea.cmd.name)&&this.reader.getpos()==this.ea.argpos||"redir"==this.ea.cmd.name&&this.reader.getpos().i==this.ea.argpos.i+1&&"@"==t))this.reader.get();else{if(v&&c(this.ea.cmd.flags,"\\<USECTRLV\\>")||"\\"!=t)break;this.reader.get()}t=i}if(!c(this.ea.cmd.flags,"\\<NOTRLCOM\\>"))n=e;return n},$.prototype.skip_vimgrep_pat=function(){if(""==this.reader.peekn(1));else if(O(this.reader.peekn(1)))this.reader.read_nonwhite();else{var t=this.reader.getn(1),e=this.parse_pattern(t);e[0];if(t!=e[1])return;for(;"g"==this.reader.p(0)||"j"==this.reader.p(0);)this.reader.getn(1)}},$.prototype.parse_cmd_append=function(){this.reader.setpos(this.ea.linepos);for(var t=[this.reader.readline()];"<EOF>"!=this.reader.peek();){var e=this.reader.getn(-1);if(o(t,e),"."==e)break;this.reader.get()}var n=L(3);n.pos=this.ea.cmdpos,n.ea=this.ea,n.str=m(t,"\n"),this.add_node(n)},$.prototype.parse_cmd_insert=function(){this.parse_cmd_append()},$.prototype.parse_cmd_loadkeymap=function(){this.reader.setpos(this.ea.linepos);for(var t=[this.reader.readline()];"<EOF>"!=this.reader.peek();){o(t,this.reader.readline())}var e=L(3);e.pos=this.ea.cmdpos,e.ea=this.ea,e.str=m(t,"\n"),this.add_node(e)},$.prototype.parse_cmd_lua=function(){var t=[];if(this.reader.skip_white(),"<<"==this.reader.peekn(2)){if(this.reader.getn(2),this.reader.skip_white(),""==(e=this.reader.readline()))var e=".";this.reader.setpos(this.ea.linepos);t=[this.reader.getn(-1)];for(this.reader.get();"<EOF>"!=this.reader.peek();){var n=this.reader.getn(-1);if(o(t,n),n==e)break;this.reader.get()}}else{this.reader.setpos(this.ea.linepos);t=[this.reader.getn(-1)]}var i=L(3);i.pos=this.ea.cmdpos,i.ea=this.ea,i.str=m(t,"\n"),this.add_node(i)},$.prototype.parse_cmd_mzscheme=function(){this.parse_cmd_lua()},$.prototype.parse_cmd_perl=function(){this.parse_cmd_lua()},$.prototype.parse_cmd_python=function(){this.parse_cmd_lua()},$.prototype.parse_cmd_python3=function(){this.parse_cmd_lua()},$.prototype.parse_cmd_ruby=function(){this.parse_cmd_lua()},$.prototype.parse_cmd_tcl=function(){this.parse_cmd_lua()},$.prototype.parse_cmd_finish=function(){this.parse_cmd_common(),1==this.context[0].type&&this.reader.seek_end(0)},$.prototype.parse_cmd_usercmd=function(){this.parse_cmd_common()},$.prototype.parse_cmd_function=function(){var t=this.reader.tell();if(this.reader.skip_white(),this.ends_excmds(this.reader.peek()))return this.reader.seek_set(t),void this.parse_cmd_common();if("/"==this.reader.peekn(1))return this.reader.seek_set(t),void this.parse_cmd_common();var e=this.parse_lvalue_func();if(this.reader.skip_white(),86==e.type){var n=e.value,i=b(n,"\\zs");if("<"!=i[0]&&"_"!=i[0]&&!c(i[0],"^[A-Z]$")&&-1==_(n,":")&&-1==_(n,"#"))throw I(p("E128: Function name must start with a capital or contain a colon: %s",n),e.pos)}if("("!=this.reader.peekn(1))return this.reader.seek_set(t),void this.parse_cmd_common();var r=L(4);r.pos=this.ea.cmdpos,r.body=[],r.ea=this.ea,r.left=e,r.rlist=[],r.default_args=[],r.attr={range:0,abort:0,dict:0,closure:0},r.endfunction=y,this.reader.getn(1);var a=new D(this.reader);if(46==a.peek().type)a.get();else for(var s={};;){var l=L(86);if(56!=(u=a.get()).type){if(63==u.type){var u;if(l.pos=u.pos,l.value=u.value,o(r.rlist,l),46==(u=a.get()).type)break;throw I(p("unexpected token: %s",u.value),u.pos)}throw I(p("unexpected token: %s",u.value),u.pos)}if(!S(u.value)||"firstline"==u.value||"lastline"==u.value)throw I(p("E125: Illegal argument: %s",u.value),u.pos);if(T(s,u.value))throw I(p("E853: Duplicate argument name: %s",u.value),u.pos);if(s[u.value]=1,l.pos=u.pos,l.value=u.value,o(r.rlist,l),59==a.peek().type)a.get(),o(r.default_args,this.parse_expr());else if(h(r.default_args)>0)throw I("E989: Non-default argument follows default argument",l.pos);if(E(this.reader.p(0))&&51==a.peek().type)throw I("E475: Invalid argument: White space is not allowed before comma",this.reader.getpos());if(51!=(u=a.get()).type){if(46==u.type)break;throw I(p("unexpected token: %s",u.value),u.pos)}if(46==a.peek().type){a.get();break}}for(;;){this.reader.skip_white();var d=this.reader.getpos(),m=this.reader.read_alpha();if(""==m)break;if("range"==m)r.attr.range=1;else if("abort"==m)r.attr.abort=1;else if("dict"==m)r.attr.dict=1;else{if("closure"!=m)throw I(p("unexpected token: %s",m),d);r.attr.closure=1}}this.add_node(r),this.push_context(r)},$.prototype.parse_cmd_endfunction=function(){if(this.check_missing_endif("ENDFUNCTION",this.ea.cmdpos),this.check_missing_endtry("ENDFUNCTION",this.ea.cmdpos),this.check_missing_endwhile("ENDFUNCTION",this.ea.cmdpos),this.check_missing_endfor("ENDFUNCTION",this.ea.cmdpos),4!=this.context[0].type)throw I("E193: :endfunction not inside a function",this.ea.cmdpos);this.reader.getn(-1);var t=L(5);t.pos=this.ea.cmdpos,t.ea=this.ea,this.context[0].endfunction=t,this.pop_context()},$.prototype.parse_cmd_delfunction=function(){var t=L(6);t.pos=this.ea.cmdpos,t.ea=this.ea,t.left=this.parse_lvalue_func(),this.add_node(t)},$.prototype.parse_cmd_return=function(){if(-1==this.find_context(4))throw I("E133: :return not inside a function",this.ea.cmdpos);var t=L(7);t.pos=this.ea.cmdpos,t.ea=this.ea,t.left=y,this.reader.skip_white();var e=this.reader.peek();'"'!=e&&this.ends_excmds(e)||(t.left=this.parse_expr()),this.add_node(t)},$.prototype.parse_cmd_call=function(){var t=L(8);t.pos=this.ea.cmdpos,t.ea=this.ea,this.reader.skip_white();var e=this.reader.peek();if(this.ends_excmds(e))throw I("E471: Argument required",this.reader.getpos());if(t.left=this.parse_expr(),78!=t.left.type)throw I("Not an function call",t.left.pos);this.add_node(t)},$.prototype.parse_heredoc=function(){var t=L(96);for(t.pos=this.ea.cmdpos,t.op="",t.rlist=[],t.body=[];;){this.reader.skip_white();var e=this.reader.read_word();if(""==e)break;if(!c(e[0],"^[a-z]$")){t.op=e;break}o(t.rlist,e)}if(""==t.op)throw I("E172: Missing marker",this.reader.getpos());for(this.parse_trail();"<EOF>"!=this.reader.peek();){var n=this.reader.getn(-1);if(n==t.op)return t;o(t.body,n),this.reader.get()}throw I(p("E990: Missing end marker '%s'",t.op),this.reader.getpos())},$.prototype.parse_cmd_let=function(){var t=this.reader.tell();if(this.reader.skip_white(),this.ends_excmds(this.reader.peek()))return this.reader.seek_set(t),void this.parse_cmd_common();var e=this.parse_letlhs();this.reader.skip_white();var n=this.reader.peekn(1);if(".."==(i=this.reader.peekn(2)))var i=this.reader.peekn(3);else if("=<"==i)i=this.reader.peekn(3);if(this.ends_excmds(n)||"+="!=i&&"-="!=i&&".="!=i&&"..="!=i&&"*="!=i&&"/="!=i&&"%="!=i&&"=<<"!=i&&"="!=n)return this.reader.seek_set(t),void this.parse_cmd_common();var r=L(9);if(r.pos=this.ea.cmdpos,r.ea=this.ea,r.op="",r.left=e.left,r.list=e.list,r.rest=e.rest,r.right=y,"+="==i||"-="==i||".="==i||"..="==i||"*="==i||"/="==i||"%="==i)this.reader.getn(h(i)),r.op=i;else{if("=<<"==i)return this.reader.getn(h(i)),this.reader.skip_white(),r.op=i,r.right=this.parse_heredoc(),void this.add_node(r);if("="!=n)throw"NOT REACHED";this.reader.getn(1),r.op=n}r.right=this.parse_expr(),this.add_node(r)},$.prototype.parse_cmd_const=function(){var t=this.reader.tell();if(this.reader.skip_white(),this.ends_excmds(this.reader.peek()))return this.reader.seek_set(t),void this.parse_cmd_common();var e=this.parse_constlhs();this.reader.skip_white();var n=this.reader.peekn(1);if(this.ends_excmds(n)||"="!=n)return this.reader.seek_set(t),void this.parse_cmd_common();var i=L(94);i.pos=this.ea.cmdpos,i.ea=this.ea,this.reader.getn(1),i.op=n,i.left=e.left,i.list=e.list,i.rest=e.rest,i.right=this.parse_expr(),this.add_node(i)},$.prototype.parse_cmd_unlet=function(){var t=L(10);t.pos=this.ea.cmdpos,t.ea=this.ea,t.list=this.parse_lvaluelist(),this.add_node(t)},$.prototype.parse_cmd_lockvar=function(){var t=L(11);t.pos=this.ea.cmdpos,t.ea=this.ea,t.depth=y,t.list=[],this.reader.skip_white(),R(this.reader.peekn(1))&&(t.depth=x(this.reader.read_digit(),10)),t.list=this.parse_lvaluelist(),this.add_node(t)},$.prototype.parse_cmd_unlockvar=function(){var t=L(12);t.pos=this.ea.cmdpos,t.ea=this.ea,t.depth=y,t.list=[],this.reader.skip_white(),R(this.reader.peekn(1))&&(t.depth=x(this.reader.read_digit(),10)),t.list=this.parse_lvaluelist(),this.add_node(t)},$.prototype.parse_cmd_if=function(){var t=L(13);t.pos=this.ea.cmdpos,t.body=[],t.ea=this.ea,t.cond=this.parse_expr(),t.elseif=[],t._else=y,t.endif=y,this.add_node(t),this.push_context(t)},$.prototype.parse_cmd_elseif=function(){if(13!=this.context[0].type&&14!=this.context[0].type)throw I("E582: :elseif without :if",this.ea.cmdpos);13!=this.context[0].type&&this.pop_context();var t=L(14);t.pos=this.ea.cmdpos,t.body=[],t.ea=this.ea,t.cond=this.parse_expr(),o(this.context[0].elseif,t),this.push_context(t)},$.prototype.parse_cmd_else=function(){if(13!=this.context[0].type&&14!=this.context[0].type)throw I("E581: :else without :if",this.ea.cmdpos);13!=this.context[0].type&&this.pop_context();var t=L(15);t.pos=this.ea.cmdpos,t.body=[],t.ea=this.ea,this.context[0]._else=t,this.push_context(t)},$.prototype.parse_cmd_endif=function(){if(13!=this.context[0].type&&14!=this.context[0].type&&15!=this.context[0].type)throw I("E580: :endif without :if",this.ea.cmdpos);13!=this.context[0].type&&this.pop_context();var t=L(16);t.pos=this.ea.cmdpos,t.ea=this.ea,this.context[0].endif=t,this.pop_context()},$.prototype.parse_cmd_while=function(){var t=L(17);t.pos=this.ea.cmdpos,t.body=[],t.ea=this.ea,t.cond=this.parse_expr(),t.endwhile=y,this.add_node(t),this.push_context(t)},$.prototype.parse_cmd_endwhile=function(){if(17!=this.context[0].type)throw I("E588: :endwhile without :while",this.ea.cmdpos);var t=L(18);t.pos=this.ea.cmdpos,t.ea=this.ea,this.context[0].endwhile=t,this.pop_context()},$.prototype.parse_cmd_for=function(){var t=L(19);t.pos=this.ea.cmdpos,t.body=[],t.ea=this.ea,t.left=y,t.right=y,t.endfor=y;var e=this.parse_letlhs();t.left=e.left,t.list=e.list,t.rest=e.rest,this.reader.skip_white();var n=this.reader.getpos();if("in"!=this.reader.read_alpha())throw I('Missing "in" after :for',n);t.right=this.parse_expr(),this.add_node(t),this.push_context(t)},$.prototype.parse_cmd_endfor=function(){if(19!=this.context[0].type)throw I("E588: :endfor without :for",this.ea.cmdpos);var t=L(20);t.pos=this.ea.cmdpos,t.ea=this.ea,this.context[0].endfor=t,this.pop_context()},$.prototype.parse_cmd_continue=function(){if(-1==this.find_context(17)&&-1==this.find_context(19))throw I("E586: :continue without :while or :for",this.ea.cmdpos);var t=L(21);t.pos=this.ea.cmdpos,t.ea=this.ea,this.add_node(t)},$.prototype.parse_cmd_break=function(){if(-1==this.find_context(17)&&-1==this.find_context(19))throw I("E587: :break without :while or :for",this.ea.cmdpos);var t=L(22);t.pos=this.ea.cmdpos,t.ea=this.ea,this.add_node(t)},$.prototype.parse_cmd_try=function(){var t=L(23);t.pos=this.ea.cmdpos,t.body=[],t.ea=this.ea,t.catch=[],t._finally=y,t.endtry=y,this.add_node(t),this.push_context(t)},$.prototype.parse_cmd_catch=function(){if(25==this.context[0].type)throw I("E604: :catch after :finally",this.ea.cmdpos);if(23!=this.context[0].type&&24!=this.context[0].type)throw I("E603: :catch without :try",this.ea.cmdpos);23!=this.context[0].type&&this.pop_context();var t=L(24);if(t.pos=this.ea.cmdpos,t.body=[],t.ea=this.ea,t.pattern=y,this.reader.skip_white(),!this.ends_excmds(this.reader.peek())){var e=this.parse_pattern(this.reader.get());t.pattern=e[0];e[1]}o(this.context[0].catch,t),this.push_context(t)},$.prototype.parse_cmd_finally=function(){if(23!=this.context[0].type&&24!=this.context[0].type)throw I("E606: :finally without :try",this.ea.cmdpos);23!=this.context[0].type&&this.pop_context();var t=L(25);t.pos=this.ea.cmdpos,t.body=[],t.ea=this.ea,this.context[0]._finally=t,this.push_context(t)},$.prototype.parse_cmd_endtry=function(){if(23!=this.context[0].type&&24!=this.context[0].type&&25!=this.context[0].type)throw I("E602: :endtry without :try",this.ea.cmdpos);23!=this.context[0].type&&this.pop_context();var t=L(26);t.pos=this.ea.cmdpos,t.ea=this.ea,this.context[0].endtry=t,this.pop_context()},$.prototype.parse_cmd_throw=function(){var t=L(27);t.pos=this.ea.cmdpos,t.ea=this.ea,t.left=this.parse_expr(),this.add_node(t)},$.prototype.parse_cmd_eval=function(){var t=L(95);t.pos=this.ea.cmdpos,t.ea=this.ea,t.left=this.parse_expr(),this.add_node(t)},$.prototype.parse_cmd_echo=function(){var t=L(28);t.pos=this.ea.cmdpos,t.ea=this.ea,t.list=this.parse_exprlist(),this.add_node(t)},$.prototype.parse_cmd_echon=function(){var t=L(29);t.pos=this.ea.cmdpos,t.ea=this.ea,t.list=this.parse_exprlist(),this.add_node(t)},$.prototype.parse_cmd_echohl=function(){var t=L(30);for(t.pos=this.ea.cmdpos,t.ea=this.ea,t.str="";!this.ends_excmds(this.reader.peek());)t.str+=this.reader.get();this.add_node(t)},$.prototype.parse_cmd_echomsg=function(){var t=L(31);t.pos=this.ea.cmdpos,t.ea=this.ea,t.list=this.parse_exprlist(),this.add_node(t)},$.prototype.parse_cmd_echoerr=function(){var t=L(32);t.pos=this.ea.cmdpos,t.ea=this.ea,t.list=this.parse_exprlist(),this.add_node(t)},$.prototype.parse_cmd_execute=function(){var t=L(33);t.pos=this.ea.cmdpos,t.ea=this.ea,t.list=this.parse_exprlist(),this.add_node(t)},$.prototype.parse_expr=function(){return new W(this.reader).parse()},$.prototype.parse_exprlist=function(){for(var t=[];;){this.reader.skip_white();var e=this.reader.peek();if('"'!=e&&this.ends_excmds(e))break;o(t,this.parse_expr())}return t},$.prototype.parse_lvalue_func=function(){var t=new G(this.reader).parse();if(86==t.type||87==t.type||76==t.type||79==t.type||85==t.type||88==t.type||89==t.type)return t;throw I("Invalid Expression",t.pos)},$.prototype.parse_lvalue=function(){var t=new G(this.reader).parse();if(86==t.type&&!C(t.value))throw I(p("E461: Illegal variable name: %s",t.value),t.pos);if(86==t.type||87==t.type||76==t.type||77==t.type||79==t.type||85==t.type||88==t.type||89==t.type)return t;throw I("Invalid Expression",t.pos)},$.prototype.parse_constlvalue=function(){var t=new G(this.reader).parse();if(86==t.type&&!C(t.value))throw I(p("E461: Illegal variable name: %s",t.value),t.pos);if(86==t.type||87==t.type)return t;if(76==t.type||77==t.type||79==t.type)throw I("E996: Cannot lock a list or dict",t.pos);if(85==t.type)throw I("E996: Cannot lock an option",t.pos);if(88==t.type)throw I("E996: Cannot lock an environment variable",t.pos);if(89==t.type)throw I("E996: Cannot lock a register",t.pos);throw I("Invalid Expression",t.pos)},$.prototype.parse_lvaluelist=function(){var t=[];for(o(t,this.parse_expr());this.reader.skip_white(),!this.ends_excmds(this.reader.peek());){o(t,this.parse_lvalue())}return t},$.prototype.parse_letlhs=function(){var t={left:y,list:y,rest:y},e=new D(this.reader);if(47==e.peek().type)for(e.get(),t.list=[];;){var n=this.parse_lvalue();if(o(t.list,n),48==(i=e.get()).type)break;if(51!=i.type){if(61==i.type){var i;n=this.parse_lvalue();if(t.rest=n,48==(i=e.get()).type)break;throw I(p("E475 Invalid argument: %s",i.value),i.pos)}throw I(p("E475 Invalid argument: %s",i.value),i.pos)}}else t.left=this.parse_lvalue();return t},$.prototype.parse_constlhs=function(){var t={left:y,list:y,rest:y},e=new D(this.reader);if(47==e.peek().type)for(e.get(),t.list=[];;){var n=this.parse_lvalue();if(o(t.list,n),48==(i=e.get()).type)break;if(51!=i.type){if(61==i.type){var i;n=this.parse_lvalue();if(t.rest=n,48==(i=e.get()).type)break;throw I(p("E475 Invalid argument: %s",i.value),i.pos)}throw I(p("E475 Invalid argument: %s",i.value),i.pos)}}else t.left=this.parse_constlvalue();return t},$.prototype.ends_excmds=function(t){return""==t||"|"==t||'"'==t||"<EOF>"==t||"<EOL>"==t},$.prototype.parse_wincmd=function(){var t=this.reader.getn(1);if(""==t)throw I("E471: Argument required",this.reader.getpos());if("g"==t||""==t){var e=this.reader.getn(1);if(""==e||E(e))throw I("E474: Invalid Argument",this.reader.getpos())}var n=this.reader.getpos();if(this.reader.skip_white(),!this.ends_excmds(this.reader.peek()))throw I("E474: Invalid Argument",this.reader.getpos());var i=L(3);i.pos=this.ea.cmdpos,i.ea=this.ea,i.str=this.reader.getstr(this.ea.linepos,n),this.add_node(i)},$.prototype.parse_cmd_syntax=function(){for(var t=this.reader.getpos();;){t=this.reader.getpos();var e=this.reader.peek();if("/"==e||"'"==e||'"'==e)this.reader.getn(1),this.parse_pattern(e);else if("="==e)this.reader.getn(1),this.parse_pattern(" ");else if(this.ends_excmds(e))break;this.reader.getn(1)}var n=L(3);n.pos=this.ea.cmdpos,n.ea=this.ea,n.str=this.reader.getstr(this.ea.linepos,t),this.add_node(n)},$.prototype.neovim_additional_commands=[{name:"rshada",minlen:3,flags:"BANG|FILE1|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"wshada",minlen:3,flags:"BANG|FILE1|TRLBAR|CMDWIN",parser:"parse_cmd_common"}],$.prototype.neovim_removed_commands=[{name:"Print",minlen:1,flags:"RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"fixdel",minlen:3,flags:"TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"helpfind",minlen:5,flags:"EXTRA|NOTRLCOM",parser:"parse_cmd_common"},{name:"open",minlen:1,flags:"RANGE|BANG|EXTRA",parser:"parse_cmd_common"},{name:"shell",minlen:2,flags:"TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"tearoff",minlen:2,flags:"NEEDARG|EXTRA|TRLBAR|NOTRLCOM|CMDWIN",parser:"parse_cmd_common"},{name:"gvim",minlen:2,flags:"BANG|FILES|EDITCMD|ARGOPT|TRLBAR|CMDWIN",parser:"parse_cmd_common"}],$.prototype.builtin_commands=[{name:"append",minlen:1,flags:"BANG|RANGE|ZEROR|TRLBAR|CMDWIN|MODIFY",parser:"parse_cmd_append"},{name:"abbreviate",minlen:2,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"abclear",minlen:3,flags:"EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"aboveleft",minlen:3,flags:"NEEDARG|EXTRA|NOTRLCOM",parser:"parse_cmd_common"},{name:"all",minlen:2,flags:"BANG|RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"amenu",minlen:2,flags:"RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"anoremenu",minlen:2,flags:"RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"args",minlen:2,flags:"BANG|FILES|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"argadd",minlen:4,flags:"BANG|NEEDARG|RANGE|NOTADR|ZEROR|FILES|TRLBAR",parser:"parse_cmd_common"},{name:"argdelete",minlen:4,flags:"BANG|RANGE|NOTADR|FILES|TRLBAR",parser:"parse_cmd_common"},{name:"argedit",minlen:4,flags:"BANG|NEEDARG|RANGE|NOTADR|FILE1|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"argdo",minlen:5,flags:"BANG|NEEDARG|EXTRA|NOTRLCOM",parser:"parse_cmd_common"},{name:"argglobal",minlen:4,flags:"BANG|FILES|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"arglocal",minlen:4,flags:"BANG|FILES|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"argument",minlen:4,flags:"BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"ascii",minlen:2,flags:"TRLBAR|SBOXOK|CMDWIN",parser:"parse_cmd_common"},{name:"autocmd",minlen:2,flags:"BANG|EXTRA|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"augroup",minlen:3,flags:"BANG|WORD1|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"aunmenu",minlen:3,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"buffer",minlen:1,flags:"BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|TRLBAR",parser:"parse_cmd_common"},{name:"bNext",minlen:2,flags:"BANG|RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"ball",minlen:2,flags:"RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"badd",minlen:3,flags:"NEEDARG|FILE1|EDITCMD|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"bdelete",minlen:2,flags:"BANG|RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR",parser:"parse_cmd_common"},{name:"behave",minlen:2,flags:"NEEDARG|WORD1|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"belowright",minlen:3,flags:"NEEDARG|EXTRA|NOTRLCOM",parser:"parse_cmd_common"},{name:"bfirst",minlen:2,flags:"BANG|RANGE|NOTADR|TRLBAR",parser:"parse_cmd_common"},{name:"blast",minlen:2,flags:"BANG|RANGE|NOTADR|TRLBAR",parser:"parse_cmd_common"},{name:"bmodified",minlen:2,flags:"BANG|RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"bnext",minlen:2,flags:"BANG|RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"botright",minlen:2,flags:"NEEDARG|EXTRA|NOTRLCOM",parser:"parse_cmd_common"},{name:"bprevious",minlen:2,flags:"BANG|RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"brewind",minlen:2,flags:"BANG|RANGE|NOTADR|TRLBAR",parser:"parse_cmd_common"},{name:"break",minlen:4,flags:"TRLBAR|SBOXOK|CMDWIN",parser:"parse_cmd_break"},{name:"breakadd",minlen:6,flags:"EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"breakdel",minlen:6,flags:"EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"breaklist",minlen:6,flags:"EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"browse",minlen:3,flags:"NEEDARG|EXTRA|NOTRLCOM|CMDWIN",parser:"parse_cmd_common"},{name:"bufdo",minlen:5,flags:"BANG|NEEDARG|EXTRA|NOTRLCOM",parser:"parse_cmd_common"},{name:"buffers",minlen:7,flags:"BANG|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"bunload",minlen:3,flags:"BANG|RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR",parser:"parse_cmd_common"},{name:"bwipeout",minlen:2,flags:"BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|TRLBAR",parser:"parse_cmd_common"},{name:"change",minlen:1,flags:"BANG|WHOLEFOLD|RANGE|COUNT|TRLBAR|CMDWIN|MODIFY",parser:"parse_cmd_common"},{name:"cNext",minlen:2,flags:"RANGE|NOTADR|COUNT|TRLBAR|BANG",parser:"parse_cmd_common"},{name:"cNfile",minlen:3,flags:"RANGE|NOTADR|COUNT|TRLBAR|BANG",parser:"parse_cmd_common"},{name:"cabbrev",minlen:2,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"cabclear",minlen:4,flags:"EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"caddbuffer",minlen:3,flags:"RANGE|NOTADR|WORD1|TRLBAR",parser:"parse_cmd_common"},{name:"caddexpr",minlen:5,flags:"NEEDARG|WORD1|NOTRLCOM|TRLBAR",parser:"parse_cmd_common"},{name:"caddfile",minlen:5,flags:"TRLBAR|FILE1",parser:"parse_cmd_common"},{name:"call",minlen:3,flags:"RANGE|NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN",parser:"parse_cmd_call"},{name:"catch",minlen:3,flags:"EXTRA|SBOXOK|CMDWIN",parser:"parse_cmd_catch"},{name:"cbuffer",minlen:2,flags:"BANG|RANGE|NOTADR|WORD1|TRLBAR",parser:"parse_cmd_common"},{name:"cc",minlen:2,flags:"RANGE|NOTADR|COUNT|TRLBAR|BANG",parser:"parse_cmd_common"},{name:"cclose",minlen:3,flags:"RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"cd",minlen:2,flags:"BANG|FILE1|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"center",minlen:2,flags:"TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY",parser:"parse_cmd_common"},{name:"cexpr",minlen:3,flags:"NEEDARG|WORD1|NOTRLCOM|TRLBAR|BANG",parser:"parse_cmd_common"},{name:"cfile",minlen:2,flags:"TRLBAR|FILE1|BANG",parser:"parse_cmd_common"},{name:"cfirst",minlen:4,flags:"RANGE|NOTADR|COUNT|TRLBAR|BANG",parser:"parse_cmd_common"},{name:"cgetbuffer",minlen:5,flags:"RANGE|NOTADR|WORD1|TRLBAR",parser:"parse_cmd_common"},{name:"cgetexpr",minlen:5,flags:"NEEDARG|WORD1|NOTRLCOM|TRLBAR",parser:"parse_cmd_common"},{name:"cgetfile",minlen:2,flags:"TRLBAR|FILE1",parser:"parse_cmd_common"},{name:"changes",minlen:7,flags:"TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"chdir",minlen:3,flags:"BANG|FILE1|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"checkpath",minlen:3,flags:"TRLBAR|BANG|CMDWIN",parser:"parse_cmd_common"},{name:"checktime",minlen:6,flags:"RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR",parser:"parse_cmd_common"},{name:"clist",minlen:2,flags:"BANG|EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"clast",minlen:3,flags:"RANGE|NOTADR|COUNT|TRLBAR|BANG",parser:"parse_cmd_common"},{name:"close",minlen:3,flags:"BANG|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"cmap",minlen:2,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"cmapclear",minlen:5,flags:"EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"cmenu",minlen:3,flags:"RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"cnext",minlen:2,flags:"RANGE|NOTADR|COUNT|TRLBAR|BANG",parser:"parse_cmd_common"},{name:"cnewer",minlen:4,flags:"RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"cnfile",minlen:3,flags:"RANGE|NOTADR|COUNT|TRLBAR|BANG",parser:"parse_cmd_common"},{name:"cnoremap",minlen:3,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"cnoreabbrev",minlen:6,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"cnoremenu",minlen:7,flags:"RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"copy",minlen:2,flags:"RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY",parser:"parse_cmd_common"},{name:"colder",minlen:3,flags:"RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"colorscheme",minlen:4,flags:"WORD1|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"command",minlen:3,flags:"EXTRA|BANG|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"comclear",minlen:4,flags:"TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"compiler",minlen:4,flags:"BANG|TRLBAR|WORD1|CMDWIN",parser:"parse_cmd_common"},{name:"continue",minlen:3,flags:"TRLBAR|SBOXOK|CMDWIN",parser:"parse_cmd_continue"},{name:"confirm",minlen:4,flags:"NEEDARG|EXTRA|NOTRLCOM|CMDWIN",parser:"parse_cmd_common"},{name:"copen",minlen:4,flags:"RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"cprevious",minlen:2,flags:"RANGE|NOTADR|COUNT|TRLBAR|BANG",parser:"parse_cmd_common"},{name:"cpfile",minlen:3,flags:"RANGE|NOTADR|COUNT|TRLBAR|BANG",parser:"parse_cmd_common"},{name:"cquit",minlen:2,flags:"TRLBAR|BANG",parser:"parse_cmd_common"},{name:"crewind",minlen:2,flags:"RANGE|NOTADR|COUNT|TRLBAR|BANG",parser:"parse_cmd_common"},{name:"cscope",minlen:2,flags:"EXTRA|NOTRLCOM|XFILE",parser:"parse_cmd_common"},{name:"cstag",minlen:3,flags:"BANG|TRLBAR|WORD1",parser:"parse_cmd_common"},{name:"cunmap",minlen:2,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"cunabbrev",minlen:4,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"cunmenu",minlen:5,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"cwindow",minlen:2,flags:"RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"delete",minlen:1,flags:"RANGE|WHOLEFOLD|REGSTR|COUNT|TRLBAR|CMDWIN|MODIFY",parser:"parse_cmd_common"},{name:"delmarks",minlen:4,flags:"BANG|EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"debug",minlen:3,flags:"NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN",parser:"parse_cmd_common"},{name:"debuggreedy",minlen:6,flags:"RANGE|NOTADR|ZEROR|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"delcommand",minlen:4,flags:"NEEDARG|WORD1|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"delfunction",minlen:4,flags:"BANG|NEEDARG|WORD1|CMDWIN",parser:"parse_cmd_delfunction"},{name:"diffupdate",minlen:3,flags:"BANG|TRLBAR",parser:"parse_cmd_common"},{name:"diffget",minlen:5,flags:"RANGE|EXTRA|TRLBAR|MODIFY",parser:"parse_cmd_common"},{name:"diffoff",minlen:5,flags:"BANG|TRLBAR",parser:"parse_cmd_common"},{name:"diffpatch",minlen:5,flags:"EXTRA|FILE1|TRLBAR|MODIFY",parser:"parse_cmd_common"},{name:"diffput",minlen:6,flags:"RANGE|EXTRA|TRLBAR",parser:"parse_cmd_common"},{name:"diffsplit",minlen:5,flags:"EXTRA|FILE1|TRLBAR",parser:"parse_cmd_common"},{name:"diffthis",minlen:5,flags:"TRLBAR",parser:"parse_cmd_common"},{name:"digraphs",minlen:3,flags:"EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"display",minlen:2,flags:"EXTRA|NOTRLCOM|TRLBAR|SBOXOK|CMDWIN",parser:"parse_cmd_common"},{name:"djump",minlen:2,flags:"BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA",parser:"parse_cmd_common"},{name:"dlist",minlen:2,flags:"BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN",parser:"parse_cmd_common"},{name:"doautocmd",minlen:2,flags:"EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"doautoall",minlen:7,flags:"EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"drop",minlen:2,flags:"FILES|EDITCMD|NEEDARG|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"dsearch",minlen:2,flags:"BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN",parser:"parse_cmd_common"},{name:"dsplit",minlen:3,flags:"BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA",parser:"parse_cmd_common"},{name:"edit",minlen:1,flags:"BANG|FILE1|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"earlier",minlen:2,flags:"TRLBAR|EXTRA|NOSPC|CMDWIN",parser:"parse_cmd_common"},{name:"echo",minlen:2,flags:"EXTRA|NOTRLCOM|SBOXOK|CMDWIN",parser:"parse_cmd_echo"},{name:"echoerr",minlen:5,flags:"EXTRA|NOTRLCOM|SBOXOK|CMDWIN",parser:"parse_cmd_echoerr"},{name:"echohl",minlen:5,flags:"EXTRA|TRLBAR|SBOXOK|CMDWIN",parser:"parse_cmd_echohl"},{name:"echomsg",minlen:5,flags:"EXTRA|NOTRLCOM|SBOXOK|CMDWIN",parser:"parse_cmd_echomsg"},{name:"echon",minlen:5,flags:"EXTRA|NOTRLCOM|SBOXOK|CMDWIN",parser:"parse_cmd_echon"},{name:"else",minlen:2,flags:"TRLBAR|SBOXOK|CMDWIN",parser:"parse_cmd_else"},{name:"elseif",minlen:5,flags:"EXTRA|NOTRLCOM|SBOXOK|CMDWIN",parser:"parse_cmd_elseif"},{name:"emenu",minlen:2,flags:"NEEDARG|EXTRA|TRLBAR|NOTRLCOM|RANGE|NOTADR|CMDWIN",parser:"parse_cmd_common"},{name:"endif",minlen:2,flags:"TRLBAR|SBOXOK|CMDWIN",parser:"parse_cmd_endif"},{name:"endfor",minlen:5,flags:"TRLBAR|SBOXOK|CMDWIN",parser:"parse_cmd_endfor"},{name:"endfunction",minlen:4,flags:"TRLBAR|CMDWIN",parser:"parse_cmd_endfunction"},{name:"endtry",minlen:4,flags:"TRLBAR|SBOXOK|CMDWIN",parser:"parse_cmd_endtry"},{name:"endwhile",minlen:4,flags:"TRLBAR|SBOXOK|CMDWIN",parser:"parse_cmd_endwhile"},{name:"enew",minlen:3,flags:"BANG|TRLBAR",parser:"parse_cmd_common"},{name:"eval",minlen:2,flags:"EXTRA|NOTRLCOM|SBOXOK|CMDWIN",parser:"parse_cmd_eval"},{name:"ex",minlen:2,flags:"BANG|FILE1|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"execute",minlen:3,flags:"EXTRA|NOTRLCOM|SBOXOK|CMDWIN",parser:"parse_cmd_execute"},{name:"exit",minlen:3,flags:"RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"exusage",minlen:3,flags:"TRLBAR",parser:"parse_cmd_common"},{name:"file",minlen:1,flags:"RANGE|NOTADR|ZEROR|BANG|FILE1|TRLBAR",parser:"parse_cmd_common"},{name:"files",minlen:5,flags:"BANG|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"filetype",minlen:5,flags:"EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"find",minlen:3,flags:"RANGE|NOTADR|BANG|FILE1|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"finally",minlen:4,flags:"TRLBAR|SBOXOK|CMDWIN",parser:"parse_cmd_finally"},{name:"finish",minlen:4,flags:"TRLBAR|SBOXOK|CMDWIN",parser:"parse_cmd_finish"},{name:"first",minlen:3,flags:"EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"fixdel",minlen:3,flags:"TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"fold",minlen:2,flags:"RANGE|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN",parser:"parse_cmd_common"},{name:"foldclose",minlen:5,flags:"RANGE|BANG|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN",parser:"parse_cmd_common"},{name:"folddoopen",minlen:5,flags:"RANGE|DFLALL|NEEDARG|EXTRA|NOTRLCOM",parser:"parse_cmd_common"},{name:"folddoclosed",minlen:7,flags:"RANGE|DFLALL|NEEDARG|EXTRA|NOTRLCOM",parser:"parse_cmd_common"},{name:"foldopen",minlen:5,flags:"RANGE|BANG|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN",parser:"parse_cmd_common"},{name:"for",minlen:3,flags:"EXTRA|NOTRLCOM|SBOXOK|CMDWIN",parser:"parse_cmd_for"},{name:"function",minlen:2,flags:"EXTRA|BANG|CMDWIN",parser:"parse_cmd_function"},{name:"global",minlen:1,flags:"RANGE|WHOLEFOLD|BANG|EXTRA|DFLALL|SBOXOK|CMDWIN",parser:"parse_cmd_common"},{name:"goto",minlen:2,flags:"RANGE|NOTADR|COUNT|TRLBAR|SBOXOK|CMDWIN",parser:"parse_cmd_common"},{name:"grep",minlen:2,flags:"RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE",parser:"parse_cmd_common"},{name:"grepadd",minlen:5,flags:"RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE",parser:"parse_cmd_common"},{name:"gui",minlen:2,flags:"BANG|FILES|EDITCMD|ARGOPT|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"gvim",minlen:2,flags:"BANG|FILES|EDITCMD|ARGOPT|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"hardcopy",minlen:2,flags:"RANGE|COUNT|EXTRA|TRLBAR|DFLALL|BANG",parser:"parse_cmd_common"},{name:"help",minlen:1,flags:"BANG|EXTRA|NOTRLCOM",parser:"parse_cmd_common"},{name:"helpfind",minlen:5,flags:"EXTRA|NOTRLCOM",parser:"parse_cmd_common"},{name:"helpgrep",minlen:5,flags:"EXTRA|NOTRLCOM|NEEDARG",parser:"parse_cmd_common"},{name:"helptags",minlen:5,flags:"NEEDARG|FILES|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"highlight",minlen:2,flags:"BANG|EXTRA|TRLBAR|SBOXOK|CMDWIN",parser:"parse_cmd_common"},{name:"hide",minlen:3,flags:"BANG|EXTRA|NOTRLCOM",parser:"parse_cmd_common"},{name:"history",minlen:3,flags:"EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"insert",minlen:1,flags:"BANG|RANGE|TRLBAR|CMDWIN|MODIFY",parser:"parse_cmd_insert"},{name:"iabbrev",minlen:2,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"iabclear",minlen:4,flags:"EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"if",minlen:2,flags:"EXTRA|NOTRLCOM|SBOXOK|CMDWIN",parser:"parse_cmd_if"},{name:"ijump",minlen:2,flags:"BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA",parser:"parse_cmd_common"},{name:"ilist",minlen:2,flags:"BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN",parser:"parse_cmd_common"},{name:"imap",minlen:2,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"imapclear",minlen:5,flags:"EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"imenu",minlen:3,flags:"RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"inoremap",minlen:3,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"inoreabbrev",minlen:6,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"inoremenu",minlen:7,flags:"RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"intro",minlen:3,flags:"TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"isearch",minlen:2,flags:"BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN",parser:"parse_cmd_common"},{name:"isplit",minlen:3,flags:"BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA",parser:"parse_cmd_common"},{name:"iunmap",minlen:2,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"iunabbrev",minlen:4,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"iunmenu",minlen:5,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"join",minlen:1,flags:"BANG|RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY",parser:"parse_cmd_common"},{name:"jumps",minlen:2,flags:"TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"k",minlen:1,flags:"RANGE|WORD1|TRLBAR|SBOXOK|CMDWIN",parser:"parse_cmd_common"},{name:"keepalt",minlen:5,flags:"NEEDARG|EXTRA|NOTRLCOM",parser:"parse_cmd_common"},{name:"keepmarks",minlen:3,flags:"NEEDARG|EXTRA|NOTRLCOM",parser:"parse_cmd_common"},{name:"keepjumps",minlen:5,flags:"NEEDARG|EXTRA|NOTRLCOM",parser:"parse_cmd_common"},{name:"keeppatterns",minlen:5,flags:"NEEDARG|EXTRA|NOTRLCOM",parser:"parse_cmd_common"},{name:"lNext",minlen:2,flags:"RANGE|NOTADR|COUNT|TRLBAR|BANG",parser:"parse_cmd_common"},{name:"lNfile",minlen:3,flags:"RANGE|NOTADR|COUNT|TRLBAR|BANG",parser:"parse_cmd_common"},{name:"list",minlen:1,flags:"RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"laddexpr",minlen:3,flags:"NEEDARG|WORD1|NOTRLCOM|TRLBAR",parser:"parse_cmd_common"},{name:"laddbuffer",minlen:5,flags:"RANGE|NOTADR|WORD1|TRLBAR",parser:"parse_cmd_common"},{name:"laddfile",minlen:5,flags:"TRLBAR|FILE1",parser:"parse_cmd_common"},{name:"last",minlen:2,flags:"EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"language",minlen:3,flags:"EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"later",minlen:3,flags:"TRLBAR|EXTRA|NOSPC|CMDWIN",parser:"parse_cmd_common"},{name:"lbuffer",minlen:2,flags:"BANG|RANGE|NOTADR|WORD1|TRLBAR",parser:"parse_cmd_common"},{name:"lcd",minlen:2,flags:"BANG|FILE1|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"lchdir",minlen:3,flags:"BANG|FILE1|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"lclose",minlen:3,flags:"RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"lcscope",minlen:3,flags:"EXTRA|NOTRLCOM|XFILE",parser:"parse_cmd_common"},{name:"left",minlen:2,flags:"TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY",parser:"parse_cmd_common"},{name:"leftabove",minlen:5,flags:"NEEDARG|EXTRA|NOTRLCOM",parser:"parse_cmd_common"},{name:"let",minlen:3,flags:"EXTRA|NOTRLCOM|SBOXOK|CMDWIN",parser:"parse_cmd_let"},{name:"const",minlen:4,flags:"EXTRA|NOTRLCOM|SBOXOK|CMDWIN",parser:"parse_cmd_const"},{name:"lexpr",minlen:3,flags:"NEEDARG|WORD1|NOTRLCOM|TRLBAR|BANG",parser:"parse_cmd_common"},{name:"lfile",minlen:2,flags:"TRLBAR|FILE1|BANG",parser:"parse_cmd_common"},{name:"lfirst",minlen:4,flags:"RANGE|NOTADR|COUNT|TRLBAR|BANG",parser:"parse_cmd_common"},{name:"lgetbuffer",minlen:5,flags:"RANGE|NOTADR|WORD1|TRLBAR",parser:"parse_cmd_common"},{name:"lgetexpr",minlen:5,flags:"NEEDARG|WORD1|NOTRLCOM|TRLBAR",parser:"parse_cmd_common"},{name:"lgetfile",minlen:2,flags:"TRLBAR|FILE1",parser:"parse_cmd_common"},{name:"lgrep",minlen:3,flags:"RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE",parser:"parse_cmd_common"},{name:"lgrepadd",minlen:6,flags:"RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE",parser:"parse_cmd_common"},{name:"lhelpgrep",minlen:2,flags:"EXTRA|NOTRLCOM|NEEDARG",parser:"parse_cmd_common"},{name:"ll",minlen:2,flags:"RANGE|NOTADR|COUNT|TRLBAR|BANG",parser:"parse_cmd_common"},{name:"llast",minlen:3,flags:"RANGE|NOTADR|COUNT|TRLBAR|BANG",parser:"parse_cmd_common"},{name:"list",minlen:3,flags:"BANG|EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"lmake",minlen:4,flags:"BANG|EXTRA|NOTRLCOM|TRLBAR|XFILE",parser:"parse_cmd_common"},{name:"lmap",minlen:2,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"lmapclear",minlen:5,flags:"EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"lnext",minlen:3,flags:"RANGE|NOTADR|COUNT|TRLBAR|BANG",parser:"parse_cmd_common"},{name:"lnewer",minlen:4,flags:"RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"lnfile",minlen:3,flags:"RANGE|NOTADR|COUNT|TRLBAR|BANG",parser:"parse_cmd_common"},{name:"lnoremap",minlen:2,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"loadkeymap",minlen:5,flags:"CMDWIN",parser:"parse_cmd_loadkeymap"},{name:"loadview",minlen:2,flags:"FILE1|TRLBAR",parser:"parse_cmd_common"},{name:"lockmarks",minlen:3,flags:"NEEDARG|EXTRA|NOTRLCOM",parser:"parse_cmd_common"},{name:"lockvar",minlen:5,flags:"BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN",parser:"parse_cmd_lockvar"},{name:"lolder",minlen:3,flags:"RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"lopen",minlen:3,flags:"RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"lprevious",minlen:2,flags:"RANGE|NOTADR|COUNT|TRLBAR|BANG",parser:"parse_cmd_common"},{name:"lpfile",minlen:3,flags:"RANGE|NOTADR|COUNT|TRLBAR|BANG",parser:"parse_cmd_common"},{name:"lrewind",minlen:2,flags:"RANGE|NOTADR|COUNT|TRLBAR|BANG",parser:"parse_cmd_common"},{name:"ls",minlen:2,flags:"BANG|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"ltag",minlen:2,flags:"NOTADR|TRLBAR|BANG|WORD1",parser:"parse_cmd_common"},{name:"lunmap",minlen:2,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"lua",minlen:3,flags:"RANGE|EXTRA|NEEDARG|CMDWIN",parser:"parse_cmd_lua"},{name:"luado",minlen:4,flags:"RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN",parser:"parse_cmd_common"},{name:"luafile",minlen:4,flags:"RANGE|FILE1|NEEDARG|CMDWIN",parser:"parse_cmd_common"},{name:"lvimgrep",minlen:2,flags:"RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE",parser:"parse_cmd_common"},{name:"lvimgrepadd",minlen:9,flags:"RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE",parser:"parse_cmd_common"},{name:"lwindow",minlen:2,flags:"RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"move",minlen:1,flags:"RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY",parser:"parse_cmd_common"},{name:"mark",minlen:2,flags:"RANGE|WORD1|TRLBAR|SBOXOK|CMDWIN",parser:"parse_cmd_common"},{name:"make",minlen:3,flags:"BANG|EXTRA|NOTRLCOM|TRLBAR|XFILE",parser:"parse_cmd_common"},{name:"map",minlen:3,flags:"BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"mapclear",minlen:4,flags:"EXTRA|BANG|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"marks",minlen:5,flags:"EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"match",minlen:3,flags:"RANGE|NOTADR|EXTRA|CMDWIN",parser:"parse_cmd_common"},{name:"menu",minlen:2,flags:"RANGE|NOTADR|ZEROR|BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"menutranslate",minlen:5,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"messages",minlen:3,flags:"TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"mkexrc",minlen:2,flags:"BANG|FILE1|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"mksession",minlen:3,flags:"BANG|FILE1|TRLBAR",parser:"parse_cmd_common"},{name:"mkspell",minlen:4,flags:"BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE",parser:"parse_cmd_common"},{name:"mkvimrc",minlen:3,flags:"BANG|FILE1|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"mkview",minlen:5,flags:"BANG|FILE1|TRLBAR",parser:"parse_cmd_common"},{name:"mode",minlen:3,flags:"WORD1|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"mzscheme",minlen:2,flags:"RANGE|EXTRA|DFLALL|NEEDARG|CMDWIN|SBOXOK",parser:"parse_cmd_mzscheme"},{name:"mzfile",minlen:3,flags:"RANGE|FILE1|NEEDARG|CMDWIN",parser:"parse_cmd_common"},{name:"nbclose",minlen:3,flags:"TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"nbkey",minlen:2,flags:"EXTRA|NOTADR|NEEDARG",parser:"parse_cmd_common"},{name:"nbstart",minlen:3,flags:"WORD1|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"next",minlen:1,flags:"RANGE|NOTADR|BANG|FILES|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"new",minlen:3,flags:"BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"nmap",minlen:2,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"nmapclear",minlen:5,flags:"EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"nmenu",minlen:3,flags:"RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"nnoremap",minlen:2,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"nnoremenu",minlen:7,flags:"RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"noautocmd",minlen:3,flags:"NEEDARG|EXTRA|NOTRLCOM",parser:"parse_cmd_common"},{name:"noremap",minlen:2,flags:"BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"nohlsearch",minlen:3,flags:"TRLBAR|SBOXOK|CMDWIN",parser:"parse_cmd_common"},{name:"noreabbrev",minlen:5,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"noremenu",minlen:6,flags:"RANGE|NOTADR|ZEROR|BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"normal",minlen:4,flags:"RANGE|BANG|EXTRA|NEEDARG|NOTRLCOM|USECTRLV|SBOXOK|CMDWIN",parser:"parse_cmd_common"},{name:"number",minlen:2,flags:"RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"nunmap",minlen:3,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"nunmenu",minlen:5,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"oldfiles",minlen:2,flags:"BANG|TRLBAR|SBOXOK|CMDWIN",parser:"parse_cmd_common"},{name:"open",minlen:1,flags:"RANGE|BANG|EXTRA",parser:"parse_cmd_common"},{name:"omap",minlen:2,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"omapclear",minlen:5,flags:"EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"omenu",minlen:3,flags:"RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"only",minlen:2,flags:"BANG|TRLBAR",parser:"parse_cmd_common"},{name:"onoremap",minlen:3,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"onoremenu",minlen:7,flags:"RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"options",minlen:3,flags:"TRLBAR",parser:"parse_cmd_common"},{name:"ounmap",minlen:2,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"ounmenu",minlen:5,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"ownsyntax",minlen:2,flags:"EXTRA|NOTRLCOM|SBOXOK|CMDWIN",parser:"parse_cmd_common"},{name:"pclose",minlen:2,flags:"BANG|TRLBAR",parser:"parse_cmd_common"},{name:"pedit",minlen:3,flags:"BANG|FILE1|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"perl",minlen:2,flags:"RANGE|EXTRA|DFLALL|NEEDARG|SBOXOK|CMDWIN",parser:"parse_cmd_perl"},{name:"print",minlen:1,flags:"RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|SBOXOK",parser:"parse_cmd_common"},{name:"profdel",minlen:5,flags:"EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"profile",minlen:4,flags:"BANG|EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"promptfind",minlen:3,flags:"EXTRA|NOTRLCOM|CMDWIN",parser:"parse_cmd_common"},{name:"promptrepl",minlen:7,flags:"EXTRA|NOTRLCOM|CMDWIN",parser:"parse_cmd_common"},{name:"perldo",minlen:5,flags:"RANGE|EXTRA|DFLALL|NEEDARG|CMDWIN",parser:"parse_cmd_common"},{name:"pop",minlen:2,flags:"RANGE|NOTADR|BANG|COUNT|TRLBAR|ZEROR",parser:"parse_cmd_common"},{name:"popup",minlen:4,flags:"NEEDARG|EXTRA|BANG|TRLBAR|NOTRLCOM|CMDWIN",parser:"parse_cmd_common"},{name:"ppop",minlen:2,flags:"RANGE|NOTADR|BANG|COUNT|TRLBAR|ZEROR",parser:"parse_cmd_common"},{name:"preserve",minlen:3,flags:"TRLBAR",parser:"parse_cmd_common"},{name:"previous",minlen:4,flags:"EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"psearch",minlen:2,flags:"BANG|RANGE|WHOLEFOLD|DFLALL|EXTRA",parser:"parse_cmd_common"},{name:"ptag",minlen:2,flags:"RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR",parser:"parse_cmd_common"},{name:"ptNext",minlen:3,flags:"RANGE|NOTADR|BANG|TRLBAR|ZEROR",parser:"parse_cmd_common"},{name:"ptfirst",minlen:3,flags:"RANGE|NOTADR|BANG|TRLBAR|ZEROR",parser:"parse_cmd_common"},{name:"ptjump",minlen:3,flags:"BANG|TRLBAR|WORD1",parser:"parse_cmd_common"},{name:"ptlast",minlen:3,flags:"BANG|TRLBAR",parser:"parse_cmd_common"},{name:"ptnext",minlen:3,flags:"RANGE|NOTADR|BANG|TRLBAR|ZEROR",parser:"parse_cmd_common"},{name:"ptprevious",minlen:3,flags:"RANGE|NOTADR|BANG|TRLBAR|ZEROR",parser:"parse_cmd_common"},{name:"ptrewind",minlen:3,flags:"RANGE|NOTADR|BANG|TRLBAR|ZEROR",parser:"parse_cmd_common"},{name:"ptselect",minlen:3,flags:"BANG|TRLBAR|WORD1",parser:"parse_cmd_common"},{name:"put",minlen:2,flags:"RANGE|WHOLEFOLD|BANG|REGSTR|TRLBAR|ZEROR|CMDWIN|MODIFY",parser:"parse_cmd_common"},{name:"pwd",minlen:2,flags:"TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"py3",minlen:3,flags:"RANGE|EXTRA|NEEDARG|CMDWIN",parser:"parse_cmd_python3"},{name:"python3",minlen:7,flags:"RANGE|EXTRA|NEEDARG|CMDWIN",parser:"parse_cmd_python3"},{name:"py3file",minlen:4,flags:"RANGE|FILE1|NEEDARG|CMDWIN",parser:"parse_cmd_common"},{name:"python",minlen:2,flags:"RANGE|EXTRA|NEEDARG|CMDWIN",parser:"parse_cmd_python"},{name:"pyfile",minlen:3,flags:"RANGE|FILE1|NEEDARG|CMDWIN",parser:"parse_cmd_common"},{name:"pydo",minlen:3,flags:"RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN",parser:"parse_cmd_common"},{name:"py3do",minlen:4,flags:"RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN",parser:"parse_cmd_common"},{name:"quit",minlen:1,flags:"BANG|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"quitall",minlen:5,flags:"BANG|TRLBAR",parser:"parse_cmd_common"},{name:"qall",minlen:2,flags:"BANG|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"read",minlen:1,flags:"BANG|RANGE|WHOLEFOLD|FILE1|ARGOPT|TRLBAR|ZEROR|CMDWIN|MODIFY",parser:"parse_cmd_common"},{name:"recover",minlen:3,flags:"BANG|FILE1|TRLBAR",parser:"parse_cmd_common"},{name:"redo",minlen:3,flags:"TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"redir",minlen:4,flags:"BANG|FILES|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"redraw",minlen:4,flags:"BANG|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"redrawstatus",minlen:7,flags:"BANG|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"registers",minlen:3,flags:"EXTRA|NOTRLCOM|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"resize",minlen:3,flags:"RANGE|NOTADR|TRLBAR|WORD1",parser:"parse_cmd_common"},{name:"retab",minlen:3,flags:"TRLBAR|RANGE|WHOLEFOLD|DFLALL|BANG|WORD1|CMDWIN|MODIFY",parser:"parse_cmd_common"},{name:"return",minlen:4,flags:"EXTRA|NOTRLCOM|SBOXOK|CMDWIN",parser:"parse_cmd_return"},{name:"rewind",minlen:3,flags:"EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"right",minlen:2,flags:"TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY",parser:"parse_cmd_common"},{name:"rightbelow",minlen:6,flags:"NEEDARG|EXTRA|NOTRLCOM",parser:"parse_cmd_common"},{name:"ruby",minlen:3,flags:"RANGE|EXTRA|NEEDARG|CMDWIN",parser:"parse_cmd_ruby"},{name:"rubydo",minlen:5,flags:"RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN",parser:"parse_cmd_common"},{name:"rubyfile",minlen:5,flags:"RANGE|FILE1|NEEDARG|CMDWIN",parser:"parse_cmd_common"},{name:"rundo",minlen:4,flags:"NEEDARG|FILE1",parser:"parse_cmd_common"},{name:"runtime",minlen:2,flags:"BANG|NEEDARG|FILES|TRLBAR|SBOXOK|CMDWIN",parser:"parse_cmd_common"},{name:"rviminfo",minlen:2,flags:"BANG|FILE1|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"substitute",minlen:1,flags:"RANGE|WHOLEFOLD|EXTRA|CMDWIN",parser:"parse_cmd_common"},{name:"sNext",minlen:2,flags:"EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"sandbox",minlen:3,flags:"NEEDARG|EXTRA|NOTRLCOM",parser:"parse_cmd_common"},{name:"sargument",minlen:2,flags:"BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"sall",minlen:3,flags:"BANG|RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"saveas",minlen:3,flags:"BANG|DFLALL|FILE1|ARGOPT|CMDWIN|TRLBAR",parser:"parse_cmd_common"},{name:"sbuffer",minlen:2,flags:"BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|TRLBAR",parser:"parse_cmd_common"},{name:"sbNext",minlen:3,flags:"RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"sball",minlen:3,flags:"RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"sbfirst",minlen:3,flags:"TRLBAR",parser:"parse_cmd_common"},{name:"sblast",minlen:3,flags:"TRLBAR",parser:"parse_cmd_common"},{name:"sbmodified",minlen:3,flags:"RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"sbnext",minlen:3,flags:"RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"sbprevious",minlen:3,flags:"RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"sbrewind",minlen:3,flags:"TRLBAR",parser:"parse_cmd_common"},{name:"scriptnames",minlen:3,flags:"TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"scriptencoding",minlen:7,flags:"WORD1|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"scscope",minlen:3,flags:"EXTRA|NOTRLCOM",parser:"parse_cmd_common"},{name:"set",minlen:2,flags:"TRLBAR|EXTRA|CMDWIN|SBOXOK",parser:"parse_cmd_common"},{name:"setfiletype",minlen:4,flags:"TRLBAR|EXTRA|NEEDARG|CMDWIN",parser:"parse_cmd_common"},{name:"setglobal",minlen:4,flags:"TRLBAR|EXTRA|CMDWIN|SBOXOK",parser:"parse_cmd_common"},{name:"setlocal",minlen:4,flags:"TRLBAR|EXTRA|CMDWIN|SBOXOK",parser:"parse_cmd_common"},{name:"sfind",minlen:2,flags:"BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"sfirst",minlen:4,flags:"EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"shell",minlen:2,flags:"TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"simalt",minlen:3,flags:"NEEDARG|WORD1|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"sign",minlen:3,flags:"NEEDARG|RANGE|NOTADR|EXTRA|CMDWIN",parser:"parse_cmd_common"},{name:"silent",minlen:3,flags:"NEEDARG|EXTRA|BANG|NOTRLCOM|SBOXOK|CMDWIN",parser:"parse_cmd_common"},{name:"sleep",minlen:2,flags:"RANGE|NOTADR|COUNT|EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"slast",minlen:3,flags:"EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"smagic",minlen:2,flags:"RANGE|WHOLEFOLD|EXTRA|CMDWIN",parser:"parse_cmd_common"},{name:"smap",minlen:4,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"smapclear",minlen:5,flags:"EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"smenu",minlen:3,flags:"RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"snext",minlen:2,flags:"RANGE|NOTADR|BANG|FILES|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"sniff",minlen:3,flags:"EXTRA|TRLBAR",parser:"parse_cmd_common"},{name:"snomagic",minlen:3,flags:"RANGE|WHOLEFOLD|EXTRA|CMDWIN",parser:"parse_cmd_common"},{name:"snoremap",minlen:4,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"snoremenu",minlen:7,flags:"RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"sort",minlen:3,flags:"RANGE|DFLALL|WHOLEFOLD|BANG|EXTRA|NOTRLCOM|MODIFY",parser:"parse_cmd_common"},{name:"source",minlen:2,flags:"BANG|FILE1|TRLBAR|SBOXOK|CMDWIN",parser:"parse_cmd_common"},{name:"spelldump",minlen:6,flags:"BANG|TRLBAR",parser:"parse_cmd_common"},{name:"spellgood",minlen:3,flags:"BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR",parser:"parse_cmd_common"},{name:"spellinfo",minlen:6,flags:"TRLBAR",parser:"parse_cmd_common"},{name:"spellrepall",minlen:6,flags:"TRLBAR",parser:"parse_cmd_common"},{name:"spellundo",minlen:6,flags:"BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR",parser:"parse_cmd_common"},{name:"spellwrong",minlen:6,flags:"BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR",parser:"parse_cmd_common"},{name:"split",minlen:2,flags:"BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"sprevious",minlen:3,flags:"EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"srewind",minlen:3,flags:"EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"stop",minlen:2,flags:"TRLBAR|BANG|CMDWIN",parser:"parse_cmd_common"},{name:"stag",minlen:3,flags:"RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR",parser:"parse_cmd_common"},{name:"startinsert",minlen:4,flags:"BANG|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"startgreplace",minlen:6,flags:"BANG|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"startreplace",minlen:6,flags:"BANG|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"stopinsert",minlen:5,flags:"BANG|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"stjump",minlen:3,flags:"BANG|TRLBAR|WORD1",parser:"parse_cmd_common"},{name:"stselect",minlen:3,flags:"BANG|TRLBAR|WORD1",parser:"parse_cmd_common"},{name:"sunhide",minlen:3,flags:"RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"sunmap",minlen:4,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"sunmenu",minlen:5,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"suspend",minlen:3,flags:"TRLBAR|BANG|CMDWIN",parser:"parse_cmd_common"},{name:"sview",minlen:2,flags:"BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"swapname",minlen:2,flags:"TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"syntax",minlen:2,flags:"EXTRA|NOTRLCOM|CMDWIN",parser:"parse_cmd_syntax"},{name:"syntime",minlen:5,flags:"NEEDARG|WORD1|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"syncbind",minlen:4,flags:"TRLBAR",parser:"parse_cmd_common"},{name:"t",minlen:1,flags:"RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY",parser:"parse_cmd_common"},{name:"tNext",minlen:2,flags:"RANGE|NOTADR|BANG|TRLBAR|ZEROR",parser:"parse_cmd_common"},{name:"tabNext",minlen:4,flags:"RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"tabclose",minlen:4,flags:"RANGE|NOTADR|COUNT|BANG|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"tabdo",minlen:4,flags:"NEEDARG|EXTRA|NOTRLCOM",parser:"parse_cmd_common"},{name:"tabedit",minlen:4,flags:"BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"tabfind",minlen:4,flags:"BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|NEEDARG|TRLBAR",parser:"parse_cmd_common"},{name:"tabfirst",minlen:6,flags:"TRLBAR",parser:"parse_cmd_common"},{name:"tablast",minlen:4,flags:"TRLBAR",parser:"parse_cmd_common"},{name:"tabmove",minlen:4,flags:"RANGE|NOTADR|ZEROR|EXTRA|NOSPC|TRLBAR",parser:"parse_cmd_common"},{name:"tabnew",minlen:6,flags:"BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"tabnext",minlen:4,flags:"RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"tabonly",minlen:4,flags:"BANG|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"tabprevious",minlen:4,flags:"RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"tabrewind",minlen:4,flags:"TRLBAR",parser:"parse_cmd_common"},{name:"tabs",minlen:4,flags:"TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"tab",minlen:3,flags:"NEEDARG|EXTRA|NOTRLCOM",parser:"parse_cmd_common"},{name:"tag",minlen:2,flags:"RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR",parser:"parse_cmd_common"},{name:"tags",minlen:4,flags:"TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"tcl",minlen:2,flags:"RANGE|EXTRA|NEEDARG|CMDWIN",parser:"parse_cmd_tcl"},{name:"tcldo",minlen:4,flags:"RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN",parser:"parse_cmd_common"},{name:"tclfile",minlen:4,flags:"RANGE|FILE1|NEEDARG|CMDWIN",parser:"parse_cmd_common"},{name:"tearoff",minlen:2,flags:"NEEDARG|EXTRA|TRLBAR|NOTRLCOM|CMDWIN",parser:"parse_cmd_common"},{name:"tfirst",minlen:2,flags:"RANGE|NOTADR|BANG|TRLBAR|ZEROR",parser:"parse_cmd_common"},{name:"throw",minlen:2,flags:"EXTRA|NEEDARG|SBOXOK|CMDWIN",parser:"parse_cmd_throw"},{name:"tjump",minlen:2,flags:"BANG|TRLBAR|WORD1",parser:"parse_cmd_common"},{name:"tlast",minlen:2,flags:"BANG|TRLBAR",parser:"parse_cmd_common"},{name:"tmenu",minlen:2,flags:"RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"tnext",minlen:2,flags:"RANGE|NOTADR|BANG|TRLBAR|ZEROR",parser:"parse_cmd_common"},{name:"topleft",minlen:2,flags:"NEEDARG|EXTRA|NOTRLCOM",parser:"parse_cmd_common"},{name:"tprevious",minlen:2,flags:"RANGE|NOTADR|BANG|TRLBAR|ZEROR",parser:"parse_cmd_common"},{name:"trewind",minlen:2,flags:"RANGE|NOTADR|BANG|TRLBAR|ZEROR",parser:"parse_cmd_common"},{name:"try",minlen:3,flags:"TRLBAR|SBOXOK|CMDWIN",parser:"parse_cmd_try"},{name:"tselect",minlen:2,flags:"BANG|TRLBAR|WORD1",parser:"parse_cmd_common"},{name:"tunmenu",minlen:2,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"undo",minlen:1,flags:"RANGE|NOTADR|COUNT|ZEROR|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"undojoin",minlen:5,flags:"TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"undolist",minlen:5,flags:"TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"unabbreviate",minlen:3,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"unhide",minlen:3,flags:"RANGE|NOTADR|COUNT|TRLBAR",parser:"parse_cmd_common"},{name:"unlet",minlen:3,flags:"BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN",parser:"parse_cmd_unlet"},{name:"unlockvar",minlen:4,flags:"BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN",parser:"parse_cmd_unlockvar"},{name:"unmap",minlen:3,flags:"BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"unmenu",minlen:4,flags:"BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"unsilent",minlen:3,flags:"NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN",parser:"parse_cmd_common"},{name:"update",minlen:2,flags:"RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR",parser:"parse_cmd_common"},{name:"vglobal",minlen:1,flags:"RANGE|WHOLEFOLD|EXTRA|DFLALL|CMDWIN",parser:"parse_cmd_common"},{name:"version",minlen:2,flags:"EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"verbose",minlen:4,flags:"NEEDARG|RANGE|NOTADR|EXTRA|NOTRLCOM|SBOXOK|CMDWIN",parser:"parse_cmd_common"},{name:"vertical",minlen:4,flags:"NEEDARG|EXTRA|NOTRLCOM",parser:"parse_cmd_common"},{name:"vimgrep",minlen:3,flags:"RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE",parser:"parse_cmd_common"},{name:"vimgrepadd",minlen:8,flags:"RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE",parser:"parse_cmd_common"},{name:"visual",minlen:2,flags:"BANG|FILE1|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"viusage",minlen:3,flags:"TRLBAR",parser:"parse_cmd_common"},{name:"view",minlen:3,flags:"BANG|FILE1|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"vmap",minlen:2,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"vmapclear",minlen:5,flags:"EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"vmenu",minlen:3,flags:"RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"vnew",minlen:3,flags:"BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"vnoremap",minlen:2,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"vnoremenu",minlen:7,flags:"RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"vsplit",minlen:2,flags:"BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"vunmap",minlen:2,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"vunmenu",minlen:5,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"windo",minlen:5,flags:"BANG|NEEDARG|EXTRA|NOTRLCOM",parser:"parse_cmd_common"},{name:"write",minlen:1,flags:"RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"wNext",minlen:2,flags:"RANGE|WHOLEFOLD|NOTADR|BANG|FILE1|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"wall",minlen:2,flags:"BANG|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"while",minlen:2,flags:"EXTRA|NOTRLCOM|SBOXOK|CMDWIN",parser:"parse_cmd_while"},{name:"winsize",minlen:2,flags:"EXTRA|NEEDARG|TRLBAR",parser:"parse_cmd_common"},{name:"wincmd",minlen:4,flags:"NEEDARG|WORD1|RANGE|NOTADR",parser:"parse_wincmd"},{name:"winpos",minlen:4,flags:"EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"wnext",minlen:2,flags:"RANGE|NOTADR|BANG|FILE1|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"wprevious",minlen:2,flags:"RANGE|NOTADR|BANG|FILE1|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"wq",minlen:2,flags:"RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR",parser:"parse_cmd_common"},{name:"wqall",minlen:3,flags:"BANG|FILE1|ARGOPT|DFLALL|TRLBAR",parser:"parse_cmd_common"},{name:"wsverb",minlen:2,flags:"EXTRA|NOTADR|NEEDARG",parser:"parse_cmd_common"},{name:"wundo",minlen:2,flags:"BANG|NEEDARG|FILE1",parser:"parse_cmd_common"},{name:"wviminfo",minlen:2,flags:"BANG|FILE1|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"xit",minlen:1,flags:"RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"xall",minlen:2,flags:"BANG|TRLBAR",parser:"parse_cmd_common"},{name:"xmapclear",minlen:5,flags:"EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"xmap",minlen:2,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"xmenu",minlen:3,flags:"RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"xnoremap",minlen:2,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"xnoremenu",minlen:7,flags:"RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"xunmap",minlen:2,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"xunmenu",minlen:5,flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",parser:"parse_cmd_common"},{name:"yank",minlen:1,flags:"RANGE|WHOLEFOLD|REGSTR|COUNT|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"z",minlen:1,flags:"RANGE|WHOLEFOLD|EXTRA|EXFLAGS|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"!",minlen:1,flags:"RANGE|WHOLEFOLD|BANG|FILES|CMDWIN",parser:"parse_cmd_common"},{name:"#",minlen:1,flags:"RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"&",minlen:1,flags:"RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY",parser:"parse_cmd_common"},{name:"*",minlen:1,flags:"RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"<",minlen:1,flags:"RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY",parser:"parse_cmd_common"},{name:"=",minlen:1,flags:"RANGE|TRLBAR|DFLALL|EXFLAGS|CMDWIN",parser:"parse_cmd_common"},{name:">",minlen:1,flags:"RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY",parser:"parse_cmd_common"},{name:"@",minlen:1,flags:"RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"Next",minlen:1,flags:"EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR",parser:"parse_cmd_common"},{name:"Print",minlen:1,flags:"RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN",parser:"parse_cmd_common"},{name:"X",minlen:1,flags:"TRLBAR",parser:"parse_cmd_common"},{name:"~",minlen:1,flags:"RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY",parser:"parse_cmd_common"},{flags:"TRLBAR",minlen:3,name:"cbottom",parser:"parse_cmd_common"},{flags:"BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL",minlen:3,name:"cdo",parser:"parse_cmd_common"},{flags:"BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL",minlen:3,name:"cfdo",parser:"parse_cmd_common"},{flags:"TRLBAR",minlen:3,name:"chistory",parser:"parse_cmd_common"},{flags:"TRLBAR|CMDWIN",minlen:3,name:"clearjumps",parser:"parse_cmd_common"},{flags:"BANG|NEEDARG|EXTRA|NOTRLCOM",minlen:4,name:"filter",parser:"parse_cmd_common"},{flags:"RANGE|NOTADR|COUNT|TRLBAR",minlen:5,name:"helpclose",parser:"parse_cmd_common"},{flags:"TRLBAR",minlen:3,name:"lbottom",parser:"parse_cmd_common"},{flags:"BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL",minlen:2,name:"ldo",parser:"parse_cmd_common"},{flags:"BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL",minlen:3,name:"lfdo",parser:"parse_cmd_common"},{flags:"TRLBAR",minlen:3,name:"lhistory",parser:"parse_cmd_common"},{flags:"BANG|EXTRA|TRLBAR|CMDWIN",minlen:3,name:"llist",parser:"parse_cmd_common"},{flags:"NEEDARG|EXTRA|NOTRLCOM",minlen:3,name:"noswapfile",parser:"parse_cmd_common"},{flags:"BANG|FILE1|NEEDARG|TRLBAR|SBOXOK|CMDWIN",minlen:2,name:"packadd",parser:"parse_cmd_common"},{flags:"BANG|TRLBAR|SBOXOK|CMDWIN",minlen:5,name:"packloadall",parser:"parse_cmd_common"},{flags:"TRLBAR|CMDWIN|SBOXOK",minlen:3,name:"smile",parser:"parse_cmd_common"},{flags:"RANGE|EXTRA|NEEDARG|CMDWIN",minlen:3,name:"pyx",parser:"parse_cmd_common"},{flags:"RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN",minlen:4,name:"pyxdo",parser:"parse_cmd_common"},{flags:"RANGE|EXTRA|NEEDARG|CMDWIN",minlen:7,name:"pythonx",parser:"parse_cmd_common"},{flags:"RANGE|FILE1|NEEDARG|CMDWIN",minlen:4,name:"pyxfile",parser:"parse_cmd_common"},{flags:"RANGE|BANG|FILES|CMDWIN",minlen:3,name:"terminal",parser:"parse_cmd_common"},{flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",minlen:3,name:"tmap",parser:"parse_cmd_common"},{flags:"EXTRA|TRLBAR|CMDWIN",minlen:5,name:"tmapclear",parser:"parse_cmd_common"},{flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",minlen:3,name:"tnoremap",parser:"parse_cmd_common"},{flags:"EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN",minlen:5,name:"tunmap",parser:"parse_cmd_common"},{flags:"RANGE|COUNT|TRLBAR",minlen:4,name:"cabove",parser:"parse_cmd_common"},{flags:"RANGE|COUNT|TRLBAR",minlen:3,name:"cafter",parser:"parse_cmd_common"},{flags:"RANGE|COUNT|TRLBAR",minlen:3,name:"cbefore",parser:"parse_cmd_common"},{flags:"RANGE|COUNT|TRLBAR",minlen:4,name:"cbelow",parser:"parse_cmd_common"},{flags:"EXTRA|NOTRLCOM|SBOXOK|CMDWIN",minlen:4,name:"const",parser:"parse_cmd_common"},{flags:"RANGE|COUNT|TRLBAR",minlen:3,name:"labove",parser:"parse_cmd_common"},{flags:"RANGE|COUNT|TRLBAR",minlen:3,name:"lafter",parser:"parse_cmd_common"},{flags:"RANGE|COUNT|TRLBAR",minlen:3,name:"lbefore",parser:"parse_cmd_common"},{flags:"RANGE|COUNT|TRLBAR",minlen:4,name:"lbelow",parser:"parse_cmd_common"},{flags:"TRLBAR|CMDWIN",minlen:7,name:"redrawtabline",parser:"parse_cmd_common"},{flags:"WORD1|TRLBAR|CMDWIN",minlen:7,name:"scriptversion",parser:"parse_cmd_common"},{flags:"BANG|FILE1|TRLBAR|CMDWIN",minlen:2,name:"tcd",parser:"parse_cmd_common"},{flags:"BANG|FILE1|TRLBAR|CMDWIN",minlen:3,name:"tchdir",parser:"parse_cmd_common"},{flags:"RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|CTRLV|CMDWIN",minlen:3,name:"tlmenu",parser:"parse_cmd_common"},{flags:"RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|CTRLV|CMDWIN",minlen:3,name:"tlnoremenu",parser:"parse_cmd_common"},{flags:"RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|CTRLV|CMDWIN",minlen:3,name:"tlunmenu",parser:"parse_cmd_common"},{flags:"EXTRA|TRLBAR|CMDWIN",minlen:2,name:"xrestore",parser:"parse_cmd_common"},{flags:"EXTRA|BANG|SBOXOK|CMDWIN",minlen:3,name:"def",parser:"parse_cmd_common"},{flags:"EXTRA|NEEDARG|TRLBAR|CMDWIN",minlen:4,name:"disassemble",parser:"parse_cmd_common"},{flags:"TRLBAR|CMDWIN",minlen:4,name:"enddef",parser:"parse_cmd_common"},{flags:"EXTRA|NOTRLCOM",minlen:3,name:"export",parser:"parse_cmd_common"},{flags:"EXTRA|NOTRLCOM",minlen:3,name:"import",parser:"parse_cmd_common"},{flags:"BANG|RANGE|NEEDARG|EXTRA|TRLBAR",minlen:7,name:"spellrare",parser:"parse_cmd_common"},{flags:"",minlen:4,name:"vim9script",parser:"parse_cmd_common"}],$.prototype.builtin_functions=[{name:"abs",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"acos",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"add",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"and",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"append",min_argc:2,max_argc:2,argtype:"FEARG_LAST"},{name:"appendbufline",min_argc:3,max_argc:3,argtype:"FEARG_LAST"},{name:"argc",min_argc:0,max_argc:1,argtype:"0"},{name:"argidx",min_argc:0,max_argc:0,argtype:"0"},{name:"arglistid",min_argc:0,max_argc:2,argtype:"0"},{name:"argv",min_argc:0,max_argc:2,argtype:"0"},{name:"asin",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"assert_beeps",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"assert_equal",min_argc:2,max_argc:3,argtype:"FEARG_2"},{name:"assert_equalfile",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"assert_exception",min_argc:1,max_argc:2,argtype:"0"},{name:"assert_fails",min_argc:1,max_argc:3,argtype:"FEARG_1"},{name:"assert_false",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"assert_inrange",min_argc:3,max_argc:4,argtype:"FEARG_3"},{name:"assert_match",min_argc:2,max_argc:3,argtype:"FEARG_2"},{name:"assert_notequal",min_argc:2,max_argc:3,argtype:"FEARG_2"},{name:"assert_notmatch",min_argc:2,max_argc:3,argtype:"FEARG_2"},{name:"assert_report",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"assert_true",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"atan",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"atan2",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"balloon_gettext",min_argc:0,max_argc:0,argtype:"0"},{name:"balloon_show",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"balloon_split",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"browse",min_argc:4,max_argc:4,argtype:"0"},{name:"browsedir",min_argc:2,max_argc:2,argtype:"0"},{name:"bufadd",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"bufexists",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"buffer_exists",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"buffer_name",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"buffer_number",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"buflisted",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"bufload",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"bufloaded",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"bufname",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"bufnr",min_argc:0,max_argc:2,argtype:"FEARG_1"},{name:"bufwinid",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"bufwinnr",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"byte2line",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"byteidx",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"byteidxcomp",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"call",min_argc:2,max_argc:3,argtype:"FEARG_1"},{name:"ceil",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"ch_canread",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"ch_close",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"ch_close_in",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"ch_evalexpr",min_argc:2,max_argc:3,argtype:"FEARG_1"},{name:"ch_evalraw",min_argc:2,max_argc:3,argtype:"FEARG_1"},{name:"ch_getbufnr",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"ch_getjob",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"ch_info",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"ch_log",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"ch_logfile",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"ch_open",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"ch_read",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"ch_readblob",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"ch_readraw",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"ch_sendexpr",min_argc:2,max_argc:3,argtype:"FEARG_1"},{name:"ch_sendraw",min_argc:2,max_argc:3,argtype:"FEARG_1"},{name:"ch_setoptions",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"ch_status",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"changenr",min_argc:0,max_argc:0,argtype:"0"},{name:"char2nr",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"chdir",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"cindent",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"clearmatches",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"col",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"complete",min_argc:2,max_argc:2,argtype:"FEARG_2"},{name:"complete_add",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"complete_check",min_argc:0,max_argc:0,argtype:"0"},{name:"complete_info",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"confirm",min_argc:1,max_argc:4,argtype:"FEARG_1"},{name:"copy",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"cos",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"cosh",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"count",min_argc:2,max_argc:4,argtype:"FEARG_1"},{name:"cscope_connection",min_argc:0,max_argc:3,argtype:"0"},{name:"cursor",min_argc:1,max_argc:3,argtype:"FEARG_1"},{name:"debugbreak",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"deepcopy",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"delete",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"deletebufline",min_argc:2,max_argc:3,argtype:"FEARG_1"},{name:"did_filetype",min_argc:0,max_argc:0,argtype:"0"},{name:"diff_filler",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"diff_hlID",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"echoraw",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"empty",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"environ",min_argc:0,max_argc:0,argtype:"0"},{name:"escape",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"eval",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"eventhandler",min_argc:0,max_argc:0,argtype:"0"},{name:"executable",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"execute",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"exepath",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"exists",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"exp",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"expand",min_argc:1,max_argc:3,argtype:"FEARG_1"},{name:"expandcmd",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"extend",min_argc:2,max_argc:3,argtype:"FEARG_1"},{name:"feedkeys",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"file_readable",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"filereadable",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"filewritable",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"filter",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"finddir",min_argc:1,max_argc:3,argtype:"FEARG_1"},{name:"findfile",min_argc:1,max_argc:3,argtype:"FEARG_1"},{name:"float2nr",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"floor",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"fmod",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"fnameescape",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"fnamemodify",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"foldclosed",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"foldclosedend",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"foldlevel",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"foldtext",min_argc:0,max_argc:0,argtype:"0"},{name:"foldtextresult",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"foreground",min_argc:0,max_argc:0,argtype:"0"},{name:"funcref",min_argc:1,max_argc:3,argtype:"FEARG_1"},{name:"function",min_argc:1,max_argc:3,argtype:"FEARG_1"},{name:"garbagecollect",min_argc:0,max_argc:1,argtype:"0"},{name:"get",min_argc:2,max_argc:3,argtype:"FEARG_1"},{name:"getbufinfo",min_argc:0,max_argc:1,argtype:"0"},{name:"getbufline",min_argc:2,max_argc:3,argtype:"FEARG_1"},{name:"getbufvar",min_argc:2,max_argc:3,argtype:"FEARG_1"},{name:"getchangelist",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"getchar",min_argc:0,max_argc:1,argtype:"0"},{name:"getcharmod",min_argc:0,max_argc:0,argtype:"0"},{name:"getcharsearch",min_argc:0,max_argc:0,argtype:"0"},{name:"getcmdline",min_argc:0,max_argc:0,argtype:"0"},{name:"getcmdpos",min_argc:0,max_argc:0,argtype:"0"},{name:"getcmdtype",min_argc:0,max_argc:0,argtype:"0"},{name:"getcmdwintype",min_argc:0,max_argc:0,argtype:"0"},{name:"getcompletion",min_argc:2,max_argc:3,argtype:"FEARG_1"},{name:"getcurpos",min_argc:0,max_argc:0,argtype:"0"},{name:"getcwd",min_argc:0,max_argc:2,argtype:"FEARG_1"},{name:"getenv",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"getfontname",min_argc:0,max_argc:1,argtype:"0"},{name:"getfperm",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"getfsize",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"getftime",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"getftype",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"getimstatus",min_argc:0,max_argc:0,argtype:"0"},{name:"getjumplist",min_argc:0,max_argc:2,argtype:"FEARG_1"},{name:"getline",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"getloclist",min_argc:1,max_argc:2,argtype:"0"},{name:"getmatches",min_argc:0,max_argc:1,argtype:"0"},{name:"getmousepos",min_argc:0,max_argc:0,argtype:"0"},{name:"getpid",min_argc:0,max_argc:0,argtype:"0"},{name:"getpos",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"getqflist",min_argc:0,max_argc:1,argtype:"0"},{name:"getreg",min_argc:0,max_argc:3,argtype:"FEARG_1"},{name:"getregtype",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"gettabinfo",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"gettabvar",min_argc:2,max_argc:3,argtype:"FEARG_1"},{name:"gettabwinvar",min_argc:3,max_argc:4,argtype:"FEARG_1"},{name:"gettagstack",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"getwininfo",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"getwinpos",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"getwinposx",min_argc:0,max_argc:0,argtype:"0"},{name:"getwinposy",min_argc:0,max_argc:0,argtype:"0"},{name:"getwinvar",min_argc:2,max_argc:3,argtype:"FEARG_1"},{name:"glob",min_argc:1,max_argc:4,argtype:"FEARG_1"},{name:"glob2regpat",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"globpath",min_argc:2,max_argc:5,argtype:"FEARG_2"},{name:"has",min_argc:1,max_argc:1,argtype:"0"},{name:"has_key",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"haslocaldir",min_argc:0,max_argc:2,argtype:"FEARG_1"},{name:"hasmapto",min_argc:1,max_argc:3,argtype:"FEARG_1"},{name:"highlightID",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"highlight_exists",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"histadd",min_argc:2,max_argc:2,argtype:"FEARG_2"},{name:"histdel",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"histget",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"histnr",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"hlID",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"hlexists",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"hostname",min_argc:0,max_argc:0,argtype:"0"},{name:"iconv",min_argc:3,max_argc:3,argtype:"FEARG_1"},{name:"indent",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"index",min_argc:2,max_argc:4,argtype:"FEARG_1"},{name:"input",min_argc:1,max_argc:3,argtype:"FEARG_1"},{name:"inputdialog",min_argc:1,max_argc:3,argtype:"FEARG_1"},{name:"inputlist",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"inputrestore",min_argc:0,max_argc:0,argtype:"0"},{name:"inputsave",min_argc:0,max_argc:0,argtype:"0"},{name:"inputsecret",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"insert",min_argc:2,max_argc:3,argtype:"FEARG_1"},{name:"interrupt",min_argc:0,max_argc:0,argtype:"0"},{name:"invert",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"isdirectory",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"isinf",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"islocked",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"isnan",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"items",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"job_getchannel",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"job_info",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"job_setoptions",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"job_start",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"job_status",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"job_stop",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"join",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"js_decode",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"js_encode",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"json_decode",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"json_encode",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"keys",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"last_buffer_nr",min_argc:0,max_argc:0,argtype:"0"},{name:"len",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"libcall",min_argc:3,max_argc:3,argtype:"FEARG_3"},{name:"libcallnr",min_argc:3,max_argc:3,argtype:"FEARG_3"},{name:"line",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"line2byte",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"lispindent",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"list2str",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"listener_add",min_argc:1,max_argc:2,argtype:"FEARG_2"},{name:"listener_flush",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"listener_remove",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"localtime",min_argc:0,max_argc:0,argtype:"0"},{name:"log",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"log10",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"luaeval",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"map",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"maparg",min_argc:1,max_argc:4,argtype:"FEARG_1"},{name:"mapcheck",min_argc:1,max_argc:3,argtype:"FEARG_1"},{name:"match",min_argc:2,max_argc:4,argtype:"FEARG_1"},{name:"matchadd",min_argc:2,max_argc:5,argtype:"FEARG_1"},{name:"matchaddpos",min_argc:2,max_argc:5,argtype:"FEARG_1"},{name:"matcharg",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"matchdelete",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"matchend",min_argc:2,max_argc:4,argtype:"FEARG_1"},{name:"matchlist",min_argc:2,max_argc:4,argtype:"FEARG_1"},{name:"matchstr",min_argc:2,max_argc:4,argtype:"FEARG_1"},{name:"matchstrpos",min_argc:2,max_argc:4,argtype:"FEARG_1"},{name:"max",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"min",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"mkdir",min_argc:1,max_argc:3,argtype:"FEARG_1"},{name:"mode",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"mzeval",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"nextnonblank",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"nr2char",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"or",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"pathshorten",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"perleval",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"popup_atcursor",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"popup_beval",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"popup_clear",min_argc:0,max_argc:0,argtype:"0"},{name:"popup_close",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"popup_create",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"popup_dialog",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"popup_filter_menu",min_argc:2,max_argc:2,argtype:"0"},{name:"popup_filter_yesno",min_argc:2,max_argc:2,argtype:"0"},{name:"popup_findinfo",min_argc:0,max_argc:0,argtype:"0"},{name:"popup_findpreview",min_argc:0,max_argc:0,argtype:"0"},{name:"popup_getoptions",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"popup_getpos",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"popup_hide",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"popup_locate",min_argc:2,max_argc:2,argtype:"0"},{name:"popup_menu",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"popup_move",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"popup_notification",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"popup_setoptions",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"popup_settext",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"popup_show",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"pow",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"prevnonblank",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"printf",min_argc:1,max_argc:19,argtype:"FEARG_2"},{name:"prompt_setcallback",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"prompt_setinterrupt",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"prompt_setprompt",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"prop_add",min_argc:3,max_argc:3,argtype:"FEARG_1"},{name:"prop_clear",min_argc:1,max_argc:3,argtype:"FEARG_1"},{name:"prop_find",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"prop_list",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"prop_remove",min_argc:1,max_argc:3,argtype:"FEARG_1"},{name:"prop_type_add",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"prop_type_change",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"prop_type_delete",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"prop_type_get",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"prop_type_list",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"pum_getpos",min_argc:0,max_argc:0,argtype:"0"},{name:"pumvisible",min_argc:0,max_argc:0,argtype:"0"},{name:"py3eval",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"pyeval",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"pyxeval",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"rand",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"range",min_argc:1,max_argc:3,argtype:"FEARG_1"},{name:"readdir",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"readfile",min_argc:1,max_argc:3,argtype:"FEARG_1"},{name:"reg_executing",min_argc:0,max_argc:0,argtype:"0"},{name:"reg_recording",min_argc:0,max_argc:0,argtype:"0"},{name:"reltime",min_argc:0,max_argc:2,argtype:"FEARG_1"},{name:"reltimefloat",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"reltimestr",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"remote_expr",min_argc:2,max_argc:4,argtype:"FEARG_1"},{name:"remote_foreground",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"remote_peek",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"remote_read",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"remote_send",min_argc:2,max_argc:3,argtype:"FEARG_1"},{name:"remote_startserver",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"remove",min_argc:2,max_argc:3,argtype:"FEARG_1"},{name:"rename",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"repeat",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"resolve",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"reverse",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"round",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"rubyeval",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"screenattr",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"screenchar",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"screenchars",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"screencol",min_argc:0,max_argc:0,argtype:"0"},{name:"screenpos",min_argc:3,max_argc:3,argtype:"FEARG_1"},{name:"screenrow",min_argc:0,max_argc:0,argtype:"0"},{name:"screenstring",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"search",min_argc:1,max_argc:4,argtype:"FEARG_1"},{name:"searchdecl",min_argc:1,max_argc:3,argtype:"FEARG_1"},{name:"searchpair",min_argc:3,max_argc:7,argtype:"0"},{name:"searchpairpos",min_argc:3,max_argc:7,argtype:"0"},{name:"searchpos",min_argc:1,max_argc:4,argtype:"FEARG_1"},{name:"server2client",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"serverlist",min_argc:0,max_argc:0,argtype:"0"},{name:"setbufline",min_argc:3,max_argc:3,argtype:"FEARG_3"},{name:"setbufvar",min_argc:3,max_argc:3,argtype:"FEARG_3"},{name:"setcharsearch",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"setcmdpos",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"setenv",min_argc:2,max_argc:2,argtype:"FEARG_2"},{name:"setfperm",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"setline",min_argc:2,max_argc:2,argtype:"FEARG_2"},{name:"setloclist",min_argc:2,max_argc:4,argtype:"FEARG_2"},{name:"setmatches",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"setpos",min_argc:2,max_argc:2,argtype:"FEARG_2"},{name:"setqflist",min_argc:1,max_argc:3,argtype:"FEARG_1"},{name:"setreg",min_argc:2,max_argc:3,argtype:"FEARG_2"},{name:"settabvar",min_argc:3,max_argc:3,argtype:"FEARG_3"},{name:"settabwinvar",min_argc:4,max_argc:4,argtype:"FEARG_4"},{name:"settagstack",min_argc:2,max_argc:3,argtype:"FEARG_2"},{name:"setwinvar",min_argc:3,max_argc:3,argtype:"FEARG_3"},{name:"sha256",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"shellescape",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"shiftwidth",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"sign_define",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"sign_getdefined",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"sign_getplaced",min_argc:0,max_argc:2,argtype:"FEARG_1"},{name:"sign_jump",min_argc:3,max_argc:3,argtype:"FEARG_1"},{name:"sign_place",min_argc:4,max_argc:5,argtype:"FEARG_1"},{name:"sign_placelist",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"sign_undefine",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"sign_unplace",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"sign_unplacelist",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"simplify",min_argc:1,max_argc:1,argtype:"0"},{name:"sin",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"sinh",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"sort",min_argc:1,max_argc:3,argtype:"FEARG_1"},{name:"sound_clear",min_argc:0,max_argc:0,argtype:"0"},{name:"sound_playevent",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"sound_playfile",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"sound_stop",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"soundfold",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"spellbadword",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"spellsuggest",min_argc:1,max_argc:3,argtype:"FEARG_1"},{name:"split",min_argc:1,max_argc:3,argtype:"FEARG_1"},{name:"sqrt",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"srand",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"state",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"str2float",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"str2list",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"str2nr",min_argc:1,max_argc:3,argtype:"FEARG_1"},{name:"strcharpart",min_argc:2,max_argc:3,argtype:"FEARG_1"},{name:"strchars",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"strdisplaywidth",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"strftime",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"strgetchar",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"stridx",min_argc:2,max_argc:3,argtype:"FEARG_1"},{name:"string",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"strlen",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"strpart",min_argc:2,max_argc:3,argtype:"FEARG_1"},{name:"strptime",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"strridx",min_argc:2,max_argc:3,argtype:"FEARG_1"},{name:"strtrans",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"strwidth",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"submatch",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"substitute",min_argc:4,max_argc:4,argtype:"FEARG_1"},{name:"swapinfo",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"swapname",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"synID",min_argc:3,max_argc:3,argtype:"0"},{name:"synIDattr",min_argc:2,max_argc:3,argtype:"FEARG_1"},{name:"synIDtrans",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"synconcealed",min_argc:2,max_argc:2,argtype:"0"},{name:"synstack",min_argc:2,max_argc:2,argtype:"0"},{name:"system",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"systemlist",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"tabpagebuflist",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"tabpagenr",min_argc:0,max_argc:1,argtype:"0"},{name:"tabpagewinnr",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"tagfiles",min_argc:0,max_argc:0,argtype:"0"},{name:"taglist",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"tan",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"tanh",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"tempname",min_argc:0,max_argc:0,argtype:"0"},{name:"term_dumpdiff",min_argc:2,max_argc:3,argtype:"FEARG_1"},{name:"term_dumpload",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"term_dumpwrite",min_argc:2,max_argc:3,argtype:"FEARG_2"},{name:"term_getaltscreen",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"term_getansicolors",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"term_getattr",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"term_getcursor",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"term_getjob",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"term_getline",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"term_getscrolled",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"term_getsize",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"term_getstatus",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"term_gettitle",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"term_gettty",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"term_list",min_argc:0,max_argc:0,argtype:"0"},{name:"term_scrape",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"term_sendkeys",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"term_setansicolors",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"term_setapi",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"term_setkill",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"term_setrestore",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"term_setsize",min_argc:3,max_argc:3,argtype:"FEARG_1"},{name:"term_start",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"term_wait",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"test_alloc_fail",min_argc:3,max_argc:3,argtype:"FEARG_1"},{name:"test_autochdir",min_argc:0,max_argc:0,argtype:"0"},{name:"test_feedinput",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"test_garbagecollect_now",min_argc:0,max_argc:0,argtype:"0"},{name:"test_garbagecollect_soon",min_argc:0,max_argc:0,argtype:"0"},{name:"test_getvalue",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"test_ignore_error",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"test_null_blob",min_argc:0,max_argc:0,argtype:"0"},{name:"test_null_channel",min_argc:0,max_argc:0,argtype:"0"},{name:"test_null_dict",min_argc:0,max_argc:0,argtype:"0"},{name:"test_null_job",min_argc:0,max_argc:0,argtype:"0"},{name:"test_null_list",min_argc:0,max_argc:0,argtype:"0"},{name:"test_null_partial",min_argc:0,max_argc:0,argtype:"0"},{name:"test_null_string",min_argc:0,max_argc:0,argtype:"0"},{name:"test_option_not_set",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"test_override",min_argc:2,max_argc:2,argtype:"FEARG_2"},{name:"test_refcount",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"test_scrollbar",min_argc:3,max_argc:3,argtype:"FEARG_2"},{name:"test_setmouse",min_argc:2,max_argc:2,argtype:"0"},{name:"test_settime",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"test_srand_seed",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"test_unknown",min_argc:0,max_argc:0,argtype:"0"},{name:"test_void",min_argc:0,max_argc:0,argtype:"0"},{name:"timer_info",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"timer_pause",min_argc:2,max_argc:2,argtype:"FEARG_1"},{name:"timer_start",min_argc:2,max_argc:3,argtype:"FEARG_1"},{name:"timer_stop",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"timer_stopall",min_argc:0,max_argc:0,argtype:"0"},{name:"tolower",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"toupper",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"tr",min_argc:3,max_argc:3,argtype:"FEARG_1"},{name:"trim",min_argc:1,max_argc:2,argtype:"FEARG_1"},{name:"trunc",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"type",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"undofile",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"undotree",min_argc:0,max_argc:0,argtype:"0"},{name:"uniq",min_argc:1,max_argc:3,argtype:"FEARG_1"},{name:"values",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"virtcol",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"visualmode",min_argc:0,max_argc:1,argtype:"0"},{name:"wildmenumode",min_argc:0,max_argc:0,argtype:"0"},{name:"win_execute",min_argc:2,max_argc:3,argtype:"FEARG_2"},{name:"win_findbuf",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"win_getid",min_argc:0,max_argc:2,argtype:"FEARG_1"},{name:"win_gettype",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"win_gotoid",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"win_id2tabwin",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"win_id2win",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"win_screenpos",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"win_splitmove",min_argc:2,max_argc:3,argtype:"FEARG_1"},{name:"winbufnr",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"wincol",min_argc:0,max_argc:0,argtype:"0"},{name:"windowsversion",min_argc:0,max_argc:0,argtype:"0"},{name:"winheight",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"winlayout",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"winline",min_argc:0,max_argc:0,argtype:"0"},{name:"winnr",min_argc:0,max_argc:1,argtype:"FEARG_1"},{name:"winrestcmd",min_argc:0,max_argc:0,argtype:"0"},{name:"winrestview",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"winsaveview",min_argc:0,max_argc:0,argtype:"0"},{name:"winwidth",min_argc:1,max_argc:1,argtype:"FEARG_1"},{name:"wordcount",min_argc:0,max_argc:0,argtype:"0"},{name:"writefile",min_argc:2,max_argc:3,argtype:"FEARG_1"},{name:"xor",min_argc:2,max_argc:2,argtype:"FEARG_1"}],D.prototype.__init__=function(t){this.reader=t,this.cache={}},D.prototype.token=function(t,e,n){return{type:t,value:e,pos:n}},D.prototype.peek=function(){var t=this.reader.tell(),e=this.get();return this.reader.seek_set(t),e},D.prototype.get=function(){if(T(this.cache,this.reader.tell())){var t=this.cache[this.reader.tell()];return this.reader.seek_set(t[0]),t[1]}var e=this.reader.tell();this.reader.skip_white();var n=this.get2();return this.cache[e]=[this.reader.tell(),n],n},D.prototype.get2=function(){var t=this.reader,e=t.getpos(),n=t.peek();if("<EOF>"==n)return this.token(1,n,e);if("<EOL>"==n)return t.seek_cur(1),this.token(2,n,e);if(E(n)){var i=t.read_white();return this.token(3,i,e)}if("0"!=n||"X"!=t.p(1)&&"x"!=t.p(1)||!F(t.p(2))){if("0"!=n||"B"!=t.p(1)&&"b"!=t.p(1)||"0"!=t.p(2)&&"1"!=t.p(2)){if("0"!=n||"Z"!=t.p(1)&&"z"!=t.p(1)||"."==t.p(2)){if(R(n)){i=t.read_digit();return"."==t.p(0)&&R(t.p(1))&&(i+=t.getn(1),i+=t.read_digit(),"E"!=t.p(0)&&"e"!=t.p(0)||!R(t.p(1))&&("-"!=t.p(1)&&"+"!=t.p(1)||!R(t.p(2)))||(i+=t.getn(2),i+=t.read_digit())),this.token(52,i,e)}if("i"!=n||"s"!=t.p(1)||O(t.p(2))){if("i"!=n||"s"!=t.p(1)||"n"!=t.p(2)||"o"!=t.p(3)||"t"!=t.p(4)||O(t.p(5))){if(function(t){return c(t,"^[A-Za-z_]$")}(n)){i=t.read_name();return this.token(56,i,e)}if("|"==n&&"|"==t.p(1))return t.seek_cur(2),this.token(4,"||",e);if("&"==n&&"&"==t.p(1))return t.seek_cur(2),this.token(5,"&&",e);if("="==n&&"="==t.p(1))return"?"==t.p(2)?(t.seek_cur(3),this.token(7,"==?",e)):"#"==t.p(2)?(t.seek_cur(3),this.token(8,"==#",e)):(t.seek_cur(2),this.token(6,"==",e));if("!"==n&&"="==t.p(1))return"?"==t.p(2)?(t.seek_cur(3),this.token(10,"!=?",e)):"#"==t.p(2)?(t.seek_cur(3),this.token(11,"!=#",e)):(t.seek_cur(2),this.token(9,"!=",e));if(">"==n&&"="==t.p(1))return"?"==t.p(2)?(t.seek_cur(3),this.token(16,">=?",e)):"#"==t.p(2)?(t.seek_cur(3),this.token(17,">=#",e)):(t.seek_cur(2),this.token(15,">=",e));if("<"==n&&"="==t.p(1))return"?"==t.p(2)?(t.seek_cur(3),this.token(22,"<=?",e)):"#"==t.p(2)?(t.seek_cur(3),this.token(23,"<=#",e)):(t.seek_cur(2),this.token(21,"<=",e));if("="==n&&"~"==t.p(1))return"?"==t.p(2)?(t.seek_cur(3),this.token(25,"=~?",e)):"#"==t.p(2)?(t.seek_cur(3),this.token(26,"=~#",e)):(t.seek_cur(2),this.token(24,"=~",e));if("!"==n&&"~"==t.p(1))return"?"==t.p(2)?(t.seek_cur(3),this.token(28,"!~?",e)):"#"==t.p(2)?(t.seek_cur(3),this.token(29,"!~#",e)):(t.seek_cur(2),this.token(27,"!~",e));if(">"==n)return"?"==t.p(1)?(t.seek_cur(2),this.token(13,">?",e)):"#"==t.p(1)?(t.seek_cur(2),this.token(14,">#",e)):(t.seek_cur(1),this.token(12,">",e));if("<"==n)return"?"==t.p(1)?(t.seek_cur(2),this.token(19,"<?",e)):"#"==t.p(1)?(t.seek_cur(2),this.token(20,"<#",e)):(t.seek_cur(1),this.token(18,"<",e));if("+"==n)return t.seek_cur(1),this.token(36,"+",e);if("-"==n)return">"==t.p(1)?(t.seek_cur(2),this.token(65,"->",e)):(t.seek_cur(1),this.token(37,"-",e));if("."==n)return"."==t.p(1)&&"."==t.p(2)?(t.seek_cur(3),this.token(63,"...",e)):"."==t.p(1)?(t.seek_cur(2),this.token(68,"..",e)):(t.seek_cur(1),this.token(38,".",e));if("*"==n)return t.seek_cur(1),this.token(39,"*",e);if("/"==n)return t.seek_cur(1),this.token(40,"/",e);if("%"==n)return t.seek_cur(1),this.token(41,"%",e);if("!"==n)return t.seek_cur(1),this.token(42,"!",e);if("?"==n)return t.seek_cur(1),this.token(43,"?",e);if(":"==n)return t.seek_cur(1),this.token(44,":",e);if("#"==n)return"{"==t.p(1)?(t.seek_cur(2),this.token(67,"#{",e)):(t.seek_cur(1),this.token(64,"#",e));if("("==n)return t.seek_cur(1),this.token(45,"(",e);if(")"==n)return t.seek_cur(1),this.token(46,")",e);if("["==n)return t.seek_cur(1),this.token(47,"[",e);if("]"==n)return t.seek_cur(1),this.token(48,"]",e);if("{"==n)return t.seek_cur(1),this.token(49,"{",e);if("}"==n)return t.seek_cur(1),this.token(50,"}",e);if(","==n)return t.seek_cur(1),this.token(51,",",e);if("'"==n)return t.seek_cur(1),this.token(53,"'",e);if('"'==n)return t.seek_cur(1),this.token(54,'"',e);if("$"==n){i=t.getn(1);return i+=t.read_word(),this.token(57,i,e)}if("@"==n)return this.token(58,t.getn(2),e);if("&"==n){i="";if("g"!=t.p(1)&&"l"!=t.p(1)||":"!=t.p(2))i=t.getn(1)+t.read_word();else i=t.getn(3)+t.read_word();return this.token(55,i,e)}if("="==n)return t.seek_cur(1),this.token(59,"=",e);if("|"==n)return t.seek_cur(1),this.token(60,"|",e);if(";"==n)return t.seek_cur(1),this.token(61,";",e);if("`"==n)return t.seek_cur(1),this.token(62,"`",e);throw I(p("unexpected character: %s",n),this.reader.getpos())}return"?"==t.p(5)?(t.seek_cur(6),this.token(34,"isnot?",e)):"#"==t.p(5)?(t.seek_cur(6),this.token(35,"isnot#",e)):(t.seek_cur(5),this.token(33,"isnot",e))}return"?"==t.p(2)?(t.seek_cur(3),this.token(31,"is?",e)):"#"==t.p(2)?(t.seek_cur(3),this.token(32,"is#",e)):(t.seek_cur(2),this.token(30,"is",e))}var i=t.getn(2);return i+=t.read_blob(),this.token(66,i,e)}var i=t.getn(3);return i+=t.read_bdigit(),this.token(52,i,e)}var i=t.getn(3);return i+=t.read_xdigit(),this.token(52,i,e)},D.prototype.get_sstring=function(){if(this.reader.skip_white(),"'"!=(e=this.reader.p(0)))throw I(p("unexpected character: %s",e),this.reader.getpos());this.reader.seek_cur(1);for(var t="";;){var e;if("<EOF>"==(e=this.reader.p(0))||"<EOL>"==e)throw I("unexpected EOL",this.reader.getpos());if("'"==e){if(this.reader.seek_cur(1),"'"!=this.reader.p(0))break;this.reader.seek_cur(1),t+="''"}else this.reader.seek_cur(1),t+=e}return t},D.prototype.get_dstring=function(){if(this.reader.skip_white(),'"'!=(e=this.reader.p(0)))throw I(p("unexpected character: %s",e),this.reader.getpos());this.reader.seek_cur(1);for(var t="";;){if("<EOF>"==(e=this.reader.p(0))||"<EOL>"==e)throw I("unexpectd EOL",this.reader.getpos());if('"'==e){this.reader.seek_cur(1);break}if("\\"==e){var e;if(this.reader.seek_cur(1),t+=e,"<EOF>"==(e=this.reader.p(0))||"<EOL>"==e)throw I("ExprTokenizer: unexpected EOL",this.reader.getpos());this.reader.seek_cur(1),t+=e}else this.reader.seek_cur(1),t+=e}return t},D.prototype.parse_dict_literal_key=function(){if(this.reader.skip_white(),!k(n=this.reader.peek())&&"_"!=n&&"-"!=n)throw I(p("unexpected character: %s",n),this.reader.getpos());var t=L(81),e=n;for(this.reader.seek_cur(1),t.pos=this.reader.getpos();;){var n;if("<EOF>"==(n=this.reader.p(0))||"<EOL>"==n)throw I("unexpectd EOL",this.reader.getpos());if(!k(n)&&"_"!=n&&"-"!=n)break;this.reader.seek_cur(1),e+=n}return t.value="'"+e+"'",t},W.prototype.__init__=function(t){this.reader=t,this.tokenizer=new D(t)},W.prototype.parse=function(){return this.parse_expr1()},W.prototype.parse_expr1=function(){var t=this.parse_expr2(),e=this.reader.tell();if(43==(n=this.tokenizer.get()).type){var n,i=L(34);if(i.pos=n.pos,i.cond=t,i.left=this.parse_expr1(),44!=(n=this.tokenizer.get()).type)throw I(p("unexpected token: %s",n.value),n.pos);i.right=this.parse_expr1();t=i}else this.reader.seek_set(e);return t},W.prototype.parse_expr2=function(){for(var t=this.parse_expr3();;){var e=this.reader.tell(),n=this.tokenizer.get();if(4!=n.type){this.reader.seek_set(e);break}var i=L(35);i.pos=n.pos,i.left=t,i.right=this.parse_expr3();t=i}return t},W.prototype.parse_expr3=function(){for(var t=this.parse_expr4();;){var e=this.reader.tell(),n=this.tokenizer.get();if(5!=n.type){this.reader.seek_set(e);break}var i=L(36);i.pos=n.pos,i.left=t,i.right=this.parse_expr4();t=i}return t},W.prototype.parse_expr4=function(){var t=this.parse_expr5(),e=this.reader.tell(),n=this.tokenizer.get();if(6==n.type){(i=L(37)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(7==n.type){(i=L(38)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(8==n.type){(i=L(39)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(9==n.type){(i=L(40)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(10==n.type){(i=L(41)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(11==n.type){(i=L(42)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(12==n.type){(i=L(43)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(13==n.type){(i=L(44)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(14==n.type){(i=L(45)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(15==n.type){(i=L(46)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(16==n.type){(i=L(47)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(17==n.type){(i=L(48)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(18==n.type){(i=L(49)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(19==n.type){(i=L(50)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(20==n.type){(i=L(51)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(21==n.type){(i=L(52)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(22==n.type){(i=L(53)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(23==n.type){(i=L(54)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(24==n.type){(i=L(55)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(25==n.type){(i=L(56)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(26==n.type){(i=L(57)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(27==n.type){(i=L(58)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(28==n.type){(i=L(59)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(29==n.type){(i=L(60)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(30==n.type){(i=L(61)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(31==n.type){(i=L(62)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(32==n.type){(i=L(63)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(33==n.type){(i=L(64)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(34==n.type){(i=L(65)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else if(35==n.type){var i;(i=L(66)).pos=n.pos,i.left=t,i.right=this.parse_expr5();t=i}else this.reader.seek_set(e);return t},W.prototype.parse_expr5=function(){for(var t=this.parse_expr6();;){var e=this.reader.tell(),n=this.tokenizer.get();if(36==n.type){(i=L(67)).pos=n.pos,i.left=t,i.right=this.parse_expr6();t=i}else if(37==n.type){(i=L(68)).pos=n.pos,i.left=t,i.right=this.parse_expr6();t=i}else if(68==n.type){(i=L(69)).pos=n.pos,i.left=t,i.right=this.parse_expr6();t=i}else{if(38!=n.type){this.reader.seek_set(e);break}var i;(i=L(69)).pos=n.pos,i.left=t,i.right=this.parse_expr6();t=i}}return t},W.prototype.parse_expr6=function(){for(var t=this.parse_expr7();;){var e=this.reader.tell(),n=this.tokenizer.get();if(39==n.type){(i=L(70)).pos=n.pos,i.left=t,i.right=this.parse_expr7();t=i}else if(40==n.type){(i=L(71)).pos=n.pos,i.left=t,i.right=this.parse_expr7();t=i}else{if(41!=n.type){this.reader.seek_set(e);break}var i;(i=L(72)).pos=n.pos,i.left=t,i.right=this.parse_expr7();t=i}}return t},W.prototype.parse_expr7=function(){var t,e=this.reader.tell(),n=this.tokenizer.get();return 42==n.type?((t=L(73)).pos=n.pos,t.left=this.parse_expr7(),t):37==n.type?((t=L(74)).pos=n.pos,t.left=this.parse_expr7(),t):36==n.type?((t=L(75)).pos=n.pos,t.left=this.parse_expr7(),t):(this.reader.seek_set(e),t=this.parse_expr8())},W.prototype.parse_expr8=function(){for(var t=this.parse_expr9();;){var e=this.reader.tell(),n=this.reader.peek(),i=this.tokenizer.get();if(E(n)||47!=i.type)if(65==i.type){var r=this.parse_expr9();if(45!=(i=this.tokenizer.get()).type)throw I("E107: Missing parentheses: lambda",i.pos);(a=L(78)).pos=i.pos,a.left=r,a.rlist=this.parse_rlist(),(s=L(97)).pos=i.pos,s.left=t,s.right=a;t=s;delete s}else if(45==i.type){(s=L(78)).pos=i.pos,s.left=t,s.rlist=this.parse_rlist();t=s;delete s}else{if(E(n)||38!=i.type){this.reader.seek_set(e);break}if((s=this.parse_dot(i,t))===y){this.reader.seek_set(e);break}t=s;delete s}else{var o=i.pos;if(44==this.tokenizer.peek().type){if(this.tokenizer.get(),(s=L(77)).pos=o,s.left=t,s.rlist=[y,y],48!=(i=this.tokenizer.peek()).type&&(s.rlist[1]=this.parse_expr1()),48!=(i=this.tokenizer.get()).type)throw I(p("unexpected token: %s",i.value),i.pos);var t=s}else{var a=this.parse_expr1();if(44==this.tokenizer.peek().type){if(this.tokenizer.get(),(s=L(77)).pos=o,s.left=t,s.rlist=[a,y],48!=(i=this.tokenizer.peek()).type&&(s.rlist[1]=this.parse_expr1()),48!=(i=this.tokenizer.get()).type)throw I(p("unexpected token: %s",i.value),i.pos);var t=s}else{var s;if((s=L(76)).pos=o,s.left=t,s.right=a,48!=(i=this.tokenizer.get()).type)throw I(p("unexpected token: %s",i.value),i.pos);var t=s}}delete s}}return t},W.prototype.parse_rlist=function(){var t=[],e=this.tokenizer.peek();if(46==this.tokenizer.peek().type)this.tokenizer.get();else for(;;){if(o(t,this.parse_expr1()),51!=(e=this.tokenizer.get()).type){if(46==e.type)break;throw I(p("unexpected token: %s",e.value),e.pos)}if(46==this.tokenizer.peek().type){this.tokenizer.get();break}}if(h(t)>20)throw I("E740: Too many arguments for function",e.pos);return t},W.prototype.parse_expr9=function(){var t=this.reader.tell(),e=this.tokenizer.get(),n=L(-1);if(52==e.type)(n=L(80)).pos=e.pos,n.value=e.value;else if(66==e.type){(n=L(93)).pos=e.pos,n.value=e.value}else if(54==e.type){this.reader.seek_set(t),(n=L(81)).pos=e.pos,n.value='"'+this.tokenizer.get_dstring()+'"'}else if(53==e.type){this.reader.seek_set(t),(n=L(81)).pos=e.pos,n.value="'"+this.tokenizer.get_sstring()+"'"}else if(47==e.type){if((n=L(82)).pos=e.pos,n.value=[],48==(e=this.tokenizer.peek()).type)this.tokenizer.get();else for(;;){if(o(n.value,this.parse_expr1()),51!=(e=this.tokenizer.peek()).type){if(48==e.type){this.tokenizer.get();break}throw I(p("unexpected token: %s",e.value),e.pos)}if(this.tokenizer.get(),48==this.tokenizer.peek().type){this.tokenizer.get();break}}}else{if(49==e.type||67==e.type){var i=67==e.type,r=this.reader.tell(),a=e.pos;if(!(u=65==(e=this.tokenizer.get()).type)&&53!=e.type&&54!=e.type)var c=this.tokenizer.peek(),u=65==c.type||51==c.type;var d=v;if(u){(n=L(92)).pos=a,n.rlist=[];for(var m={};65!=e.type;){if(56!=e.type){if(63==e.type){if((h=L(86)).pos=e.pos,h.value=e.value,o(n.rlist,h),65==(e=this.tokenizer.peek()).type){this.tokenizer.get();break}throw I(p("unexpected token: %s",e.value),e.pos)}d=1;break}if(!S(e.value))throw I(p("E125: Illegal argument: %s",e.value),e.pos);if(T(m,e.value))throw I(p("E853: Duplicate argument name: %s",e.value),e.pos);var h;if(m[e.value]=1,(h=L(86)).pos=e.pos,h.value=e.value,E(this.reader.p(0))&&51==this.tokenizer.peek().type)throw I("E475: Invalid argument: White space is not allowed before comma",this.reader.getpos());var e=this.tokenizer.get();if(o(n.rlist,h),51!=e.type){if(65==e.type)break;throw I(p("unexpected token: %s, type: %d",e.value,e.type),e.pos)}if(65==(e=this.tokenizer.peek()).type){this.tokenizer.get();break}e=this.tokenizer.get()}if(!d){if(n.left=this.parse_expr1(),50!=(e=this.tokenizer.get()).type)throw I(p("unexpected token: %s",e.value),e.pos);return n}}if((n=L(83)).pos=a,n.value=[],this.reader.seek_set(r),50==(e=this.tokenizer.peek()).type)return this.tokenizer.get(),n;for(;;){var f=i?this.tokenizer.parse_dict_literal_key():this.parse_expr1();if(50==(e=this.tokenizer.get()).type){if(!s(n.value))throw I(p("unexpected token: %s",e.value),e.pos);this.reader.seek_set(t);n=this.parse_identifier();break}if(44!=e.type)throw I(p("unexpected token: %s",e.value),e.pos);var g=this.parse_expr1();if(o(n.value,[f,g]),51!=(e=this.tokenizer.get()).type){if(50==e.type)break;throw I(p("unexpected token: %s",e.value),e.pos)}if(50==this.tokenizer.peek().type){this.tokenizer.get();break}}return n}if(45==e.type){n=this.parse_expr1();if(46!=(e=this.tokenizer.get()).type)throw I(p("unexpected token: %s",e.value),e.pos)}else if(55==e.type){(n=L(85)).pos=e.pos,n.value=e.value}else if(56==e.type){this.reader.seek_set(t);n=this.parse_identifier()}else if(!v||44!=e.type&&64!=e.type)if(18==e.type&&l(this.reader.peekn(4),"SID>")){this.reader.seek_set(t);n=this.parse_identifier()}else if(30==e.type||32==e.type||33==e.type||35==e.type){this.reader.seek_set(t);n=this.parse_identifier()}else if(57==e.type){(n=L(88)).pos=e.pos,n.value=e.value}else{if(58!=e.type)throw I(p("unexpected token: %s",e.value),e.pos);(n=L(89)).pos=e.pos,n.value=e.value}else{this.reader.seek_set(t);var n=this.parse_identifier()}}return n},W.prototype.parse_dot=function(t,e){if(86!=e.type&&87!=e.type&&83!=e.type&&76!=e.type&&78!=e.type&&79!=e.type)return y;if(!A(this.reader.p(0)))return y;var n=this.reader.getpos(),i=this.reader.read_word();if(N(this.reader.p(0)))return y;var r=L(79);return r.pos=t.pos,r.left=e,r.right=L(86),r.right.pos=n,r.right.value=i,r},W.prototype.parse_concat=function(t,e){if(86!=e.type&&87!=e.type&&83!=e.type&&76!=e.type&&78!=e.type&&79!=e.type)return y;if(!A(this.reader.p(0)))return y;var n=this.reader.getpos(),i=this.reader.read_word();if(N(this.reader.p(0)))return y;var r=L(69);return r.pos=t.pos,r.left=e,r.right=L(86),r.right.pos=n,r.right.value=i,r},W.prototype.parse_identifier=function(){this.reader.skip_white();var t,e=this.reader.getpos(),n=this.parse_curly_parts();return 1==h(n)&&90==n[0].type?((t=L(86)).pos=e,t.value=n[0].value,t):((t=L(87)).pos=e,t.value=n,t)},W.prototype.parse_curly_parts=function(){var t=[],e=this.reader.peek(),n=this.reader.getpos();if("<"==e&&l(this.reader.peekn(5),"<SID>")){var i=this.reader.getn(5);(r=L(90)).curly=v,r.pos=n,r.value=i,o(t,r)}for(;;){if(N(e=this.reader.peek())){n=this.reader.getpos(),i=this.reader.read_name();(r=L(90)).curly=v,r.pos=n,r.value=i,o(t,r)}else{if("{"!=e)break;this.reader.get();var r;n=this.reader.getpos();if((r=L(91)).curly=1,r.pos=n,r.value=this.parse_expr1(),o(t,r),this.reader.skip_white(),"}"!=(e=this.reader.p(0)))throw I(p("unexpected token: %s",e),this.reader.getpos());this.reader.seek_cur(1)}}return t},G.prototype=Object.create(W.prototype),G.prototype.parse=function(){return this.parse_lv8()},G.prototype.parse_lv8=function(){for(var t=this.parse_lv9();;){var e=this.reader.tell(),n=this.reader.peek(),i=this.tokenizer.get();if(E(n)||47!=i.type){if(E(n)||38!=i.type){this.reader.seek_set(e);break}if((o=this.parse_dot(i,t))===y){this.reader.seek_set(e);break}t=o;delete o}else{var r=i.pos,o=L(-1);if(44==this.tokenizer.peek().type){if(this.tokenizer.get(),(o=L(77)).pos=r,o.left=t,o.rlist=[y,y],48!=(i=this.tokenizer.peek()).type&&(o.rlist[1]=this.parse_expr1()),48!=(i=this.tokenizer.get()).type)throw I(p("unexpected token: %s",i.value),i.pos)}else{var a=this.parse_expr1();if(44==this.tokenizer.peek().type){if(this.tokenizer.get(),(o=L(77)).pos=r,o.left=t,o.rlist=[a,y],48!=(i=this.tokenizer.peek()).type&&(o.rlist[1]=this.parse_expr1()),48!=(i=this.tokenizer.get()).type)throw I(p("unexpected token: %s",i.value),i.pos)}else if((o=L(76)).pos=r,o.left=t,o.right=a,48!=(i=this.tokenizer.get()).type)throw I(p("unexpected token: %s",i.value),i.pos)}var t=o;delete o}}return t},G.prototype.parse_lv9=function(){var t=this.reader.tell(),e=this.tokenizer.get(),n=L(-1);if(49==e.type){this.reader.seek_set(t);n=this.parse_identifier()}else if(55==e.type){(n=L(85)).pos=e.pos,n.value=e.value}else if(56==e.type){this.reader.seek_set(t);n=this.parse_identifier()}else if(18==e.type&&l(this.reader.peekn(4),"SID>")){this.reader.seek_set(t);n=this.parse_identifier()}else if(57==e.type){(n=L(88)).pos=e.pos,n.value=e.value}else{if(58!=e.type)throw I(p("unexpected token: %s",e.value),e.pos);(n=L(89)).pos=e.pos,n.pos=e.pos,n.value=e.value}return n},M.prototype.__init__=function(t){this.buf=[],this.pos=[];for(var e=0,n=0;e<h(t);){for(var i=0,r=b(t[e],"\\zs"),a=0;a<r.length;++a){var s=r[a];o(this.buf,s),o(this.pos,[e+1,i+1,n]),i+=h(s),n+=h(s)}for(;e+1<h(t)&&c(t[e+1],"^\\s*\\\\");){for(var l=1,u=(i=0,b(t[e+1],"\\zs")),d=0;d<u.length;++d){s=u[d];if(l){if("\\"==s)l=v}else o(this.buf,s),o(this.pos,[e+2,i+1,n]);i+=h(s),n+=h(s)}e+=1,n+=1}o(this.buf,"<EOL>"),o(this.pos,[e+1,i+1,n]),e+=1,n+=1}o(this.pos,[e+1,0,n]),this.i=0},M.prototype.eof=function(){return this.i>=h(this.buf)},M.prototype.tell=function(){return this.i},M.prototype.seek_set=function(t){this.i=t},M.prototype.seek_cur=function(t){this.i=this.i+t},M.prototype.seek_end=function(t){this.i=h(this.buf)+t},M.prototype.p=function(t){return this.i>=h(this.buf)?"<EOF>":this.buf[this.i+t]},M.prototype.peek=function(){return this.i>=h(this.buf)?"<EOF>":this.buf[this.i]},M.prototype.get=function(){return this.i>=h(this.buf)?"<EOF>":(this.i+=1,this.buf[this.i-1])},M.prototype.peekn=function(t){var e=this.tell(),n=this.getn(t);return this.seek_set(e),n},M.prototype.getn=function(t){for(var e="",n=0;this.i<h(this.buf)&&(t<0||n<t);){var i=this.buf[this.i];if("<EOL>"==i)break;e+=i,this.i+=1,n+=1}return e},M.prototype.peekline=function(){return this.peekn(-1)},M.prototype.readline=function(){var t=this.getn(-1);return this.get(),t},M.prototype.getstr=function(t,e){for(var n="",i=f(t.i,e.i-1),r=0;r<i.length;++r){var o=i[r];if(o>=h(this.buf))break;if("<EOL>"==(a=this.buf[o]))var a="\n";n+=a}return n},M.prototype.getpos=function(){var t=this.pos[this.i],e=t[0],n=t[1],i=t[2];return{i:this.i,lnum:e,col:n,offset:i}},M.prototype.setpos=function(t){this.i=t.i},M.prototype.read_alpha=function(){for(var t="";c(this.peekn(1),"^[A-Za-z]$");)t+=this.getn(1);return t},M.prototype.read_alnum=function(){for(var t="";k(this.peekn(1));)t+=this.getn(1);return t},M.prototype.read_digit=function(){for(var t="";R(this.peekn(1));)t+=this.getn(1);return t},M.prototype.read_odigit=function(){for(var t="";c(this.peekn(1),"^[0-7]$");)t+=this.getn(1);return t},M.prototype.read_blob=function(){for(var t="";;){var e=this.peekn(2);if(c(e,"^[0-9A-Fa-f][0-9A-Fa-f]$"))t+=this.getn(2);else{if(!c(e,"^\\.[0-9A-Fa-f]$")){if(c(e,"^[0-9A-Fa-f][^0-9A-Fa-f]$"))throw I("E973: Blob literal should have an even number of hex characters:"+e,this.getpos());break}t+=this.getn(1)}}return t},M.prototype.read_xdigit=function(){for(var t="";F(this.peekn(1));)t+=this.getn(1);return t},M.prototype.read_bdigit=function(){for(var t="";"0"==this.peekn(1)||"1"==this.peekn(1);)t+=this.getn(1);return t},M.prototype.read_integer=function(){var t="",e=this.peekn(1);if("-"==e||"+"==e)t=this.getn(1);return t+this.read_digit()},M.prototype.read_word=function(){for(var t="";A(this.peekn(1));)t+=this.getn(1);return t},M.prototype.read_white=function(){for(var t="";E(this.peekn(1));)t+=this.getn(1);return t},M.prototype.read_nonwhite=function(){for(var t="",e=this.peekn(1);!E(e)&&""!=e;){t+=this.getn(1);e=this.peekn(1)}return t},M.prototype.read_name=function(){for(var t="";N(this.peekn(1));)t+=this.getn(1);return t},M.prototype.skip_white=function(){for(;E(this.peekn(1));)this.seek_cur(1)},M.prototype.skip_white_and_colon=function(){for(;;){var t=this.peekn(1);if(!E(t)&&":"!=t)break;this.seek_cur(1)}},P.prototype.__init__=function(){this.indent=[""],this.lines=[]},P.prototype.out=function(){var t=Array.prototype.slice.call(arguments,0);1==h(t)?")"==t[0][0]?this.lines[this.lines.length-1]+=t[0]:o(this.lines,this.indent[0]+t[0]):o(this.lines,this.indent[0]+p.apply(null,t))},P.prototype.incindent=function(t){d(this.indent,this.indent[0]+t)},P.prototype.decindent=function(){g(this.indent,0)},P.prototype.compile=function(t){if(1==t.type)return this.compile_toplevel(t);if(2==t.type)return this.compile_comment(t),y;if(3==t.type)return this.compile_excmd(t),y;if(4==t.type)return this.compile_function(t),y;if(6==t.type)return this.compile_delfunction(t),y;if(7==t.type)return this.compile_return(t),y;if(8==t.type)return this.compile_excall(t),y;if(95==t.type)return this.compile_eval(t),y;if(9==t.type)return this.compile_let(t),y;if(94==t.type)return this.compile_const(t),y;if(10==t.type)return this.compile_unlet(t),y;if(11==t.type)return this.compile_lockvar(t),y;if(12==t.type)return this.compile_unlockvar(t),y;if(13==t.type)return this.compile_if(t),y;if(17==t.type)return this.compile_while(t),y;if(19==t.type)return this.compile_for(t),y;if(21==t.type)return this.compile_continue(t),y;if(22==t.type)return this.compile_break(t),y;if(23==t.type)return this.compile_try(t),y;if(27==t.type)return this.compile_throw(t),y;if(28==t.type)return this.compile_echo(t),y;if(29==t.type)return this.compile_echon(t),y;if(30==t.type)return this.compile_echohl(t),y;if(31==t.type)return this.compile_echomsg(t),y;if(32==t.type)return this.compile_echoerr(t),y;if(33==t.type)return this.compile_execute(t),y;if(34==t.type)return this.compile_ternary(t);if(35==t.type)return this.compile_or(t);if(36==t.type)return this.compile_and(t);if(37==t.type)return this.compile_equal(t);if(38==t.type)return this.compile_equalci(t);if(39==t.type)return this.compile_equalcs(t);if(40==t.type)return this.compile_nequal(t);if(41==t.type)return this.compile_nequalci(t);if(42==t.type)return this.compile_nequalcs(t);if(43==t.type)return this.compile_greater(t);if(44==t.type)return this.compile_greaterci(t);if(45==t.type)return this.compile_greatercs(t);if(46==t.type)return this.compile_gequal(t);if(47==t.type)return this.compile_gequalci(t);if(48==t.type)return this.compile_gequalcs(t);if(49==t.type)return this.compile_smaller(t);if(50==t.type)return this.compile_smallerci(t);if(51==t.type)return this.compile_smallercs(t);if(52==t.type)return this.compile_sequal(t);if(53==t.type)return this.compile_sequalci(t);if(54==t.type)return this.compile_sequalcs(t);if(55==t.type)return this.compile_match(t);if(56==t.type)return this.compile_matchci(t);if(57==t.type)return this.compile_matchcs(t);if(58==t.type)return this.compile_nomatch(t);if(59==t.type)return this.compile_nomatchci(t);if(60==t.type)return this.compile_nomatchcs(t);if(61==t.type)return this.compile_is(t);if(62==t.type)return this.compile_isci(t);if(63==t.type)return this.compile_iscs(t);if(64==t.type)return this.compile_isnot(t);if(65==t.type)return this.compile_isnotci(t);if(66==t.type)return this.compile_isnotcs(t);if(67==t.type)return this.compile_add(t);if(68==t.type)return this.compile_subtract(t);if(69==t.type)return this.compile_concat(t);if(70==t.type)return this.compile_multiply(t);if(71==t.type)return this.compile_divide(t);if(72==t.type)return this.compile_remainder(t);if(73==t.type)return this.compile_not(t);if(75==t.type)return this.compile_plus(t);if(74==t.type)return this.compile_minus(t);if(76==t.type)return this.compile_subscript(t);if(77==t.type)return this.compile_slice(t);if(79==t.type)return this.compile_dot(t);if(97==t.type)return this.compile_method(t);if(78==t.type)return this.compile_call(t);if(80==t.type)return this.compile_number(t);if(93==t.type)return this.compile_blob(t);if(81==t.type)return this.compile_string(t);if(82==t.type)return this.compile_list(t);if(83==t.type)return this.compile_dict(t);if(85==t.type)return this.compile_option(t);if(86==t.type)return this.compile_identifier(t);if(87==t.type)return this.compile_curlyname(t);if(88==t.type)return this.compile_env(t);if(89==t.type)return this.compile_reg(t);if(90==t.type)return this.compile_curlynamepart(t);if(91==t.type)return this.compile_curlynameexpr(t);if(92==t.type)return this.compile_lambda(t);if(96==t.type)return this.compile_heredoc(t);throw p("Compiler: unknown node: %s",w(t))},P.prototype.compile_body=function(t){for(var e=t,n=0;n<e.length;++n){var i=e[n];this.compile(i)}},P.prototype.compile_toplevel=function(t){return this.compile_body(t.body),this.lines},P.prototype.compile_comment=function(t){this.out(";%s",t.str)},P.prototype.compile_excmd=function(t){this.out('(excmd "%s")',u(t.str,'\\"'))},P.prototype.compile_function=function(t){var e=this.compile(t.left),n=t.rlist.map(function(t){return this.compile(t)}.bind(this)),i=t.default_args.map(function(t){return this.compile(t)}.bind(this));if(!s(n)){var r=v;if("..."==n[n.length-1]){g(n,-1);r=1}for(var o=f(h(n)),a=0;a<o.length;++a){var l=o[a];l<h(n)-h(i)?e+=p(" %s",n[l]):e+=p(" (%s %s)",n[l],i[l+h(i)-h(n)])}r&&(e+=" . ...")}this.out("(function (%s)",e),this.incindent(" "),this.compile_body(t.body),this.out(")"),this.decindent()},P.prototype.compile_delfunction=function(t){this.out("(delfunction %s)",this.compile(t.left))},P.prototype.compile_return=function(t){t.left===y?this.out("(return)"):this.out("(return %s)",this.compile(t.left))},P.prototype.compile_excall=function(t){this.out("(call %s)",this.compile(t.left))},P.prototype.compile_eval=function(t){this.out("(eval %s)",this.compile(t.left))},P.prototype.compile_let=function(t){var e="";if(t.left!==y)e=this.compile(t.left);else{e=m(t.list.map(function(t){return this.compile(t)}.bind(this))," ");t.rest!==y&&(e+=" . "+this.compile(t.rest));e="("+e+")"}var n=this.compile(t.right);this.out("(let %s %s %s)",t.op,e,n)},P.prototype.compile_const=function(t){var e="";if(t.left!==y)e=this.compile(t.left);else{e=m(t.list.map(function(t){return this.compile(t)}.bind(this))," ");t.rest!==y&&(e+=" . "+this.compile(t.rest));e="("+e+")"}var n=this.compile(t.right);this.out("(const %s %s %s)",t.op,e,n)},P.prototype.compile_unlet=function(t){var e=t.list.map(function(t){return this.compile(t)}.bind(this));this.out("(unlet %s)",m(e," "))},P.prototype.compile_lockvar=function(t){var e=t.list.map(function(t){return this.compile(t)}.bind(this));t.depth===y?this.out("(lockvar %s)",m(e," ")):this.out("(lockvar %s %s)",t.depth,m(e," "))},P.prototype.compile_unlockvar=function(t){var e=t.list.map(function(t){return this.compile(t)}.bind(this));t.depth===y?this.out("(unlockvar %s)",m(e," ")):this.out("(unlockvar %s %s)",t.depth,m(e," "))},P.prototype.compile_if=function(t){this.out("(if %s",this.compile(t.cond)),this.incindent(" "),this.compile_body(t.body),this.decindent();for(var e=t.elseif,n=0;n<e.length;++n){var i=e[n];this.out(" elseif %s",this.compile(i.cond)),this.incindent(" "),this.compile_body(i.body),this.decindent()}t._else!==y&&(this.out(" else"),this.incindent(" "),this.compile_body(t._else.body),this.decindent()),this.incindent(" "),this.out(")"),this.decindent()},P.prototype.compile_while=function(t){this.out("(while %s",this.compile(t.cond)),this.incindent(" "),this.compile_body(t.body),this.out(")"),this.decindent()},P.prototype.compile_for=function(t){var e="";if(t.left!==y)e=this.compile(t.left);else{e=m(t.list.map(function(t){return this.compile(t)}.bind(this))," ");t.rest!==y&&(e+=" . "+this.compile(t.rest));e="("+e+")"}var n=this.compile(t.right);this.out("(for %s %s",e,n),this.incindent(" "),this.compile_body(t.body),this.out(")"),this.decindent()},P.prototype.compile_continue=function(t){this.out("(continue)")},P.prototype.compile_break=function(t){this.out("(break)")},P.prototype.compile_try=function(t){this.out("(try"),this.incindent(" "),this.compile_body(t.body);for(var e=t.catch,n=0;n<e.length;++n){var i=e[n];i.pattern!==y?(this.decindent(),this.out(" catch /%s/",i.pattern),this.incindent(" "),this.compile_body(i.body)):(this.decindent(),this.out(" catch"),this.incindent(" "),this.compile_body(i.body))}t._finally!==y&&(this.decindent(),this.out(" finally"),this.incindent(" "),this.compile_body(t._finally.body)),this.out(")"),this.decindent()},P.prototype.compile_throw=function(t){this.out("(throw %s)",this.compile(t.left))},P.prototype.compile_echo=function(t){var e=t.list.map(function(t){return this.compile(t)}.bind(this));this.out("(echo %s)",m(e," "))},P.prototype.compile_echon=function(t){var e=t.list.map(function(t){return this.compile(t)}.bind(this));this.out("(echon %s)",m(e," "))},P.prototype.compile_echohl=function(t){this.out('(echohl "%s")',u(t.str,'\\"'))},P.prototype.compile_echomsg=function(t){var e=t.list.map(function(t){return this.compile(t)}.bind(this));this.out("(echomsg %s)",m(e," "))},P.prototype.compile_echoerr=function(t){var e=t.list.map(function(t){return this.compile(t)}.bind(this));this.out("(echoerr %s)",m(e," "))},P.prototype.compile_execute=function(t){var e=t.list.map(function(t){return this.compile(t)}.bind(this));this.out("(execute %s)",m(e," "))},P.prototype.compile_ternary=function(t){return p("(?: %s %s %s)",this.compile(t.cond),this.compile(t.left),this.compile(t.right))},P.prototype.compile_or=function(t){return p("(|| %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_and=function(t){return p("(&& %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_equal=function(t){return p("(== %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_equalci=function(t){return p("(==? %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_equalcs=function(t){return p("(==# %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_nequal=function(t){return p("(!= %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_nequalci=function(t){return p("(!=? %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_nequalcs=function(t){return p("(!=# %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_greater=function(t){return p("(> %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_greaterci=function(t){return p("(>? %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_greatercs=function(t){return p("(># %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_gequal=function(t){return p("(>= %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_gequalci=function(t){return p("(>=? %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_gequalcs=function(t){return p("(>=# %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_smaller=function(t){return p("(< %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_smallerci=function(t){return p("(<? %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_smallercs=function(t){return p("(<# %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_sequal=function(t){return p("(<= %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_sequalci=function(t){return p("(<=? %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_sequalcs=function(t){return p("(<=# %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_match=function(t){return p("(=~ %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_matchci=function(t){return p("(=~? %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_matchcs=function(t){return p("(=~# %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_nomatch=function(t){return p("(!~ %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_nomatchci=function(t){return p("(!~? %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_nomatchcs=function(t){return p("(!~# %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_is=function(t){return p("(is %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_isci=function(t){return p("(is? %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_iscs=function(t){return p("(is# %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_isnot=function(t){return p("(isnot %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_isnotci=function(t){return p("(isnot? %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_isnotcs=function(t){return p("(isnot# %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_add=function(t){return p("(+ %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_subtract=function(t){return p("(- %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_concat=function(t){return p("(concat %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_multiply=function(t){return p("(* %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_divide=function(t){return p("(/ %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_remainder=function(t){return p("(%% %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_not=function(t){return p("(! %s)",this.compile(t.left))},P.prototype.compile_plus=function(t){return p("(+ %s)",this.compile(t.left))},P.prototype.compile_minus=function(t){return p("(- %s)",this.compile(t.left))},P.prototype.compile_subscript=function(t){return p("(subscript %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_slice=function(t){var e=t.rlist[0]===y?"nil":this.compile(t.rlist[0]),n=t.rlist[1]===y?"nil":this.compile(t.rlist[1]);return p("(slice %s %s %s)",this.compile(t.left),e,n)},P.prototype.compile_dot=function(t){return p("(dot %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_method=function(t){return p("(method %s %s)",this.compile(t.left),this.compile(t.right))},P.prototype.compile_call=function(t){var e=t.rlist.map(function(t){return this.compile(t)}.bind(this));return s(e)?p("(%s)",this.compile(t.left)):p("(%s %s)",this.compile(t.left),m(e," "))},P.prototype.compile_number=function(t){return t.value},P.prototype.compile_blob=function(t){return t.value},P.prototype.compile_string=function(t){return t.value},P.prototype.compile_list=function(t){var e=t.value.map(function(t){return this.compile(t)}.bind(this));return s(e)?"(list)":p("(list %s)",m(e," "))},P.prototype.compile_dict=function(t){var e=t.value.map(function(t){return"("+this.compile(t[0])+" "+this.compile(t[1])+")"}.bind(this));return s(e)?"(dict)":p("(dict %s)",m(e," "))},P.prototype.compile_option=function(t){return t.value},P.prototype.compile_identifier=function(t){return t.value},P.prototype.compile_curlyname=function(t){return m(t.value.map(function(t){return this.compile(t)}.bind(this)),"")},P.prototype.compile_env=function(t){return t.value},P.prototype.compile_reg=function(t){return t.value},P.prototype.compile_curlynamepart=function(t){return t.value},P.prototype.compile_curlynameexpr=function(t){return"{"+this.compile(t.value)+"}"},P.prototype.escape_string=function(t){for(var e={"\n":"\\n","\t":"\\t","\r":"\\r"},n='"',i=f(h(t)),r=0;r<i.length;++r){var o=t[i[r]];T(e,o)?n+=e[o]:n+=o}return n+='"'},P.prototype.compile_lambda=function(t){return p("(lambda (%s) %s)",m(t.rlist.map(function(t){return this.compile(t)}.bind(this))," "),this.compile(t.left))},P.prototype.compile_heredoc=function(t){if(s(t.rlist))var e="(list)";else e="(list "+m(t.rlist.map(function(t){return this.escape_string(t)}.bind(this))," ")+")";if(s(t.body))var n="(list)";else n="(list "+m(t.body.map(function(t){return this.escape_string(t)}.bind(this))," ")+")";return p("(heredoc %s %s %s)",e,this.escape_string(t.op),n)},B.prototype.RE_VERY_NOMAGIC=1,B.prototype.RE_NOMAGIC=2,B.prototype.RE_MAGIC=3,B.prototype.RE_VERY_MAGIC=4,B.prototype.__init__=function(t,e,n){this.reader=t,this.cmd=e,this.delim=n,this.reg_magic=this.RE_MAGIC},B.prototype.isend=function(t){return"<EOF>"==t||"<EOL>"==t||t==this.delim},B.prototype.parse_regexp=function(){var t="",e="",n=[];if("\\%#="==this.reader.peekn(4)){var i=this.reader.getpos();if("\\%#=0"!=(r=this.reader.getn(5))&&"\\%#=1"!=r&&"\\%#=2"!=r)throw I("E864: \\%#= can only be followed by 0, 1, or 2",i);o(n,r)}for(;!this.isend(this.reader.peek());){t=e;var r=(s=this.get_token())[0];if("\\m"==(e=s[1]))this.reg_magic=this.RE_MAGIC;else if("\\M"==e)this.reg_magic=this.RE_NOMAGIC;else if("\\v"==e)this.reg_magic=this.RE_VERY_MAGIC;else if("\\V"==e)this.reg_magic=this.RE_VERY_NOMAGIC;else if("\\*"==e){if(""==t||"\\^"==t||"\\&"==t||"\\|"==t||"\\("==t)e="*"}else if("\\^"==e){if(this.reg_magic!=this.RE_VERY_MAGIC&&""!=t&&"\\&"!=t&&"\\|"!=t&&"\\n"!=t&&"\\("!=t&&"\\%("!=t)e="^"}else if("\\$"==e){var a=this.reader.tell();if(this.reg_magic!=this.RE_VERY_MAGIC)for(;!this.isend(this.reader.peek());){(s=this.get_token())[0];var s,l=s[1];if("\\c"!=l&&"\\C"!=l&&"\\m"!=l&&"\\M"!=l&&"\\Z"!=l){if("\\|"!=l&&"\\&"!=l&&"\\n"!=l&&"\\)"!=l)e="$";break}}this.reader.seek_set(a)}else if("\\?"==e&&"?"==this.cmd)e="?";o(n,e)}return n},B.prototype.get_token=function(){return this.reg_magic==this.RE_VERY_MAGIC?this.get_token_very_magic():this.reg_magic==this.RE_MAGIC?this.get_token_magic():this.reg_magic==this.RE_NOMAGIC?this.get_token_nomagic():this.reg_magic==this.RE_VERY_NOMAGIC?this.get_token_very_nomagic():void 0},B.prototype.get_token_very_magic=function(){if(this.isend(this.reader.peek()))return["<END>","<END>"];var t=this.reader.get();return"\\"==t?this.get_token_backslash_common():"*"==t?["*","\\*"]:"+"==t?["+","\\+"]:"="==t?["=","\\="]:"?"==t?["?","\\?"]:"{"==t?this.get_token_brace("{"):"@"==t?this.get_token_at("@"):"^"==t?["^","\\^"]:"$"==t?["$","\\$"]:"."==t?[".","\\."]:"<"==t?["<","\\<"]:">"==t?[">","\\>"]:"%"==t?this.get_token_percent("%"):"["==t?this.get_token_sq("["):"~"==t?["~","\\~"]:"|"==t?["|","\\|"]:"&"==t?["&","\\&"]:"("==t?["(","\\("]:")"==t?[")","\\)"]:[t,t]},B.prototype.get_token_magic=function(){if(this.isend(this.reader.peek()))return["<END>","<END>"];if("\\"==(t=this.reader.get())){var t,e=this.reader.tell();return"+"==(t=this.reader.get())?["\\+","\\+"]:"="==t?["\\=","\\="]:"?"==t?["\\?","\\?"]:"{"==t?this.get_token_brace("\\{"):"@"==t?this.get_token_at("\\@"):"<"==t?["\\<","\\<"]:">"==t?["\\>","\\>"]:"%"==t?this.get_token_percent("\\%"):"|"==t?["\\|","\\|"]:"&"==t?["\\&","\\&"]:"("==t?["\\(","\\("]:")"==t?["\\)","\\)"]:(this.reader.seek_set(e),this.get_token_backslash_common())}return"*"==t?["*","\\*"]:"^"==t?["^","\\^"]:"$"==t?["$","\\$"]:"."==t?[".","\\."]:"["==t?this.get_token_sq("["):"~"==t?["~","\\~"]:[t,t]},B.prototype.get_token_nomagic=function(){if(this.isend(this.reader.peek()))return["<END>","<END>"];if("\\"==(t=this.reader.get())){var t,e=this.reader.tell();return"*"==(t=this.reader.get())?["\\*","\\*"]:"+"==t?["\\+","\\+"]:"="==t?["\\=","\\="]:"?"==t?["\\?","\\?"]:"{"==t?this.get_token_brace("\\{"):"@"==t?this.get_token_at("\\@"):"."==t?["\\.","\\."]:"<"==t?["\\<","\\<"]:">"==t?["\\>","\\>"]:"%"==t?this.get_token_percent("\\%"):"~"==t?["\\~","\\^"]:"["==t?this.get_token_sq("\\["):"|"==t?["\\|","\\|"]:"&"==t?["\\&","\\&"]:"("==t?["\\(","\\("]:")"==t?["\\)","\\)"]:(this.reader.seek_set(e),this.get_token_backslash_common())}return"^"==t?["^","\\^"]:"$"==t?["$","\\$"]:[t,t]},B.prototype.get_token_very_nomagic=function(){if(this.isend(this.reader.peek()))return["<END>","<END>"];if("\\"==(t=this.reader.get())){var t,e=this.reader.tell();return"*"==(t=this.reader.get())?["\\*","\\*"]:"+"==t?["\\+","\\+"]:"="==t?["\\=","\\="]:"?"==t?["\\?","\\?"]:"{"==t?this.get_token_brace("\\{"):"@"==t?this.get_token_at("\\@"):"^"==t?["\\^","\\^"]:"$"==t?["\\$","\\$"]:"<"==t?["\\<","\\<"]:">"==t?["\\>","\\>"]:"%"==t?this.get_token_percent("\\%"):"~"==t?["\\~","\\~"]:"["==t?this.get_token_sq("\\["):"|"==t?["\\|","\\|"]:"&"==t?["\\&","\\&"]:"("==t?["\\(","\\("]:")"==t?["\\)","\\)"]:(this.reader.seek_set(e),this.get_token_backslash_common())}return[t,t]},B.prototype.get_token_backslash_common=function(){var t="iIkKfFpPsSdDxXoOwWhHaAlLuU";if("\\"==(n=this.reader.get()))return["\\\\","\\\\"];if(-1!=_(t,n))return["\\"+n,"\\"+n];if("_"==n){var e=this.reader.getpos();if(-1!=_(t,n=this.reader.get()))return["\\_"+n,"\\_ . c"];if("^"==n)return["\\_^","\\_^"];if("$"==n)return["\\_$","\\_$"];if("."==n)return["\\_.","\\_."];if("["==n)return this.get_token_sq("\\_[");throw I("E63: invalid use of \\_",e)}if(-1!=_("etrb",n))return["\\"+n,"\\"+n];if(-1!=_("123456789",n))return["\\"+n,"\\"+n];if("z"==n){e=this.reader.getpos();if(-1!=_("123456789",n=this.reader.get()))return["\\z"+n,"\\z"+n];if("s"==n)return["\\zs","\\zs"];if("e"==n)return["\\ze","\\ze"];if("("==n)return["\\z(","\\z("];throw I("E68: Invalid character after \\z",e)}if(-1!=_("cCmMvVZ",n))return["\\"+n,"\\"+n];if("%"==n){var n;e=this.reader.getpos();if("d"==(n=this.reader.get())){if(""!=(i=this.getdecchrs()))return["\\%d"+i,"\\%d"+i]}else if("o"==n){if(""!=(i=this.getoctchrs()))return["\\%o"+i,"\\%o"+i]}else if("x"==n){if(""!=(i=this.gethexchrs(2)))return["\\%x"+i,"\\%x"+i]}else if("u"==n){if(""!=(i=this.gethexchrs(4)))return["\\%u"+i,"\\%u"+i]}else if("U"==n){var i;if(""!=(i=this.gethexchrs(8)))return["\\%U"+i,"\\%U"+i]}throw I("E678: Invalid character after \\%[dxouU]",e)}return["\\"+n,n]},B.prototype.get_token_brace=function(t){var e="",n="",i="",r="",o="";"-"==this.reader.p(0)&&(e+=n=this.reader.get());R(this.reader.p(0))&&(e+=r=this.reader.read_digit());","==this.reader.p(0)&&(e+=i=this.rader.get());R(this.reader.p(0))&&(e+=o=this.reader.read_digit());if("\\"==this.reader.p(0)&&(e+=this.reader.get()),"}"!=this.reader.p(0))throw I("E554: Syntax error in \\{...}",this.reader.getpos());return this.reader.get(),[t+e,"\\{"+n+r+i+o+"}"]},B.prototype.get_token_sq=function(t){var e=this.reader.tell(),n="";for("^"==this.reader.p(0)&&(n+=this.reader.get()),"]"!=this.reader.p(0)&&"-"!=this.reader.p(0)||(n+=this.reader.get());;){var i=0,r=this.reader.p(0);if(this.isend(r))return this.reader.seek_set(e),[t,"["];if("]"==r)return this.reader.seek_cur(1),[t+n+"]","\\["+n+"]"];if("["==r){if(""==(o=this.get_token_sq_char_class()))if(""==(o=this.get_token_sq_equi_class()))if(""==(o=this.get_token_sq_coll_element())){var o=(l=this.get_token_sq_c())[0];i=l[1]}n+=o}else{o=(l=this.get_token_sq_c())[0],i=l[1];n+=o}if(0!=i&&"-"==this.reader.p(0)&&!this.isend(this.reader.p(1))&&("\\"!=this.reader.p(1)||"n"!=this.reader.p(2))){if(this.reader.seek_cur(1),n+="-","["==(r=this.reader.p(0))){if(""!=(o=this.get_token_sq_coll_element()))var s=a(o[2]);else o=(l=this.get_token_sq_c())[0],s=l[1];n+=o}else{var l;o=(l=this.get_token_sq_c())[0],s=l[1];n+=o}if(i>s||s>i+256)throw I("E16: Invalid range",this.reader.getpos())}}},B.prototype.get_token_sq_c=function(){if("\\"==(t=this.reader.p(0))){if(this.reader.seek_cur(1),"n"==(t=this.reader.p(0)))return this.reader.seek_cur(1),["\\n",0];if("r"==t)return this.reader.seek_cur(1),["\\r",13];if("t"==t)return this.reader.seek_cur(1),["\\t",9];if("e"==t)return this.reader.seek_cur(1),["\\e",27];if("b"==t)return this.reader.seek_cur(1),["\\b",8];if(-1!=_("]^-\\",t))return this.reader.seek_cur(1),["\\"+t,a(t)];if(-1!=_("doxuU",t)){var t,e=this.get_token_sq_coll_char();return[t=e[0],e[1]]}return["\\",a("\\")]}return"-"==t?(this.reader.seek_cur(1),["-",a("-")]):(this.reader.seek_cur(1),[t,a(t)])},B.prototype.get_token_sq_coll_char=function(){var t=this.reader.tell(),e=this.reader.get();if("d"==e)var n=x(i=this.getdecchrs(),10);else if("o"==e)n=x(i=this.getoctchrs(),8);else if("x"==e)n=x(i=this.gethexchrs(2),16);else if("u"==e)n=x(i=this.gethexchrs(4),16);else if("U"==e)n=x(i=this.gethexchrs(8),16);else var i="";return""==i?(this.reader.seek_set(t),"\\"):["\\"+e+i,n]},B.prototype.get_token_sq_coll_element=function(){return"["!=this.reader.p(0)||"."!=this.reader.p(1)||this.isend(this.reader.p(2))||"."!=this.reader.p(3)||"]"!=this.reader.p(4)?"":this.reader.getn(5)},B.prototype.get_token_sq_equi_class=function(){return"["!=this.reader.p(0)||"="!=this.reader.p(1)||this.isend(this.reader.p(2))||"="!=this.reader.p(3)||"]"!=this.reader.p(4)?"":this.reader.getn(5)},B.prototype.get_token_sq_char_class=function(){var t=this.reader.tell();if("["==this.reader.p(0)&&":"==this.reader.p(1)){this.reader.seek_cur(2);var e=this.reader.read_alpha();if(":"==this.reader.p(0)&&"]"==this.reader.p(1)){this.reader.seek_cur(2);for(var n=["alnum","alpha","blank","cntrl","digit","graph","lower","print","punct","space","upper","xdigit","tab","return","backspace","escape"],i=0;i<n.length;++i){var r=n[i];if(e==r)return"[:"+r+":]"}}}return this.reader.seek_set(t),""},B.prototype.get_token_at=function(t){var e=this.reader.getpos();if(">"==(n=this.reader.get()))return[t+">","\\@>"];if("="==n)return[t+"=","\\@="];if("!"==n)return[t+"!","\\@!"];if("<"==n){var n;if("="==(n=this.reader.get()))return[t+"<=","\\@<="];if("!"==n)return[t+"<!","\\@<!"]}throw I("E64: @ follows nothing",e)},B.prototype.get_token_percent=function(t){var e=this.reader.get();return"^"==e?[t+"^","\\%^"]:"$"==e?[t+"$","\\%$"]:"V"==e?[t+"V","\\%V"]:"#"==e?[t+"#","\\%#"]:"["==e?this.get_token_percent_sq(t+"["):"("==e?[t+"(","\\%("]:this.get_token_mlcv(t)},B.prototype.get_token_percent_sq=function(t){for(var e="";;){var n=this.reader.peek();if(this.isend(n))throw I("E69: Missing ] after \\%[",this.reader.getpos());if("]"==n){if(""==e)throw I("E70: Empty \\%[",this.reader.getpos());this.reader.seek_cur(1);break}this.reader.seek_cur(1),e+=n}return[t+e+"]","\\%["+e+"]"]},B.prototype.get_token_mlvc=function(t){var e="",n="";"<"!=this.reader.p(0)&&">"!=this.reader.p(0)||(e+=n=this.reader.get());if("'"==this.reader.p(0)){e+=this.reader.get();var i=this.reader.p(0);if(this.isend(i))i="";else i=this.reader.get();return[t+e+i,"\\%"+n+"'"+i]}if(R(this.reader.p(0))){var r=this.reader.read_digit();if(e+=r,"l"==(i=this.reader.p(0)))return this.reader.get(),[t+e+"l","\\%"+n+r+"l"];if("c"==i)return this.reader.get(),[t+e+"c","\\%"+n+r+"c"];if("v"==i)return this.reader.get(),[t+e+"v","\\%"+n+r+"v"]}throw I("E71: Invalid character after %",this.reader.getpos())},B.prototype.getdecchrs=function(){return this.reader.read_digit()},B.prototype.getoctchrs=function(){return this.reader.read_odigit()},B.prototype.gethexchrs=function(t){for(var e="",n=f(t),i=0;i<n.length;++i){n[i];if(!F(this.reader.peek()))break;e+=this.reader.get()}return e},n.c[n.s]===t?function(){var t=!1,n="",i=process.argv;4==i.length?("--neovim"==i[2]&&(t=!0),n=i[3]):3==i.length&&(t=!1,n=i[2]);var r,o=new M((r=n,e.readFileSync(r,"utf-8").split(/\r\n|\r|\n/))),a=new $(t),s=new P;try{var l=s.compile(a.parse(o));for(var c in l)process.stdout.write(l[c]+"\n")}catch(t){process.stdout.write(t+"\n")}}():t.exports={VimLParser:$,StringReader:M,Compiler:P}}).call(this,n(54)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.errorLinePattern=/[^:]+:\s*(.+?):\s*line\s*([0-9]+)\s*col\s*([0-9]+)/,e.commentPattern=/^[ \t]*("|')/,e.keywordPattern=/[\w#&$<>.:]/,e.builtinFunctionPattern=/^((<SID>|\b(v|g|b|s|l|a):)?[\w#&]+)[ \t]*\([^)]*\)/,e.wordPrePattern=/^.*?(((<SID>|\b(v|g|b|s|l|a):)?[\w#&$.]+)|(<SID>|<SID|<SI|<S|<|\b(v|g|b|s|l|a):))$/,e.wordNextPattern=/^((SID>|ID>|D>|>|<SID>|\b(v|g|b|s|l|a):)?[\w#&$.]+|(:[\w#&$.]+)).*?(\r\n|\r|\n)?$/,e.colorschemePattern=/\bcolorscheme[ \t]+\w*$/,e.mapCommandPattern=/^([ \t]*(\[ \t]*)?)\w*map[ \t]+/,e.highlightLinkPattern=/^[ \t]*(hi|highlight)[ \t]+link([ \t]+[^ \t]+)*[ \t]*$/,e.highlightPattern=/^[ \t]*(hi|highlight)([ \t]+[^ \t]+)*[ \t]*$/,e.highlightValuePattern=/^[ \t]*(hi|highlight)([ \t]+[^ \t]+)*[ \t]+([^ \t=]+)=[^ \t=]*$/,e.autocmdPattern=/^[ \t]*(au|autocmd)!?[ \t]+([^ \t,]+,)*[^ \t,]*$/,e.builtinVariablePattern=[/\bv:\w*$/],e.optionPattern=[/(^|[ \t]+)&\w*$/,/(^|[ \t]+)set(l|local|g|global)?[ \t]+\w+$/],e.notFunctionPattern=[/^[ \t]*\\$/,/^[ \t]*\w+$/,/^[ \t]*"/,/(let|set|colorscheme)[ \t][^ \t]*$/,/[^([,\\ \t\w#>]\w*$/,/^[ \t]*(hi|highlight)([ \t]+link)?([ \t]+[^ \t]+)*[ \t]*$/,e.autocmdPattern],e.commandPattern=[/(^|[ \t]):\w+$/,/^[ \t]*\w+$/,/:?silent!?[ \t]\w+/],e.featurePattern=[/\bhas\([ \t]*["']\w*/],e.expandPattern=[/\bexpand\(['"]<\w*$/,/\bexpand\([ \t]*['"]\w*$/],e.notIdentifierPattern=[e.commentPattern,/("|'):\w*$/,/^[ \t]*\\$/,/^[ \t]*call[ \t]+[^ \t()]*$/,/('|"|#|&|\$|<)\w*$/]},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i,r=n(44);e.default={init:function(t){i=t},get iskeyword(){return i&&i.iskeyword||""},get vimruntime(){return i&&i.vimruntime||""},get runtimepath(){return i&&i.runtimepath||[]},get diagnostic(){return i&&i.diagnostic||{enable:!0}},get snippetSupport(){return i&&i.snippetSupport||!1},get suggest(){return i&&i.suggest||{fromRuntimepath:!1,fromVimruntime:!0}},get indexes(){var t={runtimepath:!0,gap:100,count:1,projectRootPatterns:r.projectRootPatterns};return i&&i.indexes?(void 0!==i.indexes.gap&&(t.gap=i.indexes.gap),void 0!==i.indexes.count&&(t.count=i.indexes.count),void 0!==i.indexes.projectRootPatterns&&Array.isArray(i.indexes.projectRootPatterns)&&i.indexes.projectRootPatterns.length&&(t.projectRootPatterns=i.indexes.projectRootPatterns),t):t}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),r=n(58);e.documents=new i.TextDocuments(r.TextDocument)},function(t,e,n){"use strict";n.r(e),n.d(e,"TextDocument",(function(){return i}));var i,r=function(){function t(t,e,n,i){this._uri=t,this._languageId=e,this._version=n,this._content=i,this._lineOffsets=void 0}return Object.defineProperty(t.prototype,"uri",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"languageId",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"version",{get:function(){return this._version},enumerable:!0,configurable:!0}),t.prototype.getText=function(t){if(t){var e=this.offsetAt(t.start),n=this.offsetAt(t.end);return this._content.substring(e,n)}return this._content},t.prototype.update=function(e,n){for(var i=0,r=e;i<r.length;i++){var s=r[i];if(t.isIncremental(s)){var l=a(s.range),c=this.offsetAt(l.start),u=this.offsetAt(l.end);this._content=this._content.substring(0,c)+s.text+this._content.substring(u,this._content.length);var d=Math.max(l.start.line,0),m=Math.max(l.end.line,0),h=this._lineOffsets,p=o(s.text,!1,c);if(m-d===p.length)for(var f=0,g=p.length;f<g;f++)h[f+d+1]=p[f];else p.length<1e4?h.splice.apply(h,[d+1,m-d].concat(p)):this._lineOffsets=h=h.slice(0,d+1).concat(p,h.slice(m+1));var b=s.text.length-(u-c);if(0!==b)for(f=d+1+p.length,g=h.length;f<g;f++)h[f]=h[f]+b}else{if(!t.isFull(s))throw new Error("Unknown change event received");this._content=s.text,this._lineOffsets=void 0}}this._version=n},t.prototype.getLineOffsets=function(){return void 0===this._lineOffsets&&(this._lineOffsets=o(this._content,!0)),this._lineOffsets},t.prototype.positionAt=function(t){t=Math.max(Math.min(t,this._content.length),0);var e=this.getLineOffsets(),n=0,i=e.length;if(0===i)return{line:0,character:t};for(;n<i;){var r=Math.floor((n+i)/2);e[r]>t?i=r:n=r+1}var o=n-1;return{line:o,character:t-e[o]}},t.prototype.offsetAt=function(t){var e=this.getLineOffsets();if(t.line>=e.length)return this._content.length;if(t.line<0)return 0;var n=e[t.line],i=t.line+1<e.length?e[t.line+1]:this._content.length;return Math.max(Math.min(n+t.character,i),n)},Object.defineProperty(t.prototype,"lineCount",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),t.isIncremental=function(t){var e=t;return null!=e&&"string"==typeof e.text&&void 0!==e.range&&(void 0===e.rangeLength||"number"==typeof e.rangeLength)},t.isFull=function(t){var e=t;return null!=e&&"string"==typeof e.text&&void 0===e.range&&void 0===e.rangeLength},t}();function o(t,e,n){void 0===n&&(n=0);for(var i=e?[n]:[],r=0;r<t.length;r++){var o=t.charCodeAt(r);13!==o&&10!==o||(13===o&&r+1<t.length&&10===t.charCodeAt(r+1)&&r++,i.push(n+r+1))}return i}function a(t){var e=t.start,n=t.end;return e.line>n.line||e.line===n.line&&e.character>n.character?{start:n,end:e}:t}function s(t){var e=a(t.range);return e!==t.range?{newText:t.newText,range:e}:t}!function(t){t.create=function(t,e,n,i){return new r(t,e,n,i)},t.update=function(t,e,n){if(t instanceof r)return t.update(e,n),t;throw new Error("TextDocument.update: document must be created by TextDocument.create")},t.applyEdits=function(t,e){for(var n=t.getText(),i=0,r=[],o=0,a=function t(e,n){if(e.length<=1)return e;var i=e.length/2|0;var r=e.slice(0,i);var o=e.slice(i);t(r,n);t(o,n);var a=0;var s=0;var l=0;for(;a<r.length&&s<o.length;){var c=n(r[a],o[s]);e[l++]=c<=0?r[a++]:o[s++]}for(;a<r.length;)e[l++]=r[a++];for(;s<o.length;)e[l++]=o[s++];return e}(e.map(s),(function(t,e){var n=t.range.start.line-e.range.start.line;return 0===n?t.range.start.character-e.range.start.character:n}));o<a.length;o++){var l=a[o],c=t.offsetAt(l.range.start);if(c<i)throw new Error("Overlapping edit");c>i&&r.push(n.substring(i,c)),l.newText.length&&r.push(l.newText),i=t.offsetAt(l.range.end)}return r.push(n.substr(i)),r.join("")}}(i||(i={}))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(55),r=n(60);n(141).useProvider((function(t){return i.autocmdPattern.test(t)?r.builtinDocs.getVimAutocmds().filter((function(e){return-1===t.indexOf(e.label)})):[]}))},function(t,e,n){"use strict";var i=this&&this.__assign||function(){return(i=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)},r=this&&this.__awaiter||function(t,e,n,i){return new(n||(n=Promise))((function(r,o){function a(t){try{l(i.next(t))}catch(t){o(t)}}function s(t){try{l(i.throw(t))}catch(t){o(t)}}function l(t){var e;t.done?r(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,s)}l((i=i.apply(t,e||[])).next())}))},o=this&&this.__generator||function(t,e){var n,i,r,o,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,i&&(r=2&o[0]?i.return:o[0]?i.throw||((r=i.return)&&r.call(i),0):i.next)&&!(r=r.call(i,o[1])).done)return r;switch(i=0,r&&(o=[2&o[0],r.value]),o[0]){case 0:case 1:r=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,i=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]<r[3])){a.label=o[1];break}if(6===o[0]&&a.label<r[1]){a.label=r[1],r=o;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(o);break}r[2]&&a.ops.pop(),a.trys.pop();continue}o=e.call(t,a)}catch(t){o=[6,t],i=0}finally{n=r=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}},a=this&&this.__spreadArrays||function(){for(var t=0,e=0,n=arguments.length;e<n;e++)t+=arguments[e].length;var i=Array(t),r=0;for(e=0;e<n;e++)for(var o=arguments[e],a=0,s=o.length;a<s;a++,r++)i[r]=o[a];return i},s=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var l=s(n(61)),c=s(n(13)),u=n(2),d=s(n(138)),m=n(55),h=n(47),p=s(n(140)),f=s(n(56)),g=d.default("builtin"),b=function(){function t(){this.vimPredefinedVariablesItems=[],this.vimOptionItems=[],this.vimBuiltinFunctionItems=[],this.vimBuiltinFunctionMap={},this.vimCommandItems=[],this.vimMapArgsItems=[],this.vimFeatureItems=[],this.vimAutocmdItems=[],this.expandKeywordItems=[],this.colorschemeItems=[],this.highlightArgKeys=[],this.highlightArgValues={},this.vimBuiltFunctionSignatureHelp={},this.vimBuiltFunctionDocuments={},this.vimOptionDocuments={},this.vimPredefinedVariableDocuments={},this.vimCommandDocuments={},this.vimFeatureDocuments={},this.expandKeywordDocuments={}}return t.prototype.init=function(){this.start()},t.prototype.getPredefinedVimVariables=function(){return this.vimPredefinedVariablesItems},t.prototype.getVimOptions=function(){return this.vimOptionItems},t.prototype.getBuiltinVimFunctions=function(){return this.vimBuiltinFunctionItems},t.prototype.isBuiltinFunction=function(t){return this.vimBuiltinFunctionMap[t]},t.prototype.getExpandKeywords=function(){return this.expandKeywordItems},t.prototype.getVimCommands=function(){return this.vimCommandItems},t.prototype.getVimMapArgs=function(){return this.vimMapArgsItems},t.prototype.getVimFeatures=function(){return this.vimFeatureItems},t.prototype.getVimAutocmds=function(){return this.vimAutocmdItems},t.prototype.getColorschemes=function(){return this.colorschemeItems},t.prototype.getHighlightArgKeys=function(){return this.highlightArgKeys},t.prototype.getHighlightArgValues=function(){return this.highlightArgValues},t.prototype.getSignatureHelpByName=function(t,e){var n=this.vimBuiltFunctionSignatureHelp[t];if(n)return{signatures:[{label:t+"("+n[0]+")"+(n[1]?": "+n[1]:""),documentation:this.formatVimDocument(this.vimBuiltFunctionDocuments[t]),parameters:n[0].split("[")[0].split(",").map((function(t){return{label:t.trim()}}))}],activeSignature:0,activeParameter:e}},t.prototype.getDocumentByCompletionItem=function(t){switch(t.kind){case u.CompletionItemKind.Variable:return this.vimPredefinedVariableDocuments[t.label]?i(i({},t),{documentation:this.formatVimDocument(this.vimPredefinedVariableDocuments[t.label])}):t;case u.CompletionItemKind.Property:return this.vimOptionDocuments[t.label]?i(i({},t),{documentation:this.formatVimDocument(this.vimOptionDocuments[t.label])}):t;case u.CompletionItemKind.Function:return this.vimBuiltFunctionDocuments[t.label]?i(i({},t),{documentation:this.formatVimDocument(this.vimBuiltFunctionDocuments[t.label])}):t;case u.CompletionItemKind.EnumMember:return this.vimFeatureDocuments[t.label]?i(i({},t),{documentation:this.formatVimDocument(this.vimFeatureDocuments[t.label])}):t;case u.CompletionItemKind.Operator:return this.vimCommandDocuments[t.label]?i(i({},t),{documentation:this.formatVimDocument(this.vimCommandDocuments[t.label])}):t;default:return t}},t.prototype.getHoverDocument=function(t,e,n){return h.isSomeMatchPattern(m.builtinVariablePattern,e)&&this.vimPredefinedVariableDocuments[t]?{contents:this.formatVimDocument(this.vimPredefinedVariableDocuments[t])}:h.isSomeMatchPattern(m.optionPattern,e)&&(this.vimOptionDocuments[t]||this.vimOptionDocuments[t.slice(1)])?{contents:this.formatVimDocument(this.vimOptionDocuments[t]||this.vimOptionDocuments[t.slice(1)])}:m.builtinFunctionPattern.test(n)&&this.vimBuiltFunctionDocuments[t]?{contents:this.formatVimDocument(this.vimBuiltFunctionDocuments[t])}:h.isSomeMatchPattern(m.featurePattern,e)&&this.vimFeatureDocuments[t]?{contents:this.formatVimDocument(this.vimFeatureDocuments[t])}:h.isSomeMatchPattern(m.expandPattern,e)&&this.expandKeywordDocuments["<"+t+">"]?{contents:this.formatVimDocument(this.expandKeywordDocuments["<"+t+">"])}:h.isSomeMatchPattern(m.commandPattern,e)&&this.vimCommandDocuments[t]?{contents:this.formatVimDocument(this.vimCommandDocuments[t])}:void 0},t.prototype.start=function(){return r(this,void 0,void 0,(function(){var t,e,n=this;return o(this,(function(i){(t=f.default.runtimepath)&&this.resolveColorschemes(t),this.resolveMapArgs(),this.resolveHighlightArgKeys(),this.resolveHighlightArgValues();try{e=p.default,this.vimBuiltinFunctionItems=e.completionItems.functions,this.vimBuiltinFunctionItems.forEach((function(t){n.vimBuiltinFunctionMap[t.label]||(n.vimBuiltinFunctionMap[t.label]=!0)})),this.vimBuiltFunctionDocuments=e.documents.functions,this.vimCommandItems=e.completionItems.commands,this.vimCommandDocuments=e.documents.commands,this.vimPredefinedVariablesItems=e.completionItems.variables,this.vimPredefinedVariableDocuments=e.documents.variables,this.vimOptionItems=e.completionItems.options,this.vimOptionDocuments=e.documents.options,this.vimFeatureItems=e.completionItems.features,this.vimAutocmdItems=e.completionItems.autocmds,this.vimFeatureDocuments=e.documents.features,this.expandKeywordItems=e.completionItems.expandKeywords,this.expandKeywordDocuments=e.documents.expandKeywords,this.vimBuiltFunctionSignatureHelp=e.signatureHelp}catch(t){g.error("[vimls]: parse docs/builtin-doc.json fail => "+(t.message||t))}return[2]}))}))},t.prototype.formatVimDocument=function(t){var e=0;return{kind:u.MarkupKind.Markdown,value:a(["```help"],t.map((function(t){if(0===e){var n=t.match(/^([ \t]+)/);n&&(e=n[1].length)}return t.replace(new RegExp("^[ \\t]{"+e+"}","g"),"").replace(/\t/g," ")})),["```"]).join("\n")}},t.prototype.resolveMapArgs=function(){this.vimMapArgsItems=["<buffer>","<nowait>","<silent>","<script>","<expr>","<unique>"].map((function(t){return{label:t,kind:u.CompletionItemKind.EnumMember,documentation:"",insertText:t,insertTextFormat:u.InsertTextFormat.PlainText}}))},t.prototype.resolveColorschemes=function(t){return r(this,void 0,void 0,(function(){var e,n,i,r;return o(this,(function(o){switch(o.label){case 0:e=t,f.default.vimruntime&&e.push(f.default.vimruntime),n=t.map((function(t){return c.default.join(t.trim(),"colors/*.vim")})),i=[],o.label=1;case 1:return o.trys.push([1,3,,4]),[4,l.default(n,{onlyFiles:!1,deep:0})];case 2:return i=o.sent(),[3,4];case 3:return r=o.sent(),g.error(["Index Colorschemes Error: "+JSON.stringify(n),"Error => "+(r.stack||r.message||r)].join("\n")),[3,4];case 4:return this.colorschemeItems=i.map((function(t){var e=c.default.basename(t,".vim");return{label:e,kind:u.CompletionItemKind.EnumMember,insertText:e,insertTextFormat:u.InsertTextFormat.PlainText}})),[2]}}))}))},t.prototype.resolveHighlightArgKeys=function(){this.highlightArgKeys=["cterm","start","stop","ctermfg","ctermbg","gui","font","guifg","guibg","guisp","blend"].map((function(t){return{label:t,kind:u.CompletionItemKind.EnumMember,documentation:"",insertText:t+"=${0}",insertTextFormat:u.InsertTextFormat.Snippet}}))},t.prototype.resolveHighlightArgValues=function(){var t={cterm:["bold","underline","undercurl","reverse","inverse","italic","standout","NONE"],"ctermfg ctermbg":["Black","DarkBlue","DarkGreen","DarkCyan","DarkRed","DarkMagenta","Brown","DarkYellow","LightGray","LightGrey","Gray","Grey","DarkGray","DarkGrey","Blue","LightBlue","Green","LightGreen","Cyan","LightCyan","Red","LightRed","Magenta","LightMagenta","Yellow","LightYellow","White"],"guifg guibg guisp":["NONE","bg","background","fg","foreground","Red","LightRed","DarkRed","Green","LightGreen","DarkGreen","SeaGreen","Blue","LightBlue","DarkBlue","SlateBlue","Cyan","LightCyan","DarkCyan","Magenta","LightMagenta","DarkMagenta","Yellow","LightYellow","Brown","DarkYellow","Gray","LightGray","DarkGray","Black","White","Orange","Purple","Violet"]},e={};Object.keys(t).forEach((function(n){var i=t[n].map((function(t){return{label:t,kind:u.CompletionItemKind.EnumMember,documentation:"",insertText:t,insertTextFormat:u.InsertTextFormat.PlainText}}));n.split(" ").forEach((function(t){e[t]=i}))})),this.highlightArgValues=e},t}();e.builtinDocs=new b},function(t,e,n){"use strict";const i=n(62),r=n(99),o=n(134),a=n(135),s=n(137),l=n(63);async function c(t,e){d(t);const n=u(t,r.default,e),i=await Promise.all(n);return l.array.flatten(i)}function u(t,e,n){const r=[].concat(t),o=new s.default(n),a=i.generate(r,o),l=new e(o);return a.map(l.read,l)}function d(t){if(![].concat(t).every(t=>l.string.isString(t)&&!l.string.isEmpty(t)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}!function(t){t.sync=function(t,e){d(t);const n=u(t,a.default,e);return l.array.flatten(n)},t.stream=function(t,e){d(t);const n=u(t,o.default,e);return l.stream.merge(n)},t.generateTasks=function(t,e){d(t);const n=[].concat(t),r=new s.default(e);return i.generate(n,r)},t.isDynamicPattern=function(t,e){d(t);const n=new s.default(e);return l.pattern.isDynamicPattern(t,n)},t.escapePath=function(t){return d(t),l.path.escape(t)}}(c||(c={})),t.exports=c},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(63);function r(t,e,n){const i=s(t);if("."in i){return[c(".",t,e,n)]}return l(i,e,n)}function o(t){return i.pattern.getPositivePatterns(t)}function a(t,e){return i.pattern.getNegativePatterns(t).concat(e).map(i.pattern.convertToPositivePattern)}function s(t){return t.reduce((t,e)=>{const n=i.pattern.getBaseDirectory(e);return n in t?t[n].push(e):t[n]=[e],t},{})}function l(t,e,n){return Object.keys(t).map(i=>c(i,t[i],e,n))}function c(t,e,n,r){return{dynamic:r,positive:e,negative:n,base:t,patterns:[].concat(e,n.map(i.pattern.convertToNegativePattern))}}e.generate=function(t,e){const n=o(t),s=a(t,e.ignore),l=n.filter(t=>i.pattern.isStaticPattern(t,e)),c=n.filter(t=>i.pattern.isDynamicPattern(t,e)),u=r(l,s,!1),d=r(c,s,!0);return u.concat(d)},e.convertPatternsToTasks=r,e.getPositivePatterns=o,e.getNegativePatternsAsPositive=a,e.groupPatternsByBaseDirectory=s,e.convertPatternGroupsToTasks=l,e.convertPatternGroupToTask=c},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(64);e.array=i;const r=n(65);e.errno=r;const o=n(66);e.fs=o;const a=n(67);e.path=a;const s=n(68);e.pattern=s;const l=n(95);e.stream=l;const c=n(98);e.string=c},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.flatten=function(t){return t.reduce((t,e)=>[].concat(t,e),[])},e.splitWhen=function(t,e){const n=[[]];let i=0;for(const r of t)e(r)?n[++i]=[]:n[i].push(r);return n}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isEnoentCodeError=function(t){return"ENOENT"===t.code}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});class i{constructor(t,e){this.name=t,this.isBlockDevice=e.isBlockDevice.bind(e),this.isCharacterDevice=e.isCharacterDevice.bind(e),this.isDirectory=e.isDirectory.bind(e),this.isFIFO=e.isFIFO.bind(e),this.isFile=e.isFile.bind(e),this.isSocket=e.isSocket.bind(e),this.isSymbolicLink=e.isSymbolicLink.bind(e)}}e.createDirentFromStats=function(t,e){return new i(t,e)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(13),r=2,o=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;e.unixify=function(t){return t.replace(/\\/g,"/")},e.makeAbsolute=function(t,e){return i.resolve(t,e)},e.escape=function(t){return t.replace(o,"\\$2")},e.removeLeadingDotSegment=function(t){if("."===t.charAt(0)){const e=t.charAt(1);if("/"===e||"\\"===e)return t.slice(r)}return t}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(13),r=n(69),o=n(72),a=n(89),s="**",l="\\",c=/[*?]|^!/,u=/\[.*]/,d=/(?:^|[^!*+?@])\(.*\|.*\)/,m=/[!*+?@]\(.*\)/,h=/{.*(?:,|\.\.).*}/;function p(t,e={}){return!f(t,e)}function f(t,e={}){return!(!1!==e.caseSensitiveMatch&&!t.includes(l))||(!!(c.test(t)||u.test(t)||d.test(t))||(!(!1===e.extglob||!m.test(t))||!(!1===e.braceExpansion||!h.test(t))))}function g(t){return t.startsWith("!")&&"("!==t[1]}function b(t){return!g(t)}function x(t){return t.endsWith("/"+s)}function w(t){return o.braces(t,{expand:!0,nodupes:!0})}function T(t,e){return o.makeRe(t,e)}e.isStaticPattern=p,e.isDynamicPattern=f,e.convertToPositivePattern=function(t){return g(t)?t.slice(1):t},e.convertToNegativePattern=function(t){return"!"+t},e.isNegativePattern=g,e.isPositivePattern=b,e.getNegativePatterns=function(t){return t.filter(g)},e.getPositivePatterns=function(t){return t.filter(b)},e.getBaseDirectory=function(t){return r(t,{flipBackslashes:!1})},e.hasGlobStar=function(t){return t.includes(s)},e.endsWithSlashGlobStar=x,e.isAffectDepthOfReadingPattern=function(t){const e=i.basename(t);return x(t)||p(e)},e.expandPatternsWithBraceExpansion=function(t){return t.reduce((t,e)=>t.concat(w(e)),[])},e.expandBraceExpansion=w,e.getPatternParts=function(t,e){const n=a.scan(t,Object.assign(Object.assign({},e),{parts:!0}));return 0===n.parts.length?[t]:n.parts},e.makeRe=T,e.convertPatternsToRe=function(t,e){return t.map(t=>T(t,e))},e.matchAny=function(t,e){return e.some(e=>e.test(t))}},function(t,e,n){"use strict";var i=n(70),r=n(13).posix.dirname,o="win32"===n(14).platform(),a=/\\/g,s=/[\{\[].*[\/]*.*[\}\]]$/,l=/(^|[^\\])([\{\[]|\([^\)]+$)/,c=/\\([\!\*\?\|\[\]\(\)\{\}])/g;t.exports=function(t,e){Object.assign({flipBackslashes:!0},e).flipBackslashes&&o&&t.indexOf("/")<0&&(t=t.replace(a,"/")),s.test(t)&&(t+="/"),t+="a";do{t=r(t)}while(i(t)||l.test(t));return t.replace(c,"$1")}},function(t,e,n){
  3. /*!
  4. * is-glob <https://github.com/jonschlinkert/is-glob>
  5. *
  6. * Copyright (c) 2014-2017, Jon Schlinkert.
  7. * Released under the MIT License.
  8. */
  9. var i=n(71),r={"{":"}","(":")","[":"]"},o=/\\(.)|(^!|\*|[\].+)]\?|\[[^\\\]]+\]|\{[^\\}]+\}|\(\?[:!=][^\\)]+\)|\([^|]+\|[^\\)]+\))/,a=/\\(.)|(^!|[*?{}()[\]]|\(\?)/;t.exports=function(t,e){if("string"!=typeof t||""===t)return!1;if(i(t))return!0;var n,s=o;for(e&&!1===e.strict&&(s=a);n=s.exec(t);){if(n[2])return!0;var l=n.index+n[0].length,c=n[1],u=c?r[c]:null;if(c&&u){var d=t.indexOf(u,l);-1!==d&&(l=d+1)}t=t.slice(l)}return!1}},function(t,e){
  10. /*!
  11. * is-extglob <https://github.com/jonschlinkert/is-extglob>
  12. *
  13. * Copyright (c) 2014-2016, Jon Schlinkert.
  14. * Licensed under the MIT License.
  15. */
  16. t.exports=function(t){if("string"!=typeof t||""===t)return!1;for(var e;e=/(\\).|([@?!+*]\(.*\))/g.exec(t);){if(e[2])return!0;t=t.slice(e.index+e[0].length)}return!1}},function(t,e,n){"use strict";const i=n(49),r=n(73),o=n(83),a=n(86),s=t=>"string"==typeof t&&(""===t||"./"===t),l=(t,e,n)=>{e=[].concat(e),t=[].concat(t);let i=new Set,r=new Set,a=new Set,s=0,l=t=>{a.add(t.output),n&&n.onResult&&n.onResult(t)};for(let a=0;a<e.length;a++){let c=o(String(e[a]),{...n,onResult:l},!0),u=c.state.negated||c.state.negatedExtglob;u&&s++;for(let e of t){let t=c(e,!0);(u?!t.isMatch:t.isMatch)&&(u?i.add(t.output):(i.delete(t.output),r.add(t.output)))}}let c=(s===e.length?[...a]:[...r]).filter(t=>!i.has(t));if(n&&0===c.length){if(!0===n.failglob)throw new Error(`No matches found for "${e.join(", ")}"`);if(!0===n.nonull||!0===n.nullglob)return n.unescape?e.map(t=>t.replace(/\\/g,"")):e}return c};l.match=l,l.matcher=(t,e)=>o(t,e),l.any=l.isMatch=(t,e,n)=>o(e,n)(t),l.not=(t,e,n={})=>{e=[].concat(e).map(String);let i=new Set,r=[],o=l(t,e,{...n,onResult:t=>{n.onResult&&n.onResult(t),r.push(t.output)}});for(let t of r)o.includes(t)||i.add(t);return[...i]},l.contains=(t,e,n)=>{if("string"!=typeof t)throw new TypeError(`Expected a string: "${i.inspect(t)}"`);if(Array.isArray(e))return e.some(e=>l.contains(t,e,n));if("string"==typeof e){if(s(t)||s(e))return!1;if(t.includes(e)||t.startsWith("./")&&t.slice(2).includes(e))return!0}return l.isMatch(t,e,{...n,contains:!0})},l.matchKeys=(t,e,n)=>{if(!a.isObject(t))throw new TypeError("Expected the first argument to be an object");let i=l(Object.keys(t),e,n),r={};for(let e of i)r[e]=t[e];return r},l.some=(t,e,n)=>{let i=[].concat(t);for(let t of[].concat(e)){let e=o(String(t),n);if(i.some(t=>e(t)))return!0}return!1},l.every=(t,e,n)=>{let i=[].concat(t);for(let t of[].concat(e)){let e=o(String(t),n);if(!i.every(t=>e(t)))return!1}return!0},l.all=(t,e,n)=>{if("string"!=typeof t)throw new TypeError(`Expected a string: "${i.inspect(t)}"`);return[].concat(e).every(e=>o(e,n)(t))},l.capture=(t,e,n)=>{let i=a.isWindows(n),r=o.makeRe(String(t),{...n,capture:!0}).exec(i?a.toPosixSlashes(e):e);if(r)return r.slice(1).map(t=>void 0===t?"":t)},l.makeRe=(...t)=>o.makeRe(...t),l.scan=(...t)=>o.scan(...t),l.parse=(t,e)=>{let n=[];for(let i of[].concat(t||[]))for(let t of r(String(i),e))n.push(o.parse(t,e));return n},l.braces=(t,e)=>{if("string"!=typeof t)throw new TypeError("Expected a string");return e&&!0===e.nobrace||!/\{.*\}/.test(t)?[t]:r(t,e)},l.braceExpand=(t,e)=>{if("string"!=typeof t)throw new TypeError("Expected a string");return l.braces(t,{...e,expand:!0})},t.exports=l},function(t,e,n){"use strict";const i=n(74),r=n(76),o=n(80),a=n(81),s=(t,e={})=>{let n=[];if(Array.isArray(t))for(let i of t){let t=s.create(i,e);Array.isArray(t)?n.push(...t):n.push(t)}else n=[].concat(s.create(t,e));return e&&!0===e.expand&&!0===e.nodupes&&(n=[...new Set(n)]),n};s.parse=(t,e={})=>a(t,e),s.stringify=(t,e={})=>i("string"==typeof t?s.parse(t,e):t,e),s.compile=(t,e={})=>("string"==typeof t&&(t=s.parse(t,e)),r(t,e)),s.expand=(t,e={})=>{"string"==typeof t&&(t=s.parse(t,e));let n=o(t,e);return!0===e.noempty&&(n=n.filter(Boolean)),!0===e.nodupes&&(n=[...new Set(n)]),n},s.create=(t,e={})=>""===t||t.length<3?[t]:!0!==e.expand?s.compile(t,e):s.expand(t,e),t.exports=s},function(t,e,n){"use strict";const i=n(75);t.exports=(t,e={})=>{let n=(t,r={})=>{let o=e.escapeInvalid&&i.isInvalidBrace(r),a=!0===t.invalid&&!0===e.escapeInvalid,s="";if(t.value)return(o||a)&&i.isOpenOrClose(t)?"\\"+t.value:t.value;if(t.value)return t.value;if(t.nodes)for(let e of t.nodes)s+=n(e);return s};return n(t)}},function(t,e,n){"use strict";e.isInteger=t=>"number"==typeof t?Number.isInteger(t):"string"==typeof t&&""!==t.trim()&&Number.isInteger(Number(t)),e.find=(t,e)=>t.nodes.find(t=>t.type===e),e.exceedsLimit=(t,n,i=1,r)=>!1!==r&&(!(!e.isInteger(t)||!e.isInteger(n))&&(Number(n)-Number(t))/Number(i)>=r),e.escapeNode=(t,e=0,n)=>{let i=t.nodes[e];i&&(n&&i.type===n||"open"===i.type||"close"===i.type)&&!0!==i.escaped&&(i.value="\\"+i.value,i.escaped=!0)},e.encloseBrace=t=>"brace"===t.type&&(t.commas>>0+t.ranges>>0==0&&(t.invalid=!0,!0)),e.isInvalidBrace=t=>"brace"===t.type&&(!(!0!==t.invalid&&!t.dollar)||(t.commas>>0+t.ranges>>0==0?(t.invalid=!0,!0):(!0!==t.open||!0!==t.close)&&(t.invalid=!0,!0))),e.isOpenOrClose=t=>"open"===t.type||"close"===t.type||(!0===t.open||!0===t.close),e.reduce=t=>t.reduce((t,e)=>("text"===e.type&&t.push(e.value),"range"===e.type&&(e.type="text"),t),[]),e.flatten=(...t)=>{const e=[],n=t=>{for(let i=0;i<t.length;i++){let r=t[i];Array.isArray(r)?n(r,e):void 0!==r&&e.push(r)}return e};return n(t),e}},function(t,e,n){"use strict";const i=n(77),r=n(75);t.exports=(t,e={})=>{let n=(t,o={})=>{let a=r.isInvalidBrace(o),s=!0===t.invalid&&!0===e.escapeInvalid,l=!0===a||!0===s,c=!0===e.escapeInvalid?"\\":"",u="";if(!0===t.isOpen)return c+t.value;if(!0===t.isClose)return c+t.value;if("open"===t.type)return l?c+t.value:"(";if("close"===t.type)return l?c+t.value:")";if("comma"===t.type)return"comma"===t.prev.type?"":l?t.value:"|";if(t.value)return t.value;if(t.nodes&&t.ranges>0){let n=r.reduce(t.nodes),o=i(...n,{...e,wrap:!1,toRegex:!0});if(0!==o.length)return n.length>1&&o.length>1?`(${o})`:o}if(t.nodes)for(let e of t.nodes)u+=n(e,t);return u};return n(t)}},function(t,e,n){"use strict";
  17. /*!
  18. * fill-range <https://github.com/jonschlinkert/fill-range>
  19. *
  20. * Copyright (c) 2014-present, Jon Schlinkert.
  21. * Licensed under the MIT License.
  22. */const i=n(49),r=n(78),o=t=>null!==t&&"object"==typeof t&&!Array.isArray(t),a=t=>"number"==typeof t||"string"==typeof t&&""!==t,s=t=>Number.isInteger(+t),l=t=>{let e=`${t}`,n=-1;if("-"===e[0]&&(e=e.slice(1)),"0"===e)return!1;for(;"0"===e[++n];);return n>0},c=(t,e,n)=>{if(e>0){let n="-"===t[0]?"-":"";n&&(t=t.slice(1)),t=n+t.padStart(n?e-1:e,"0")}return!1===n?String(t):t},u=(t,e)=>{let n="-"===t[0]?"-":"";for(n&&(t=t.slice(1),e--);t.length<e;)t="0"+t;return n?"-"+t:t},d=(t,e,n,i)=>{if(n)return r(t,e,{wrap:!1,...i});let o=String.fromCharCode(t);return t===e?o:`[${o}-${String.fromCharCode(e)}]`},m=(t,e,n)=>{if(Array.isArray(t)){let e=!0===n.wrap,i=n.capture?"":"?:";return e?`(${i}${t.join("|")})`:t.join("|")}return r(t,e,n)},h=(...t)=>new RangeError("Invalid range arguments: "+i.inspect(...t)),p=(t,e,n)=>{if(!0===n.strictRanges)throw h([t,e]);return[]},f=(t,e,n=1,i={})=>{let r=Number(t),o=Number(e);if(!Number.isInteger(r)||!Number.isInteger(o)){if(!0===i.strictRanges)throw h([t,e]);return[]}0===r&&(r=0),0===o&&(o=0);let a=r>o,s=String(t),p=String(e),f=String(n);n=Math.max(Math.abs(n),1);let g=l(s)||l(p)||l(f),b=g?Math.max(s.length,p.length,f.length):0,x=!1===g&&!1===((t,e,n)=>"string"==typeof t||"string"==typeof e||!0===n.stringify)(t,e,i),w=i.transform||(t=>e=>!0===t?Number(e):String(e))(x);if(i.toRegex&&1===n)return d(u(t,b),u(e,b),!0,i);let T={negatives:[],positives:[]},_=t=>T[t<0?"negatives":"positives"].push(Math.abs(t)),y=[],v=0;for(;a?r>=o:r<=o;)!0===i.toRegex&&n>1?_(r):y.push(c(w(r,v),b,x)),r=a?r-n:r+n,v++;return!0===i.toRegex?n>1?((t,e)=>{t.negatives.sort((t,e)=>t<e?-1:t>e?1:0),t.positives.sort((t,e)=>t<e?-1:t>e?1:0);let n,i=e.capture?"":"?:",r="",o="";return t.positives.length&&(r=t.positives.join("|")),t.negatives.length&&(o=`-(${i}${t.negatives.join("|")})`),n=r&&o?`${r}|${o}`:r||o,e.wrap?`(${i}${n})`:n})(T,i):m(y,null,{wrap:!1,...i}):y},g=(t,e,n,i={})=>{if(null==e&&a(t))return[t];if(!a(t)||!a(e))return p(t,e,i);if("function"==typeof n)return g(t,e,1,{transform:n});if(o(n))return g(t,e,0,n);let r={...i};return!0===r.capture&&(r.wrap=!0),n=n||r.step||1,s(n)?s(t)&&s(e)?f(t,e,n,r):((t,e,n=1,i={})=>{if(!s(t)&&t.length>1||!s(e)&&e.length>1)return p(t,e,i);let r=i.transform||(t=>String.fromCharCode(t)),o=`${t}`.charCodeAt(0),a=`${e}`.charCodeAt(0),l=o>a,c=Math.min(o,a),u=Math.max(o,a);if(i.toRegex&&1===n)return d(c,u,!1,i);let h=[],f=0;for(;l?o>=a:o<=a;)h.push(r(o,f)),o=l?o-n:o+n,f++;return!0===i.toRegex?m(h,null,{wrap:!1,options:i}):h})(t,e,Math.max(Math.abs(n),1),r):null==n||o(n)?g(t,e,1,n):((t,e)=>{if(!0===e.strictRanges)throw new TypeError(`Expected step "${t}" to be a number`);return[]})(n,r)};t.exports=g},function(t,e,n){"use strict";
  23. /*!
  24. * to-regex-range <https://github.com/micromatch/to-regex-range>
  25. *
  26. * Copyright (c) 2015-present, Jon Schlinkert.
  27. * Released under the MIT License.
  28. */const i=n(79),r=(t,e,n)=>{if(!1===i(t))throw new TypeError("toRegexRange: expected the first argument to be a number");if(void 0===e||t===e)return String(t);if(!1===i(e))throw new TypeError("toRegexRange: expected the second argument to be a number.");let o={relaxZeros:!0,...n};"boolean"==typeof o.strictZeros&&(o.relaxZeros=!1===o.strictZeros);let l=t+":"+e+"="+String(o.relaxZeros)+String(o.shorthand)+String(o.capture)+String(o.wrap);if(r.cache.hasOwnProperty(l))return r.cache[l].result;let c=Math.min(t,e),u=Math.max(t,e);if(1===Math.abs(c-u)){let n=t+"|"+e;return o.capture?`(${n})`:!1===o.wrap?n:`(?:${n})`}let d=p(t)||p(e),m={min:t,max:e,a:c,b:u},h=[],f=[];if(d&&(m.isPadded=d,m.maxLen=String(m.max).length),c<0){f=a(u<0?Math.abs(u):1,Math.abs(c),m,o),c=m.a=0}return u>=0&&(h=a(c,u,m,o)),m.negatives=f,m.positives=h,m.result=function(t,e,n){let i=s(t,e,"-",!1,n)||[],r=s(e,t,"",!1,n)||[],o=s(t,e,"-?",!0,n)||[];return i.concat(o).concat(r).join("|")}(f,h,o),!0===o.capture?m.result=`(${m.result})`:!1!==o.wrap&&h.length+f.length>1&&(m.result=`(?:${m.result})`),r.cache[l]=m,m.result};function o(t,e,n){if(t===e)return{pattern:t,count:[],digits:0};let i=function(t,e){let n=[];for(let i=0;i<t.length;i++)n.push([t[i],e[i]]);return n}(t,e),r=i.length,o="",a=0;for(let t=0;t<r;t++){let[e,r]=i[t];e===r?o+=e:"0"!==e||"9"!==r?o+=h(e,r,n):a++}return a&&(o+=!0===n.shorthand?"\\d":"[0-9]"),{pattern:o,count:[a],digits:r}}function a(t,e,n,i){let r,a=function(t,e){let n=1,i=1,r=u(t,n),o=new Set([e]);for(;t<=r&&r<=e;)o.add(r),r=u(t,n+=1);for(r=d(e+1,i)-1;t<r&&r<=e;)o.add(r),r=d(e+1,i+=1)-1;return(o=[...o]).sort(l),o}(t,e),s=[],c=t;for(let t=0;t<a.length;t++){let e=a[t],l=o(String(c),String(e),i),u="";n.isPadded||!r||r.pattern!==l.pattern?(n.isPadded&&(u=f(e,n,i)),l.string=u+l.pattern+m(l.count),s.push(l),c=e+1,r=l):(r.count.length>1&&r.count.pop(),r.count.push(l.count[0]),r.string=r.pattern+m(r.count),c=e+1)}return s}function s(t,e,n,i,r){let o=[];for(let r of t){let{string:t}=r;i||c(e,"string",t)||o.push(n+t),i&&c(e,"string",t)&&o.push(n+t)}return o}function l(t,e){return t>e?1:e>t?-1:0}function c(t,e,n){return t.some(t=>t[e]===n)}function u(t,e){return Number(String(t).slice(0,-e)+"9".repeat(e))}function d(t,e){return t-t%Math.pow(10,e)}function m(t){let[e=0,n=""]=t;return n||e>1?`{${e+(n?","+n:"")}}`:""}function h(t,e,n){return`[${t}${e-t==1?"":"-"}${e}]`}function p(t){return/^-?(0+)\d/.test(t)}function f(t,e,n){if(!e.isPadded)return t;let i=Math.abs(e.maxLen-String(t).length),r=!1!==n.relaxZeros;switch(i){case 0:return"";case 1:return r?"0?":"0";case 2:return r?"0{0,2}":"00";default:return r?`0{0,${i}}`:`0{${i}}`}}r.cache={},r.clearCache=()=>r.cache={},t.exports=r},function(t,e,n){"use strict";
  29. /*!
  30. * is-number <https://github.com/jonschlinkert/is-number>
  31. *
  32. * Copyright (c) 2014-present, Jon Schlinkert.
  33. * Released under the MIT License.
  34. */t.exports=function(t){return"number"==typeof t?t-t==0:"string"==typeof t&&""!==t.trim()&&(Number.isFinite?Number.isFinite(+t):isFinite(+t))}},function(t,e,n){"use strict";const i=n(77),r=n(74),o=n(75),a=(t="",e="",n=!1)=>{let i=[];if(t=[].concat(t),!(e=[].concat(e)).length)return t;if(!t.length)return n?o.flatten(e).map(t=>`{${t}}`):e;for(let r of t)if(Array.isArray(r))for(let t of r)i.push(a(t,e,n));else for(let t of e)!0===n&&"string"==typeof t&&(t=`{${t}}`),i.push(Array.isArray(t)?a(r,t,n):r+t);return o.flatten(i)};t.exports=(t,e={})=>{let n=void 0===e.rangeLimit?1e3:e.rangeLimit,s=(t,l={})=>{t.queue=[];let c=l,u=l.queue;for(;"brace"!==c.type&&"root"!==c.type&&c.parent;)u=(c=c.parent).queue;if(t.invalid||t.dollar)return void u.push(a(u.pop(),r(t,e)));if("brace"===t.type&&!0!==t.invalid&&2===t.nodes.length)return void u.push(a(u.pop(),["{}"]));if(t.nodes&&t.ranges>0){let s=o.reduce(t.nodes);if(o.exceedsLimit(...s,e.step,n))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let l=i(...s,e);return 0===l.length&&(l=r(t,e)),u.push(a(u.pop(),l)),void(t.nodes=[])}let d=o.encloseBrace(t),m=t.queue,h=t;for(;"brace"!==h.type&&"root"!==h.type&&h.parent;)m=(h=h.parent).queue;for(let e=0;e<t.nodes.length;e++){let n=t.nodes[e];"comma"!==n.type||"brace"!==t.type?"close"!==n.type?n.value&&"open"!==n.type?m.push(a(m.pop(),n.value)):n.nodes&&s(n,t):u.push(a(u.pop(),m,d)):(1===e&&m.push(""),m.push(""))}return m};return o.flatten(s(t))}},function(t,e,n){"use strict";const i=n(74),{MAX_LENGTH:r,CHAR_BACKSLASH:o,CHAR_BACKTICK:a,CHAR_COMMA:s,CHAR_DOT:l,CHAR_LEFT_PARENTHESES:c,CHAR_RIGHT_PARENTHESES:u,CHAR_LEFT_CURLY_BRACE:d,CHAR_RIGHT_CURLY_BRACE:m,CHAR_LEFT_SQUARE_BRACKET:h,CHAR_RIGHT_SQUARE_BRACKET:p,CHAR_DOUBLE_QUOTE:f,CHAR_SINGLE_QUOTE:g,CHAR_NO_BREAK_SPACE:b,CHAR_ZERO_WIDTH_NOBREAK_SPACE:x}=n(82);t.exports=(t,e={})=>{if("string"!=typeof t)throw new TypeError("Expected a string");let n=e||{},w="number"==typeof n.maxLength?Math.min(r,n.maxLength):r;if(t.length>w)throw new SyntaxError(`Input length (${t.length}), exceeds max characters (${w})`);let T,_={type:"root",input:t,nodes:[]},y=[_],v=_,k=_,R=0,F=t.length,A=0,E=0;const N=()=>t[A++],S=t=>{if("text"===t.type&&"dot"===k.type&&(k.type="text"),!k||"text"!==k.type||"text"!==t.type)return v.nodes.push(t),t.parent=v,t.prev=k,k=t,t;k.value+=t.value};for(S({type:"bos"});A<F;)if(v=y[y.length-1],(T=N())!==x&&T!==b)if(T!==o)if(T!==p)if(T!==h)if(T!==c)if(T!==u)if(T!==f&&T!==g&&T!==a)if(T!==d)if(T!==m)if(T===s&&E>0){if(v.ranges>0){v.ranges=0;let t=v.nodes.shift();v.nodes=[t,{type:"text",value:i(v)}]}S({type:"comma",value:T}),v.commas++}else if(T===l&&E>0&&0===v.commas){let t=v.nodes;if(0===E||0===t.length){S({type:"text",value:T});continue}if("dot"===k.type){if(v.range=[],k.value+=T,k.type="range",3!==v.nodes.length&&5!==v.nodes.length){v.invalid=!0,v.ranges=0,k.type="text";continue}v.ranges++,v.args=[];continue}if("range"===k.type){t.pop();let e=t[t.length-1];e.value+=k.value+T,k=e,v.ranges--;continue}S({type:"dot",value:T})}else S({type:"text",value:T});else{if("brace"!==v.type){S({type:"text",value:T});continue}let t="close";(v=y.pop()).close=!0,S({type:t,value:T}),E--,v=y[y.length-1]}else{E++;let t=k.value&&"$"===k.value.slice(-1)||!0===v.dollar;v=S({type:"brace",open:!0,close:!1,dollar:t,depth:E,commas:0,ranges:0,nodes:[]}),y.push(v),S({type:"open",value:T})}else{let t,n=T;for(!0!==e.keepQuotes&&(T="");A<F&&(t=N());)if(t!==o){if(t===n){!0===e.keepQuotes&&(T+=t);break}T+=t}else T+=t+N();S({type:"text",value:T})}else{if("paren"!==v.type){S({type:"text",value:T});continue}v=y.pop(),S({type:"text",value:T}),v=y[y.length-1]}else v=S({type:"paren",nodes:[]}),y.push(v),S({type:"text",value:T});else{R++;let t;for(;A<F&&(t=N());)if(T+=t,t!==h)if(t!==o){if(t===p&&0===--R)break}else T+=N();else R++;S({type:"text",value:T})}else S({type:"text",value:"\\"+T});else S({type:"text",value:(e.keepEscaping?T:"")+N()});do{if("root"!==(v=y.pop()).type){v.nodes.forEach(t=>{t.nodes||("open"===t.type&&(t.isOpen=!0),"close"===t.type&&(t.isClose=!0),t.nodes||(t.type="text"),t.invalid=!0)});let t=y[y.length-1],e=t.nodes.indexOf(v);t.nodes.splice(e,1,...v.nodes)}}while(y.length>0);return S({type:"eos"}),_}},function(t,e,n){"use strict";t.exports={MAX_LENGTH:65536,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:"\n",CHAR_NO_BREAK_SPACE:" ",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:"\t",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\ufeff"}},function(t,e,n){"use strict";t.exports=n(84)},function(t,e,n){"use strict";const i=n(13),r=n(85),o=n(88),a=n(86),s=(t,e,n=!1)=>{if(Array.isArray(t)){let i=t.map(t=>s(t,e,n));return t=>{for(let e of i){let n=e(t);if(n)return n}return!1}}if("string"!=typeof t||""===t)throw new TypeError("Expected pattern to be a non-empty string");let i=e||{},r=a.isWindows(e),o=s.makeRe(t,e,!1,!0),l=o.state;delete o.state;let c=()=>!1;if(i.ignore){let t={...e,ignore:null,onMatch:null,onResult:null};c=s(i.ignore,t,n)}const u=(n,a=!1)=>{let{isMatch:u,match:d,output:m}=s.test(n,o,e,{glob:t,posix:r}),h={glob:t,state:l,regex:o,posix:r,input:n,output:m,match:d,isMatch:u};return"function"==typeof i.onResult&&i.onResult(h),!1===u?(h.isMatch=!1,!!a&&h):c(n)?("function"==typeof i.onIgnore&&i.onIgnore(h),h.isMatch=!1,!!a&&h):("function"==typeof i.onMatch&&i.onMatch(h),!a||h)};return n&&(u.state=l),u};s.test=(t,e,n,{glob:i,posix:r}={})=>{if("string"!=typeof t)throw new TypeError("Expected input to be a string");if(""===t)return{isMatch:!1,output:""};let o=n||{},l=o.format||(r?a.toPosixSlashes:null),c=t===i,u=c&&l?l(t):t;return!1===c&&(c=(u=l?l(t):t)===i),!1!==c&&!0!==o.capture||(c=!0===o.matchBase||!0===o.basename?s.matchBase(t,e,n,r):e.exec(u)),{isMatch:!!c,match:c,output:u}},s.matchBase=(t,e,n,r=a.isWindows(n))=>{return(e instanceof RegExp?e:s.makeRe(e,n)).test(i.basename(t))},s.isMatch=(t,e,n)=>s(e,n)(t),s.parse=(t,e)=>o(t,e),s.scan=(t,e)=>r(t,e),s.makeRe=(t,e,n=!1,i=!1)=>{if(!t||"string"!=typeof t)throw new TypeError("Expected a non-empty string");let r,a=e||{},l=a.contains?"":"^",c=a.contains?"":"$",u={negated:!1,fastpaths:!0},d="";if(t.startsWith("./")&&(t=t.slice(2),d=u.prefix="./"),!1===a.fastpaths||"."!==t[0]&&"*"!==t[0]||(r=o.fastpaths(t,e)),void 0===r&&((u=s.parse(t,e)).prefix=d+(u.prefix||""),r=u.output),!0===n)return r;let m=`${l}(?:${r})${c}`;u&&!0===u.negated&&(m=`^(?!${m}).*$`);let h=s.toRegex(m,e);return!0===i&&(h.state=u),h},s.toRegex=(t,e)=>{try{let n=e||{};return new RegExp(t,n.flags||(n.nocase?"i":""))}catch(t){if(e&&!0===e.debug)throw t;return/$^/}},s.constants=n(87),t.exports=s},function(t,e,n){"use strict";const i=n(86),{CHAR_ASTERISK:r,CHAR_AT:o,CHAR_BACKWARD_SLASH:a,CHAR_COMMA:s,CHAR_DOT:l,CHAR_EXCLAMATION_MARK:c,CHAR_FORWARD_SLASH:u,CHAR_LEFT_CURLY_BRACE:d,CHAR_LEFT_PARENTHESES:m,CHAR_LEFT_SQUARE_BRACKET:h,CHAR_PLUS:p,CHAR_QUESTION_MARK:f,CHAR_RIGHT_CURLY_BRACE:g,CHAR_RIGHT_PARENTHESES:b,CHAR_RIGHT_SQUARE_BRACKET:x}=n(87);t.exports=(t,e)=>{let n,w,T=e||{},_=t.length-1,y=-1,v=0,k=0,R=!1,F=!1,A=!1,E=0,N=!1,S=()=>y>=_,C=()=>(n=w,t.charCodeAt(++y));for(;y<_;){let e;if((w=C())!==a){if(!0===N||w===d)for(E++;!S()&&(e=C());)if(e!==a)if(e!==d){if(!N&&e===l&&(e=C())===l){R=!0;break}if(!N&&e===s){R=!0;break}if(e===g&&0===--E){N=!1;break}}else E++;else F=!0,e=C();if(w!==u){if(w===r){R=!0;break}if(w===r||w===f){R=!0;break}if(w===h)for(;!S()&&(e=C());)if(e!==a){if(e===x){R=!0;break}}else F=!0,e=C();if((w===p||w===o||w===c)&&t.charCodeAt(y+1)===m){R=!0;break}if(w!==c||y!==v){if(w===m)for(;!S()&&(e=C());)if(e!==a){if(e===b){R=!0;break}}else F=!0,e=C();if(R)break}else A=!0,v++}else{if(n===l&&y===v+1){v+=2;continue}k=y+1}}else F=!0,(e=C())===d&&(N=!0)}let O="",L=t,I=t,$="";return v>0&&(O=t.slice(0,v),t=t.slice(v),k-=v),I&&!0===R&&k>0?(I=t.slice(0,k),$=t.slice(k)):!0===R?(I="",$=t):I=t,I&&""!==I&&"/"!==I&&I!==t&&(t=>t===u||t===a)(I.charCodeAt(I.length-1))&&(I=I.slice(0,-1)),!0===T.unescape&&($&&($=i.removeBackslashes($)),I&&!0===F&&(I=i.removeBackslashes(I))),{prefix:O,input:L,base:I,glob:$,negated:A,isGlob:R}}},function(t,e,n){"use strict";const i=n(13),r="win32"===process.platform,{REGEX_SPECIAL_CHARS:o,REGEX_SPECIAL_CHARS_GLOBAL:a,REGEX_REMOVE_BACKSLASH:s}=n(87);e.isObject=t=>null!==t&&"object"==typeof t&&!Array.isArray(t),e.hasRegexChars=t=>o.test(t),e.isRegexChar=t=>1===t.length&&e.hasRegexChars(t),e.escapeRegex=t=>t.replace(a,"\\$1"),e.toPosixSlashes=t=>t.replace(/\\/g,"/"),e.removeBackslashes=t=>t.replace(s,t=>"\\"===t?"":t),e.supportsLookbehinds=()=>{let t=process.version.slice(1).split(".");return 3===t.length&&+t[0]>=9||8==+t[0]&&+t[1]>=10},e.isWindows=t=>t&&"boolean"==typeof t.windows?t.windows:!0===r||"\\"===i.sep,e.escapeLast=(t,n,i)=>{let r=t.lastIndexOf(n,i);return-1===r?t:"\\"===t[r-1]?e.escapeLast(t,n,r-1):t.slice(0,r)+"\\"+t.slice(r)}},function(t,e,n){"use strict";const i=n(13),r={DOT_LITERAL:"\\.",PLUS_LITERAL:"\\+",QMARK_LITERAL:"\\?",SLASH_LITERAL:"\\/",ONE_CHAR:"(?=.)",QMARK:"[^/]",END_ANCHOR:"(?:\\/|$)",DOTS_SLASH:"\\.{1,2}(?:\\/|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|\\/)\\.{1,2}(?:\\/|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:\\/|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:\\/|$))",QMARK_NO_DOT:"[^.\\/]",STAR:"[^/]*?",START_ANCHOR:"(?:^|\\/)"},o={...r,SLASH_LITERAL:"[\\\\/]",QMARK:"[^\\\\/]",STAR:"[^\\\\/]*?",DOTS_SLASH:"\\.{1,2}(?:[\\\\/]|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|[\\\\/])\\.{1,2}(?:[\\\\/]|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:[\\\\/]|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:[\\\\/]|$))",QMARK_NO_DOT:"[^.\\\\/]",START_ANCHOR:"(?:^|[\\\\/])",END_ANCHOR:"(?:[\\\\/]|$)"};t.exports={MAX_LENGTH:65536,POSIX_REGEX_SOURCE:{alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"},REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHAR:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:i.sep,extglobChars:t=>({"!":{type:"negate",open:"(?:(?!(?:",close:`))${t.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}),globChars:t=>!0===t?o:r}},function(t,e,n){"use strict";const i=n(86),r=n(87),{MAX_LENGTH:o,POSIX_REGEX_SOURCE:a,REGEX_NON_SPECIAL_CHAR:s,REGEX_SPECIAL_CHARS_BACKREF:l,REPLACEMENTS:c}=r,u=(t,e)=>{if("function"==typeof e.expandRange)return e.expandRange(...t,e);t.sort();let n=`[${t.join("-")}]`;try{new RegExp(n)}catch(e){return t.map(t=>i.escapeRegex(t)).join("..")}return n},d=t=>{let e=1;for(;"!"===t.peek()&&("("!==t.peek(2)||"?"===t.peek(3));)t.advance(),t.start++,e++;return e%2!=0&&(t.negated=!0,t.start++,!0)},m=(t,e)=>`Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`,h=(t,e)=>{if("string"!=typeof t)throw new TypeError("Expected a string");t=c[t]||t;let n={...e},h="number"==typeof n.maxLength?Math.min(o,n.maxLength):o,p=t.length;if(p>h)throw new SyntaxError(`Input length: ${p}, exceeds maximum allowed length: ${h}`);let f={type:"bos",value:"",output:n.prepend||""},g=[f],b=n.capture?"":"?:",x=i.isWindows(e);const w=r.globChars(x),T=r.extglobChars(w),{DOT_LITERAL:_,PLUS_LITERAL:y,SLASH_LITERAL:v,ONE_CHAR:k,DOTS_SLASH:R,NO_DOT:F,NO_DOT_SLASH:A,NO_DOTS_SLASH:E,QMARK:N,QMARK_NO_DOT:S,STAR:C,START_ANCHOR:O}=w,L=t=>`(${b}(?:(?!${O}${t.dot?R:_}).)*?)`;let I=n.dot?"":F,$=!0===n.bash?L(n):C,D=n.dot?N:S;n.capture&&($=`(${$})`),"boolean"==typeof n.noext&&(n.noextglob=n.noext);let W,G={index:-1,start:0,consumed:"",output:"",backtrack:!1,brackets:0,braces:0,parens:0,quotes:0,tokens:g},M=[],P=[],B=f;const j=()=>G.index===p-1,U=G.peek=(e=1)=>t[G.index+e],q=G.advance=()=>t[++G.index],V=t=>{G.output+=null!=t.output?t.output:t.value,G.consumed+=t.value||""},z=t=>{G[t]++,P.push(t)},H=t=>{G[t]--,P.pop()},X=t=>{if("globstar"===B.type){let e=G.braces>0&&("comma"===t.type||"brace"===t.type),n=M.length&&("pipe"===t.type||"paren"===t.type);"slash"===t.type||"paren"===t.type||e||n||(G.output=G.output.slice(0,-B.output.length),B.type="star",B.value="*",B.output=$,G.output+=B.output)}M.length&&"paren"!==t.type&&!T[t.value]&&(M[M.length-1].inner+=t.value),(t.value||t.output)&&V(t),B&&"text"===B.type&&"text"===t.type?B.value+=t.value:(t.prev=B,g.push(t),B=t)},K=(t,e)=>{let i={...T[e],conditions:1,inner:""};i.prev=B,i.parens=G.parens,i.output=G.output;let r=(n.capture?"(":"")+i.open;X({type:t,value:e,output:G.output?"":k}),X({type:"paren",extglob:!0,value:q(),output:r}),z("parens"),M.push(i)},Y=e=>{let i=e.close+(n.capture?")":"");if("negate"===e.type){let r=$;e.inner&&e.inner.length>1&&e.inner.includes("/")&&(r=L(n)),(r!==$||j()||/^\)+$/.test(t.slice(G.index+1)))&&(i=e.close=")$))"+r),"bos"===e.prev.type&&j()&&(G.negatedExtglob=!0)}X({type:"paren",extglob:!0,value:W,output:i}),H("parens")};if(!1!==n.fastpaths&&!/(^[*!]|[/{[()\]}"])/.test(t)){let e=!1,i=t.replace(l,(t,n,i,r,o,a)=>"\\"===r?(e=!0,t):"?"===r?n?n+r+(o?N.repeat(o.length):""):0===a?D+(o?N.repeat(o.length):""):N.repeat(i.length):"."===r?_.repeat(i.length):"*"===r?n?n+r+(o?$:""):$:n?t:"\\"+t);return!0===e&&(i=!0===n.unescape?i.replace(/\\/g,""):i.replace(/\\+/g,t=>t.length%2==0?"\\\\":t?"\\":"")),G.output=i,G}for(;!j();){if("\0"===(W=q()))continue;if("\\"===W){let e=U();if("/"===e&&!0!==n.bash)continue;if("."===e||";"===e)continue;if(!e){X({type:"text",value:W+="\\"});continue}let i=/^\\+/.exec(t.slice(G.index+1)),r=0;if(i&&i[0].length>2&&(r=i[0].length,G.index+=r,r%2!=0&&(W+="\\")),!0===n.unescape?W=q()||"":W+=q()||"",0===G.brackets){X({type:"text",value:W});continue}}if(G.brackets>0&&("]"!==W||"["===B.value||"[^"===B.value)){if(!1!==n.posix&&":"===W){let t=B.value.slice(1);if(t.includes("[")&&(B.posix=!0,t.includes(":"))){let t=B.value.lastIndexOf("["),e=B.value.slice(0,t),n=B.value.slice(t+2),i=a[n];if(i){B.value=e+i,G.backtrack=!0,q(),f.output||1!==g.indexOf(B)||(f.output=k);continue}}}("["===W&&":"!==U()||"-"===W&&"]"===U())&&(W="\\"+W),"]"!==W||"["!==B.value&&"[^"!==B.value||(W="\\"+W),!0===n.posix&&"!"===W&&"["===B.value&&(W="^"),B.value+=W,V({value:W});continue}if(1===G.quotes&&'"'!==W){W=i.escapeRegex(W),B.value+=W,V({value:W});continue}if('"'===W){G.quotes=1===G.quotes?0:1,!0===n.keepQuotes&&X({type:"text",value:W});continue}if("("===W){X({type:"paren",value:W}),z("parens");continue}if(")"===W){if(0===G.parens&&!0===n.strictBrackets)throw new SyntaxError(m("opening","("));let t=M[M.length-1];if(t&&G.parens===t.parens+1){Y(M.pop());continue}X({type:"paren",value:W,output:G.parens?")":"\\)"}),H("parens");continue}if("["===W){if(!0!==n.nobracket&&t.slice(G.index+1).includes("]"))z("brackets");else{if(!0!==n.nobracket&&!0===n.strictBrackets)throw new SyntaxError(m("closing","]"));W="\\"+W}X({type:"bracket",value:W});continue}if("]"===W){if(!0===n.nobracket||B&&"bracket"===B.type&&1===B.value.length){X({type:"text",value:W,output:"\\"+W});continue}if(0===G.brackets){if(!0===n.strictBrackets)throw new SyntaxError(m("opening","["));X({type:"text",value:W,output:"\\"+W});continue}H("brackets");let t=B.value.slice(1);if(!0===B.posix||"^"!==t[0]||t.includes("/")||(W="/"+W),B.value+=W,V({value:W}),!1===n.literalBrackets||i.hasRegexChars(t))continue;let e=i.escapeRegex(B.value);if(G.output=G.output.slice(0,-B.value.length),!0===n.literalBrackets){G.output+=e,B.value=e;continue}B.value=`(${b}${e}|${B.value})`,G.output+=B.value;continue}if("{"===W&&!0!==n.nobrace){X({type:"brace",value:W,output:"("}),z("braces");continue}if("}"===W){if(!0===n.nobrace||0===G.braces){X({type:"text",value:W,output:"\\"+W});continue}let t=")";if(!0===G.dots){let e=g.slice(),i=[];for(let t=e.length-1;t>=0&&(g.pop(),"brace"!==e[t].type);t--)"dots"!==e[t].type&&i.unshift(e[t].value);t=u(i,n),G.backtrack=!0}X({type:"brace",value:W,output:t}),H("braces");continue}if("|"===W){M.length>0&&M[M.length-1].conditions++,X({type:"text",value:W});continue}if(","===W){let t=W;G.braces>0&&"braces"===P[P.length-1]&&(t="|"),X({type:"comma",value:W,output:t});continue}if("/"===W){if("dot"===B.type&&1===G.index){G.start=G.index+1,G.consumed="",G.output="",g.pop(),B=f;continue}X({type:"slash",value:W,output:v});continue}if("."===W){if(G.braces>0&&"dot"===B.type){"."===B.value&&(B.output=_),B.type="dots",B.output+=W,B.value+=W,G.dots=!0;continue}X({type:"dot",value:W,output:_});continue}if("?"===W){if(B&&"paren"===B.type){let t=U(),e=W;if("<"===t&&!i.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");("("===B.value&&!/[!=<:]/.test(t)||"<"===t&&!/[!=]/.test(U(2)))&&(e="\\"+W),X({type:"text",value:W,output:e});continue}if(!0!==n.noextglob&&"("===U()&&"?"!==U(2)){K("qmark",W);continue}if(!0!==n.dot&&("slash"===B.type||"bos"===B.type)){X({type:"qmark",value:W,output:S});continue}X({type:"qmark",value:W,output:N});continue}if("!"===W){if(!0!==n.noextglob&&"("===U()&&("?"!==U(2)||!/[!=<:]/.test(U(3)))){K("negate",W);continue}if(!0!==n.nonegate&&0===G.index){d(G);continue}}if("+"===W){if(!0!==n.noextglob&&"("===U()&&"?"!==U(2)){K("plus",W);continue}if(B&&("bracket"===B.type||"paren"===B.type||"brace"===B.type)){let t=!0===B.extglob?"\\"+W:W;X({type:"plus",value:W,output:t});continue}if(G.parens>0&&!1!==n.regex){X({type:"plus",value:W});continue}X({type:"plus",value:y});continue}if("@"===W){if(!0!==n.noextglob&&"("===U()&&"?"!==U(2)){X({type:"at",value:W,output:""});continue}X({type:"text",value:W});continue}if("*"!==W){"$"!==W&&"^"!==W||(W="\\"+W);let e=s.exec(t.slice(G.index+1));e&&(W+=e[0],G.index+=e[0].length),X({type:"text",value:W});continue}if(B&&("globstar"===B.type||!0===B.star)){B.type="star",B.star=!0,B.value+=W,B.output=$,G.backtrack=!0,G.consumed+=W;continue}if(!0!==n.noextglob&&"("===U()&&"?"!==U(2)){K("star",W);continue}if("star"===B.type){if(!0===n.noglobstar){G.consumed+=W;continue}let e=B.prev,i=e.prev,r="slash"===e.type||"bos"===e.type,o=i&&("star"===i.type||"globstar"===i.type);if(!0===n.bash&&(!r||!j()&&"/"!==U())){X({type:"star",value:W,output:""});continue}let a=G.braces>0&&("comma"===e.type||"brace"===e.type),s=M.length&&("pipe"===e.type||"paren"===e.type);if(!r&&"paren"!==e.type&&!a&&!s){X({type:"star",value:W,output:""});continue}for(;"/**"===t.slice(G.index+1,G.index+4);){let e=t[G.index+4];if(e&&"/"!==e)break;G.consumed+="/**",G.index+=3}if("bos"===e.type&&j()){B.type="globstar",B.value+=W,B.output=L(n),G.output=B.output,G.consumed+=W;continue}if("slash"===e.type&&"bos"!==e.prev.type&&!o&&j()){G.output=G.output.slice(0,-(e.output+B.output).length),e.output="(?:"+e.output,B.type="globstar",B.output=L(n)+"|$)",B.value+=W,G.output+=e.output+B.output,G.consumed+=W;continue}let l=U();if("slash"===e.type&&"bos"!==e.prev.type&&"/"===l){let t=void 0!==U(2)?"|$":"";G.output=G.output.slice(0,-(e.output+B.output).length),e.output="(?:"+e.output,B.type="globstar",B.output=`${L(n)}${v}|${v}${t})`,B.value+=W,G.output+=e.output+B.output,G.consumed+=W+q(),X({type:"slash",value:W,output:""});continue}if("bos"===e.type&&"/"===l){B.type="globstar",B.value+=W,B.output=`(?:^|${v}|${L(n)}${v})`,G.output=B.output,G.consumed+=W+q(),X({type:"slash",value:W,output:""});continue}G.output=G.output.slice(0,-B.output.length),B.type="globstar",B.output=L(n),B.value+=W,G.output+=B.output,G.consumed+=W;continue}let e={type:"star",value:W,output:$};!0!==n.bash?!B||"bracket"!==B.type&&"paren"!==B.type||!0!==n.regex?(G.index!==G.start&&"slash"!==B.type&&"dot"!==B.type||("dot"===B.type?(G.output+=A,B.output+=A):!0===n.dot?(G.output+=E,B.output+=E):(G.output+=I,B.output+=I),"*"!==U()&&(G.output+=k,B.output+=k)),X(e)):(e.output=W,X(e)):(e.output=".*?","bos"!==B.type&&"slash"!==B.type||(e.output=I+e.output),X(e))}for(;G.brackets>0;){if(!0===n.strictBrackets)throw new SyntaxError(m("closing","]"));G.output=i.escapeLast(G.output,"["),H("brackets")}for(;G.parens>0;){if(!0===n.strictBrackets)throw new SyntaxError(m("closing",")"));G.output=i.escapeLast(G.output,"("),H("parens")}for(;G.braces>0;){if(!0===n.strictBrackets)throw new SyntaxError(m("closing","}"));G.output=i.escapeLast(G.output,"{"),H("braces")}if(!0===n.strictSlashes||"star"!==B.type&&"bracket"!==B.type||X({type:"maybe_slash",value:"",output:`${v}?`}),!0===G.backtrack){G.output="";for(let t of G.tokens)G.output+=null!=t.output?t.output:t.value,t.suffix&&(G.output+=t.suffix)}return G};h.fastpaths=(t,e)=>{let n={...e},a="number"==typeof n.maxLength?Math.min(o,n.maxLength):o,s=t.length;if(s>a)throw new SyntaxError(`Input length: ${s}, exceeds maximum allowed length: ${a}`);t=c[t]||t;let l=i.isWindows(e);const{DOT_LITERAL:u,SLASH_LITERAL:d,ONE_CHAR:m,DOTS_SLASH:h,NO_DOT:p,NO_DOTS:f,NO_DOTS_SLASH:g,STAR:b,START_ANCHOR:x}=r.globChars(l);let w=n.capture?"":"?:",T=!0===n.bash?".*?":b,_=n.dot?f:p,y=n.dot?g:p;n.capture&&(T=`(${T})`);const v=t=>`(${w}(?:(?!${x}${t.dot?h:u}).)*?)`,k=t=>{switch(t){case"*":return`${_}${m}${T}`;case".*":return`${u}${m}${T}`;case"*.*":return`${_}${T}${u}${m}${T}`;case"*/*":return`${_}${T}${d}${m}${y}${T}`;case"**":return _+v(n);case"**/*":return`(?:${_}${v(n)}${d})?${y}${m}${T}`;case"**/*.*":return`(?:${_}${v(n)}${d})?${y}${T}${u}${m}${T}`;case"**/.*":return`(?:${_}${v(n)}${d})?${u}${m}${T}`;default:{let n=/^(.*?)\.(\w+)$/.exec(t);if(!n)return;let i=k(n[1],e);if(!i)return;return i+u+n[2]}}};let R=k(t);return R&&!0!==n.strictSlashes&&(R+=`${d}?`),R},t.exports=h},function(t,e,n){"use strict";t.exports=n(90)},function(t,e,n){"use strict";const i=n(13),r=n(91),o=n(94),a=n(92),s=n(93),l=(t,e,n=!1)=>{if(Array.isArray(t)){const i=t.map(t=>l(t,e,n));return t=>{for(const e of i){const n=e(t);if(n)return n}return!1}}const i=(t=>t&&"object"==typeof t&&!Array.isArray(t))(t)&&t.tokens&&t.input;if(""===t||"string"!=typeof t&&!i)throw new TypeError("Expected pattern to be a non-empty string");const r=e||{},o=a.isWindows(e),s=i?l.compileRe(t,e):l.makeRe(t,e,!1,!0),c=s.state;delete s.state;let u=()=>!1;if(r.ignore){const t={...e,ignore:null,onMatch:null,onResult:null};u=l(r.ignore,t,n)}const d=(n,i=!1)=>{const{isMatch:a,match:d,output:m}=l.test(n,s,e,{glob:t,posix:o}),h={glob:t,state:c,regex:s,posix:o,input:n,output:m,match:d,isMatch:a};return"function"==typeof r.onResult&&r.onResult(h),!1===a?(h.isMatch=!1,!!i&&h):u(n)?("function"==typeof r.onIgnore&&r.onIgnore(h),h.isMatch=!1,!!i&&h):("function"==typeof r.onMatch&&r.onMatch(h),!i||h)};return n&&(d.state=c),d};l.test=(t,e,n,{glob:i,posix:r}={})=>{if("string"!=typeof t)throw new TypeError("Expected input to be a string");if(""===t)return{isMatch:!1,output:""};const o=n||{},s=o.format||(r?a.toPosixSlashes:null);let c=t===i,u=c&&s?s(t):t;return!1===c&&(c=(u=s?s(t):t)===i),!1!==c&&!0!==o.capture||(c=!0===o.matchBase||!0===o.basename?l.matchBase(t,e,n,r):e.exec(u)),{isMatch:Boolean(c),match:c,output:u}},l.matchBase=(t,e,n,r=a.isWindows(n))=>{return(e instanceof RegExp?e:l.makeRe(e,n)).test(i.basename(t))},l.isMatch=(t,e,n)=>l(e,n)(t),l.parse=(t,e)=>Array.isArray(t)?t.map(t=>l.parse(t,e)):o(t,{...e,fastpaths:!1}),l.scan=(t,e)=>r(t,e),l.compileRe=(t,e,n=!1,i=!1)=>{if(!0===n)return t.output;const r=e||{},o=r.contains?"":"^",a=r.contains?"":"$";let s=`${o}(?:${t.output})${a}`;t&&!0===t.negated&&(s=`^(?!${s}).*$`);const c=l.toRegex(s,e);return!0===i&&(c.state=t),c},l.makeRe=(t,e,n=!1,i=!1)=>{if(!t||"string"!=typeof t)throw new TypeError("Expected a non-empty string");const r=e||{};let a,s={negated:!1,fastpaths:!0},c="";return t.startsWith("./")&&(t=t.slice(2),c=s.prefix="./"),!1===r.fastpaths||"."!==t[0]&&"*"!==t[0]||(a=o.fastpaths(t,e)),void 0===a?(s=o(t,e)).prefix=c+(s.prefix||""):s.output=a,l.compileRe(s,e,n,i)},l.toRegex=(t,e)=>{try{const n=e||{};return new RegExp(t,n.flags||(n.nocase?"i":""))}catch(t){if(e&&!0===e.debug)throw t;return/$^/}},l.constants=s,t.exports=l},function(t,e,n){"use strict";const i=n(92),{CHAR_ASTERISK:r,CHAR_AT:o,CHAR_BACKWARD_SLASH:a,CHAR_COMMA:s,CHAR_DOT:l,CHAR_EXCLAMATION_MARK:c,CHAR_FORWARD_SLASH:u,CHAR_LEFT_CURLY_BRACE:d,CHAR_LEFT_PARENTHESES:m,CHAR_LEFT_SQUARE_BRACKET:h,CHAR_PLUS:p,CHAR_QUESTION_MARK:f,CHAR_RIGHT_CURLY_BRACE:g,CHAR_RIGHT_PARENTHESES:b,CHAR_RIGHT_SQUARE_BRACKET:x}=n(93),w=t=>t===u||t===a,T=t=>{!0!==t.isPrefix&&(t.depth=t.isGlobstar?1/0:1)};t.exports=(t,e)=>{const n=e||{},_=t.length-1,y=!0===n.parts||!0===n.scanToEnd,v=[],k=[],R=[];let F,A,E=t,N=-1,S=0,C=0,O=!1,L=!1,I=!1,$=!1,D=!1,W=!1,G=!1,M=!1,P=!1,B=0,j={value:"",depth:0,isGlob:!1};const U=()=>N>=_,q=()=>E.charCodeAt(N+1),V=()=>(F=A,E.charCodeAt(++N));for(;N<_;){let t;if((A=V())!==a){if(!0===W||A===d){for(B++;!0!==U()&&(A=V());)if(A!==a)if(A!==d){if(!0!==W&&A===l&&(A=V())===l){if(O=j.isBrace=!0,I=j.isGlob=!0,P=!0,!0===y)continue;break}if(!0!==W&&A===s){if(O=j.isBrace=!0,I=j.isGlob=!0,P=!0,!0===y)continue;break}if(A===g&&0===--B){W=!1,O=j.isBrace=!0,P=!0;break}}else B++;else G=j.backslashes=!0,V();if(!0===y)continue;break}if(A!==u){if(!0!==n.noext){if(!0===(A===p||A===o||A===r||A===f||A===c)&&q()===m){if(I=j.isGlob=!0,$=j.isExtglob=!0,P=!0,!0===y){for(;!0!==U()&&(A=V());)if(A!==a){if(A===b){I=j.isGlob=!0,P=!0;break}}else G=j.backslashes=!0,A=V();continue}break}}if(A===r){if(F===r&&(D=j.isGlobstar=!0),I=j.isGlob=!0,P=!0,!0===y)continue;break}if(A===f){if(I=j.isGlob=!0,P=!0,!0===y)continue;break}if(A===h)for(;!0!==U()&&(t=V());)if(t!==a){if(t===x){if(L=j.isBracket=!0,I=j.isGlob=!0,P=!0,!0===y)continue;break}}else G=j.backslashes=!0,V();if(!0===n.nonegate||A!==c||N!==S){if(!0!==n.noparen&&A===m){if(I=j.isGlob=!0,!0===y){for(;!0!==U()&&(A=V());)if(A!==m){if(A===b){P=!0;break}}else G=j.backslashes=!0,A=V();continue}break}if(!0===I){if(P=!0,!0===y)continue;break}}else M=j.negated=!0,S++}else{if(v.push(N),k.push(j),j={value:"",depth:0,isGlob:!1},!0===P)continue;if(F===l&&N===S+1){S+=2;continue}C=N+1}}else G=j.backslashes=!0,(A=V())===d&&(W=!0)}!0===n.noext&&($=!1,I=!1);let z=E,H="",X="";S>0&&(H=E.slice(0,S),E=E.slice(S),C-=S),z&&!0===I&&C>0?(z=E.slice(0,C),X=E.slice(C)):!0===I?(z="",X=E):z=E,z&&""!==z&&"/"!==z&&z!==E&&w(z.charCodeAt(z.length-1))&&(z=z.slice(0,-1)),!0===n.unescape&&(X&&(X=i.removeBackslashes(X)),z&&!0===G&&(z=i.removeBackslashes(z)));const K={prefix:H,input:t,start:S,base:z,glob:X,isBrace:O,isBracket:L,isGlob:I,isExtglob:$,isGlobstar:D,negated:M};if(!0===n.tokens&&(K.maxDepth=0,w(A)||k.push(j),K.tokens=k),!0===n.parts||!0===n.tokens){let e;for(let i=0;i<v.length;i++){const r=e?e+1:S,o=v[i],a=t.slice(r,o);n.tokens&&(0===i&&0!==S?(k[i].isPrefix=!0,k[i].value=H):k[i].value=a,T(k[i]),K.maxDepth+=k[i].depth),0===i&&""===a||R.push(a),e=o}if(e&&e+1<t.length){const i=t.slice(e+1);R.push(i),n.tokens&&(k[k.length-1].value=i,T(k[k.length-1]),K.maxDepth+=k[k.length-1].depth)}K.slashes=v,K.parts=R}return K}},function(t,e,n){"use strict";const i=n(13),r="win32"===process.platform,{REGEX_BACKSLASH:o,REGEX_REMOVE_BACKSLASH:a,REGEX_SPECIAL_CHARS:s,REGEX_SPECIAL_CHARS_GLOBAL:l}=n(93);e.isObject=t=>null!==t&&"object"==typeof t&&!Array.isArray(t),e.hasRegexChars=t=>s.test(t),e.isRegexChar=t=>1===t.length&&e.hasRegexChars(t),e.escapeRegex=t=>t.replace(l,"\\$1"),e.toPosixSlashes=t=>t.replace(o,"/"),e.removeBackslashes=t=>t.replace(a,t=>"\\"===t?"":t),e.supportsLookbehinds=()=>{const t=process.version.slice(1).split(".").map(Number);return 3===t.length&&t[0]>=9||8===t[0]&&t[1]>=10},e.isWindows=t=>t&&"boolean"==typeof t.windows?t.windows:!0===r||"\\"===i.sep,e.escapeLast=(t,n,i)=>{const r=t.lastIndexOf(n,i);return-1===r?t:"\\"===t[r-1]?e.escapeLast(t,n,r-1):`${t.slice(0,r)}\\${t.slice(r)}`},e.removePrefix=(t,e={})=>{let n=t;return n.startsWith("./")&&(n=n.slice(2),e.prefix="./"),n},e.wrapOutput=(t,e={},n={})=>{let i=`${n.contains?"":"^"}(?:${t})${n.contains?"":"$"}`;return!0===e.negated&&(i=`(?:^(?!${i}).*$)`),i}},function(t,e,n){"use strict";const i=n(13),r={DOT_LITERAL:"\\.",PLUS_LITERAL:"\\+",QMARK_LITERAL:"\\?",SLASH_LITERAL:"\\/",ONE_CHAR:"(?=.)",QMARK:"[^/]",END_ANCHOR:"(?:\\/|$)",DOTS_SLASH:"\\.{1,2}(?:\\/|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|\\/)\\.{1,2}(?:\\/|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:\\/|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:\\/|$))",QMARK_NO_DOT:"[^.\\/]",STAR:"[^/]*?",START_ANCHOR:"(?:^|\\/)"},o={...r,SLASH_LITERAL:"[\\\\/]",QMARK:"[^\\\\/]",STAR:"[^\\\\/]*?",DOTS_SLASH:"\\.{1,2}(?:[\\\\/]|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|[\\\\/])\\.{1,2}(?:[\\\\/]|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:[\\\\/]|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:[\\\\/]|$))",QMARK_NO_DOT:"[^.\\\\/]",START_ANCHOR:"(?:^|[\\\\/])",END_ANCHOR:"(?:[\\\\/]|$)"};t.exports={MAX_LENGTH:65536,POSIX_REGEX_SOURCE:{alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"},REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:i.sep,extglobChars:t=>({"!":{type:"negate",open:"(?:(?!(?:",close:`))${t.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}),globChars:t=>!0===t?o:r}},function(t,e,n){"use strict";const i=n(93),r=n(92),{MAX_LENGTH:o,POSIX_REGEX_SOURCE:a,REGEX_NON_SPECIAL_CHARS:s,REGEX_SPECIAL_CHARS_BACKREF:l,REPLACEMENTS:c}=i,u=(t,e)=>{if("function"==typeof e.expandRange)return e.expandRange(...t,e);t.sort();const n=`[${t.join("-")}]`;try{new RegExp(n)}catch(e){return t.map(t=>r.escapeRegex(t)).join("..")}return n},d=(t,e)=>`Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`,m=(t,e)=>{if("string"!=typeof t)throw new TypeError("Expected a string");t=c[t]||t;const n={...e},m="number"==typeof n.maxLength?Math.min(o,n.maxLength):o;let h=t.length;if(h>m)throw new SyntaxError(`Input length: ${h}, exceeds maximum allowed length: ${m}`);const p={type:"bos",value:"",output:n.prepend||""},f=[p],g=n.capture?"":"?:",b=r.isWindows(e),x=i.globChars(b),w=i.extglobChars(x),{DOT_LITERAL:T,PLUS_LITERAL:_,SLASH_LITERAL:y,ONE_CHAR:v,DOTS_SLASH:k,NO_DOT:R,NO_DOT_SLASH:F,NO_DOTS_SLASH:A,QMARK:E,QMARK_NO_DOT:N,STAR:S,START_ANCHOR:C}=x,O=t=>`(${g}(?:(?!${C}${t.dot?k:T}).)*?)`,L=n.dot?"":R,I=n.dot?E:N;let $=!0===n.bash?O(n):S;n.capture&&($=`(${$})`),"boolean"==typeof n.noext&&(n.noextglob=n.noext);const D={input:t,index:-1,start:0,dot:!0===n.dot,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:f};t=r.removePrefix(t,D),h=t.length;const W=[],G=[],M=[];let P,B=p;const j=()=>D.index===h-1,U=D.peek=(e=1)=>t[D.index+e],q=D.advance=()=>t[++D.index],V=()=>t.slice(D.index+1),z=(t="",e=0)=>{D.consumed+=t,D.index+=e},H=t=>{D.output+=null!=t.output?t.output:t.value,z(t.value)},X=()=>{let t=1;for(;"!"===U()&&("("!==U(2)||"?"===U(3));)q(),D.start++,t++;return t%2!=0&&(D.negated=!0,D.start++,!0)},K=t=>{D[t]++,M.push(t)},Y=t=>{D[t]--,M.pop()},Z=t=>{if("globstar"===B.type){const e=D.braces>0&&("comma"===t.type||"brace"===t.type),n=!0===t.extglob||W.length&&("pipe"===t.type||"paren"===t.type);"slash"===t.type||"paren"===t.type||e||n||(D.output=D.output.slice(0,-B.output.length),B.type="star",B.value="*",B.output=$,D.output+=B.output)}if(W.length&&"paren"!==t.type&&!w[t.value]&&(W[W.length-1].inner+=t.value),(t.value||t.output)&&H(t),B&&"text"===B.type&&"text"===t.type)return B.value+=t.value,void(B.output=(B.output||"")+t.value);t.prev=B,f.push(t),B=t},J=(t,e)=>{const i={...w[e],conditions:1,inner:""};i.prev=B,i.parens=D.parens,i.output=D.output;const r=(n.capture?"(":"")+i.open;K("parens"),Z({type:t,value:e,output:D.output?"":v}),Z({type:"paren",extglob:!0,value:q(),output:r}),W.push(i)},Q=t=>{let e=t.close+(n.capture?")":"");if("negate"===t.type){let i=$;t.inner&&t.inner.length>1&&t.inner.includes("/")&&(i=O(n)),(i!==$||j()||/^\)+$/.test(V()))&&(e=t.close=`)$))${i}`),"bos"===t.prev.type&&j()&&(D.negatedExtglob=!0)}Z({type:"paren",extglob:!0,value:P,output:e}),Y("parens")};if(!1!==n.fastpaths&&!/(^[*!]|[/()[\]{}"])/.test(t)){let i=!1,o=t.replace(l,(t,e,n,r,o,a)=>"\\"===r?(i=!0,t):"?"===r?e?e+r+(o?E.repeat(o.length):""):0===a?I+(o?E.repeat(o.length):""):E.repeat(n.length):"."===r?T.repeat(n.length):"*"===r?e?e+r+(o?$:""):$:e?t:`\\${t}`);return!0===i&&(o=!0===n.unescape?o.replace(/\\/g,""):o.replace(/\\+/g,t=>t.length%2==0?"\\\\":t?"\\":"")),o===t&&!0===n.contains?(D.output=t,D):(D.output=r.wrapOutput(o,D,e),D)}for(;!j();){if("\0"===(P=q()))continue;if("\\"===P){const t=U();if("/"===t&&!0!==n.bash)continue;if("."===t||";"===t)continue;if(!t){Z({type:"text",value:P+="\\"});continue}const e=/^\\+/.exec(V());let i=0;if(e&&e[0].length>2&&(i=e[0].length,D.index+=i,i%2!=0&&(P+="\\")),!0===n.unescape?P=q()||"":P+=q()||"",0===D.brackets){Z({type:"text",value:P});continue}}if(D.brackets>0&&("]"!==P||"["===B.value||"[^"===B.value)){if(!1!==n.posix&&":"===P){const t=B.value.slice(1);if(t.includes("[")&&(B.posix=!0,t.includes(":"))){const t=B.value.lastIndexOf("["),e=B.value.slice(0,t),n=B.value.slice(t+2),i=a[n];if(i){B.value=e+i,D.backtrack=!0,q(),p.output||1!==f.indexOf(B)||(p.output=v);continue}}}("["===P&&":"!==U()||"-"===P&&"]"===U())&&(P=`\\${P}`),"]"!==P||"["!==B.value&&"[^"!==B.value||(P=`\\${P}`),!0===n.posix&&"!"===P&&"["===B.value&&(P="^"),B.value+=P,H({value:P});continue}if(1===D.quotes&&'"'!==P){P=r.escapeRegex(P),B.value+=P,H({value:P});continue}if('"'===P){D.quotes=1===D.quotes?0:1,!0===n.keepQuotes&&Z({type:"text",value:P});continue}if("("===P){K("parens"),Z({type:"paren",value:P});continue}if(")"===P){if(0===D.parens&&!0===n.strictBrackets)throw new SyntaxError(d("opening","("));const t=W[W.length-1];if(t&&D.parens===t.parens+1){Q(W.pop());continue}Z({type:"paren",value:P,output:D.parens?")":"\\)"}),Y("parens");continue}if("["===P){if(!0!==n.nobracket&&V().includes("]"))K("brackets");else{if(!0!==n.nobracket&&!0===n.strictBrackets)throw new SyntaxError(d("closing","]"));P=`\\${P}`}Z({type:"bracket",value:P});continue}if("]"===P){if(!0===n.nobracket||B&&"bracket"===B.type&&1===B.value.length){Z({type:"text",value:P,output:`\\${P}`});continue}if(0===D.brackets){if(!0===n.strictBrackets)throw new SyntaxError(d("opening","["));Z({type:"text",value:P,output:`\\${P}`});continue}Y("brackets");const t=B.value.slice(1);if(!0===B.posix||"^"!==t[0]||t.includes("/")||(P=`/${P}`),B.value+=P,H({value:P}),!1===n.literalBrackets||r.hasRegexChars(t))continue;const e=r.escapeRegex(B.value);if(D.output=D.output.slice(0,-B.value.length),!0===n.literalBrackets){D.output+=e,B.value=e;continue}B.value=`(${g}${e}|${B.value})`,D.output+=B.value;continue}if("{"===P&&!0!==n.nobrace){K("braces");const t={type:"brace",value:P,output:"(",outputIndex:D.output.length,tokensIndex:D.tokens.length};G.push(t),Z(t);continue}if("}"===P){const t=G[G.length-1];if(!0===n.nobrace||!t){Z({type:"text",value:P,output:P});continue}let e=")";if(!0===t.dots){const t=f.slice(),i=[];for(let e=t.length-1;e>=0&&(f.pop(),"brace"!==t[e].type);e--)"dots"!==t[e].type&&i.unshift(t[e].value);e=u(i,n),D.backtrack=!0}if(!0!==t.comma&&!0!==t.dots){const n=D.output.slice(0,t.outputIndex),i=D.tokens.slice(t.tokensIndex);t.value=t.output="\\{",P=e="\\}",D.output=n;for(const t of i)D.output+=t.output||t.value}Z({type:"brace",value:P,output:e}),Y("braces"),G.pop();continue}if("|"===P){W.length>0&&W[W.length-1].conditions++,Z({type:"text",value:P});continue}if(","===P){let t=P;const e=G[G.length-1];e&&"braces"===M[M.length-1]&&(e.comma=!0,t="|"),Z({type:"comma",value:P,output:t});continue}if("/"===P){if("dot"===B.type&&D.index===D.start+1){D.start=D.index+1,D.consumed="",D.output="",f.pop(),B=p;continue}Z({type:"slash",value:P,output:y});continue}if("."===P){if(D.braces>0&&"dot"===B.type){"."===B.value&&(B.output=T);const t=G[G.length-1];B.type="dots",B.output+=P,B.value+=P,t.dots=!0;continue}if(D.braces+D.parens===0&&"bos"!==B.type&&"slash"!==B.type){Z({type:"text",value:P,output:T});continue}Z({type:"dot",value:P,output:T});continue}if("?"===P){if(!(B&&"("===B.value)&&!0!==n.noextglob&&"("===U()&&"?"!==U(2)){J("qmark",P);continue}if(B&&"paren"===B.type){const t=U();let e=P;if("<"===t&&!r.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");("("===B.value&&!/[!=<:]/.test(t)||"<"===t&&!/<([!=]|\w+>)/.test(V()))&&(e=`\\${P}`),Z({type:"text",value:P,output:e});continue}if(!0!==n.dot&&("slash"===B.type||"bos"===B.type)){Z({type:"qmark",value:P,output:N});continue}Z({type:"qmark",value:P,output:E});continue}if("!"===P){if(!0!==n.noextglob&&"("===U()&&("?"!==U(2)||!/[!=<:]/.test(U(3)))){J("negate",P);continue}if(!0!==n.nonegate&&0===D.index){X();continue}}if("+"===P){if(!0!==n.noextglob&&"("===U()&&"?"!==U(2)){J("plus",P);continue}if(B&&"("===B.value||!1===n.regex){Z({type:"plus",value:P,output:_});continue}if(B&&("bracket"===B.type||"paren"===B.type||"brace"===B.type)||D.parens>0){Z({type:"plus",value:P});continue}Z({type:"plus",value:_});continue}if("@"===P){if(!0!==n.noextglob&&"("===U()&&"?"!==U(2)){Z({type:"at",extglob:!0,value:P,output:""});continue}Z({type:"text",value:P});continue}if("*"!==P){"$"!==P&&"^"!==P||(P=`\\${P}`);const t=s.exec(V());t&&(P+=t[0],D.index+=t[0].length),Z({type:"text",value:P});continue}if(B&&("globstar"===B.type||!0===B.star)){B.type="star",B.star=!0,B.value+=P,B.output=$,D.backtrack=!0,D.globstar=!0,z(P);continue}let e=V();if(!0!==n.noextglob&&/^\([^?]/.test(e)){J("star",P);continue}if("star"===B.type){if(!0===n.noglobstar){z(P);continue}const i=B.prev,r=i.prev,o="slash"===i.type||"bos"===i.type,a=r&&("star"===r.type||"globstar"===r.type);if(!0===n.bash&&(!o||e[0]&&"/"!==e[0])){Z({type:"star",value:P,output:""});continue}const s=D.braces>0&&("comma"===i.type||"brace"===i.type),l=W.length&&("pipe"===i.type||"paren"===i.type);if(!o&&"paren"!==i.type&&!s&&!l){Z({type:"star",value:P,output:""});continue}for(;"/**"===e.slice(0,3);){const n=t[D.index+4];if(n&&"/"!==n)break;e=e.slice(3),z("/**",3)}if("bos"===i.type&&j()){B.type="globstar",B.value+=P,B.output=O(n),D.output=B.output,D.globstar=!0,z(P);continue}if("slash"===i.type&&"bos"!==i.prev.type&&!a&&j()){D.output=D.output.slice(0,-(i.output+B.output).length),i.output=`(?:${i.output}`,B.type="globstar",B.output=O(n)+(n.strictSlashes?")":"|$)"),B.value+=P,D.globstar=!0,D.output+=i.output+B.output,z(P);continue}if("slash"===i.type&&"bos"!==i.prev.type&&"/"===e[0]){const t=void 0!==e[1]?"|$":"";D.output=D.output.slice(0,-(i.output+B.output).length),i.output=`(?:${i.output}`,B.type="globstar",B.output=`${O(n)}${y}|${y}${t})`,B.value+=P,D.output+=i.output+B.output,D.globstar=!0,z(P+q()),Z({type:"slash",value:"/",output:""});continue}if("bos"===i.type&&"/"===e[0]){B.type="globstar",B.value+=P,B.output=`(?:^|${y}|${O(n)}${y})`,D.output=B.output,D.globstar=!0,z(P+q()),Z({type:"slash",value:"/",output:""});continue}D.output=D.output.slice(0,-B.output.length),B.type="globstar",B.output=O(n),B.value+=P,D.output+=B.output,D.globstar=!0,z(P);continue}const i={type:"star",value:P,output:$};!0!==n.bash?!B||"bracket"!==B.type&&"paren"!==B.type||!0!==n.regex?(D.index!==D.start&&"slash"!==B.type&&"dot"!==B.type||("dot"===B.type?(D.output+=F,B.output+=F):!0===n.dot?(D.output+=A,B.output+=A):(D.output+=L,B.output+=L),"*"!==U()&&(D.output+=v,B.output+=v)),Z(i)):(i.output=P,Z(i)):(i.output=".*?","bos"!==B.type&&"slash"!==B.type||(i.output=L+i.output),Z(i))}for(;D.brackets>0;){if(!0===n.strictBrackets)throw new SyntaxError(d("closing","]"));D.output=r.escapeLast(D.output,"["),Y("brackets")}for(;D.parens>0;){if(!0===n.strictBrackets)throw new SyntaxError(d("closing",")"));D.output=r.escapeLast(D.output,"("),Y("parens")}for(;D.braces>0;){if(!0===n.strictBrackets)throw new SyntaxError(d("closing","}"));D.output=r.escapeLast(D.output,"{"),Y("braces")}if(!0===n.strictSlashes||"star"!==B.type&&"bracket"!==B.type||Z({type:"maybe_slash",value:"",output:`${y}?`}),!0===D.backtrack){D.output="";for(const t of D.tokens)D.output+=null!=t.output?t.output:t.value,t.suffix&&(D.output+=t.suffix)}return D};m.fastpaths=(t,e)=>{const n={...e},a="number"==typeof n.maxLength?Math.min(o,n.maxLength):o,s=t.length;if(s>a)throw new SyntaxError(`Input length: ${s}, exceeds maximum allowed length: ${a}`);t=c[t]||t;const l=r.isWindows(e),{DOT_LITERAL:u,SLASH_LITERAL:d,ONE_CHAR:m,DOTS_SLASH:h,NO_DOT:p,NO_DOTS:f,NO_DOTS_SLASH:g,STAR:b,START_ANCHOR:x}=i.globChars(l),w=n.dot?f:p,T=n.dot?g:p,_=n.capture?"":"?:";let y=!0===n.bash?".*?":b;n.capture&&(y=`(${y})`);const v=t=>!0===t.noglobstar?y:`(${_}(?:(?!${x}${t.dot?h:u}).)*?)`,k=t=>{switch(t){case"*":return`${w}${m}${y}`;case".*":return`${u}${m}${y}`;case"*.*":return`${w}${y}${u}${m}${y}`;case"*/*":return`${w}${y}${d}${m}${T}${y}`;case"**":return w+v(n);case"**/*":return`(?:${w}${v(n)}${d})?${T}${m}${y}`;case"**/*.*":return`(?:${w}${v(n)}${d})?${T}${y}${u}${m}${y}`;case"**/.*":return`(?:${w}${v(n)}${d})?${u}${m}${y}`;default:{const e=/^(.*?)\.(\w+)$/.exec(t);if(!e)return;const n=k(e[1]);if(!n)return;return n+u+e[2]}}},R=r.removePrefix(t,{negated:!1,prefix:""});let F=k(R);return F&&!0!==n.strictSlashes&&(F+=`${d}?`),F},t.exports=m},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(96);function r(t){t.forEach(t=>t.emit("close"))}e.merge=function(t){const e=i(t);return t.forEach(t=>{t.once("error",t=>e.emit("error",t))}),e.once("close",()=>r(t)),e.once("end",()=>r(t)),e}},function(t,e,n){"use strict";const i=n(97).PassThrough,r=Array.prototype.slice;function o(t,e){if(Array.isArray(t))for(let n=0,i=t.length;n<i;n++)t[n]=o(t[n],e);else{if(!t._readableState&&t.pipe&&(t=t.pipe(i(e))),!t._readableState||!t.pause||!t.pipe)throw new Error("Only readable stream can be merged.");t.pause()}return t}t.exports=function(){const t=[];let e=!1;const n=r.call(arguments);let a=n[n.length-1];a&&!Array.isArray(a)&&null==a.pipe?n.pop():a={};const s=!1!==a.end;null==a.objectMode&&(a.objectMode=!0);null==a.highWaterMark&&(a.highWaterMark=65536);const l=i(a);function c(){for(let e=0,n=arguments.length;e<n;e++)t.push(o(arguments[e],a));return function n(){if(e)return;e=!0;let i=t.shift();if(!i)return void process.nextTick(u);Array.isArray(i)||(i=[i]);let r=i.length+1;function o(){--r>0||(e=!1,n())}function a(t){function e(){t.removeListener("merge2UnpipeEnd",e),t.removeListener("end",e),o()}if(t._readableState.endEmitted)return o();t.on("merge2UnpipeEnd",e),t.on("end",e),t.pipe(l,{end:!1}),t.resume()}for(let t=0;t<i.length;t++)a(i[t]);o()}(),this}function u(){return e=!1,l.emit("queueDrain"),s&&l.end()}l.setMaxListeners(0),l.add=c,l.on("unpipe",(function(t){t.emit("merge2UnpipeEnd")})),n.length&&c.apply(null,n);return l}},function(t,e){t.exports=n(9)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isString=function(t){return"string"==typeof t},e.isEmpty=function(t){return""===t}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(100),r=n(127);class o extends r.default{constructor(){super(...arguments),this._reader=new i.default(this._settings)}read(t){const e=this._getRootDirectory(t),n=this._getReaderOptions(t),i=[];return new Promise((r,o)=>{const a=this.api(e,t,n);a.once("error",o),a.on("data",t=>i.push(n.transform(t))),a.once("end",()=>r(i))})}api(t,e,n){return e.dynamic?this._reader.dynamic(t,n):this._reader.static(e.patterns,n)}}e.default=o},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(97),r=n(101),o=n(106),a=n(126);class s extends a.default{constructor(){super(...arguments),this._walkStream=o.walkStream,this._stat=r.stat}dynamic(t,e){return this._walkStream(t,e)}static(t,e){const n=t.map(this._getFullEntryPath,this),r=new i.PassThrough({objectMode:!0});r._write=(i,o,a)=>this._getEntry(n[i],t[i],e).then(t=>{null!==t&&e.entryFilter(t)&&r.push(t),i===n.length-1&&r.end(),a()}).catch(a);for(let t=0;t<n.length;t++)r.write(t);return r}_getEntry(t,e,n){return this._getStat(t).then(t=>this._makeEntry(t,e)).catch(t=>{if(n.errorFilter(t))return null;throw t})}_getStat(t){return new Promise((e,n)=>{this._stat(t,this._fsStatSettings,(t,i)=>null===t?e(i):n(t))})}}e.default=s},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(102),r=n(103),o=n(104);function a(t={}){return t instanceof o.default?t:new o.default(t)}e.Settings=o.default,e.stat=function(t,e,n){if("function"==typeof e)return i.read(t,a(),e);i.read(t,a(e),n)},e.statSync=function(t,e){const n=a(e);return r.read(t,n)}},function(t,e,n){"use strict";function i(t,e){t(e)}function r(t,e){t(null,e)}Object.defineProperty(e,"__esModule",{value:!0}),e.read=function(t,e,n){e.fs.lstat(t,(o,a)=>null!==o?i(n,o):a.isSymbolicLink()&&e.followSymbolicLink?void e.fs.stat(t,(t,o)=>{if(null!==t)return e.throwErrorOnBrokenSymbolicLink?i(n,t):r(n,a);e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),r(n,o)}):r(n,a))}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.read=function(t,e){const n=e.fs.lstatSync(t);if(!n.isSymbolicLink()||!e.followSymbolicLink)return n;try{const n=e.fs.statSync(t);return e.markSymbolicLink&&(n.isSymbolicLink=()=>!0),n}catch(t){if(!e.throwErrorOnBrokenSymbolicLink)return n;throw t}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(105);e.default=class{constructor(t={}){this._options=t,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=i.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(t,e){return void 0===t?e:t}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(40);e.FILE_SYSTEM_ADAPTER={lstat:i.lstat,stat:i.stat,lstatSync:i.lstatSync,statSync:i.statSync},e.createFileSystemAdapter=function(t){return void 0===t?e.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},e.FILE_SYSTEM_ADAPTER),t)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(107),r=n(122),o=n(123),a=n(125);function s(t={}){return t instanceof a.default?t:new a.default(t)}e.Settings=a.default,e.walk=function(t,e,n){if("function"==typeof e)return new i.default(t,s()).read(e);new i.default(t,s(e)).read(n)},e.walkSync=function(t,e){const n=s(e);return new o.default(t,n).read()},e.walkStream=function(t,e){const n=s(e);return new r.default(t,n).read()}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(108);e.default=class{constructor(t,e){this._root=t,this._settings=e,this._reader=new i.default(this._root,this._settings),this._storage=new Set}read(t){this._reader.onError(e=>{!function(t,e){t(e)}(t,e)}),this._reader.onEntry(t=>{this._storage.add(t)}),this._reader.onEnd(()=>{!function(t,e){t(null,e)}(t,[...this._storage])}),this._reader.read()}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(52),r=n(109),o=n(118),a=n(120),s=n(121);class l extends s.default{constructor(t,e){super(t,e),this._settings=e,this._scandir=r.scandir,this._emitter=new i.EventEmitter,this._queue=o(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(t){this._emitter.on("entry",t)}onError(t){this._emitter.once("error",t)}onEnd(t){this._emitter.once("end",t)}_pushToQueue(t,e){const n={directory:t,base:e};this._queue.push(n,t=>{null!==t&&this._handleError(t)})}_worker(t,e){this._scandir(t.directory,this._settings.fsScandirSettings,(n,i)=>{if(null!==n)return e(n,void 0);for(const e of i)this._handleEntry(e,t.base);e(null,void 0)})}_handleError(t){a.isFatalError(this._settings,t)&&(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",t))}_handleEntry(t,e){if(this._isDestroyed||this._isFatalError)return;const n=t.path;void 0!==e&&(t.path=a.joinPathSegments(e,t.name,this._settings.pathSegmentSeparator)),a.isAppliedFilter(this._settings.entryFilter,t)&&this._emitEntry(t),t.dirent.isDirectory()&&a.isAppliedFilter(this._settings.deepFilter,t)&&this._pushToQueue(n,t.path)}_emitEntry(t){this._emitter.emit("entry",t)}}e.default=l},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(110),r=n(115),o=n(116);function a(t={}){return t instanceof o.default?t:new o.default(t)}e.Settings=o.default,e.scandir=function(t,e,n){if("function"==typeof e)return i.read(t,a(),e);i.read(t,a(e),n)},e.scandirSync=function(t,e){const n=a(e);return r.read(t,n)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(101),r=n(111),o=n(112),a=n(113);function s(t,e,n){e.fs.readdir(t,{withFileTypes:!0},(i,o)=>{if(null!==i)return c(n,i);const s=o.map(n=>({dirent:n,name:n.name,path:`${t}${e.pathSegmentSeparator}${n.name}`}));if(!e.followSymbolicLinks)return u(n,s);const l=s.map(t=>(function(t,e){return n=>{if(!t.dirent.isSymbolicLink())return n(null,t);e.fs.stat(t.path,(i,r)=>null!==i?e.throwErrorOnBrokenSymbolicLink?n(i):n(null,t):(t.dirent=a.fs.createDirentFromStats(t.name,r),n(null,t)))}})(t,e));r(l,(t,e)=>{if(null!==t)return c(n,t);u(n,e)})})}function l(t,e,n){e.fs.readdir(t,(o,s)=>{if(null!==o)return c(n,o);const l=s.map(n=>`${t}${e.pathSegmentSeparator}${n}`),d=l.map(t=>n=>i.stat(t,e.fsStatSettings,n));r(d,(t,i)=>{if(null!==t)return c(n,t);const r=[];s.forEach((t,n)=>{const o=i[n],s={name:t,path:l[n],dirent:a.fs.createDirentFromStats(t,o)};e.stats&&(s.stats=o),r.push(s)}),u(n,r)})})}function c(t,e){t(e)}function u(t,e){t(null,e)}e.read=function(t,e,n){return!e.stats&&o.IS_SUPPORT_READDIR_WITH_FILE_TYPES?s(t,e,n):l(t,e,n)},e.readdirWithFileTypes=s,e.readdir=l},function(t,e){t.exports=function(t,e){var n,i,r,o=!0;Array.isArray(t)?(n=[],i=t.length):(r=Object.keys(t),n={},i=r.length);function a(t){function i(){e&&e(t,n),e=null}o?process.nextTick(i):i()}function s(t,e,r){n[t]=r,(0==--i||e)&&a(e)}i?r?r.forEach((function(e){t[e]((function(t,n){s(e,t,n)}))})):t.forEach((function(t,e){t((function(t,n){s(e,t,n)}))})):a(null);o=!1}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=process.versions.node.split("."),r=parseInt(i[0],10),o=parseInt(i[1],10),a=r>10,s=10===r&&o>=10;e.IS_SUPPORT_READDIR_WITH_FILE_TYPES=a||s},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(114);e.fs=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});class i{constructor(t,e){this.name=t,this.isBlockDevice=e.isBlockDevice.bind(e),this.isCharacterDevice=e.isCharacterDevice.bind(e),this.isDirectory=e.isDirectory.bind(e),this.isFIFO=e.isFIFO.bind(e),this.isFile=e.isFile.bind(e),this.isSocket=e.isSocket.bind(e),this.isSymbolicLink=e.isSymbolicLink.bind(e)}}e.createDirentFromStats=function(t,e){return new i(t,e)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(101),r=n(112),o=n(113);function a(t,e){return e.fs.readdirSync(t,{withFileTypes:!0}).map(n=>{const i={dirent:n,name:n.name,path:`${t}${e.pathSegmentSeparator}${n.name}`};if(i.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{const t=e.fs.statSync(i.path);i.dirent=o.fs.createDirentFromStats(i.name,t)}catch(t){if(e.throwErrorOnBrokenSymbolicLink)throw t}return i})}function s(t,e){return e.fs.readdirSync(t).map(n=>{const r=`${t}${e.pathSegmentSeparator}${n}`,a=i.statSync(r,e.fsStatSettings),s={name:n,path:r,dirent:o.fs.createDirentFromStats(n,a)};return e.stats&&(s.stats=a),s})}e.read=function(t,e){return!e.stats&&r.IS_SUPPORT_READDIR_WITH_FILE_TYPES?a(t,e):s(t,e)},e.readdirWithFileTypes=a,e.readdir=s},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(13),r=n(101),o=n(117);e.default=class{constructor(t={}){this._options=t,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=o.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,i.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new r.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(t,e){return void 0===t?e:t}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(40);e.FILE_SYSTEM_ADAPTER={lstat:i.lstat,stat:i.stat,lstatSync:i.lstatSync,statSync:i.statSync,readdir:i.readdir,readdirSync:i.readdirSync},e.createFileSystemAdapter=function(t){return void 0===t?e.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},e.FILE_SYSTEM_ADAPTER),t)}},function(t,e,n){"use strict";var i=n(119);function r(){}function o(){this.value=null,this.callback=r,this.next=null,this.release=r,this.context=null;var t=this;this.worked=function(e,n){var i=t.callback;t.value=null,t.callback=r,i.call(t.context,e,n),t.release(t)}}t.exports=function(t,e,n){"function"==typeof t&&(n=e,e=t,t=null);var a=i(o),s=null,l=null,c=0,u={push:function(n,i){var o=a.get();o.context=t,o.release=d,o.value=n,o.callback=i||r,c===u.concurrency||u.paused?l?(l.next=o,l=o):(s=o,l=o,u.saturated()):(c++,e.call(t,o.value,o.worked))},drain:r,saturated:r,pause:function(){u.paused=!0},paused:!1,concurrency:n,running:function(){return c},resume:function(){if(!u.paused)return;u.paused=!1;for(var t=0;t<u.concurrency;t++)c++,d()},idle:function(){return 0===c&&0===u.length()},length:function(){var t=s,e=0;for(;t;)t=t.next,e++;return e},unshift:function(n,i){var o=a.get();o.context=t,o.release=d,o.value=n,o.callback=i||r,c===u.concurrency||u.paused?s?(o.next=s,s=o):(s=o,l=o,u.saturated()):(c++,e.call(t,o.value,o.worked))},empty:r,kill:function(){s=null,l=null,u.drain=r},killAndDrain:function(){s=null,l=null,u.drain(),u.drain=r}};return u;function d(n){n&&a.release(n);var i=s;i?u.paused?c--:(l===s&&(l=null),s=i.next,i.next=null,e.call(t,i.value,i.worked),null===l&&u.empty()):0==--c&&u.drain()}}},function(t,e,n){"use strict";t.exports=function(t){var e=new t,n=e;return{get:function(){var i=e;return i.next?e=i.next:(e=new t,n=e),i.next=null,i},release:function(t){n.next=t,n=t}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isFatalError=function(t,e){return null===t.errorFilter||!t.errorFilter(e)},e.isAppliedFilter=function(t,e){return null===t||t(e)},e.replacePathSegmentSeparator=function(t,e){return t.split(/[\\/]/).join(e)},e.joinPathSegments=function(t,e,n){return""===t?e:t+n+e}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(120);e.default=class{constructor(t,e){this._root=t,this._settings=e,this._root=i.replacePathSegmentSeparator(t,e.pathSegmentSeparator)}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(97),r=n(108);e.default=class{constructor(t,e){this._root=t,this._settings=e,this._reader=new r.default(this._root,this._settings),this._stream=new i.Readable({objectMode:!0,read:()=>{},destroy:this._reader.destroy.bind(this._reader)})}read(){return this._reader.onError(t=>{this._stream.emit("error",t)}),this._reader.onEntry(t=>{this._stream.push(t)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(124);e.default=class{constructor(t,e){this._root=t,this._settings=e,this._reader=new i.default(this._root,this._settings)}read(){return this._reader.read()}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(109),r=n(120),o=n(121);class a extends o.default{constructor(){super(...arguments),this._scandir=i.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(t,e){this._queue.add({directory:t,base:e})}_handleQueue(){for(const t of this._queue.values())this._handleDirectory(t.directory,t.base)}_handleDirectory(t,e){try{const n=this._scandir(t,this._settings.fsScandirSettings);for(const t of n)this._handleEntry(t,e)}catch(t){this._handleError(t)}}_handleError(t){if(r.isFatalError(this._settings,t))throw t}_handleEntry(t,e){const n=t.path;void 0!==e&&(t.path=r.joinPathSegments(e,t.name,this._settings.pathSegmentSeparator)),r.isAppliedFilter(this._settings.entryFilter,t)&&this._pushToStorage(t),t.dirent.isDirectory()&&r.isAppliedFilter(this._settings.deepFilter,t)&&this._pushToQueue(n,t.path)}_pushToStorage(t){this._storage.add(t)}}e.default=a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(13),r=n(109);e.default=class{constructor(t={}){this._options=t,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,1/0),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,i.sep),this.fsScandirSettings=new r.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(t,e){return void 0===t?e:t}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(13),r=n(101),o=n(63);e.default=class{constructor(t){this._settings=t,this._fsStatSettings=new r.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(t){return i.resolve(this._settings.cwd,t)}_makeEntry(t,e){const n={name:e,path:e,dirent:o.fs.createDirentFromStats(e,t)};return this._settings.stats&&(n.stats=t),n}_isFatalError(t){return!o.errno.isEnoentCodeError(t)&&!this._settings.suppressErrors}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(13),r=n(128),o=n(131),a=n(132),s=n(133);e.default=class{constructor(t){this._settings=t,this.errorFilter=new a.default(this._settings),this.entryFilter=new o.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new r.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new s.default(this._settings)}_getRootDirectory(t){return i.resolve(this._settings.cwd,t.base)}_getReaderOptions(t){const e="."===t.base?"":t.base;return{basePath:e,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(e,t.positive,t.negative),entryFilter:this.entryFilter.getFilter(t.positive,t.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(63),r=n(129);e.default=class{constructor(t,e){this._settings=t,this._micromatchOptions=e}getFilter(t,e,n){const i=this._getMatcher(e),r=this._getNegativePatternsRe(n);return e=>this._filter(t,e,i,r)}_getMatcher(t){return new r.default(t,this._settings,this._micromatchOptions)}_getNegativePatternsRe(t){const e=t.filter(i.pattern.isAffectDepthOfReadingPattern);return i.pattern.convertPatternsToRe(e,this._micromatchOptions)}_filter(t,e,n,r){const o=this._getEntryLevel(t,e.path);if(this._isSkippedByDeep(o))return!1;if(this._isSkippedSymbolicLink(e))return!1;const a=i.path.removeLeadingDotSegment(e.path);return!this._isSkippedByPositivePatterns(a,n)&&this._isSkippedByNegativePatterns(a,r)}_isSkippedByDeep(t){return t>=this._settings.deep}_isSkippedSymbolicLink(t){return!this._settings.followSymbolicLinks&&t.dirent.isSymbolicLink()}_getEntryLevel(t,e){const n=t.split("/").length;return e.split("/").length-(""===t?0:n)}_isSkippedByPositivePatterns(t,e){return!this._settings.baseNameMatch&&!e.match(t)}_isSkippedByNegativePatterns(t,e){return!i.pattern.matchAny(t,e)}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(130);class r extends i.default{match(t){const e=t.split("/"),n=e.length,i=this._storage.filter(t=>!t.complete||t.segments.length>n);for(const t of i){const i=t.sections[0];if(!t.complete&&n>i.length)return!0;if(e.every((e,n)=>{const i=t.segments[n];return!(!i.dynamic||!i.patternRe.test(e))||!i.dynamic&&i.pattern===e}))return!0}return!1}}e.default=r},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(63);e.default=class{constructor(t,e,n){this._patterns=t,this._settings=e,this._micromatchOptions=n,this._storage=[],this._fillStorage()}_fillStorage(){const t=i.pattern.expandPatternsWithBraceExpansion(this._patterns);for(const e of t){const t=this._getPatternSegments(e),n=this._splitSegmentsIntoSections(t);this._storage.push({complete:n.length<=1,pattern:e,segments:t,sections:n})}}_getPatternSegments(t){return i.pattern.getPatternParts(t,this._micromatchOptions).map(t=>{return i.pattern.isDynamicPattern(t,this._settings)?{dynamic:!0,pattern:t,patternRe:i.pattern.makeRe(t,this._micromatchOptions)}:{dynamic:!1,pattern:t}})}_splitSegmentsIntoSections(t){return i.array.splitWhen(t,t=>t.dynamic&&i.pattern.hasGlobStar(t.pattern))}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(63);e.default=class{constructor(t,e){this._settings=t,this._micromatchOptions=e,this.index=new Map}getFilter(t,e){const n=i.pattern.convertPatternsToRe(t,this._micromatchOptions),r=i.pattern.convertPatternsToRe(e,this._micromatchOptions);return t=>this._filter(t,n,r)}_filter(t,e,n){if(this._settings.unique){if(this._isDuplicateEntry(t))return!1;this._createIndexRecord(t)}if(this._onlyFileFilter(t)||this._onlyDirectoryFilter(t))return!1;if(this._isSkippedByAbsoluteNegativePatterns(t,n))return!1;const i=this._settings.baseNameMatch?t.name:t.path;return this._isMatchToPatterns(i,e)&&!this._isMatchToPatterns(t.path,n)}_isDuplicateEntry(t){return this.index.has(t.path)}_createIndexRecord(t){this.index.set(t.path,void 0)}_onlyFileFilter(t){return this._settings.onlyFiles&&!t.dirent.isFile()}_onlyDirectoryFilter(t){return this._settings.onlyDirectories&&!t.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(t,e){if(!this._settings.absolute)return!1;const n=i.path.makeAbsolute(this._settings.cwd,t.path);return this._isMatchToPatterns(n,e)}_isMatchToPatterns(t,e){const n=i.path.removeLeadingDotSegment(t);return i.pattern.matchAny(n,e)}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(63);e.default=class{constructor(t){this._settings=t}getFilter(){return t=>this._isNonFatalError(t)}_isNonFatalError(t){return i.errno.isEnoentCodeError(t)||this._settings.suppressErrors}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(63);e.default=class{constructor(t){this._settings=t}getTransformer(){return t=>this._transform(t)}_transform(t){let e=t.path;return this._settings.absolute&&(e=i.path.makeAbsolute(this._settings.cwd,e),e=i.path.unixify(e)),this._settings.markDirectories&&t.dirent.isDirectory()&&(e+="/"),this._settings.objectMode?Object.assign(Object.assign({},t),{path:e}):e}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(97),r=n(100),o=n(127);class a extends o.default{constructor(){super(...arguments),this._reader=new r.default(this._settings)}read(t){const e=this._getRootDirectory(t),n=this._getReaderOptions(t),r=this.api(e,t,n),o=new i.Readable({objectMode:!0,read:()=>{}});return r.once("error",t=>o.emit("error",t)).on("data",t=>o.emit("data",n.transform(t))).once("end",()=>o.emit("end")),o.once("close",()=>r.destroy()),o}api(t,e,n){return e.dynamic?this._reader.dynamic(t,n):this._reader.static(e.patterns,n)}}e.default=a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(136),r=n(127);class o extends r.default{constructor(){super(...arguments),this._reader=new i.default(this._settings)}read(t){const e=this._getRootDirectory(t),n=this._getReaderOptions(t);return this.api(e,t,n).map(n.transform)}api(t,e,n){return e.dynamic?this._reader.dynamic(t,n):this._reader.static(e.patterns,n)}}e.default=o},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(101),r=n(106),o=n(126);class a extends o.default{constructor(){super(...arguments),this._walkSync=r.walkSync,this._statSync=i.statSync}dynamic(t,e){return this._walkSync(t,e)}static(t,e){const n=[];for(const i of t){const t=this._getFullEntryPath(i),r=this._getEntry(t,i,e);null!==r&&e.entryFilter(r)&&n.push(r)}return n}_getEntry(t,e,n){try{const n=this._getStat(t);return this._makeEntry(n,e)}catch(t){if(n.errorFilter(t))return null;throw t}}_getStat(t){return this._statSync(t,this._fsStatSettings)}}e.default=a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const i=n(40),r=n(14).cpus().length;e.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:i.lstat,lstatSync:i.lstatSync,stat:i.stat,statSync:i.statSync,readdir:i.readdir,readdirSync:i.readdirSync};e.default=class{constructor(t={}){this._options=t,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,r),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(t,e){return void 0===t?e:t}_getFileSystemMethods(t={}){return Object.assign(Object.assign({},e.DEFAULT_FILE_SYSTEM_ADAPTER),t)}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(139);e.default=function(t){return{log:function(e){i.connection.console.log(t+": "+e)},info:function(e){i.connection.console.info(t+": "+e)},warn:function(e){i.connection.console.warn(t+": "+e)},error:function(e){i.connection.console.error(t+": "+e)}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(2);e.connection=i.createConnection()},function(t){t.exports=JSON.parse('{"completionItems":{"commands":[{"label":"range","kind":24,"detail":"{range}","documentation":"go to last line in {range}","sortText":"00004","insertText":"range","insertTextFormat":1},{"label":"!","kind":24,"detail":"!","documentation":"filter lines or execute an external command","sortText":"00004","insertText":"!","insertTextFormat":1},{"label":"!!","kind":24,"detail":"!!","documentation":"repeat last \\":!\\" command","sortText":"00004","insertText":"!!","insertTextFormat":1},{"label":"#","kind":24,"detail":"#","documentation":"same as \\":number\\"","sortText":"00004","insertText":"#","insertTextFormat":1},{"label":"&","kind":24,"detail":"&","documentation":"repeat last \\":substitute\\"","sortText":"00004","insertText":"&","insertTextFormat":1},{"label":"star","kind":24,"detail":"*","documentation":"execute contents of a register","sortText":"00004","insertText":"star","insertTextFormat":1},{"label":"<","kind":24,"detail":"<","documentation":"shift lines one \'shiftwidth\' left","sortText":"00004","insertText":"<","insertTextFormat":1},{"label":"=","kind":24,"detail":"=","documentation":"print the cursor line number","sortText":"00004","insertText":"=","insertTextFormat":1},{"label":">","kind":24,"detail":">","documentation":"shift lines one \'shiftwidth\' right","sortText":"00004","insertText":">","insertTextFormat":1},{"label":"@","kind":24,"detail":"@","documentation":"execute contents of a register","sortText":"00004","insertText":"@","insertTextFormat":1},{"label":"@@","kind":24,"detail":"@@","documentation":"repeat the previous \\":@\\"","sortText":"00004","insertText":"@@","insertTextFormat":1},{"label":"Next","kind":24,"detail":"N[ext]","documentation":"go to previous file in the argument list","sortText":"00004","insertText":"Next","insertTextFormat":1},{"label":"append","kind":24,"detail":"a[ppend]","documentation":"append text","sortText":"00004","insertText":"append","insertTextFormat":1},{"label":"abbreviate","kind":24,"detail":"ab[breviate]","documentation":"enter abbreviation","sortText":"00004","insertText":"abbreviate","insertTextFormat":1},{"label":"abclear","kind":24,"detail":"abc[lear]","documentation":"remove all abbreviations","sortText":"00004","insertText":"abclear","insertTextFormat":1},{"label":"aboveleft","kind":24,"detail":"abo[veleft]","documentation":"make split window appear left or above","sortText":"00004","insertText":"aboveleft","insertTextFormat":1},{"label":"all","kind":24,"detail":"al[l]","documentation":"open a window for each file in the argument list","sortText":"00004","insertText":"all","insertTextFormat":1},{"label":"amenu","kind":24,"detail":"am[enu]","documentation":"enter new menu item for all modes","sortText":"00004","insertText":"amenu","insertTextFormat":1},{"label":"anoremenu","kind":24,"detail":"an[oremenu]","documentation":"enter a new menu for all modes that will not be remapped","sortText":"00004","insertText":"anoremenu","insertTextFormat":1},{"label":"args","kind":24,"detail":"ar[gs]","documentation":"print the argument list","sortText":"00004","insertText":"args","insertTextFormat":1},{"label":"argadd","kind":24,"detail":"arga[dd]","documentation":"add items to the argument list","sortText":"00004","insertText":"argadd","insertTextFormat":1},{"label":"argdelete","kind":24,"detail":"argd[elete]","documentation":"delete items from the argument list","sortText":"00004","insertText":"argdelete","insertTextFormat":1},{"label":"argedit","kind":24,"detail":"arge[dit]","documentation":"add item to the argument list and edit it","sortText":"00004","insertText":"argedit","insertTextFormat":1},{"label":"argdo","kind":24,"detail":"argdo","documentation":"do a command on all items in the argument list","sortText":"00004","insertText":"argdo","insertTextFormat":1},{"label":"argglobal","kind":24,"detail":"argg[lobal]","documentation":"define the global argument list","sortText":"00004","insertText":"argglobal","insertTextFormat":1},{"label":"arglocal","kind":24,"detail":"argl[ocal]","documentation":"define a local argument list","sortText":"00004","insertText":"arglocal","insertTextFormat":1},{"label":"argument","kind":24,"detail":"argu[ment]","documentation":"go to specific file in the argument list","sortText":"00004","insertText":"argument","insertTextFormat":1},{"label":"ascii","kind":24,"detail":"as[cii]","documentation":"print ascii value of character under the cursor","sortText":"00004","insertText":"ascii","insertTextFormat":1},{"label":"autocmd","kind":24,"detail":"au[tocmd]","documentation":"enter or show autocommands","sortText":"00004","insertText":"autocmd","insertTextFormat":1},{"label":"augroup","kind":24,"detail":"aug[roup]","documentation":"select the autocommand group to use","sortText":"00004","insertText":"augroup","insertTextFormat":1},{"label":"aunmenu","kind":24,"detail":"aun[menu]","documentation":"remove menu for all modes","sortText":"00004","insertText":"aunmenu","insertTextFormat":1},{"label":"buffer","kind":24,"detail":"b[uffer]","documentation":"go to specific buffer in the buffer list","sortText":"00004","insertText":"buffer","insertTextFormat":1},{"label":"bNext","kind":24,"detail":"bN[ext]","documentation":"go to previous buffer in the buffer list","sortText":"00004","insertText":"bNext","insertTextFormat":1},{"label":"ball","kind":24,"detail":"ba[ll]","documentation":"open a window for each buffer in the buffer list","sortText":"00004","insertText":"ball","insertTextFormat":1},{"label":"badd","kind":24,"detail":"bad[d]","documentation":"add buffer to the buffer list","sortText":"00004","insertText":"badd","insertTextFormat":1},{"label":"bdelete","kind":24,"detail":"bd[elete]","documentation":"remove a buffer from the buffer list","sortText":"00004","insertText":"bdelete","insertTextFormat":1},{"label":"behave","kind":24,"detail":"be[have]","documentation":"set mouse and selection behavior","sortText":"00004","insertText":"behave","insertTextFormat":1},{"label":"belowright","kind":24,"detail":"bel[owright]","documentation":"make split window appear right or below","sortText":"00004","insertText":"belowright","insertTextFormat":1},{"label":"bfirst","kind":24,"detail":"bf[irst]","documentation":"go to first buffer in the buffer list","sortText":"00004","insertText":"bfirst","insertTextFormat":1},{"label":"blast","kind":24,"detail":"bl[ast]","documentation":"go to last buffer in the buffer list","sortText":"00004","insertText":"blast","insertTextFormat":1},{"label":"bmodified","kind":24,"detail":"bm[odified]","documentation":"go to next buffer in the buffer list that has been modified","sortText":"00004","insertText":"bmodified","insertTextFormat":1},{"label":"bnext","kind":24,"detail":"bn[ext]","documentation":"go to next buffer in the buffer list","sortText":"00004","insertText":"bnext","insertTextFormat":1},{"label":"botright","kind":24,"detail":"bo[tright]","documentation":"make split window appear at bottom or far right","sortText":"00004","insertText":"botright","insertTextFormat":1},{"label":"bprevious","kind":24,"detail":"bp[revious]","documentation":"go to previous buffer in the buffer list","sortText":"00004","insertText":"bprevious","insertTextFormat":1},{"label":"brewind","kind":24,"detail":"br[ewind]","documentation":"go to first buffer in the buffer list","sortText":"00004","insertText":"brewind","insertTextFormat":1},{"label":"break","kind":24,"detail":"brea[k]","documentation":"break out of while loop","sortText":"00004","insertText":"break","insertTextFormat":1},{"label":"breakadd","kind":24,"detail":"breaka[dd]","documentation":"add a debugger breakpoint","sortText":"00004","insertText":"breakadd","insertTextFormat":1},{"label":"breakdel","kind":24,"detail":"breakd[el]","documentation":"delete a debugger breakpoint","sortText":"00004","insertText":"breakdel","insertTextFormat":1},{"label":"breaklist","kind":24,"detail":"breakl[ist]","documentation":"list debugger breakpoints","sortText":"00004","insertText":"breaklist","insertTextFormat":1},{"label":"browse","kind":24,"detail":"bro[wse]","documentation":"use file selection dialog","sortText":"00004","insertText":"browse","insertTextFormat":1},{"label":"bufdo","kind":24,"detail":"bufdo","documentation":"execute command in each listed buffer","sortText":"00004","insertText":"bufdo","insertTextFormat":1},{"label":"buffers","kind":24,"detail":"buffers","documentation":"list all files in the buffer list","sortText":"00004","insertText":"buffers","insertTextFormat":1},{"label":"bunload","kind":24,"detail":"bun[load]","documentation":"unload a specific buffer","sortText":"00004","insertText":"bunload","insertTextFormat":1},{"label":"bwipeout","kind":24,"detail":"bw[ipeout]","documentation":"really delete a buffer","sortText":"00004","insertText":"bwipeout","insertTextFormat":1},{"label":"change","kind":24,"detail":"c[hange]","documentation":"replace a line or series of lines","sortText":"00004","insertText":"change","insertTextFormat":1},{"label":"cNext","kind":24,"detail":"cN[ext]","documentation":"go to previous error","sortText":"00004","insertText":"cNext","insertTextFormat":1},{"label":"cNfile","kind":24,"detail":"cNf[ile]","documentation":"go to last error in previous file","sortText":"00004","insertText":"cNfile","insertTextFormat":1},{"label":"cabbrev","kind":24,"detail":"ca[bbrev]","documentation":"like \\":abbreviate\\" but for Command-line mode","sortText":"00004","insertText":"cabbrev","insertTextFormat":1},{"label":"cabclear","kind":24,"detail":"cabc[lear]","documentation":"clear all abbreviations for Command-line mode","sortText":"00004","insertText":"cabclear","insertTextFormat":1},{"label":"cabove","kind":24,"detail":"cabo[ve]","documentation":"go to error above current line","sortText":"00004","insertText":"cabove","insertTextFormat":1},{"label":"caddbuffer","kind":24,"detail":"cad[dbuffer]","documentation":"add errors from buffer","sortText":"00004","insertText":"caddbuffer","insertTextFormat":1},{"label":"caddexpr","kind":24,"detail":"cadde[xpr]","documentation":"add errors from expr","sortText":"00004","insertText":"caddexpr","insertTextFormat":1},{"label":"caddfile","kind":24,"detail":"caddf[ile]","documentation":"add error message to current quickfix list","sortText":"00004","insertText":"caddfile","insertTextFormat":1},{"label":"call","kind":24,"detail":"cal[l]","documentation":"call a function","sortText":"00004","insertText":"call","insertTextFormat":1},{"label":"catch","kind":24,"detail":"cat[ch]","documentation":"part of a :try command","sortText":"00004","insertText":"catch","insertTextFormat":1},{"label":"cbelow","kind":24,"detail":"cbe[low]","documentation":"go to error below current line","sortText":"00004","insertText":"cbelow","insertTextFormat":1},{"label":"cbottom","kind":24,"detail":"cbo[ttom]","documentation":"scroll to the bottom of the quickfix window","sortText":"00004","insertText":"cbottom","insertTextFormat":1},{"label":"cbuffer","kind":24,"detail":"cb[uffer]","documentation":"parse error messages and jump to first error","sortText":"00004","insertText":"cbuffer","insertTextFormat":1},{"label":"cc","kind":24,"detail":"cc","documentation":"go to specific error","sortText":"00004","insertText":"cc","insertTextFormat":1},{"label":"cclose","kind":24,"detail":"ccl[ose]","documentation":"close quickfix window","sortText":"00004","insertText":"cclose","insertTextFormat":1},{"label":"cd","kind":24,"detail":"cd","documentation":"change directory","sortText":"00004","insertText":"cd","insertTextFormat":1},{"label":"cdo","kind":24,"detail":"cdo","documentation":"execute command in each valid error list entry","sortText":"00004","insertText":"cdo","insertTextFormat":1},{"label":"cfdo","kind":24,"detail":"cfd[o]","documentation":"execute command in each file in error list","sortText":"00004","insertText":"cfdo","insertTextFormat":1},{"label":"center","kind":24,"detail":"ce[nter]","documentation":"format lines at the center","sortText":"00004","insertText":"center","insertTextFormat":1},{"label":"cexpr","kind":24,"detail":"cex[pr]","documentation":"read errors from expr and jump to first","sortText":"00004","insertText":"cexpr","insertTextFormat":1},{"label":"cfile","kind":24,"detail":"cf[ile]","documentation":"read file with error messages and jump to first","sortText":"00004","insertText":"cfile","insertTextFormat":1},{"label":"cfirst","kind":24,"detail":"cfir[st]","documentation":"go to the specified error, default first one","sortText":"00004","insertText":"cfirst","insertTextFormat":1},{"label":"cgetbuffer","kind":24,"detail":"cgetb[uffer]","documentation":"get errors from buffer","sortText":"00004","insertText":"cgetbuffer","insertTextFormat":1},{"label":"cgetexpr","kind":24,"detail":"cgete[xpr]","documentation":"get errors from expr","sortText":"00004","insertText":"cgetexpr","insertTextFormat":1},{"label":"cgetfile","kind":24,"detail":"cg[etfile]","documentation":"read file with error messages","sortText":"00004","insertText":"cgetfile","insertTextFormat":1},{"label":"changes","kind":24,"detail":"changes","documentation":"print the change list","sortText":"00004","insertText":"changes","insertTextFormat":1},{"label":"chdir","kind":24,"detail":"chd[ir]","documentation":"change directory","sortText":"00004","insertText":"chdir","insertTextFormat":1},{"label":"checkpath","kind":24,"detail":"che[ckpath]","documentation":"list included files","sortText":"00004","insertText":"checkpath","insertTextFormat":1},{"label":"checktime","kind":24,"detail":"checkt[ime]","documentation":"check timestamp of loaded buffers","sortText":"00004","insertText":"checktime","insertTextFormat":1},{"label":"chistory","kind":24,"detail":"chi[story]","documentation":"list the error lists","sortText":"00004","insertText":"chistory","insertTextFormat":1},{"label":"clast","kind":24,"detail":"cla[st]","documentation":"go to the specified error, default last one","sortText":"00004","insertText":"clast","insertTextFormat":1},{"label":"clearjumps","kind":24,"detail":"cle[arjumps]","documentation":"clear the jump list","sortText":"00004","insertText":"clearjumps","insertTextFormat":1},{"label":"clist","kind":24,"detail":"cl[ist]","documentation":"list all errors","sortText":"00004","insertText":"clist","insertTextFormat":1},{"label":"close","kind":24,"detail":"clo[se]","documentation":"close current window","sortText":"00004","insertText":"close","insertTextFormat":1},{"label":"cmap","kind":24,"detail":"cm[ap]","documentation":"like \\":map\\" but for Command-line mode","sortText":"00004","insertText":"cmap","insertTextFormat":1},{"label":"cmapclear","kind":24,"detail":"cmapc[lear]","documentation":"clear all mappings for Command-line mode","sortText":"00004","insertText":"cmapclear","insertTextFormat":1},{"label":"cmenu","kind":24,"detail":"cme[nu]","documentation":"add menu for Command-line mode","sortText":"00004","insertText":"cmenu","insertTextFormat":1},{"label":"cnext","kind":24,"detail":"cn[ext]","documentation":"go to next error","sortText":"00004","insertText":"cnext","insertTextFormat":1},{"label":"cnewer","kind":24,"detail":"cnew[er]","documentation":"go to newer error list","sortText":"00004","insertText":"cnewer","insertTextFormat":1},{"label":"cnfile","kind":24,"detail":"cnf[ile]","documentation":"go to first error in next file","sortText":"00004","insertText":"cnfile","insertTextFormat":1},{"label":"cnoremap","kind":24,"detail":"cno[remap]","documentation":"like \\":noremap\\" but for Command-line mode","sortText":"00004","insertText":"cnoremap","insertTextFormat":1},{"label":"cnoreabbrev","kind":24,"detail":"cnorea[bbrev]","documentation":"like \\":noreabbrev\\" but for Command-line mode","sortText":"00004","insertText":"cnoreabbrev","insertTextFormat":1},{"label":"cnoremenu","kind":24,"detail":"cnoreme[nu]","documentation":"like \\":noremenu\\" but for Command-line mode","sortText":"00004","insertText":"cnoremenu","insertTextFormat":1},{"label":"copy","kind":24,"detail":"co[py]","documentation":"copy lines","sortText":"00004","insertText":"copy","insertTextFormat":1},{"label":"colder","kind":24,"detail":"col[der]","documentation":"go to older error list","sortText":"00004","insertText":"colder","insertTextFormat":1},{"label":"colorscheme","kind":24,"detail":"colo[rscheme]","documentation":"load a specific color scheme","sortText":"00004","insertText":"colorscheme","insertTextFormat":1},{"label":"command","kind":24,"detail":"com[mand]","documentation":"create user-defined command","sortText":"00004","insertText":"command","insertTextFormat":1},{"label":"comclear","kind":24,"detail":"comc[lear]","documentation":"clear all user-defined commands","sortText":"00004","insertText":"comclear","insertTextFormat":1},{"label":"compiler","kind":24,"detail":"comp[iler]","documentation":"do settings for a specific compiler","sortText":"00004","insertText":"compiler","insertTextFormat":1},{"label":"continue","kind":24,"detail":"con[tinue]","documentation":"go back to :while","sortText":"00004","insertText":"continue","insertTextFormat":1},{"label":"confirm","kind":24,"detail":"conf[irm]","documentation":"prompt user when confirmation required","sortText":"00004","insertText":"confirm","insertTextFormat":1},{"label":"const","kind":24,"detail":"cons[t]","documentation":"create a variable as a constant","sortText":"00004","insertText":"const","insertTextFormat":1},{"label":"copen","kind":24,"detail":"cope[n]","documentation":"open quickfix window","sortText":"00004","insertText":"copen","insertTextFormat":1},{"label":"cprevious","kind":24,"detail":"cp[revious]","documentation":"go to previous error","sortText":"00004","insertText":"cprevious","insertTextFormat":1},{"label":"cpfile","kind":24,"detail":"cpf[ile]","documentation":"go to last error in previous file","sortText":"00004","insertText":"cpfile","insertTextFormat":1},{"label":"cquit","kind":24,"detail":"cq[uit]","documentation":"quit Vim with an error code","sortText":"00004","insertText":"cquit","insertTextFormat":1},{"label":"crewind","kind":24,"detail":"cr[ewind]","documentation":"go to the specified error, default first one","sortText":"00004","insertText":"crewind","insertTextFormat":1},{"label":"cscope","kind":24,"detail":"cs[cope]","documentation":"execute cscope command","sortText":"00004","insertText":"cscope","insertTextFormat":1},{"label":"cstag","kind":24,"detail":"cst[ag]","documentation":"use cscope to jump to a tag","sortText":"00004","insertText":"cstag","insertTextFormat":1},{"label":"cunmap","kind":24,"detail":"cu[nmap]","documentation":"like \\":unmap\\" but for Command-line mode","sortText":"00004","insertText":"cunmap","insertTextFormat":1},{"label":"cunabbrev","kind":24,"detail":"cuna[bbrev]","documentation":"like \\":unabbrev\\" but for Command-line mode","sortText":"00004","insertText":"cunabbrev","insertTextFormat":1},{"label":"cunmenu","kind":24,"detail":"cunme[nu]","documentation":"remove menu for Command-line mode","sortText":"00004","insertText":"cunmenu","insertTextFormat":1},{"label":"cwindow","kind":24,"detail":"cw[indow]","documentation":"open or close quickfix window","sortText":"00004","insertText":"cwindow","insertTextFormat":1},{"label":"delete","kind":24,"detail":"d[elete]","documentation":"delete lines","sortText":"00004","insertText":"delete","insertTextFormat":1},{"label":"delmarks","kind":24,"detail":"delm[arks]","documentation":"delete marks","sortText":"00004","insertText":"delmarks","insertTextFormat":1},{"label":"debug","kind":24,"detail":"deb[ug]","documentation":"run a command in debugging mode","sortText":"00004","insertText":"debug","insertTextFormat":1},{"label":"debuggreedy","kind":24,"detail":"debugg[reedy]","documentation":"read debug mode commands from normal input","sortText":"00004","insertText":"debuggreedy","insertTextFormat":1},{"label":"delcommand","kind":24,"detail":"delc[ommand]","documentation":"delete user-defined command","sortText":"00004","insertText":"delcommand","insertTextFormat":1},{"label":"delfunction","kind":24,"detail":"delf[unction]","documentation":"delete a user function","sortText":"00004","insertText":"delfunction","insertTextFormat":1},{"label":"diffupdate","kind":24,"detail":"dif[fupdate]","documentation":"update \'diff\' buffers","sortText":"00004","insertText":"diffupdate","insertTextFormat":1},{"label":"diffget","kind":24,"detail":"diffg[et]","documentation":"remove differences in current buffer","sortText":"00004","insertText":"diffget","insertTextFormat":1},{"label":"diffoff","kind":24,"detail":"diffo[ff]","documentation":"switch off diff mode","sortText":"00004","insertText":"diffoff","insertTextFormat":1},{"label":"diffpatch","kind":24,"detail":"diffp[atch]","documentation":"apply a patch and show differences","sortText":"00004","insertText":"diffpatch","insertTextFormat":1},{"label":"diffput","kind":24,"detail":"diffpu[t]","documentation":"remove differences in other buffer","sortText":"00004","insertText":"diffput","insertTextFormat":1},{"label":"diffsplit","kind":24,"detail":"diffs[plit]","documentation":"show differences with another file","sortText":"00004","insertText":"diffsplit","insertTextFormat":1},{"label":"diffthis","kind":24,"detail":"diffthis","documentation":"make current window a diff window","sortText":"00004","insertText":"diffthis","insertTextFormat":1},{"label":"digraphs","kind":24,"detail":"dig[raphs]","documentation":"show or enter digraphs","sortText":"00004","insertText":"digraphs","insertTextFormat":1},{"label":"display","kind":24,"detail":"di[splay]","documentation":"display registers","sortText":"00004","insertText":"display","insertTextFormat":1},{"label":"djump","kind":24,"detail":"dj[ump]","documentation":"jump to #define","sortText":"00004","insertText":"djump","insertTextFormat":1},{"label":"dl","kind":24,"detail":"dl","documentation":"short for |:delete| with the \'l\' flag","sortText":"00004","insertText":"dl","insertTextFormat":1},{"label":"del","kind":24,"detail":"del[ete]l","documentation":"short for |:delete| with the \'l\' flag","sortText":"00004","insertText":"del","insertTextFormat":1},{"label":"dlist","kind":24,"detail":"dli[st]","documentation":"list #defines","sortText":"00004","insertText":"dlist","insertTextFormat":1},{"label":"doautocmd","kind":24,"detail":"do[autocmd]","documentation":"apply autocommands to current buffer","sortText":"00004","insertText":"doautocmd","insertTextFormat":1},{"label":"doautoall","kind":24,"detail":"doautoa[ll]","documentation":"apply autocommands for all loaded buffers","sortText":"00004","insertText":"doautoall","insertTextFormat":1},{"label":"dp","kind":24,"detail":"d[elete]p","documentation":"short for |:delete| with the \'p\' flag","sortText":"00004","insertText":"dp","insertTextFormat":1},{"label":"drop","kind":24,"detail":"dr[op]","documentation":"jump to window editing file or edit file in current window","sortText":"00004","insertText":"drop","insertTextFormat":1},{"label":"dsearch","kind":24,"detail":"ds[earch]","documentation":"list one #define","sortText":"00004","insertText":"dsearch","insertTextFormat":1},{"label":"dsplit","kind":24,"detail":"dsp[lit]","documentation":"split window and jump to #define","sortText":"00004","insertText":"dsplit","insertTextFormat":1},{"label":"edit","kind":24,"detail":"e[dit]","documentation":"edit a file","sortText":"00004","insertText":"edit","insertTextFormat":1},{"label":"earlier","kind":24,"detail":"ea[rlier]","documentation":"go to older change, undo","sortText":"00004","insertText":"earlier","insertTextFormat":1},{"label":"echo","kind":24,"detail":"ec[ho]","documentation":"echoes the result of expressions","sortText":"00004","insertText":"echo","insertTextFormat":1},{"label":"echoerr","kind":24,"detail":"echoe[rr]","documentation":"like :echo, show like an error and use history","sortText":"00004","insertText":"echoerr","insertTextFormat":1},{"label":"echohl","kind":24,"detail":"echoh[l]","documentation":"set highlighting for echo commands","sortText":"00004","insertText":"echohl","insertTextFormat":1},{"label":"echomsg","kind":24,"detail":"echom[sg]","documentation":"same as :echo, put message in history","sortText":"00004","insertText":"echomsg","insertTextFormat":1},{"label":"echon","kind":24,"detail":"echon","documentation":"same as :echo, but without <EOL>","sortText":"00004","insertText":"echon","insertTextFormat":1},{"label":"else","kind":24,"detail":"el[se]","documentation":"part of an :if command","sortText":"00004","insertText":"else","insertTextFormat":1},{"label":"elseif","kind":24,"detail":"elsei[f]","documentation":"part of an :if command","sortText":"00004","insertText":"elseif","insertTextFormat":1},{"label":"emenu","kind":24,"detail":"em[enu]","documentation":"execute a menu by name","sortText":"00004","insertText":"emenu","insertTextFormat":1},{"label":"endif","kind":24,"detail":"en[dif]","documentation":"end previous :if","sortText":"00004","insertText":"endif","insertTextFormat":1},{"label":"endfor","kind":24,"detail":"endfo[r]","documentation":"end previous :for","sortText":"00004","insertText":"endfor","insertTextFormat":1},{"label":"endfunction","kind":24,"detail":"endf[unction]","documentation":"end of a user function","sortText":"00004","insertText":"endfunction","insertTextFormat":1},{"label":"endtry","kind":24,"detail":"endt[ry]","documentation":"end previous :try","sortText":"00004","insertText":"endtry","insertTextFormat":1},{"label":"endwhile","kind":24,"detail":"endw[hile]","documentation":"end previous :while","sortText":"00004","insertText":"endwhile","insertTextFormat":1},{"label":"enew","kind":24,"detail":"ene[w]","documentation":"edit a new, unnamed buffer","sortText":"00004","insertText":"enew","insertTextFormat":1},{"label":"ex","kind":24,"detail":"ex","documentation":"same as \\":edit\\"","sortText":"00004","insertText":"ex","insertTextFormat":1},{"label":"execute","kind":24,"detail":"exe[cute]","documentation":"execute result of expressions","sortText":"00004","insertText":"execute","insertTextFormat":1},{"label":"exit","kind":24,"detail":"exi[t]","documentation":"same as \\":xit\\"","sortText":"00004","insertText":"exit","insertTextFormat":1},{"label":"exusage","kind":24,"detail":"exu[sage]","documentation":"overview of Ex commands","sortText":"00004","insertText":"exusage","insertTextFormat":1},{"label":"file","kind":24,"detail":"f[ile]","documentation":"show or set the current file name","sortText":"00004","insertText":"file","insertTextFormat":1},{"label":"files","kind":24,"detail":"files","documentation":"list all files in the buffer list","sortText":"00004","insertText":"files","insertTextFormat":1},{"label":"filetype","kind":24,"detail":"filet[ype]","documentation":"switch file type detection on/off","sortText":"00004","insertText":"filetype","insertTextFormat":1},{"label":"filter","kind":24,"detail":"filt[er]","documentation":"filter output of following command","sortText":"00004","insertText":"filter","insertTextFormat":1},{"label":"find","kind":24,"detail":"fin[d]","documentation":"find file in \'path\' and edit it","sortText":"00004","insertText":"find","insertTextFormat":1},{"label":"finally","kind":24,"detail":"fina[lly]","documentation":"part of a :try command","sortText":"00004","insertText":"finally","insertTextFormat":1},{"label":"finish","kind":24,"detail":"fini[sh]","documentation":"quit sourcing a Vim script","sortText":"00004","insertText":"finish","insertTextFormat":1},{"label":"first","kind":24,"detail":"fir[st]","documentation":"go to the first file in the argument list","sortText":"00004","insertText":"first","insertTextFormat":1},{"label":"fold","kind":24,"detail":"fo[ld]","documentation":"create a fold","sortText":"00004","insertText":"fold","insertTextFormat":1},{"label":"foldclose","kind":24,"detail":"foldc[lose]","documentation":"close folds","sortText":"00004","insertText":"foldclose","insertTextFormat":1},{"label":"folddoopen","kind":24,"detail":"foldd[oopen]","documentation":"execute command on lines not in a closed fold","sortText":"00004","insertText":"folddoopen","insertTextFormat":1},{"label":"folddoclosed","kind":24,"detail":"folddoc[losed]","documentation":"execute command on lines in a closed fold","sortText":"00004","insertText":"folddoclosed","insertTextFormat":1},{"label":"foldopen","kind":24,"detail":"foldo[pen]","documentation":"open folds","sortText":"00004","insertText":"foldopen","insertTextFormat":1},{"label":"for","kind":24,"detail":"for","documentation":"for loop","sortText":"00004","insertText":"for","insertTextFormat":1},{"label":"function","kind":24,"detail":"fu[nction]","documentation":"define a user function","sortText":"00004","insertText":"function","insertTextFormat":1},{"label":"global","kind":24,"detail":"g[lobal]","documentation":"execute commands for matching lines","sortText":"00004","insertText":"global","insertTextFormat":1},{"label":"goto","kind":24,"detail":"go[to]","documentation":"go to byte in the buffer","sortText":"00004","insertText":"goto","insertTextFormat":1},{"label":"grep","kind":24,"detail":"gr[ep]","documentation":"run \'grepprg\' and jump to first match","sortText":"00004","insertText":"grep","insertTextFormat":1},{"label":"grepadd","kind":24,"detail":"grepa[dd]","documentation":"like :grep, but append to current list","sortText":"00004","insertText":"grepadd","insertTextFormat":1},{"label":"gui","kind":24,"detail":"gu[i]","documentation":"start the GUI","sortText":"00004","insertText":"gui","insertTextFormat":1},{"label":"gvim","kind":24,"detail":"gv[im]","documentation":"start the GUI","sortText":"00004","insertText":"gvim","insertTextFormat":1},{"label":"hardcopy","kind":24,"detail":"ha[rdcopy]","documentation":"send text to the printer","sortText":"00004","insertText":"hardcopy","insertTextFormat":1},{"label":"help","kind":24,"detail":"h[elp]","documentation":"open a help window","sortText":"00004","insertText":"help","insertTextFormat":1},{"label":"helpclose","kind":24,"detail":"helpc[lose]","documentation":"close one help window","sortText":"00004","insertText":"helpclose","insertTextFormat":1},{"label":"helpgrep","kind":24,"detail":"helpg[rep]","documentation":"like \\":grep\\" but searches help files","sortText":"00004","insertText":"helpgrep","insertTextFormat":1},{"label":"helptags","kind":24,"detail":"helpt[ags]","documentation":"generate help tags for a directory","sortText":"00004","insertText":"helptags","insertTextFormat":1},{"label":"highlight","kind":24,"detail":"hi[ghlight]","documentation":"specify highlighting methods","sortText":"00004","insertText":"highlight","insertTextFormat":1},{"label":"hide","kind":24,"detail":"hid[e]","documentation":"hide current buffer for a command","sortText":"00004","insertText":"hide","insertTextFormat":1},{"label":"history","kind":24,"detail":"his[tory]","documentation":"print a history list","sortText":"00004","insertText":"history","insertTextFormat":1},{"label":"insert","kind":24,"detail":"i[nsert]","documentation":"insert text","sortText":"00004","insertText":"insert","insertTextFormat":1},{"label":"iabbrev","kind":24,"detail":"ia[bbrev]","documentation":"like \\":abbrev\\" but for Insert mode","sortText":"00004","insertText":"iabbrev","insertTextFormat":1},{"label":"iabclear","kind":24,"detail":"iabc[lear]","documentation":"like \\":abclear\\" but for Insert mode","sortText":"00004","insertText":"iabclear","insertTextFormat":1},{"label":"if","kind":24,"detail":"if","documentation":"execute commands when condition met","sortText":"00004","insertText":"if","insertTextFormat":1},{"label":"ijump","kind":24,"detail":"ij[ump]","documentation":"jump to definition of identifier","sortText":"00004","insertText":"ijump","insertTextFormat":1},{"label":"ilist","kind":24,"detail":"il[ist]","documentation":"list lines where identifier matches","sortText":"00004","insertText":"ilist","insertTextFormat":1},{"label":"imap","kind":24,"detail":"im[ap]","documentation":"like \\":map\\" but for Insert mode","sortText":"00004","insertText":"imap","insertTextFormat":1},{"label":"imapclear","kind":24,"detail":"imapc[lear]","documentation":"like \\":mapclear\\" but for Insert mode","sortText":"00004","insertText":"imapclear","insertTextFormat":1},{"label":"imenu","kind":24,"detail":"ime[nu]","documentation":"add menu for Insert mode","sortText":"00004","insertText":"imenu","insertTextFormat":1},{"label":"inoremap","kind":24,"detail":"ino[remap]","documentation":"like \\":noremap\\" but for Insert mode","sortText":"00004","insertText":"inoremap","insertTextFormat":1},{"label":"inoreabbrev","kind":24,"detail":"inorea[bbrev]","documentation":"like \\":noreabbrev\\" but for Insert mode","sortText":"00004","insertText":"inoreabbrev","insertTextFormat":1},{"label":"inoremenu","kind":24,"detail":"inoreme[nu]","documentation":"like \\":noremenu\\" but for Insert mode","sortText":"00004","insertText":"inoremenu","insertTextFormat":1},{"label":"intro","kind":24,"detail":"int[ro]","documentation":"print the introductory message","sortText":"00004","insertText":"intro","insertTextFormat":1},{"label":"isearch","kind":24,"detail":"is[earch]","documentation":"list one line where identifier matches","sortText":"00004","insertText":"isearch","insertTextFormat":1},{"label":"isplit","kind":24,"detail":"isp[lit]","documentation":"split window and jump to definition of identifier","sortText":"00004","insertText":"isplit","insertTextFormat":1},{"label":"iunmap","kind":24,"detail":"iu[nmap]","documentation":"like \\":unmap\\" but for Insert mode","sortText":"00004","insertText":"iunmap","insertTextFormat":1},{"label":"iunabbrev","kind":24,"detail":"iuna[bbrev]","documentation":"like \\":unabbrev\\" but for Insert mode","sortText":"00004","insertText":"iunabbrev","insertTextFormat":1},{"label":"iunmenu","kind":24,"detail":"iunme[nu]","documentation":"remove menu for Insert mode","sortText":"00004","insertText":"iunmenu","insertTextFormat":1},{"label":"join","kind":24,"detail":"j[oin]","documentation":"join lines","sortText":"00004","insertText":"join","insertTextFormat":1},{"label":"jumps","kind":24,"detail":"ju[mps]","documentation":"print the jump list","sortText":"00004","insertText":"jumps","insertTextFormat":1},{"label":"k","kind":24,"detail":"k","documentation":"set a mark","sortText":"00004","insertText":"k","insertTextFormat":1},{"label":"keepalt","kind":24,"detail":"keepa[lt]","documentation":"following command keeps the alternate file","sortText":"00004","insertText":"keepalt","insertTextFormat":1},{"label":"keepmarks","kind":24,"detail":"kee[pmarks]","documentation":"following command keeps marks where they are","sortText":"00004","insertText":"keepmarks","insertTextFormat":1},{"label":"keepjumps","kind":24,"detail":"keepj[umps]","documentation":"following command keeps jumplist and marks","sortText":"00004","insertText":"keepjumps","insertTextFormat":1},{"label":"keeppatterns","kind":24,"detail":"keepp[atterns]","documentation":"following command keeps search pattern history","sortText":"00004","insertText":"keeppatterns","insertTextFormat":1},{"label":"lNext","kind":24,"detail":"lN[ext]","documentation":"go to previous entry in location list","sortText":"00004","insertText":"lNext","insertTextFormat":1},{"label":"lNfile","kind":24,"detail":"lNf[ile]","documentation":"go to last entry in previous file","sortText":"00004","insertText":"lNfile","insertTextFormat":1},{"label":"list","kind":24,"detail":"l[ist]","documentation":"print lines","sortText":"00004","insertText":"list","insertTextFormat":1},{"label":"labove","kind":24,"detail":"lab[ove]","documentation":"go to location above current line","sortText":"00004","insertText":"labove","insertTextFormat":1},{"label":"laddexpr","kind":24,"detail":"lad[dexpr]","documentation":"add locations from expr","sortText":"00004","insertText":"laddexpr","insertTextFormat":1},{"label":"laddbuffer","kind":24,"detail":"laddb[uffer]","documentation":"add locations from buffer","sortText":"00004","insertText":"laddbuffer","insertTextFormat":1},{"label":"laddfile","kind":24,"detail":"laddf[ile]","documentation":"add locations to current location list","sortText":"00004","insertText":"laddfile","insertTextFormat":1},{"label":"last","kind":24,"detail":"la[st]","documentation":"go to the last file in the argument list","sortText":"00004","insertText":"last","insertTextFormat":1},{"label":"language","kind":24,"detail":"lan[guage]","documentation":"set the language (locale)","sortText":"00004","insertText":"language","insertTextFormat":1},{"label":"later","kind":24,"detail":"lat[er]","documentation":"go to newer change, redo","sortText":"00004","insertText":"later","insertTextFormat":1},{"label":"lbelow","kind":24,"detail":"lbe[low]","documentation":"go to location below current line","sortText":"00004","insertText":"lbelow","insertTextFormat":1},{"label":"lbottom","kind":24,"detail":"lbo[ttom]","documentation":"scroll to the bottom of the location window","sortText":"00004","insertText":"lbottom","insertTextFormat":1},{"label":"lbuffer","kind":24,"detail":"lb[uffer]","documentation":"parse locations and jump to first location","sortText":"00004","insertText":"lbuffer","insertTextFormat":1},{"label":"lcd","kind":24,"detail":"lc[d]","documentation":"change directory locally","sortText":"00004","insertText":"lcd","insertTextFormat":1},{"label":"lchdir","kind":24,"detail":"lch[dir]","documentation":"change directory locally","sortText":"00004","insertText":"lchdir","insertTextFormat":1},{"label":"lclose","kind":24,"detail":"lcl[ose]","documentation":"close location window","sortText":"00004","insertText":"lclose","insertTextFormat":1},{"label":"lcscope","kind":24,"detail":"lcs[cope]","documentation":"like \\":cscope\\" but uses location list","sortText":"00004","insertText":"lcscope","insertTextFormat":1},{"label":"ldo","kind":24,"detail":"ld[o]","documentation":"execute command in valid location list entries","sortText":"00004","insertText":"ldo","insertTextFormat":1},{"label":"lfdo","kind":24,"detail":"lfd[o]","documentation":"execute command in each file in location list","sortText":"00004","insertText":"lfdo","insertTextFormat":1},{"label":"left","kind":24,"detail":"le[ft]","documentation":"left align lines","sortText":"00004","insertText":"left","insertTextFormat":1},{"label":"leftabove","kind":24,"detail":"lefta[bove]","documentation":"make split window appear left or above","sortText":"00004","insertText":"leftabove","insertTextFormat":1},{"label":"let","kind":24,"detail":"let","documentation":"assign a value to a variable or option","sortText":"00004","insertText":"let","insertTextFormat":1},{"label":"lexpr","kind":24,"detail":"lex[pr]","documentation":"read locations from expr and jump to first","sortText":"00004","insertText":"lexpr","insertTextFormat":1},{"label":"lfile","kind":24,"detail":"lf[ile]","documentation":"read file with locations and jump to first","sortText":"00004","insertText":"lfile","insertTextFormat":1},{"label":"lfirst","kind":24,"detail":"lfir[st]","documentation":"go to the specified location, default first one","sortText":"00004","insertText":"lfirst","insertTextFormat":1},{"label":"lgetbuffer","kind":24,"detail":"lgetb[uffer]","documentation":"get locations from buffer","sortText":"00004","insertText":"lgetbuffer","insertTextFormat":1},{"label":"lgetexpr","kind":24,"detail":"lgete[xpr]","documentation":"get locations from expr","sortText":"00004","insertText":"lgetexpr","insertTextFormat":1},{"label":"lgetfile","kind":24,"detail":"lg[etfile]","documentation":"read file with locations","sortText":"00004","insertText":"lgetfile","insertTextFormat":1},{"label":"lgrep","kind":24,"detail":"lgr[ep]","documentation":"run \'grepprg\' and jump to first match","sortText":"00004","insertText":"lgrep","insertTextFormat":1},{"label":"lgrepadd","kind":24,"detail":"lgrepa[dd]","documentation":"like :grep, but append to current list","sortText":"00004","insertText":"lgrepadd","insertTextFormat":1},{"label":"lhelpgrep","kind":24,"detail":"lh[elpgrep]","documentation":"like \\":helpgrep\\" but uses location list","sortText":"00004","insertText":"lhelpgrep","insertTextFormat":1},{"label":"lhistory","kind":24,"detail":"lhi[story]","documentation":"list the location lists","sortText":"00004","insertText":"lhistory","insertTextFormat":1},{"label":"ll","kind":24,"detail":"ll","documentation":"go to specific location","sortText":"00004","insertText":"ll","insertTextFormat":1},{"label":"llast","kind":24,"detail":"lla[st]","documentation":"go to the specified location, default last one","sortText":"00004","insertText":"llast","insertTextFormat":1},{"label":"llist","kind":24,"detail":"lli[st]","documentation":"list all locations","sortText":"00004","insertText":"llist","insertTextFormat":1},{"label":"lmake","kind":24,"detail":"lmak[e]","documentation":"execute external command \'makeprg\' and parse error messages","sortText":"00004","insertText":"lmake","insertTextFormat":1},{"label":"lmap","kind":24,"detail":"lm[ap]","documentation":"like \\":map!\\" but includes Lang-Arg mode","sortText":"00004","insertText":"lmap","insertTextFormat":1},{"label":"lmapclear","kind":24,"detail":"lmapc[lear]","documentation":"like \\":mapclear!\\" but includes Lang-Arg mode","sortText":"00004","insertText":"lmapclear","insertTextFormat":1},{"label":"lnext","kind":24,"detail":"lne[xt]","documentation":"go to next location","sortText":"00004","insertText":"lnext","insertTextFormat":1},{"label":"lnewer","kind":24,"detail":"lnew[er]","documentation":"go to newer location list","sortText":"00004","insertText":"lnewer","insertTextFormat":1},{"label":"lnfile","kind":24,"detail":"lnf[ile]","documentation":"go to first location in next file","sortText":"00004","insertText":"lnfile","insertTextFormat":1},{"label":"lnoremap","kind":24,"detail":"ln[oremap]","documentation":"like \\":noremap!\\" but includes Lang-Arg mode","sortText":"00004","insertText":"lnoremap","insertTextFormat":1},{"label":"loadkeymap","kind":24,"detail":"loadk[eymap]","documentation":"load the following keymaps until EOF","sortText":"00004","insertText":"loadkeymap","insertTextFormat":1},{"label":"loadview","kind":24,"detail":"lo[adview]","documentation":"load view for current window from a file","sortText":"00004","insertText":"loadview","insertTextFormat":1},{"label":"lockmarks","kind":24,"detail":"loc[kmarks]","documentation":"following command keeps marks where they are","sortText":"00004","insertText":"lockmarks","insertTextFormat":1},{"label":"lockvar","kind":24,"detail":"lockv[ar]","documentation":"lock variables","sortText":"00004","insertText":"lockvar","insertTextFormat":1},{"label":"lolder","kind":24,"detail":"lol[der]","documentation":"go to older location list","sortText":"00004","insertText":"lolder","insertTextFormat":1},{"label":"lopen","kind":24,"detail":"lope[n]","documentation":"open location window","sortText":"00004","insertText":"lopen","insertTextFormat":1},{"label":"lprevious","kind":24,"detail":"lp[revious]","documentation":"go to previous location","sortText":"00004","insertText":"lprevious","insertTextFormat":1},{"label":"lpfile","kind":24,"detail":"lpf[ile]","documentation":"go to last location in previous file","sortText":"00004","insertText":"lpfile","insertTextFormat":1},{"label":"lrewind","kind":24,"detail":"lr[ewind]","documentation":"go to the specified location, default first one","sortText":"00004","insertText":"lrewind","insertTextFormat":1},{"label":"ls","kind":24,"detail":"ls","documentation":"list all buffers","sortText":"00004","insertText":"ls","insertTextFormat":1},{"label":"ltag","kind":24,"detail":"lt[ag]","documentation":"jump to tag and add matching tags to the location list","sortText":"00004","insertText":"ltag","insertTextFormat":1},{"label":"lunmap","kind":24,"detail":"lu[nmap]","documentation":"like \\":unmap!\\" but includes Lang-Arg mode","sortText":"00004","insertText":"lunmap","insertTextFormat":1},{"label":"lua","kind":24,"detail":"lua","documentation":"execute |Lua| command","sortText":"00004","insertText":"lua","insertTextFormat":1},{"label":"luado","kind":24,"detail":"luad[o]","documentation":"execute Lua command for each line","sortText":"00004","insertText":"luado","insertTextFormat":1},{"label":"luafile","kind":24,"detail":"luaf[ile]","documentation":"execute |Lua| script file","sortText":"00004","insertText":"luafile","insertTextFormat":1},{"label":"lvimgrep","kind":24,"detail":"lv[imgrep]","documentation":"search for pattern in files","sortText":"00004","insertText":"lvimgrep","insertTextFormat":1},{"label":"lvimgrepadd","kind":24,"detail":"lvimgrepa[dd]","documentation":"like :vimgrep, but append to current list","sortText":"00004","insertText":"lvimgrepadd","insertTextFormat":1},{"label":"lwindow","kind":24,"detail":"lw[indow]","documentation":"open or close location window","sortText":"00004","insertText":"lwindow","insertTextFormat":1},{"label":"move","kind":24,"detail":"m[ove]","documentation":"move lines","sortText":"00004","insertText":"move","insertTextFormat":1},{"label":"mark","kind":24,"detail":"ma[rk]","documentation":"set a mark","sortText":"00004","insertText":"mark","insertTextFormat":1},{"label":"make","kind":24,"detail":"mak[e]","documentation":"execute external command \'makeprg\' and parse error messages","sortText":"00004","insertText":"make","insertTextFormat":1},{"label":"map","kind":24,"detail":"map","documentation":"show or enter a mapping","sortText":"00004","insertText":"map","insertTextFormat":1},{"label":"mapclear","kind":24,"detail":"mapc[lear]","documentation":"clear all mappings for Normal and Visual mode","sortText":"00004","insertText":"mapclear","insertTextFormat":1},{"label":"marks","kind":24,"detail":"marks","documentation":"list all marks","sortText":"00004","insertText":"marks","insertTextFormat":1},{"label":"match","kind":24,"detail":"mat[ch]","documentation":"define a match to highlight","sortText":"00004","insertText":"match","insertTextFormat":1},{"label":"menu","kind":24,"detail":"me[nu]","documentation":"enter a new menu item","sortText":"00004","insertText":"menu","insertTextFormat":1},{"label":"menutranslate","kind":24,"detail":"menut[ranslate]","documentation":"add a menu translation item","sortText":"00004","insertText":"menutranslate","insertTextFormat":1},{"label":"messages","kind":24,"detail":"mes[sages]","documentation":"view previously displayed messages","sortText":"00004","insertText":"messages","insertTextFormat":1},{"label":"mkexrc","kind":24,"detail":"mk[exrc]","documentation":"write current mappings and settings to a file","sortText":"00004","insertText":"mkexrc","insertTextFormat":1},{"label":"mksession","kind":24,"detail":"mks[ession]","documentation":"write session info to a file","sortText":"00004","insertText":"mksession","insertTextFormat":1},{"label":"mkspell","kind":24,"detail":"mksp[ell]","documentation":"produce .spl spell file","sortText":"00004","insertText":"mkspell","insertTextFormat":1},{"label":"mkvimrc","kind":24,"detail":"mkv[imrc]","documentation":"write current mappings and settings to a file","sortText":"00004","insertText":"mkvimrc","insertTextFormat":1},{"label":"mkview","kind":24,"detail":"mkvie[w]","documentation":"write view of current window to a file","sortText":"00004","insertText":"mkview","insertTextFormat":1},{"label":"mode","kind":24,"detail":"mod[e]","documentation":"show or change the screen mode","sortText":"00004","insertText":"mode","insertTextFormat":1},{"label":"next","kind":24,"detail":"n[ext]","documentation":"go to next file in the argument list","sortText":"00004","insertText":"next","insertTextFormat":1},{"label":"new","kind":24,"detail":"new","documentation":"create a new empty window","sortText":"00004","insertText":"new","insertTextFormat":1},{"label":"nmap","kind":24,"detail":"nm[ap]","documentation":"like \\":map\\" but for Normal mode","sortText":"00004","insertText":"nmap","insertTextFormat":1},{"label":"nmapclear","kind":24,"detail":"nmapc[lear]","documentation":"clear all mappings for Normal mode","sortText":"00004","insertText":"nmapclear","insertTextFormat":1},{"label":"nmenu","kind":24,"detail":"nme[nu]","documentation":"add menu for Normal mode","sortText":"00004","insertText":"nmenu","insertTextFormat":1},{"label":"nnoremap","kind":24,"detail":"nn[oremap]","documentation":"like \\":noremap\\" but for Normal mode","sortText":"00004","insertText":"nnoremap","insertTextFormat":1},{"label":"nnoremenu","kind":24,"detail":"nnoreme[nu]","documentation":"like \\":noremenu\\" but for Normal mode","sortText":"00004","insertText":"nnoremenu","insertTextFormat":1},{"label":"noautocmd","kind":24,"detail":"noa[utocmd]","documentation":"following commands don\'t trigger autocommands","sortText":"00004","insertText":"noautocmd","insertTextFormat":1},{"label":"noremap","kind":24,"detail":"no[remap]","documentation":"enter a mapping that will not be remapped","sortText":"00004","insertText":"noremap","insertTextFormat":1},{"label":"nohlsearch","kind":24,"detail":"noh[lsearch]","documentation":"suspend \'hlsearch\' highlighting","sortText":"00004","insertText":"nohlsearch","insertTextFormat":1},{"label":"noreabbrev","kind":24,"detail":"norea[bbrev]","documentation":"enter an abbreviation that will not be remapped","sortText":"00004","insertText":"noreabbrev","insertTextFormat":1},{"label":"noremenu","kind":24,"detail":"noreme[nu]","documentation":"enter a menu that will not be remapped","sortText":"00004","insertText":"noremenu","insertTextFormat":1},{"label":"normal","kind":24,"detail":"norm[al]","documentation":"execute Normal mode commands","sortText":"00004","insertText":"normal","insertTextFormat":1},{"label":"noswapfile","kind":24,"detail":"nos[wapfile]","documentation":"following commands don\'t create a swap file","sortText":"00004","insertText":"noswapfile","insertTextFormat":1},{"label":"number","kind":24,"detail":"nu[mber]","documentation":"print lines with line number","sortText":"00004","insertText":"number","insertTextFormat":1},{"label":"nunmap","kind":24,"detail":"nun[map]","documentation":"like \\":unmap\\" but for Normal mode","sortText":"00004","insertText":"nunmap","insertTextFormat":1},{"label":"nunmenu","kind":24,"detail":"nunme[nu]","documentation":"remove menu for Normal mode","sortText":"00004","insertText":"nunmenu","insertTextFormat":1},{"label":"oldfiles","kind":24,"detail":"ol[dfiles]","documentation":"list files that have marks in the |shada| file","sortText":"00004","insertText":"oldfiles","insertTextFormat":1},{"label":"omap","kind":24,"detail":"om[ap]","documentation":"like \\":map\\" but for Operator-pending mode","sortText":"00004","insertText":"omap","insertTextFormat":1},{"label":"omapclear","kind":24,"detail":"omapc[lear]","documentation":"remove all mappings for Operator-pending mode","sortText":"00004","insertText":"omapclear","insertTextFormat":1},{"label":"omenu","kind":24,"detail":"ome[nu]","documentation":"add menu for Operator-pending mode","sortText":"00004","insertText":"omenu","insertTextFormat":1},{"label":"only","kind":24,"detail":"on[ly]","documentation":"close all windows except the current one","sortText":"00004","insertText":"only","insertTextFormat":1},{"label":"onoremap","kind":24,"detail":"ono[remap]","documentation":"like \\":noremap\\" but for Operator-pending mode","sortText":"00004","insertText":"onoremap","insertTextFormat":1},{"label":"onoremenu","kind":24,"detail":"onoreme[nu]","documentation":"like \\":noremenu\\" but for Operator-pending mode","sortText":"00004","insertText":"onoremenu","insertTextFormat":1},{"label":"options","kind":24,"detail":"opt[ions]","documentation":"open the options-window","sortText":"00004","insertText":"options","insertTextFormat":1},{"label":"ounmap","kind":24,"detail":"ou[nmap]","documentation":"like \\":unmap\\" but for Operator-pending mode","sortText":"00004","insertText":"ounmap","insertTextFormat":1},{"label":"ounmenu","kind":24,"detail":"ounme[nu]","documentation":"remove menu for Operator-pending mode","sortText":"00004","insertText":"ounmenu","insertTextFormat":1},{"label":"ownsyntax","kind":24,"detail":"ow[nsyntax]","documentation":"set new local syntax highlight for this window","sortText":"00004","insertText":"ownsyntax","insertTextFormat":1},{"label":"packadd","kind":24,"detail":"pa[ckadd]","documentation":"add a plugin from \'packpath\'","sortText":"00004","insertText":"packadd","insertTextFormat":1},{"label":"packloadall","kind":24,"detail":"packl[oadall]","documentation":"load all packages under \'packpath\'","sortText":"00004","insertText":"packloadall","insertTextFormat":1},{"label":"pclose","kind":24,"detail":"pc[lose]","documentation":"close preview window","sortText":"00004","insertText":"pclose","insertTextFormat":1},{"label":"pedit","kind":24,"detail":"ped[it]","documentation":"edit file in the preview window","sortText":"00004","insertText":"pedit","insertTextFormat":1},{"label":"print","kind":24,"detail":"p[rint]","documentation":"print lines","sortText":"00004","insertText":"print","insertTextFormat":1},{"label":"profdel","kind":24,"detail":"profd[el]","documentation":"stop profiling a function or script","sortText":"00004","insertText":"profdel","insertTextFormat":1},{"label":"profile","kind":24,"detail":"prof[ile]","documentation":"profiling functions and scripts","sortText":"00004","insertText":"profile","insertTextFormat":1},{"label":"promptfind","kind":24,"detail":"pro[mptfind]","documentation":"open GUI dialog for searching","sortText":"00004","insertText":"promptfind","insertTextFormat":1},{"label":"promptrepl","kind":24,"detail":"promptr[epl]","documentation":"open GUI dialog for search/replace","sortText":"00004","insertText":"promptrepl","insertTextFormat":1},{"label":"pop","kind":24,"detail":"po[p]","documentation":"jump to older entry in tag stack","sortText":"00004","insertText":"pop","insertTextFormat":1},{"label":"popup","kind":24,"detail":"popu[p]","documentation":"popup a menu by name","sortText":"00004","insertText":"popup","insertTextFormat":1},{"label":"ppop","kind":24,"detail":"pp[op]","documentation":"\\":pop\\" in preview window","sortText":"00004","insertText":"ppop","insertTextFormat":1},{"label":"preserve","kind":24,"detail":"pre[serve]","documentation":"write all text to swap file","sortText":"00004","insertText":"preserve","insertTextFormat":1},{"label":"previous","kind":24,"detail":"prev[ious]","documentation":"go to previous file in argument list","sortText":"00004","insertText":"previous","insertTextFormat":1},{"label":"psearch","kind":24,"detail":"ps[earch]","documentation":"like \\":ijump\\" but shows match in preview window","sortText":"00004","insertText":"psearch","insertTextFormat":1},{"label":"ptag","kind":24,"detail":"pt[ag]","documentation":"show tag in preview window","sortText":"00004","insertText":"ptag","insertTextFormat":1},{"label":"ptNext","kind":24,"detail":"ptN[ext]","documentation":"|:tNext| in preview window","sortText":"00004","insertText":"ptNext","insertTextFormat":1},{"label":"ptfirst","kind":24,"detail":"ptf[irst]","documentation":"|:trewind| in preview window","sortText":"00004","insertText":"ptfirst","insertTextFormat":1},{"label":"ptjump","kind":24,"detail":"ptj[ump]","documentation":"|:tjump| and show tag in preview window","sortText":"00004","insertText":"ptjump","insertTextFormat":1},{"label":"ptlast","kind":24,"detail":"ptl[ast]","documentation":"|:tlast| in preview window","sortText":"00004","insertText":"ptlast","insertTextFormat":1},{"label":"ptnext","kind":24,"detail":"ptn[ext]","documentation":"|:tnext| in preview window","sortText":"00004","insertText":"ptnext","insertTextFormat":1},{"label":"ptprevious","kind":24,"detail":"ptp[revious]","documentation":"|:tprevious| in preview window","sortText":"00004","insertText":"ptprevious","insertTextFormat":1},{"label":"ptrewind","kind":24,"detail":"ptr[ewind]","documentation":"|:trewind| in preview window","sortText":"00004","insertText":"ptrewind","insertTextFormat":1},{"label":"ptselect","kind":24,"detail":"pts[elect]","documentation":"|:tselect| and show tag in preview window","sortText":"00004","insertText":"ptselect","insertTextFormat":1},{"label":"put","kind":24,"detail":"pu[t]","documentation":"insert contents of register in the text","sortText":"00004","insertText":"put","insertTextFormat":1},{"label":"pwd","kind":24,"detail":"pw[d]","documentation":"print current directory","sortText":"00004","insertText":"pwd","insertTextFormat":1},{"label":"py3","kind":24,"detail":"py3","documentation":"execute Python 3 command","sortText":"00004","insertText":"py3","insertTextFormat":1},{"label":"python3","kind":24,"detail":"python3","documentation":"same as :py3","sortText":"00004","insertText":"python3","insertTextFormat":1},{"label":"py3do","kind":24,"detail":"py3d[o]","documentation":"execute Python 3 command for each line","sortText":"00004","insertText":"py3do","insertTextFormat":1},{"label":"py3file","kind":24,"detail":"py3f[ile]","documentation":"execute Python 3 script file","sortText":"00004","insertText":"py3file","insertTextFormat":1},{"label":"python","kind":24,"detail":"py[thon]","documentation":"execute Python command","sortText":"00004","insertText":"python","insertTextFormat":1},{"label":"pydo","kind":24,"detail":"pyd[o]","documentation":"execute Python command for each line","sortText":"00004","insertText":"pydo","insertTextFormat":1},{"label":"pyfile","kind":24,"detail":"pyf[ile]","documentation":"execute Python script file","sortText":"00004","insertText":"pyfile","insertTextFormat":1},{"label":"pyx","kind":24,"detail":"pyx","documentation":"execute |python_x| command","sortText":"00004","insertText":"pyx","insertTextFormat":1},{"label":"pythonx","kind":24,"detail":"pythonx","documentation":"same as :pyx","sortText":"00004","insertText":"pythonx","insertTextFormat":1},{"label":"pyxdo","kind":24,"detail":"pyxd[o]","documentation":"execute |python_x| command for each line","sortText":"00004","insertText":"pyxdo","insertTextFormat":1},{"label":"pyxfile","kind":24,"detail":"pyxf[ile]","documentation":"execute |python_x| script file","sortText":"00004","insertText":"pyxfile","insertTextFormat":1},{"label":"quit","kind":24,"detail":"q[uit]","documentation":"quit current window (when one window quit Vim)","sortText":"00004","insertText":"quit","insertTextFormat":1},{"label":"quitall","kind":24,"detail":"quita[ll]","documentation":"quit Vim","sortText":"00004","insertText":"quitall","insertTextFormat":1},{"label":"qall","kind":24,"detail":"qa[ll]","documentation":"quit Vim","sortText":"00004","insertText":"qall","insertTextFormat":1},{"label":"read","kind":24,"detail":"r[ead]","documentation":"read file into the text","sortText":"00004","insertText":"read","insertTextFormat":1},{"label":"recover","kind":24,"detail":"rec[over]","documentation":"recover a file from a swap file","sortText":"00004","insertText":"recover","insertTextFormat":1},{"label":"redo","kind":24,"detail":"red[o]","documentation":"redo one undone change","sortText":"00004","insertText":"redo","insertTextFormat":1},{"label":"redir","kind":24,"detail":"redi[r]","documentation":"redirect messages to a file or register","sortText":"00004","insertText":"redir","insertTextFormat":1},{"label":"redraw","kind":24,"detail":"redr[aw]","documentation":"force a redraw of the display","sortText":"00004","insertText":"redraw","insertTextFormat":1},{"label":"redrawstatus","kind":24,"detail":"redraws[tatus]","documentation":"force a redraw of the status line(s)","sortText":"00004","insertText":"redrawstatus","insertTextFormat":1},{"label":"redrawtabline","kind":24,"detail":"redrawt[abline]","documentation":"force a redraw of the tabline","sortText":"00004","insertText":"redrawtabline","insertTextFormat":1},{"label":"registers","kind":24,"detail":"reg[isters]","documentation":"display the contents of registers","sortText":"00004","insertText":"registers","insertTextFormat":1},{"label":"resize","kind":24,"detail":"res[ize]","documentation":"change current window height","sortText":"00004","insertText":"resize","insertTextFormat":1},{"label":"retab","kind":24,"detail":"ret[ab]","documentation":"change tab size","sortText":"00004","insertText":"retab","insertTextFormat":1},{"label":"return","kind":24,"detail":"retu[rn]","documentation":"return from a user function","sortText":"00004","insertText":"return","insertTextFormat":1},{"label":"rewind","kind":24,"detail":"rew[ind]","documentation":"go to the first file in the argument list","sortText":"00004","insertText":"rewind","insertTextFormat":1},{"label":"right","kind":24,"detail":"ri[ght]","documentation":"right align text","sortText":"00004","insertText":"right","insertTextFormat":1},{"label":"rightbelow","kind":24,"detail":"rightb[elow]","documentation":"make split window appear right or below","sortText":"00004","insertText":"rightbelow","insertTextFormat":1},{"label":"rshada","kind":24,"detail":"rsh[ada]","documentation":"read from |shada| file","sortText":"00004","insertText":"rshada","insertTextFormat":1},{"label":"ruby","kind":24,"detail":"rub[y]","documentation":"execute Ruby command","sortText":"00004","insertText":"ruby","insertTextFormat":1},{"label":"rubydo","kind":24,"detail":"rubyd[o]","documentation":"execute Ruby command for each line","sortText":"00004","insertText":"rubydo","insertTextFormat":1},{"label":"rubyfile","kind":24,"detail":"rubyf[ile]","documentation":"execute Ruby script file","sortText":"00004","insertText":"rubyfile","insertTextFormat":1},{"label":"rundo","kind":24,"detail":"rund[o]","documentation":"read undo information from a file","sortText":"00004","insertText":"rundo","insertTextFormat":1},{"label":"runtime","kind":24,"detail":"ru[ntime]","documentation":"source vim scripts in \'runtimepath\'","sortText":"00004","insertText":"runtime","insertTextFormat":1},{"label":"substitute","kind":24,"detail":"s[ubstitute]","documentation":"find and replace text","sortText":"00004","insertText":"substitute","insertTextFormat":1},{"label":"sNext","kind":24,"detail":"sN[ext]","documentation":"split window and go to previous file in argument list","sortText":"00004","insertText":"sNext","insertTextFormat":1},{"label":"sandbox","kind":24,"detail":"san[dbox]","documentation":"execute a command in the sandbox","sortText":"00004","insertText":"sandbox","insertTextFormat":1},{"label":"sargument","kind":24,"detail":"sa[rgument]","documentation":"split window and go to specific file in argument list","sortText":"00004","insertText":"sargument","insertTextFormat":1},{"label":"sall","kind":24,"detail":"sal[l]","documentation":"open a window for each file in argument list","sortText":"00004","insertText":"sall","insertTextFormat":1},{"label":"saveas","kind":24,"detail":"sav[eas]","documentation":"save file under another name.","sortText":"00004","insertText":"saveas","insertTextFormat":1},{"label":"sbuffer","kind":24,"detail":"sb[uffer]","documentation":"split window and go to specific file in the buffer list","sortText":"00004","insertText":"sbuffer","insertTextFormat":1},{"label":"sbNext","kind":24,"detail":"sbN[ext]","documentation":"split window and go to previous file in the buffer list","sortText":"00004","insertText":"sbNext","insertTextFormat":1},{"label":"sball","kind":24,"detail":"sba[ll]","documentation":"open a window for each file in the buffer list","sortText":"00004","insertText":"sball","insertTextFormat":1},{"label":"sbfirst","kind":24,"detail":"sbf[irst]","documentation":"split window and go to first file in the buffer list","sortText":"00004","insertText":"sbfirst","insertTextFormat":1},{"label":"sblast","kind":24,"detail":"sbl[ast]","documentation":"split window and go to last file in buffer list","sortText":"00004","insertText":"sblast","insertTextFormat":1},{"label":"sbmodified","kind":24,"detail":"sbm[odified]","documentation":"split window and go to modified file in the buffer list","sortText":"00004","insertText":"sbmodified","insertTextFormat":1},{"label":"sbnext","kind":24,"detail":"sbn[ext]","documentation":"split window and go to next file in the buffer list","sortText":"00004","insertText":"sbnext","insertTextFormat":1},{"label":"sbprevious","kind":24,"detail":"sbp[revious]","documentation":"split window and go to previous file in the buffer list","sortText":"00004","insertText":"sbprevious","insertTextFormat":1},{"label":"sbrewind","kind":24,"detail":"sbr[ewind]","documentation":"split window and go to first file in the buffer list","sortText":"00004","insertText":"sbrewind","insertTextFormat":1},{"label":"scriptnames","kind":24,"detail":"scr[iptnames]","documentation":"list names of all sourced Vim scripts","sortText":"00004","insertText":"scriptnames","insertTextFormat":1},{"label":"scriptencoding","kind":24,"detail":"scripte[ncoding]","documentation":"encoding used in sourced Vim script","sortText":"00004","insertText":"scriptencoding","insertTextFormat":1},{"label":"scriptversion","kind":24,"detail":"scriptv[ersion]","documentation":"version of Vim script used","sortText":"00004","insertText":"scriptversion","insertTextFormat":1},{"label":"scscope","kind":24,"detail":"scs[cope]","documentation":"split window and execute cscope command","sortText":"00004","insertText":"scscope","insertTextFormat":1},{"label":"set","kind":24,"detail":"se[t]","documentation":"show or set options","sortText":"00004","insertText":"set","insertTextFormat":1},{"label":"setfiletype","kind":24,"detail":"setf[iletype]","documentation":"set \'filetype\', unless it was set already","sortText":"00004","insertText":"setfiletype","insertTextFormat":1},{"label":"setglobal","kind":24,"detail":"setg[lobal]","documentation":"show global values of options","sortText":"00004","insertText":"setglobal","insertTextFormat":1},{"label":"setlocal","kind":24,"detail":"setl[ocal]","documentation":"show or set options locally","sortText":"00004","insertText":"setlocal","insertTextFormat":1},{"label":"sfind","kind":24,"detail":"sf[ind]","documentation":"split current window and edit file in \'path\'","sortText":"00004","insertText":"sfind","insertTextFormat":1},{"label":"sfirst","kind":24,"detail":"sfir[st]","documentation":"split window and go to first file in the argument list","sortText":"00004","insertText":"sfirst","insertTextFormat":1},{"label":"sign","kind":24,"detail":"sig[n]","documentation":"manipulate signs","sortText":"00004","insertText":"sign","insertTextFormat":1},{"label":"silent","kind":24,"detail":"sil[ent]","documentation":"run a command silently","sortText":"00004","insertText":"silent","insertTextFormat":1},{"label":"sleep","kind":24,"detail":"sl[eep]","documentation":"do nothing for a few seconds","sortText":"00004","insertText":"sleep","insertTextFormat":1},{"label":"slast","kind":24,"detail":"sla[st]","documentation":"split window and go to last file in the argument list","sortText":"00004","insertText":"slast","insertTextFormat":1},{"label":"smagic","kind":24,"detail":"sm[agic]","documentation":":substitute with \'magic\'","sortText":"00004","insertText":"smagic","insertTextFormat":1},{"label":"smap","kind":24,"detail":"smap","documentation":"like \\":map\\" but for Select mode","sortText":"00004","insertText":"smap","insertTextFormat":1},{"label":"smapclear","kind":24,"detail":"smapc[lear]","documentation":"remove all mappings for Select mode","sortText":"00004","insertText":"smapclear","insertTextFormat":1},{"label":"smenu","kind":24,"detail":"sme[nu]","documentation":"add menu for Select mode","sortText":"00004","insertText":"smenu","insertTextFormat":1},{"label":"snext","kind":24,"detail":"sn[ext]","documentation":"split window and go to next file in the argument list","sortText":"00004","insertText":"snext","insertTextFormat":1},{"label":"snomagic","kind":24,"detail":"sno[magic]","documentation":":substitute with \'nomagic\'","sortText":"00004","insertText":"snomagic","insertTextFormat":1},{"label":"snoremap","kind":24,"detail":"snor[emap]","documentation":"like \\":noremap\\" but for Select mode","sortText":"00004","insertText":"snoremap","insertTextFormat":1},{"label":"snoremenu","kind":24,"detail":"snoreme[nu]","documentation":"like \\":noremenu\\" but for Select mode","sortText":"00004","insertText":"snoremenu","insertTextFormat":1},{"label":"sort","kind":24,"detail":"sor[t]","documentation":"sort lines","sortText":"00004","insertText":"sort","insertTextFormat":1},{"label":"source","kind":24,"detail":"so[urce]","documentation":"read Vim or Ex commands from a file","sortText":"00004","insertText":"source","insertTextFormat":1},{"label":"spelldump","kind":24,"detail":"spelld[ump]","documentation":"split window and fill with all correct words","sortText":"00004","insertText":"spelldump","insertTextFormat":1},{"label":"spellgood","kind":24,"detail":"spe[llgood]","documentation":"add good word for spelling","sortText":"00004","insertText":"spellgood","insertTextFormat":1},{"label":"spellinfo","kind":24,"detail":"spelli[nfo]","documentation":"show info about loaded spell files","sortText":"00004","insertText":"spellinfo","insertTextFormat":1},{"label":"spellrare","kind":24,"detail":"spellra[re]","documentation":"add rare word for spelling","sortText":"00004","insertText":"spellrare","insertTextFormat":1},{"label":"spellrepall","kind":24,"detail":"spellr[epall]","documentation":"replace all bad words like last |z=|","sortText":"00004","insertText":"spellrepall","insertTextFormat":1},{"label":"spellundo","kind":24,"detail":"spellu[ndo]","documentation":"remove good or bad word","sortText":"00004","insertText":"spellundo","insertTextFormat":1},{"label":"spellwrong","kind":24,"detail":"spellw[rong]","documentation":"add spelling mistake","sortText":"00004","insertText":"spellwrong","insertTextFormat":1},{"label":"split","kind":24,"detail":"sp[lit]","documentation":"split current window","sortText":"00004","insertText":"split","insertTextFormat":1},{"label":"sprevious","kind":24,"detail":"spr[evious]","documentation":"split window and go to previous file in the argument list","sortText":"00004","insertText":"sprevious","insertTextFormat":1},{"label":"srewind","kind":24,"detail":"sre[wind]","documentation":"split window and go to first file in the argument list","sortText":"00004","insertText":"srewind","insertTextFormat":1},{"label":"stop","kind":24,"detail":"st[op]","documentation":"suspend the editor or escape to a shell","sortText":"00004","insertText":"stop","insertTextFormat":1},{"label":"stag","kind":24,"detail":"sta[g]","documentation":"split window and jump to a tag","sortText":"00004","insertText":"stag","insertTextFormat":1},{"label":"startinsert","kind":24,"detail":"star[tinsert]","documentation":"start Insert mode","sortText":"00004","insertText":"startinsert","insertTextFormat":1},{"label":"startgreplace","kind":24,"detail":"startg[replace]","documentation":"start Virtual Replace mode","sortText":"00004","insertText":"startgreplace","insertTextFormat":1},{"label":"startreplace","kind":24,"detail":"startr[eplace]","documentation":"start Replace mode","sortText":"00004","insertText":"startreplace","insertTextFormat":1},{"label":"stopinsert","kind":24,"detail":"stopi[nsert]","documentation":"stop Insert mode","sortText":"00004","insertText":"stopinsert","insertTextFormat":1},{"label":"stjump","kind":24,"detail":"stj[ump]","documentation":"do \\":tjump\\" and split window","sortText":"00004","insertText":"stjump","insertTextFormat":1},{"label":"stselect","kind":24,"detail":"sts[elect]","documentation":"do \\":tselect\\" and split window","sortText":"00004","insertText":"stselect","insertTextFormat":1},{"label":"sunhide","kind":24,"detail":"sun[hide]","documentation":"same as \\":unhide\\"","sortText":"00004","insertText":"sunhide","insertTextFormat":1},{"label":"sunmap","kind":24,"detail":"sunm[ap]","documentation":"like \\":unmap\\" but for Select mode","sortText":"00004","insertText":"sunmap","insertTextFormat":1},{"label":"sunmenu","kind":24,"detail":"sunme[nu]","documentation":"remove menu for Select mode","sortText":"00004","insertText":"sunmenu","insertTextFormat":1},{"label":"suspend","kind":24,"detail":"sus[pend]","documentation":"same as \\":stop\\"","sortText":"00004","insertText":"suspend","insertTextFormat":1},{"label":"sview","kind":24,"detail":"sv[iew]","documentation":"split window and edit file read-only","sortText":"00004","insertText":"sview","insertTextFormat":1},{"label":"swapname","kind":24,"detail":"sw[apname]","documentation":"show the name of the current swap file","sortText":"00004","insertText":"swapname","insertTextFormat":1},{"label":"syntax","kind":24,"detail":"sy[ntax]","documentation":"syntax highlighting","sortText":"00004","insertText":"syntax","insertTextFormat":1},{"label":"syntime","kind":24,"detail":"synti[me]","documentation":"measure syntax highlighting speed","sortText":"00004","insertText":"syntime","insertTextFormat":1},{"label":"syncbind","kind":24,"detail":"sync[bind]","documentation":"sync scroll binding","sortText":"00004","insertText":"syncbind","insertTextFormat":1},{"label":"t","kind":24,"detail":"t","documentation":"same as \\":copy\\"","sortText":"00004","insertText":"t","insertTextFormat":1},{"label":"tNext","kind":24,"detail":"tN[ext]","documentation":"jump to previous matching tag","sortText":"00004","insertText":"tNext","insertTextFormat":1},{"label":"tabNext","kind":24,"detail":"tabN[ext]","documentation":"go to previous tab page","sortText":"00004","insertText":"tabNext","insertTextFormat":1},{"label":"tabclose","kind":24,"detail":"tabc[lose]","documentation":"close current tab page","sortText":"00004","insertText":"tabclose","insertTextFormat":1},{"label":"tabdo","kind":24,"detail":"tabdo","documentation":"execute command in each tab page","sortText":"00004","insertText":"tabdo","insertTextFormat":1},{"label":"tabedit","kind":24,"detail":"tabe[dit]","documentation":"edit a file in a new tab page","sortText":"00004","insertText":"tabedit","insertTextFormat":1},{"label":"tabfind","kind":24,"detail":"tabf[ind]","documentation":"find file in \'path\', edit it in a new tab page","sortText":"00004","insertText":"tabfind","insertTextFormat":1},{"label":"tabfirst","kind":24,"detail":"tabfir[st]","documentation":"go to first tab page","sortText":"00004","insertText":"tabfirst","insertTextFormat":1},{"label":"tablast","kind":24,"detail":"tabl[ast]","documentation":"go to last tab page","sortText":"00004","insertText":"tablast","insertTextFormat":1},{"label":"tabmove","kind":24,"detail":"tabm[ove]","documentation":"move tab page to other position","sortText":"00004","insertText":"tabmove","insertTextFormat":1},{"label":"tabnew","kind":24,"detail":"tabnew","documentation":"edit a file in a new tab page","sortText":"00004","insertText":"tabnew","insertTextFormat":1},{"label":"tabnext","kind":24,"detail":"tabn[ext]","documentation":"go to next tab page","sortText":"00004","insertText":"tabnext","insertTextFormat":1},{"label":"tabonly","kind":24,"detail":"tabo[nly]","documentation":"close all tab pages except the current one","sortText":"00004","insertText":"tabonly","insertTextFormat":1},{"label":"tabprevious","kind":24,"detail":"tabp[revious]","documentation":"go to previous tab page","sortText":"00004","insertText":"tabprevious","insertTextFormat":1},{"label":"tabrewind","kind":24,"detail":"tabr[ewind]","documentation":"go to first tab page","sortText":"00004","insertText":"tabrewind","insertTextFormat":1},{"label":"tabs","kind":24,"detail":"tabs","documentation":"list the tab pages and what they contain","sortText":"00004","insertText":"tabs","insertTextFormat":1},{"label":"tab","kind":24,"detail":"tab","documentation":"create new tab when opening new window","sortText":"00004","insertText":"tab","insertTextFormat":1},{"label":"tag","kind":24,"detail":"ta[g]","documentation":"jump to tag","sortText":"00004","insertText":"tag","insertTextFormat":1},{"label":"tags","kind":24,"detail":"tags","documentation":"show the contents of the tag stack","sortText":"00004","insertText":"tags","insertTextFormat":1},{"label":"tcd","kind":24,"detail":"tcd","documentation":"change directory for tab page","sortText":"00004","insertText":"tcd","insertTextFormat":1},{"label":"tchdir","kind":24,"detail":"tch[dir]","documentation":"change directory for tab page","sortText":"00004","insertText":"tchdir","insertTextFormat":1},{"label":"terminal","kind":24,"detail":"te[rminal]","documentation":"open a terminal buffer","sortText":"00004","insertText":"terminal","insertTextFormat":1},{"label":"tfirst","kind":24,"detail":"tf[irst]","documentation":"jump to first matching tag","sortText":"00004","insertText":"tfirst","insertTextFormat":1},{"label":"throw","kind":24,"detail":"th[row]","documentation":"throw an exception","sortText":"00004","insertText":"throw","insertTextFormat":1},{"label":"tjump","kind":24,"detail":"tj[ump]","documentation":"like \\":tselect\\", but jump directly when there is only one match","sortText":"00004","insertText":"tjump","insertTextFormat":1},{"label":"tlast","kind":24,"detail":"tl[ast]","documentation":"jump to last matching tag","sortText":"00004","insertText":"tlast","insertTextFormat":1},{"label":"tmapclear","kind":24,"detail":"tmapc[lear]","documentation":"remove all mappings for Terminal-Job mode","sortText":"00004","insertText":"tmapclear","insertTextFormat":1},{"label":"tmap","kind":24,"detail":"tma[p]","documentation":"like \\":map\\" but for Terminal-Job mode","sortText":"00004","insertText":"tmap","insertTextFormat":1},{"label":"tmenu","kind":24,"detail":"tm[enu]","documentation":"define menu tooltip","sortText":"00004","insertText":"tmenu","insertTextFormat":1},{"label":"tnext","kind":24,"detail":"tn[ext]","documentation":"jump to next matching tag","sortText":"00004","insertText":"tnext","insertTextFormat":1},{"label":"tnoremap","kind":24,"detail":"tno[remap]","documentation":"like \\":noremap\\" but for Terminal-Job mode","sortText":"00004","insertText":"tnoremap","insertTextFormat":1},{"label":"topleft","kind":24,"detail":"to[pleft]","documentation":"make split window appear at top or far left","sortText":"00004","insertText":"topleft","insertTextFormat":1},{"label":"tprevious","kind":24,"detail":"tp[revious]","documentation":"jump to previous matching tag","sortText":"00004","insertText":"tprevious","insertTextFormat":1},{"label":"trewind","kind":24,"detail":"tr[ewind]","documentation":"jump to first matching tag","sortText":"00004","insertText":"trewind","insertTextFormat":1},{"label":"try","kind":24,"detail":"try","documentation":"execute commands, abort on error or exception","sortText":"00004","insertText":"try","insertTextFormat":1},{"label":"tselect","kind":24,"detail":"ts[elect]","documentation":"list matching tags and select one","sortText":"00004","insertText":"tselect","insertTextFormat":1},{"label":"tunmap","kind":24,"detail":"tunma[p]","documentation":"like \\":unmap\\" but for Terminal-Job mode","sortText":"00004","insertText":"tunmap","insertTextFormat":1},{"label":"tunmenu","kind":24,"detail":"tu[nmenu]","documentation":"remove menu tooltip","sortText":"00004","insertText":"tunmenu","insertTextFormat":1},{"label":"undo","kind":24,"detail":"u[ndo]","documentation":"undo last change(s)","sortText":"00004","insertText":"undo","insertTextFormat":1},{"label":"undojoin","kind":24,"detail":"undoj[oin]","documentation":"join next change with previous undo block","sortText":"00004","insertText":"undojoin","insertTextFormat":1},{"label":"undolist","kind":24,"detail":"undol[ist]","documentation":"list leafs of the undo tree","sortText":"00004","insertText":"undolist","insertTextFormat":1},{"label":"unabbreviate","kind":24,"detail":"una[bbreviate]","documentation":"remove abbreviation","sortText":"00004","insertText":"unabbreviate","insertTextFormat":1},{"label":"unhide","kind":24,"detail":"unh[ide]","documentation":"open a window for each loaded file in the buffer list","sortText":"00004","insertText":"unhide","insertTextFormat":1},{"label":"unlet","kind":24,"detail":"unl[et]","documentation":"delete variable","sortText":"00004","insertText":"unlet","insertTextFormat":1},{"label":"unlockvar","kind":24,"detail":"unlo[ckvar]","documentation":"unlock variables","sortText":"00004","insertText":"unlockvar","insertTextFormat":1},{"label":"unmap","kind":24,"detail":"unm[ap]","documentation":"remove mapping","sortText":"00004","insertText":"unmap","insertTextFormat":1},{"label":"unmenu","kind":24,"detail":"unme[nu]","documentation":"remove menu","sortText":"00004","insertText":"unmenu","insertTextFormat":1},{"label":"unsilent","kind":24,"detail":"uns[ilent]","documentation":"run a command not silently","sortText":"00004","insertText":"unsilent","insertTextFormat":1},{"label":"update","kind":24,"detail":"up[date]","documentation":"write buffer if modified","sortText":"00004","insertText":"update","insertTextFormat":1},{"label":"vglobal","kind":24,"detail":"v[global]","documentation":"execute commands for not matching lines","sortText":"00004","insertText":"vglobal","insertTextFormat":1},{"label":"version","kind":24,"detail":"ve[rsion]","documentation":"print version number and other info","sortText":"00004","insertText":"version","insertTextFormat":1},{"label":"verbose","kind":24,"detail":"verb[ose]","documentation":"execute command with \'verbose\' set","sortText":"00004","insertText":"verbose","insertTextFormat":1},{"label":"vertical","kind":24,"detail":"vert[ical]","documentation":"make following command split vertically","sortText":"00004","insertText":"vertical","insertTextFormat":1},{"label":"vimgrep","kind":24,"detail":"vim[grep]","documentation":"search for pattern in files","sortText":"00004","insertText":"vimgrep","insertTextFormat":1},{"label":"vimgrepadd","kind":24,"detail":"vimgrepa[dd]","documentation":"like :vimgrep, but append to current list","sortText":"00004","insertText":"vimgrepadd","insertTextFormat":1},{"label":"visual","kind":24,"detail":"vi[sual]","documentation":"same as \\":edit\\", but turns off \\"Ex\\" mode","sortText":"00004","insertText":"visual","insertTextFormat":1},{"label":"viusage","kind":24,"detail":"viu[sage]","documentation":"overview of Normal mode commands","sortText":"00004","insertText":"viusage","insertTextFormat":1},{"label":"view","kind":24,"detail":"vie[w]","documentation":"edit a file read-only","sortText":"00004","insertText":"view","insertTextFormat":1},{"label":"vmap","kind":24,"detail":"vm[ap]","documentation":"like \\":map\\" but for Visual+Select mode","sortText":"00004","insertText":"vmap","insertTextFormat":1},{"label":"vmapclear","kind":24,"detail":"vmapc[lear]","documentation":"remove all mappings for Visual+Select mode","sortText":"00004","insertText":"vmapclear","insertTextFormat":1},{"label":"vmenu","kind":24,"detail":"vme[nu]","documentation":"add menu for Visual+Select mode","sortText":"00004","insertText":"vmenu","insertTextFormat":1},{"label":"vnew","kind":24,"detail":"vne[w]","documentation":"create a new empty window, vertically split","sortText":"00004","insertText":"vnew","insertTextFormat":1},{"label":"vnoremap","kind":24,"detail":"vn[oremap]","documentation":"like \\":noremap\\" but for Visual+Select mode","sortText":"00004","insertText":"vnoremap","insertTextFormat":1},{"label":"vnoremenu","kind":24,"detail":"vnoreme[nu]","documentation":"like \\":noremenu\\" but for Visual+Select mode","sortText":"00004","insertText":"vnoremenu","insertTextFormat":1},{"label":"vsplit","kind":24,"detail":"vs[plit]","documentation":"split current window vertically","sortText":"00004","insertText":"vsplit","insertTextFormat":1},{"label":"vunmap","kind":24,"detail":"vu[nmap]","documentation":"like \\":unmap\\" but for Visual+Select mode","sortText":"00004","insertText":"vunmap","insertTextFormat":1},{"label":"vunmenu","kind":24,"detail":"vunme[nu]","documentation":"remove menu for Visual+Select mode","sortText":"00004","insertText":"vunmenu","insertTextFormat":1},{"label":"windo","kind":24,"detail":"windo","documentation":"execute command in each window","sortText":"00004","insertText":"windo","insertTextFormat":1},{"label":"write","kind":24,"detail":"w[rite]","documentation":"write to a file","sortText":"00004","insertText":"write","insertTextFormat":1},{"label":"wNext","kind":24,"detail":"wN[ext]","documentation":"write to a file and go to previous file in argument list","sortText":"00004","insertText":"wNext","insertTextFormat":1},{"label":"wall","kind":24,"detail":"wa[ll]","documentation":"write all (changed) buffers","sortText":"00004","insertText":"wall","insertTextFormat":1},{"label":"while","kind":24,"detail":"wh[ile]","documentation":"execute loop for as long as condition met","sortText":"00004","insertText":"while","insertTextFormat":1},{"label":"winsize","kind":24,"detail":"wi[nsize]","documentation":"get or set window size (obsolete)","sortText":"00004","insertText":"winsize","insertTextFormat":1},{"label":"wincmd","kind":24,"detail":"winc[md]","documentation":"execute a Window (CTRL-W) command","sortText":"00004","insertText":"wincmd","insertTextFormat":1},{"label":"winpos","kind":24,"detail":"winp[os]","documentation":"get or set window position","sortText":"00004","insertText":"winpos","insertTextFormat":1},{"label":"wnext","kind":24,"detail":"wn[ext]","documentation":"write to a file and go to next file in argument list","sortText":"00004","insertText":"wnext","insertTextFormat":1},{"label":"wprevious","kind":24,"detail":"wp[revious]","documentation":"write to a file and go to previous file in argument list","sortText":"00004","insertText":"wprevious","insertTextFormat":1},{"label":"wq","kind":24,"detail":"wq","documentation":"write to a file and quit window or Vim","sortText":"00004","insertText":"wq","insertTextFormat":1},{"label":"wqall","kind":24,"detail":"wqa[ll]","documentation":"write all changed buffers and quit Vim","sortText":"00004","insertText":"wqall","insertTextFormat":1},{"label":"wshada","kind":24,"detail":"wsh[ada]","documentation":"write to ShaDa file","sortText":"00004","insertText":"wshada","insertTextFormat":1},{"label":"wundo","kind":24,"detail":"wu[ndo]","documentation":"write undo information to a file","sortText":"00004","insertText":"wundo","insertTextFormat":1},{"label":"xit","kind":24,"detail":"x[it]","documentation":"write if buffer changed and quit window or Vim","sortText":"00004","insertText":"xit","insertTextFormat":1},{"label":"xall","kind":24,"detail":"xa[ll]","documentation":"same as \\":wqall\\"","sortText":"00004","insertText":"xall","insertTextFormat":1},{"label":"xmapclear","kind":24,"detail":"xmapc[lear]","documentation":"remove all mappings for Visual mode","sortText":"00004","insertText":"xmapclear","insertTextFormat":1},{"label":"xmap","kind":24,"detail":"xm[ap]","documentation":"like \\":map\\" but for Visual mode","sortText":"00004","insertText":"xmap","insertTextFormat":1},{"label":"xmenu","kind":24,"detail":"xme[nu]","documentation":"add menu for Visual mode","sortText":"00004","insertText":"xmenu","insertTextFormat":1},{"label":"xnoremap","kind":24,"detail":"xn[oremap]","documentation":"like \\":noremap\\" but for Visual mode","sortText":"00004","insertText":"xnoremap","insertTextFormat":1},{"label":"xnoremenu","kind":24,"detail":"xnoreme[nu]","documentation":"like \\":noremenu\\" but for Visual mode","sortText":"00004","insertText":"xnoremenu","insertTextFormat":1},{"label":"xunmap","kind":24,"detail":"xu[nmap]","documentation":"like \\":unmap\\" but for Visual mode","sortText":"00004","insertText":"xunmap","insertTextFormat":1},{"label":"xunmenu","kind":24,"detail":"xunme[nu]","documentation":"remove menu for Visual mode","sortText":"00004","insertText":"xunmenu","insertTextFormat":1},{"label":"yank","kind":24,"detail":"y[ank]","documentation":"yank lines into a register","sortText":"00004","insertText":"yank","insertTextFormat":1},{"label":"z","kind":24,"detail":"z","documentation":"print some lines","sortText":"00004","insertText":"z","insertTextFormat":1},{"label":"~","kind":24,"detail":"~","documentation":"repeat last \\":substitute\\"","sortText":"00004","insertText":"~","insertTextFormat":1},{"label":"Print","kind":24,"detail":"P[rint]","documentation":"print lines","sortText":"00004","insertText":"Print","insertTextFormat":1},{"label":"X","kind":24,"detail":"X","documentation":"ask for encryption key","sortText":"00004","insertText":"X","insertTextFormat":1},{"label":"cafter","kind":24,"detail":"caf[ter]","documentation":"go to error after current cursor","sortText":"00004","insertText":"cafter","insertTextFormat":1},{"label":"cbefore","kind":24,"detail":"cbef[ore]","documentation":"go to error before current cursor","sortText":"00004","insertText":"cbefore","insertTextFormat":1},{"label":"fixdel","kind":24,"detail":"fix[del]","documentation":"set key code of <Del>","sortText":"00004","insertText":"fixdel","insertTextFormat":1},{"label":"helpfind","kind":24,"detail":"helpf[ind]","documentation":"dialog to open a help window","sortText":"00004","insertText":"helpfind","insertTextFormat":1},{"label":"lafter","kind":24,"detail":"laf[ter]","documentation":"go to location after current cursor","sortText":"00004","insertText":"lafter","insertTextFormat":1},{"label":"lbefore","kind":24,"detail":"lbef[ore]","documentation":"go to location before current cursor","sortText":"00004","insertText":"lbefore","insertTextFormat":1},{"label":"mzscheme","kind":24,"detail":"mz[scheme]","documentation":"execute MzScheme command","sortText":"00004","insertText":"mzscheme","insertTextFormat":1},{"label":"mzfile","kind":24,"detail":"mzf[ile]","documentation":"execute MzScheme script file","sortText":"00004","insertText":"mzfile","insertTextFormat":1},{"label":"nbclose","kind":24,"detail":"nbc[lose]","documentation":"close the current Netbeans session","sortText":"00004","insertText":"nbclose","insertTextFormat":1},{"label":"nbkey","kind":24,"detail":"nb[key]","documentation":"pass a key to Netbeans","sortText":"00004","insertText":"nbkey","insertTextFormat":1},{"label":"nbstart","kind":24,"detail":"nbs[art]","documentation":"start a new Netbeans session","sortText":"00004","insertText":"nbstart","insertTextFormat":1},{"label":"open","kind":24,"detail":"o[pen]","documentation":"start open mode (not implemented)","sortText":"00004","insertText":"open","insertTextFormat":1},{"label":"perl","kind":24,"detail":"pe[rl]","documentation":"execute Perl command","sortText":"00004","insertText":"perl","insertTextFormat":1},{"label":"perldo","kind":24,"detail":"perld[o]","documentation":"execute Perl command for each line","sortText":"00004","insertText":"perldo","insertTextFormat":1},{"label":"rviminfo","kind":24,"detail":"rv[iminfo]","documentation":"read from viminfo file","sortText":"00004","insertText":"rviminfo","insertTextFormat":1},{"label":"shell","kind":24,"detail":"sh[ell]","documentation":"escape to a shell","sortText":"00004","insertText":"shell","insertTextFormat":1},{"label":"simalt","kind":24,"detail":"sim[alt]","documentation":"Win32 GUI: simulate Windows ALT key","sortText":"00004","insertText":"simalt","insertTextFormat":1},{"label":"smile","kind":24,"detail":"smi[le]","documentation":"make the user happy","sortText":"00004","insertText":"smile","insertTextFormat":1},{"label":"tcl","kind":24,"detail":"tc[l]","documentation":"execute Tcl command","sortText":"00004","insertText":"tcl","insertTextFormat":1},{"label":"tcldo","kind":24,"detail":"tcld[o]","documentation":"execute Tcl command for each line","sortText":"00004","insertText":"tcldo","insertTextFormat":1},{"label":"tclfile","kind":24,"detail":"tclf[ile]","documentation":"execute Tcl script file","sortText":"00004","insertText":"tclfile","insertTextFormat":1},{"label":"tearoff","kind":24,"detail":"te[aroff]","documentation":"tear-off a menu","sortText":"00004","insertText":"tearoff","insertTextFormat":1},{"label":"tlmenu","kind":24,"detail":"tlm[enu]","documentation":"add menu for Terminal-Job mode","sortText":"00004","insertText":"tlmenu","insertTextFormat":1},{"label":"tlnoremenu","kind":24,"detail":"tln[oremenu]","documentation":"like \\":noremenu\\" but for Terminal-Job mode","sortText":"00004","insertText":"tlnoremenu","insertTextFormat":1},{"label":"tlunmenu","kind":24,"detail":"tlu[nmenu]","documentation":"remove menu for Terminal-Job mode","sortText":"00004","insertText":"tlunmenu","insertTextFormat":1},{"label":"wviminfo","kind":24,"detail":"wv[iminfo]","documentation":"write to viminfo file","sortText":"00004","insertText":"wviminfo","insertTextFormat":1},{"label":"xrestore","kind":24,"detail":"xr[estore]","documentation":"restores the X server connection","sortText":"00004","insertText":"xrestore","insertTextFormat":1}],"functions":[{"label":"abs","kind":3,"detail":"Float","sortText":"00004","insertText":"abs(${1:expr})${0}","insertTextFormat":2},{"label":"acos","kind":3,"detail":"Float","sortText":"00004","insertText":"acos(${1:expr})${0}","insertTextFormat":2},{"label":"add","kind":3,"detail":"List","sortText":"00004","insertText":"add(${1:list}, ${2:item})${0}","insertTextFormat":2},{"label":"and","kind":3,"detail":"Number","sortText":"00004","insertText":"and(${1:expr}, ${2:expr})${0}","insertTextFormat":2},{"label":"api_info","kind":3,"detail":"Dict","sortText":"00004","insertText":"api_info(${0})","insertTextFormat":2},{"label":"append","kind":3,"detail":"Number","sortText":"00004","insertText":"append(${1:lnum}, ${2:string})${0}","insertTextFormat":2},{"label":"append","kind":3,"detail":"Number","sortText":"00004","insertText":"append(${1:lnum}, ${2:list})${0}","insertTextFormat":2},{"label":"argc","kind":3,"detail":"Number","sortText":"00004","insertText":"argc(${1})${0}","insertTextFormat":2},{"label":"argidx","kind":3,"detail":"Number","sortText":"00004","insertText":"argidx(${0})","insertTextFormat":2},{"label":"arglistid","kind":3,"detail":"Number","sortText":"00004","insertText":"arglistid(${1})${0}","insertTextFormat":2},{"label":"argv","kind":3,"detail":"String","sortText":"00004","insertText":"argv(${1:nr})${0}","insertTextFormat":2},{"label":"argv","kind":3,"detail":"List","sortText":"00004","insertText":"argv(${1})${0}","insertTextFormat":2},{"label":"assert_beeps","kind":3,"detail":"Number","sortText":"00004","insertText":"assert_beeps(${1:cmd})${0}","insertTextFormat":2},{"label":"assert_equal","kind":3,"detail":"Number","sortText":"00004","insertText":"assert_equal(${1:exp}, ${2:act})${0}","insertTextFormat":2},{"label":"assert_equalfile","kind":3,"detail":"Number","sortText":"00004","insertText":"assert_equalfile(${1:fname}-${2:one}, ${3:fname}-${4:two})${0}","insertTextFormat":2},{"label":"assert_exception","kind":3,"detail":"Number","sortText":"00004","insertText":"assert_exception(${1:error})${0}","insertTextFormat":2},{"label":"assert_fails","kind":3,"detail":"Number","sortText":"00004","insertText":"assert_fails(${1:cmd})${0}","insertTextFormat":2},{"label":"assert_false","kind":3,"detail":"Number","sortText":"00004","insertText":"assert_false(${1:actual})${0}","insertTextFormat":2},{"label":"assert_inrange","kind":3,"detail":"Number","sortText":"00004","insertText":"assert_inrange(${1:lower}, ${2:upper}, ${3:actual})${0}","insertTextFormat":2},{"label":"assert_match","kind":3,"detail":"Number","sortText":"00004","insertText":"assert_match(${1:pat}, ${2:text})${0}","insertTextFormat":2},{"label":"assert_notequal","kind":3,"detail":"Number","sortText":"00004","insertText":"assert_notequal(${1:exp}, ${2:act})${0}","insertTextFormat":2},{"label":"assert_notmatch","kind":3,"detail":"Number","sortText":"00004","insertText":"assert_notmatch(${1:pat}, ${2:text})${0}","insertTextFormat":2},{"label":"assert_report","kind":3,"detail":"Number","sortText":"00004","insertText":"assert_report(${1:msg})${0}","insertTextFormat":2},{"label":"assert_true","kind":3,"detail":"Number","sortText":"00004","insertText":"assert_true(${1:actual})${0}","insertTextFormat":2},{"label":"asin","kind":3,"detail":"Float","sortText":"00004","insertText":"asin(${1:expr})${0}","insertTextFormat":2},{"label":"atan","kind":3,"detail":"Float","sortText":"00004","insertText":"atan(${1:expr})${0}","insertTextFormat":2},{"label":"atan2","kind":3,"detail":"Float","sortText":"00004","insertText":"atan2(${1:expr}, ${2:expr})${0}","insertTextFormat":2},{"label":"browse","kind":3,"detail":"String","sortText":"00004","insertText":"browse(${1:save}, ${2:title}, ${3:initdir}, ${4:default})${0}","insertTextFormat":2},{"label":"browsedir","kind":3,"detail":"String","sortText":"00004","insertText":"browsedir(${1:title}, ${2:initdir})${0}","insertTextFormat":2},{"label":"bufadd","kind":3,"detail":"Number","sortText":"00004","insertText":"bufadd(${1:name})${0}","insertTextFormat":2},{"label":"bufexists","kind":3,"detail":"Number","sortText":"00004","insertText":"bufexists(${1:expr})${0}","insertTextFormat":2},{"label":"buflisted","kind":3,"detail":"Number","sortText":"00004","insertText":"buflisted(${1:expr})${0}","insertTextFormat":2},{"label":"bufload","kind":3,"detail":"Number","sortText":"00004","insertText":"bufload(${1:expr})${0}","insertTextFormat":2},{"label":"bufloaded","kind":3,"detail":"Number","sortText":"00004","insertText":"bufloaded(${1:expr})${0}","insertTextFormat":2},{"label":"bufname","kind":3,"detail":"String","sortText":"00004","insertText":"bufname(${1})${0}","insertTextFormat":2},{"label":"bufnr","kind":3,"detail":"Number","sortText":"00004","insertText":"bufnr(${1})${0}","insertTextFormat":2},{"label":"bufwinid","kind":3,"detail":"Number","sortText":"00004","insertText":"bufwinid(${1:expr})${0}","insertTextFormat":2},{"label":"bufwinnr","kind":3,"detail":"Number","sortText":"00004","insertText":"bufwinnr(${1:expr})${0}","insertTextFormat":2},{"label":"byte2line","kind":3,"detail":"Number","sortText":"00004","insertText":"byte2line(${1:byte})${0}","insertTextFormat":2},{"label":"byteidx","kind":3,"detail":"Number","sortText":"00004","insertText":"byteidx(${1:expr}, ${2:nr})${0}","insertTextFormat":2},{"label":"byteidxcomp","kind":3,"detail":"Number","sortText":"00004","insertText":"byteidxcomp(${1:expr}, ${2:nr})${0}","insertTextFormat":2},{"label":"call","kind":3,"detail":"any","sortText":"00004","insertText":"call(${1:func}, ${2:arglist})${0}","insertTextFormat":2},{"label":"ceil","kind":3,"detail":"Float","sortText":"00004","insertText":"ceil(${1:expr})${0}","insertTextFormat":2},{"label":"changenr","kind":3,"detail":"Number","sortText":"00004","insertText":"changenr(${0})","insertTextFormat":2},{"label":"chanclose","kind":3,"detail":"Number","sortText":"00004","insertText":"chanclose(${1:id})${0}","insertTextFormat":2},{"label":"chansend","kind":3,"detail":"Number","sortText":"00004","insertText":"chansend(${1:id}, ${2:data})${0}","insertTextFormat":2},{"label":"char2nr","kind":3,"detail":"Number","sortText":"00004","insertText":"char2nr(${1:expr})${0}","insertTextFormat":2},{"label":"cindent","kind":3,"detail":"Number","sortText":"00004","insertText":"cindent(${1:lnum})${0}","insertTextFormat":2},{"label":"clearmatches","kind":3,"detail":"none","sortText":"00004","insertText":"clearmatches(${0})","insertTextFormat":2},{"label":"col","kind":3,"detail":"Number","sortText":"00004","insertText":"col(${1:expr})${0}","insertTextFormat":2},{"label":"complete","kind":3,"detail":"none","sortText":"00004","insertText":"complete(${1:startcol}, ${2:matches})${0}","insertTextFormat":2},{"label":"complete_add","kind":3,"detail":"Number","sortText":"00004","insertText":"complete_add(${1:expr})${0}","insertTextFormat":2},{"label":"complete_check","kind":3,"detail":"Number","sortText":"00004","insertText":"complete_check(${0})","insertTextFormat":2},{"label":"complete_info","kind":3,"detail":"Dict","sortText":"00004","insertText":"complete_info(${1})${0}","insertTextFormat":2},{"label":"confirm","kind":3,"detail":"Number","sortText":"00004","insertText":"confirm(${1:msg})${0}","insertTextFormat":2},{"label":"copy","kind":3,"detail":"any","sortText":"00004","insertText":"copy(${1:expr})${0}","insertTextFormat":2},{"label":"cos","kind":3,"detail":"Float","sortText":"00004","insertText":"cos(${1:expr})${0}","insertTextFormat":2},{"label":"cosh","kind":3,"detail":"Float","sortText":"00004","insertText":"cosh(${1:expr})${0}","insertTextFormat":2},{"label":"count","kind":3,"detail":"Number","sortText":"00004","insertText":"count(${1:list}, ${2:expr})${0}","insertTextFormat":2},{"label":"cscope_connection","kind":3,"detail":"Number","sortText":"00004","insertText":"cscope_connection(${1})${0}","insertTextFormat":2},{"label":"ctxget","kind":3,"detail":"Dict","sortText":"00004","insertText":"ctxget(${1})${0}","insertTextFormat":2},{"label":"ctxpop","kind":3,"detail":"none","sortText":"00004","insertText":"ctxpop(${0})","insertTextFormat":2},{"label":"ctxpush","kind":3,"detail":"none","sortText":"00004","insertText":"ctxpush(${1})${0}","insertTextFormat":2},{"label":"ctxset","kind":3,"detail":"none","sortText":"00004","insertText":"ctxset(${1:context})${0}","insertTextFormat":2},{"label":"ctxsize","kind":3,"detail":"Number","sortText":"00004","insertText":"ctxsize(${0})","insertTextFormat":2},{"label":"cursor","kind":3,"detail":"Number","sortText":"00004","insertText":"cursor(${1:lnum}, ${2:col})${0}","insertTextFormat":2},{"label":"cursor","kind":3,"detail":"Number","sortText":"00004","insertText":"cursor(${1:list})${0}","insertTextFormat":2},{"label":"debugbreak","kind":3,"detail":"Number","sortText":"00004","insertText":"debugbreak(${1:pid})${0}","insertTextFormat":2},{"label":"deepcopy","kind":3,"detail":"any","sortText":"00004","insertText":"deepcopy(${1:expr})${0}","insertTextFormat":2},{"label":"delete","kind":3,"detail":"Number","sortText":"00004","insertText":"delete(${1:fname})${0}","insertTextFormat":2},{"label":"deletebufline","kind":3,"detail":"Number","sortText":"00004","insertText":"deletebufline(${1:expr}, ${2:first})${0}","insertTextFormat":2},{"label":"dictwatcheradd","kind":3,"detail":"Start","sortText":"00004","insertText":"dictwatcheradd(${1:dict}, ${2:pattern}, ${3:callback})${0}","insertTextFormat":2},{"label":"dictwatcherdel","kind":3,"detail":"Stop","sortText":"00004","insertText":"dictwatcherdel(${1:dict}, ${2:pattern}, ${3:callback})${0}","insertTextFormat":2},{"label":"did_filetype","kind":3,"detail":"Number","sortText":"00004","insertText":"did_filetype(${0})","insertTextFormat":2},{"label":"diff_filler","kind":3,"detail":"Number","sortText":"00004","insertText":"diff_filler(${1:lnum})${0}","insertTextFormat":2},{"label":"diff_hlID","kind":3,"detail":"Number","sortText":"00004","insertText":"diff_hlID(${1:lnum}, ${2:col})${0}","insertTextFormat":2},{"label":"empty","kind":3,"detail":"Number","sortText":"00004","insertText":"empty(${1:expr})${0}","insertTextFormat":2},{"label":"environ","kind":3,"detail":"Dict","sortText":"00004","insertText":"environ(${0})","insertTextFormat":2},{"label":"escape","kind":3,"detail":"String","sortText":"00004","insertText":"escape(${1:string}, ${2:chars})${0}","insertTextFormat":2},{"label":"eval","kind":3,"detail":"any","sortText":"00004","insertText":"eval(${1:string})${0}","insertTextFormat":2},{"label":"eventhandler","kind":3,"detail":"Number","sortText":"00004","insertText":"eventhandler(${0})","insertTextFormat":2},{"label":"executable","kind":3,"detail":"Number","sortText":"00004","insertText":"executable(${1:expr})${0}","insertTextFormat":2},{"label":"execute","kind":3,"detail":"String","sortText":"00004","insertText":"execute(${1:command})${0}","insertTextFormat":2},{"label":"exepath","kind":3,"detail":"String","sortText":"00004","insertText":"exepath(${1:expr})${0}","insertTextFormat":2},{"label":"exists","kind":3,"detail":"Number","sortText":"00004","insertText":"exists(${1:expr})${0}","insertTextFormat":2},{"label":"extend","kind":3,"detail":"List/Dict","sortText":"00004","insertText":"extend(${1:expr1}, ${2:expr2})${0}","insertTextFormat":2},{"label":"exp","kind":3,"detail":"Float","sortText":"00004","insertText":"exp(${1:expr})${0}","insertTextFormat":2},{"label":"expand","kind":3,"detail":"any","sortText":"00004","insertText":"expand(${1:expr})${0}","insertTextFormat":2},{"label":"expandcmd","kind":3,"detail":"String","sortText":"00004","insertText":"expandcmd(${1:expr})${0}","insertTextFormat":2},{"label":"feedkeys","kind":3,"detail":"Number","sortText":"00004","insertText":"feedkeys(${1:string})${0}","insertTextFormat":2},{"label":"filereadable","kind":3,"detail":"Number","sortText":"00004","insertText":"filereadable(${1:file})${0}","insertTextFormat":2},{"label":"filewritable","kind":3,"detail":"Number","sortText":"00004","insertText":"filewritable(${1:file})${0}","insertTextFormat":2},{"label":"filter","kind":3,"detail":"List/Dict","sortText":"00004","insertText":"filter(${1:expr1}, ${2:expr2})${0}","insertTextFormat":2},{"label":"finddir","kind":3,"detail":"String","sortText":"00004","insertText":"finddir(${1:name})${0}","insertTextFormat":2},{"label":"findfile","kind":3,"detail":"String","sortText":"00004","insertText":"findfile(${1:name})${0}","insertTextFormat":2},{"label":"float2nr","kind":3,"detail":"Number","sortText":"00004","insertText":"float2nr(${1:expr})${0}","insertTextFormat":2},{"label":"floor","kind":3,"detail":"Float","sortText":"00004","insertText":"floor(${1:expr})${0}","insertTextFormat":2},{"label":"fmod","kind":3,"detail":"Float","sortText":"00004","insertText":"fmod(${1:expr1}, ${2:expr2})${0}","insertTextFormat":2},{"label":"fnameescape","kind":3,"detail":"String","sortText":"00004","insertText":"fnameescape(${1:fname})${0}","insertTextFormat":2},{"label":"fnamemodify","kind":3,"detail":"String","sortText":"00004","insertText":"fnamemodify(${1:fname}, ${2:mods})${0}","insertTextFormat":2},{"label":"foldclosed","kind":3,"detail":"Number","sortText":"00004","insertText":"foldclosed(${1:lnum})${0}","insertTextFormat":2},{"label":"foldclosedend","kind":3,"detail":"Number","sortText":"00004","insertText":"foldclosedend(${1:lnum})${0}","insertTextFormat":2},{"label":"foldlevel","kind":3,"detail":"Number","sortText":"00004","insertText":"foldlevel(${1:lnum})${0}","insertTextFormat":2},{"label":"foldtext","kind":3,"detail":"String","sortText":"00004","insertText":"foldtext(${0})","insertTextFormat":2},{"label":"foldtextresult","kind":3,"detail":"String","sortText":"00004","insertText":"foldtextresult(${1:lnum})${0}","insertTextFormat":2},{"label":"foreground","kind":3,"detail":"Number","sortText":"00004","insertText":"foreground(${0})","insertTextFormat":2},{"label":"funcref","kind":3,"detail":"Funcref","sortText":"00004","insertText":"funcref(${1:name})${0}","insertTextFormat":2},{"label":"function","kind":3,"detail":"Funcref","sortText":"00004","insertText":"function(${1:name})${0}","insertTextFormat":2},{"label":"garbagecollect","kind":3,"detail":"none","sortText":"00004","insertText":"garbagecollect(${1})${0}","insertTextFormat":2},{"label":"get","kind":3,"detail":"any","sortText":"00004","insertText":"get(${1:list}, ${2:idx})${0}","insertTextFormat":2},{"label":"get","kind":3,"detail":"any","sortText":"00004","insertText":"get(${1:dict}, ${2:key})${0}","insertTextFormat":2},{"label":"get","kind":3,"detail":"any","sortText":"00004","insertText":"get(${1:func}, ${2:what})${0}","insertTextFormat":2},{"label":"getbufinfo","kind":3,"detail":"List","sortText":"00004","insertText":"getbufinfo(${1})${0}","insertTextFormat":2},{"label":"getbufline","kind":3,"detail":"List","sortText":"00004","insertText":"getbufline(${1:expr}, ${2:lnum})${0}","insertTextFormat":2},{"label":"getbufvar","kind":3,"detail":"any","sortText":"00004","insertText":"getbufvar(${1:expr}, ${2:varname})${0}","insertTextFormat":2},{"label":"getchangelist","kind":3,"detail":"List","sortText":"00004","insertText":"getchangelist(${1:expr})${0}","insertTextFormat":2},{"label":"getchar","kind":3,"detail":"Number","sortText":"00004","insertText":"getchar(${1})${0}","insertTextFormat":2},{"label":"getcharmod","kind":3,"detail":"Number","sortText":"00004","insertText":"getcharmod(${0})","insertTextFormat":2},{"label":"getcharsearch","kind":3,"detail":"Dict","sortText":"00004","insertText":"getcharsearch(${0})","insertTextFormat":2},{"label":"getcmdline","kind":3,"detail":"String","sortText":"00004","insertText":"getcmdline(${0})","insertTextFormat":2},{"label":"getcmdpos","kind":3,"detail":"Number","sortText":"00004","insertText":"getcmdpos(${0})","insertTextFormat":2},{"label":"getcmdtype","kind":3,"detail":"String","sortText":"00004","insertText":"getcmdtype(${0})","insertTextFormat":2},{"label":"getcmdwintype","kind":3,"detail":"String","sortText":"00004","insertText":"getcmdwintype(${0})","insertTextFormat":2},{"label":"getcompletion","kind":3,"detail":"List","sortText":"00004","insertText":"getcompletion(${1:pat}, ${2:type})${0}","insertTextFormat":2},{"label":"getcurpos","kind":3,"detail":"List","sortText":"00004","insertText":"getcurpos(${0})","insertTextFormat":2},{"label":"getcwd","kind":3,"detail":"String","sortText":"00004","insertText":"getcwd(${1})${0}","insertTextFormat":2},{"label":"getenv","kind":3,"detail":"String","sortText":"00004","insertText":"getenv(${1:name})${0}","insertTextFormat":2},{"label":"getfontname","kind":3,"detail":"String","sortText":"00004","insertText":"getfontname(${1})${0}","insertTextFormat":2},{"label":"getfperm","kind":3,"detail":"String","sortText":"00004","insertText":"getfperm(${1:fname})${0}","insertTextFormat":2},{"label":"getfsize","kind":3,"detail":"Number","sortText":"00004","insertText":"getfsize(${1:fname})${0}","insertTextFormat":2},{"label":"getftime","kind":3,"detail":"Number","sortText":"00004","insertText":"getftime(${1:fname})${0}","insertTextFormat":2},{"label":"getftype","kind":3,"detail":"String","sortText":"00004","insertText":"getftype(${1:fname})${0}","insertTextFormat":2},{"label":"getjumplist","kind":3,"detail":"List","sortText":"00004","insertText":"getjumplist(${1})${0}","insertTextFormat":2},{"label":"getline","kind":3,"detail":"String","sortText":"00004","insertText":"getline(${1:lnum})${0}","insertTextFormat":2},{"label":"getline","kind":3,"detail":"List","sortText":"00004","insertText":"getline(${1:lnum}, ${2:end})${0}","insertTextFormat":2},{"label":"getloclist","kind":3,"detail":"List","sortText":"00004","insertText":"getloclist(${1:nr})${0}","insertTextFormat":2},{"label":"getmatches","kind":3,"detail":"List","sortText":"00004","insertText":"getmatches(${0})","insertTextFormat":2},{"label":"getpid","kind":3,"detail":"Number","sortText":"00004","insertText":"getpid(${0})","insertTextFormat":2},{"label":"getpos","kind":3,"detail":"List","sortText":"00004","insertText":"getpos(${1:expr})${0}","insertTextFormat":2},{"label":"getqflist","kind":3,"detail":"List","sortText":"00004","insertText":"getqflist(${1})${0}","insertTextFormat":2},{"label":"getreg","kind":3,"detail":"String","sortText":"00004","insertText":"getreg(${1})${0}","insertTextFormat":2},{"label":"getregtype","kind":3,"detail":"String","sortText":"00004","insertText":"getregtype(${1})${0}","insertTextFormat":2},{"label":"gettabinfo","kind":3,"detail":"List","sortText":"00004","insertText":"gettabinfo(${1})${0}","insertTextFormat":2},{"label":"gettabvar","kind":3,"detail":"any","sortText":"00004","insertText":"gettabvar(${1:nr}, ${2:varname})${0}","insertTextFormat":2},{"label":"gettabwinvar","kind":3,"detail":"any","sortText":"00004","insertText":"gettabwinvar(${1:tabnr}, ${2:winnr}, ${3:name})${0}","insertTextFormat":2},{"label":"gettagstack","kind":3,"detail":"Dict","sortText":"00004","insertText":"gettagstack(${1})${0}","insertTextFormat":2},{"label":"getwininfo","kind":3,"detail":"List","sortText":"00004","insertText":"getwininfo(${1})${0}","insertTextFormat":2},{"label":"getwinpos","kind":3,"detail":"List","sortText":"00004","insertText":"getwinpos(${1})${0}","insertTextFormat":2},{"label":"getwinposx","kind":3,"detail":"Number","sortText":"00004","insertText":"getwinposx(${0})","insertTextFormat":2},{"label":"getwinposy","kind":3,"detail":"Number","sortText":"00004","insertText":"getwinposy(${0})","insertTextFormat":2},{"label":"getwinvar","kind":3,"detail":"any","sortText":"00004","insertText":"getwinvar(${1:nr}, ${2:varname})${0}","insertTextFormat":2},{"label":"glob","kind":3,"detail":"any","sortText":"00004","insertText":"glob(${1:expr})${0}","insertTextFormat":2},{"label":"glob2regpat","kind":3,"detail":"String","sortText":"00004","insertText":"glob2regpat(${1:expr})${0}","insertTextFormat":2},{"label":"globpath","kind":3,"detail":"String","sortText":"00004","insertText":"globpath(${1:path}, ${2:expr})${0}","insertTextFormat":2},{"label":"has","kind":3,"detail":"Number","sortText":"00004","insertText":"has(${1:feature})${0}","insertTextFormat":2},{"label":"has_key","kind":3,"detail":"Number","sortText":"00004","insertText":"has_key(${1:dict}, ${2:key})${0}","insertTextFormat":2},{"label":"haslocaldir","kind":3,"detail":"Number","sortText":"00004","insertText":"haslocaldir(${1})${0}","insertTextFormat":2},{"label":"hasmapto","kind":3,"detail":"Number","sortText":"00004","insertText":"hasmapto(${1:what})${0}","insertTextFormat":2},{"label":"histadd","kind":3,"detail":"String","sortText":"00004","insertText":"histadd(${1:history}, ${2:item})${0}","insertTextFormat":2},{"label":"histdel","kind":3,"detail":"String","sortText":"00004","insertText":"histdel(${1:history})${0}","insertTextFormat":2},{"label":"histget","kind":3,"detail":"String","sortText":"00004","insertText":"histget(${1:history})${0}","insertTextFormat":2},{"label":"histnr","kind":3,"detail":"Number","sortText":"00004","insertText":"histnr(${1:history})${0}","insertTextFormat":2},{"label":"hlexists","kind":3,"detail":"Number","sortText":"00004","insertText":"hlexists(${1:name})${0}","insertTextFormat":2},{"label":"hlID","kind":3,"detail":"Number","sortText":"00004","insertText":"hlID(${1:name})${0}","insertTextFormat":2},{"label":"hostname","kind":3,"detail":"String","sortText":"00004","insertText":"hostname(${0})","insertTextFormat":2},{"label":"iconv","kind":3,"detail":"String","sortText":"00004","insertText":"iconv(${1:expr}, ${2:from}, ${3:to})${0}","insertTextFormat":2},{"label":"indent","kind":3,"detail":"Number","sortText":"00004","insertText":"indent(${1:lnum})${0}","insertTextFormat":2},{"label":"index","kind":3,"detail":"Number","sortText":"00004","insertText":"index(${1:list}, ${2:expr})${0}","insertTextFormat":2},{"label":"input","kind":3,"detail":"String","sortText":"00004","insertText":"input(${1:prompt})${0}","insertTextFormat":2},{"label":"inputlist","kind":3,"detail":"Number","sortText":"00004","insertText":"inputlist(${1:textlist})${0}","insertTextFormat":2},{"label":"inputrestore","kind":3,"detail":"Number","sortText":"00004","insertText":"inputrestore(${0})","insertTextFormat":2},{"label":"inputsave","kind":3,"detail":"Number","sortText":"00004","insertText":"inputsave(${0})","insertTextFormat":2},{"label":"inputsecret","kind":3,"detail":"String","sortText":"00004","insertText":"inputsecret(${1:prompt})${0}","insertTextFormat":2},{"label":"insert","kind":3,"detail":"List","sortText":"00004","insertText":"insert(${1:list}, ${2:item})${0}","insertTextFormat":2},{"label":"invert","kind":3,"detail":"Number","sortText":"00004","insertText":"invert(${1:expr})${0}","insertTextFormat":2},{"label":"isdirectory","kind":3,"detail":"Number","sortText":"00004","insertText":"isdirectory(${1:directory})${0}","insertTextFormat":2},{"label":"isinf","kind":3,"detail":"Number","sortText":"00004","insertText":"isinf(${1:expr})${0}","insertTextFormat":2},{"label":"islocked","kind":3,"detail":"Number","sortText":"00004","insertText":"islocked(${1:expr})${0}","insertTextFormat":2},{"label":"isnan","kind":3,"detail":"Number","sortText":"00004","insertText":"isnan(${1:expr})${0}","insertTextFormat":2},{"label":"id","kind":3,"detail":"String","sortText":"00004","insertText":"id(${1:expr})${0}","insertTextFormat":2},{"label":"items","kind":3,"detail":"List","sortText":"00004","insertText":"items(${1:dict})${0}","insertTextFormat":2},{"label":"jobpid","kind":3,"detail":"Number","sortText":"00004","insertText":"jobpid(${1:id})${0}","insertTextFormat":2},{"label":"jobresize","kind":3,"detail":"Number","sortText":"00004","insertText":"jobresize(${1:id}, ${2:width}, ${3:height})${0}","insertTextFormat":2},{"label":"jobstart","kind":3,"detail":"Number","sortText":"00004","insertText":"jobstart(${1:cmd})${0}","insertTextFormat":2},{"label":"jobstop","kind":3,"detail":"Number","sortText":"00004","insertText":"jobstop(${1:id})${0}","insertTextFormat":2},{"label":"jobwait","kind":3,"detail":"Number","sortText":"00004","insertText":"jobwait(${1:ids})${0}","insertTextFormat":2},{"label":"join","kind":3,"detail":"String","sortText":"00004","insertText":"join(${1:list})${0}","insertTextFormat":2},{"label":"json_decode","kind":3,"detail":"any","sortText":"00004","insertText":"json_decode(${1:expr})${0}","insertTextFormat":2},{"label":"json_encode","kind":3,"detail":"String","sortText":"00004","insertText":"json_encode(${1:expr})${0}","insertTextFormat":2},{"label":"keys","kind":3,"detail":"List","sortText":"00004","insertText":"keys(${1:dict})${0}","insertTextFormat":2},{"label":"len","kind":3,"detail":"Number","sortText":"00004","insertText":"len(${1:expr})${0}","insertTextFormat":2},{"label":"libcall","kind":3,"detail":"String","sortText":"00004","insertText":"libcall(${1:lib}, ${2:func}, ${3:arg})${0}","insertTextFormat":2},{"label":"libcallnr","kind":3,"detail":"Number","sortText":"00004","insertText":"libcallnr(${1:lib}, ${2:func}, ${3:arg})${0}","insertTextFormat":2},{"label":"line","kind":3,"detail":"Number","sortText":"00004","insertText":"line(${1:expr})${0}","insertTextFormat":2},{"label":"line2byte","kind":3,"detail":"Number","sortText":"00004","insertText":"line2byte(${1:lnum})${0}","insertTextFormat":2},{"label":"lispindent","kind":3,"detail":"Number","sortText":"00004","insertText":"lispindent(${1:lnum})${0}","insertTextFormat":2},{"label":"list2str","kind":3,"detail":"String","sortText":"00004","insertText":"list2str(${1:list})${0}","insertTextFormat":2},{"label":"localtime","kind":3,"detail":"Number","sortText":"00004","insertText":"localtime(${0})","insertTextFormat":2},{"label":"log","kind":3,"detail":"Float","sortText":"00004","insertText":"log(${1:expr})${0}","insertTextFormat":2},{"label":"log10","kind":3,"detail":"Float","sortText":"00004","insertText":"log10(${1:expr})${0}","insertTextFormat":2},{"label":"luaeval","kind":3,"detail":"any","sortText":"00004","insertText":"luaeval(${1:expr})${0}","insertTextFormat":2},{"label":"map","kind":3,"detail":"List/Dict","sortText":"00004","insertText":"map(${1:expr1}, ${2:expr2})${0}","insertTextFormat":2},{"label":"maparg","kind":3,"detail":"String","sortText":"00004","insertText":"maparg(${1:name})${0}","insertTextFormat":2},{"label":"mapcheck","kind":3,"detail":"String","sortText":"00004","insertText":"mapcheck(${1:name})${0}","insertTextFormat":2},{"label":"match","kind":3,"detail":"Number","sortText":"00004","insertText":"match(${1:expr}, ${2:pat})${0}","insertTextFormat":2},{"label":"matchadd","kind":3,"detail":"Number","sortText":"00004","insertText":"matchadd(${1:group}, ${2:pattern})${0}","insertTextFormat":2},{"label":"matchaddpos","kind":3,"detail":"Number","sortText":"00004","insertText":"matchaddpos(${1:group}, ${2:list})${0}","insertTextFormat":2},{"label":"matcharg","kind":3,"detail":"List","sortText":"00004","insertText":"matcharg(${1:nr})${0}","insertTextFormat":2},{"label":"matchdelete","kind":3,"detail":"Number","sortText":"00004","insertText":"matchdelete(${1:id})${0}","insertTextFormat":2},{"label":"matchend","kind":3,"detail":"Number","sortText":"00004","insertText":"matchend(${1:expr}, ${2:pat})${0}","insertTextFormat":2},{"label":"matchlist","kind":3,"detail":"List","sortText":"00004","insertText":"matchlist(${1:expr}, ${2:pat})${0}","insertTextFormat":2},{"label":"matchstr","kind":3,"detail":"String","sortText":"00004","insertText":"matchstr(${1:expr}, ${2:pat})${0}","insertTextFormat":2},{"label":"matchstrpos","kind":3,"detail":"List","sortText":"00004","insertText":"matchstrpos(${1:expr}, ${2:pat})${0}","insertTextFormat":2},{"label":"max","kind":3,"detail":"Number","sortText":"00004","insertText":"max(${1:expr})${0}","insertTextFormat":2},{"label":"min","kind":3,"detail":"Number","sortText":"00004","insertText":"min(${1:expr})${0}","insertTextFormat":2},{"label":"mkdir","kind":3,"detail":"Number","sortText":"00004","insertText":"mkdir(${1:name})${0}","insertTextFormat":2},{"label":"mode","kind":3,"detail":"String","sortText":"00004","insertText":"mode(${1})${0}","insertTextFormat":2},{"label":"msgpackdump","kind":3,"detail":"List","sortText":"00004","insertText":"msgpackdump(${1:list})${0}","insertTextFormat":2},{"label":"msgpackparse","kind":3,"detail":"List","sortText":"00004","insertText":"msgpackparse(${1:list})${0}","insertTextFormat":2},{"label":"nextnonblank","kind":3,"detail":"Number","sortText":"00004","insertText":"nextnonblank(${1:lnum})${0}","insertTextFormat":2},{"label":"nr2char","kind":3,"detail":"String","sortText":"00004","insertText":"nr2char(${1:expr})${0}","insertTextFormat":2},{"label":"or","kind":3,"detail":"Number","sortText":"00004","insertText":"or(${1:expr}, ${2:expr})${0}","insertTextFormat":2},{"label":"pathshorten","kind":3,"detail":"String","sortText":"00004","insertText":"pathshorten(${1:expr})${0}","insertTextFormat":2},{"label":"pow","kind":3,"detail":"Float","sortText":"00004","insertText":"pow(${1:x}, ${2:y})${0}","insertTextFormat":2},{"label":"prevnonblank","kind":3,"detail":"Number","sortText":"00004","insertText":"prevnonblank(${1:lnum})${0}","insertTextFormat":2},{"label":"printf","kind":3,"detail":"String","sortText":"00004","insertText":"printf(${1:fmt}, ${2:expr1}...)${0}","insertTextFormat":2},{"label":"prompt_addtext","kind":3,"detail":"none","sortText":"00004","insertText":"prompt_addtext(${1:buf}, ${2:expr})${0}","insertTextFormat":2},{"label":"prompt_setcallback","kind":3,"detail":"none","sortText":"00004","insertText":"prompt_setcallback(${1:buf}, ${2:expr})${0}","insertTextFormat":2},{"label":"prompt_setinterrupt","kind":3,"detail":"none","sortText":"00004","insertText":"prompt_setinterrupt(${1:buf}, ${2:text})${0}","insertTextFormat":2},{"label":"prompt_setprompt","kind":3,"detail":"none","sortText":"00004","insertText":"prompt_setprompt(${1:buf}, ${2:text})${0}","insertTextFormat":2},{"label":"pum_getpos","kind":3,"detail":"Dict","sortText":"00004","insertText":"pum_getpos(${0})","insertTextFormat":2},{"label":"pumvisible","kind":3,"detail":"Number","sortText":"00004","insertText":"pumvisible(${0})","insertTextFormat":2},{"label":"pyeval","kind":3,"detail":"any","sortText":"00004","insertText":"pyeval(${1:expr})${0}","insertTextFormat":2},{"label":"py3eval","kind":3,"detail":"any","sortText":"00004","insertText":"py3eval(${1:expr})${0}","insertTextFormat":2},{"label":"pyxeval","kind":3,"detail":"any","sortText":"00004","insertText":"pyxeval(${1:expr})${0}","insertTextFormat":2},{"label":"range","kind":3,"detail":"List","sortText":"00004","insertText":"range(${1:expr})${0}","insertTextFormat":2},{"label":"readdir","kind":3,"detail":"List","sortText":"00004","insertText":"readdir(${1:dir})${0}","insertTextFormat":2},{"label":"readfile","kind":3,"detail":"List","sortText":"00004","insertText":"readfile(${1:fname})${0}","insertTextFormat":2},{"label":"reg_executing","kind":3,"detail":"String","sortText":"00004","insertText":"reg_executing(${0})","insertTextFormat":2},{"label":"reg_recording","kind":3,"detail":"String","sortText":"00004","insertText":"reg_recording(${0})","insertTextFormat":2},{"label":"reltime","kind":3,"detail":"List","sortText":"00004","insertText":"reltime(${1})${0}","insertTextFormat":2},{"label":"reltimefloat","kind":3,"detail":"Float","sortText":"00004","insertText":"reltimefloat(${1:time})${0}","insertTextFormat":2},{"label":"reltimestr","kind":3,"detail":"String","sortText":"00004","insertText":"reltimestr(${1:time})${0}","insertTextFormat":2},{"label":"remote_expr","kind":3,"detail":"String","sortText":"00004","insertText":"remote_expr(${1:server}, ${2:string})${0}","insertTextFormat":2},{"label":"remote_foreground","kind":3,"detail":"Number","sortText":"00004","insertText":"remote_foreground(${1:server})${0}","insertTextFormat":2},{"label":"remote_peek","kind":3,"detail":"Number","sortText":"00004","insertText":"remote_peek(${1:serverid})${0}","insertTextFormat":2},{"label":"remote_read","kind":3,"detail":"String","sortText":"00004","insertText":"remote_read(${1:serverid})${0}","insertTextFormat":2},{"label":"remote_send","kind":3,"detail":"String","sortText":"00004","insertText":"remote_send(${1:server}, ${2:string})${0}","insertTextFormat":2},{"label":"remote_startserver","kind":3,"detail":"none","sortText":"00004","insertText":"remote_startserver(${1:name})${0}","insertTextFormat":2},{"label":"remove","kind":3,"detail":"any","sortText":"00004","insertText":"remove(${1:list}, ${2:idx})${0}","insertTextFormat":2},{"label":"remove","kind":3,"detail":"any","sortText":"00004","insertText":"remove(${1:dict}, ${2:key})${0}","insertTextFormat":2},{"label":"rename","kind":3,"detail":"Number","sortText":"00004","insertText":"rename(${1:from}, ${2:to})${0}","insertTextFormat":2},{"label":"repeat","kind":3,"detail":"String","sortText":"00004","insertText":"repeat(${1:expr}, ${2:count})${0}","insertTextFormat":2},{"label":"resolve","kind":3,"detail":"String","sortText":"00004","insertText":"resolve(${1:filename})${0}","insertTextFormat":2},{"label":"reverse","kind":3,"detail":"List","sortText":"00004","insertText":"reverse(${1:list})${0}","insertTextFormat":2},{"label":"round","kind":3,"detail":"Float","sortText":"00004","insertText":"round(${1:expr})${0}","insertTextFormat":2},{"label":"rpcnotify","kind":3,"detail":"Sends","sortText":"00004","insertText":"rpcnotify(${1:channel}, ${2:event})${0}","insertTextFormat":2},{"label":"rpcrequest","kind":3,"detail":"Sends","sortText":"00004","insertText":"rpcrequest(${1:channel}, ${2:method})${0}","insertTextFormat":2},{"label":"screenattr","kind":3,"detail":"Number","sortText":"00004","insertText":"screenattr(${1:row}, ${2:col})${0}","insertTextFormat":2},{"label":"screenchar","kind":3,"detail":"Number","sortText":"00004","insertText":"screenchar(${1:row}, ${2:col})${0}","insertTextFormat":2},{"label":"screencol","kind":3,"detail":"Number","sortText":"00004","insertText":"screencol(${0})","insertTextFormat":2},{"label":"screenpos","kind":3,"detail":"Dict","sortText":"00004","insertText":"screenpos(${1:winid}, ${2:lnum}, ${3:col})${0}","insertTextFormat":2},{"label":"screenrow","kind":3,"detail":"Number","sortText":"00004","insertText":"screenrow(${0})","insertTextFormat":2},{"label":"search","kind":3,"detail":"Number","sortText":"00004","insertText":"search(${1:pattern})${0}","insertTextFormat":2},{"label":"searchdecl","kind":3,"detail":"Number","sortText":"00004","insertText":"searchdecl(${1:name})${0}","insertTextFormat":2},{"label":"searchpair","kind":3,"detail":"Number","sortText":"00004","insertText":"searchpair(${1:start}, ${2:middle}, ${3:end})${0}","insertTextFormat":2},{"label":"searchpairpos","kind":3,"detail":"List","sortText":"00004","insertText":"searchpairpos(${1:start}, ${2:middle}, ${3:end})${0}","insertTextFormat":2},{"label":"searchpos","kind":3,"detail":"List","sortText":"00004","insertText":"searchpos(${1:pattern})${0}","insertTextFormat":2},{"label":"server2client","kind":3,"detail":"Number","sortText":"00004","insertText":"server2client(${1:clientid}, ${2:string})${0}","insertTextFormat":2},{"label":"serverlist","kind":3,"detail":"String","sortText":"00004","insertText":"serverlist(${0})","insertTextFormat":2},{"label":"setbufline","kind":3,"detail":"Number","sortText":"00004","insertText":"setbufline(${1:expr}, ${2:lnum}, ${3:line})${0}","insertTextFormat":2},{"label":"setbufvar","kind":3,"detail":"set","sortText":"00004","insertText":"setbufvar(${1:expr}, ${2:varname}, ${3:val})${0}","insertTextFormat":2},{"label":"setcharsearch","kind":3,"detail":"Dict","sortText":"00004","insertText":"setcharsearch(${1:dict})${0}","insertTextFormat":2},{"label":"setcmdpos","kind":3,"detail":"Number","sortText":"00004","insertText":"setcmdpos(${1:pos})${0}","insertTextFormat":2},{"label":"setenv","kind":3,"detail":"none","sortText":"00004","insertText":"setenv(${1:name}, ${2:val})${0}","insertTextFormat":2},{"label":"setline","kind":3,"detail":"Number","sortText":"00004","insertText":"setline(${1:lnum}, ${2:line})${0}","insertTextFormat":2},{"label":"setloclist","kind":3,"detail":"Number","sortText":"00004","insertText":"setloclist(${1:nr}, ${2:list})${0}","insertTextFormat":2},{"label":"setmatches","kind":3,"detail":"Number","sortText":"00004","insertText":"setmatches(${1:list})${0}","insertTextFormat":2},{"label":"setpos","kind":3,"detail":"Number","sortText":"00004","insertText":"setpos(${1:expr}, ${2:list})${0}","insertTextFormat":2},{"label":"setreg","kind":3,"detail":"Number","sortText":"00004","insertText":"setreg(${1:n}, ${2:v})${0}","insertTextFormat":2},{"label":"settabvar","kind":3,"detail":"set","sortText":"00004","insertText":"settabvar(${1:nr}, ${2:varname}, ${3:val})${0}","insertTextFormat":2},{"label":"settabwinvar","kind":3,"detail":"set","sortText":"00004","insertText":"settabwinvar(${1:tabnr}, ${2:winnr}, ${3:varname}, ${4:val})${0}","insertTextFormat":2},{"label":"settagstack","kind":3,"detail":"Number","sortText":"00004","insertText":"settagstack(${1:nr}, ${2:dict})${0}","insertTextFormat":2},{"label":"setwinvar","kind":3,"detail":"set","sortText":"00004","insertText":"setwinvar(${1:nr}, ${2:varname}, ${3:val})${0}","insertTextFormat":2},{"label":"sha256","kind":3,"detail":"String","sortText":"00004","insertText":"sha256(${1:string})${0}","insertTextFormat":2},{"label":"shellescape","kind":3,"detail":"String","sortText":"00004","insertText":"shellescape(${1:string})${0}","insertTextFormat":2},{"label":"shiftwidth","kind":3,"detail":"Number","sortText":"00004","insertText":"shiftwidth(${0})","insertTextFormat":2},{"label":"sign_define","kind":3,"detail":"Number","sortText":"00004","insertText":"sign_define(${1:name})${0}","insertTextFormat":2},{"label":"sign_getdefined","kind":3,"detail":"List","sortText":"00004","insertText":"sign_getdefined(${1})${0}","insertTextFormat":2},{"label":"sign_getplaced","kind":3,"detail":"List","sortText":"00004","insertText":"sign_getplaced(${1})${0}","insertTextFormat":2},{"label":"sign_jump","kind":3,"detail":"Number","sortText":"00004","insertText":"sign_jump(${1:id}, ${2:group}, ${3:expr})${0}","insertTextFormat":2},{"label":"sign_place","kind":3,"detail":"Number","sortText":"00004","insertText":"sign_place(${1:id}, ${2:group}, ${3:name}, ${4:expr})${0}","insertTextFormat":2},{"label":"sign_undefine","kind":3,"detail":"Number","sortText":"00004","insertText":"sign_undefine(${1})${0}","insertTextFormat":2},{"label":"sign_unplace","kind":3,"detail":"Number","sortText":"00004","insertText":"sign_unplace(${1:group})${0}","insertTextFormat":2},{"label":"simplify","kind":3,"detail":"String","sortText":"00004","insertText":"simplify(${1:filename})${0}","insertTextFormat":2},{"label":"sin","kind":3,"detail":"Float","sortText":"00004","insertText":"sin(${1:expr})${0}","insertTextFormat":2},{"label":"sinh","kind":3,"detail":"Float","sortText":"00004","insertText":"sinh(${1:expr})${0}","insertTextFormat":2},{"label":"sockconnect","kind":3,"detail":"Number","sortText":"00004","insertText":"sockconnect(${1:mode}, ${2:address})${0}","insertTextFormat":2},{"label":"sort","kind":3,"detail":"List","sortText":"00004","insertText":"sort(${1:list})${0}","insertTextFormat":2},{"label":"soundfold","kind":3,"detail":"String","sortText":"00004","insertText":"soundfold(${1:word})${0}","insertTextFormat":2},{"label":"spellbadword","kind":3,"detail":"String","sortText":"00004","insertText":"spellbadword(${0})","insertTextFormat":2},{"label":"spellsuggest","kind":3,"detail":"List","sortText":"00004","insertText":"spellsuggest(${1:word})${0}","insertTextFormat":2},{"label":"split","kind":3,"detail":"List","sortText":"00004","insertText":"split(${1:expr})${0}","insertTextFormat":2},{"label":"sqrt","kind":3,"detail":"Float","sortText":"00004","insertText":"sqrt(${1:expr})${0}","insertTextFormat":2},{"label":"stdioopen","kind":3,"detail":"Number","sortText":"00004","insertText":"stdioopen(${1:dict})${0}","insertTextFormat":2},{"label":"stdpath","kind":3,"detail":"String/List","sortText":"00004","insertText":"stdpath(${1:what})${0}","insertTextFormat":2},{"label":"str2float","kind":3,"detail":"Float","sortText":"00004","insertText":"str2float(${1:expr})${0}","insertTextFormat":2},{"label":"str2list","kind":3,"detail":"List","sortText":"00004","insertText":"str2list(${1:expr})${0}","insertTextFormat":2},{"label":"str2nr","kind":3,"detail":"Number","sortText":"00004","insertText":"str2nr(${1:expr})${0}","insertTextFormat":2},{"label":"strchars","kind":3,"detail":"Number","sortText":"00004","insertText":"strchars(${1:expr})${0}","insertTextFormat":2},{"label":"strcharpart","kind":3,"detail":"String","sortText":"00004","insertText":"strcharpart(${1:str}, ${2:start})${0}","insertTextFormat":2},{"label":"strdisplaywidth","kind":3,"detail":"Number","sortText":"00004","insertText":"strdisplaywidth(${1:expr})${0}","insertTextFormat":2},{"label":"strftime","kind":3,"detail":"String","sortText":"00004","insertText":"strftime(${1:format})${0}","insertTextFormat":2},{"label":"strgetchar","kind":3,"detail":"Number","sortText":"00004","insertText":"strgetchar(${1:str}, ${2:index})${0}","insertTextFormat":2},{"label":"stridx","kind":3,"detail":"Number","sortText":"00004","insertText":"stridx(${1:haystack}, ${2:needle})${0}","insertTextFormat":2},{"label":"string","kind":3,"detail":"String","sortText":"00004","insertText":"string(${1:expr})${0}","insertTextFormat":2},{"label":"strlen","kind":3,"detail":"Number","sortText":"00004","insertText":"strlen(${1:expr})${0}","insertTextFormat":2},{"label":"strpart","kind":3,"detail":"String","sortText":"00004","insertText":"strpart(${1:str}, ${2:start})${0}","insertTextFormat":2},{"label":"strridx","kind":3,"detail":"Number","sortText":"00004","insertText":"strridx(${1:haystack}, ${2:needle})${0}","insertTextFormat":2},{"label":"strtrans","kind":3,"detail":"String","sortText":"00004","insertText":"strtrans(${1:expr})${0}","insertTextFormat":2},{"label":"strwidth","kind":3,"detail":"Number","sortText":"00004","insertText":"strwidth(${1:expr})${0}","insertTextFormat":2},{"label":"submatch","kind":3,"detail":"String","sortText":"00004","insertText":"submatch(${1:nr})${0}","insertTextFormat":2},{"label":"substitute","kind":3,"detail":"String","sortText":"00004","insertText":"substitute(${1:expr}, ${2:pat}, ${3:sub}, ${4:flags})${0}","insertTextFormat":2},{"label":"swapinfo","kind":3,"detail":"Dict","sortText":"00004","insertText":"swapinfo(${1:fname})${0}","insertTextFormat":2},{"label":"swapname","kind":3,"detail":"String","sortText":"00004","insertText":"swapname(${1:expr})${0}","insertTextFormat":2},{"label":"synID","kind":3,"detail":"Number","sortText":"00004","insertText":"synID(${1:lnum}, ${2:col}, ${3:trans})${0}","insertTextFormat":2},{"label":"synIDattr","kind":3,"detail":"String","sortText":"00004","insertText":"synIDattr(${1:synID}, ${2:what})${0}","insertTextFormat":2},{"label":"synIDtrans","kind":3,"detail":"Number","sortText":"00004","insertText":"synIDtrans(${1:synID})${0}","insertTextFormat":2},{"label":"synconcealed","kind":3,"detail":"List","sortText":"00004","insertText":"synconcealed(${1:lnum}, ${2:col})${0}","insertTextFormat":2},{"label":"synstack","kind":3,"detail":"List","sortText":"00004","insertText":"synstack(${1:lnum}, ${2:col})${0}","insertTextFormat":2},{"label":"system","kind":3,"detail":"String","sortText":"00004","insertText":"system(${1:cmd})${0}","insertTextFormat":2},{"label":"systemlist","kind":3,"detail":"List","sortText":"00004","insertText":"systemlist(${1:cmd})${0}","insertTextFormat":2},{"label":"tabpagebuflist","kind":3,"detail":"List","sortText":"00004","insertText":"tabpagebuflist(${1})${0}","insertTextFormat":2},{"label":"tabpagenr","kind":3,"detail":"Number","sortText":"00004","insertText":"tabpagenr(${1})${0}","insertTextFormat":2},{"label":"tabpagewinnr","kind":3,"detail":"Number","sortText":"00004","insertText":"tabpagewinnr(${1:tabarg})${0}","insertTextFormat":2},{"label":"taglist","kind":3,"detail":"List","sortText":"00004","insertText":"taglist(${1:expr})${0}","insertTextFormat":2},{"label":"tagfiles","kind":3,"detail":"List","sortText":"00004","insertText":"tagfiles(${0})","insertTextFormat":2},{"label":"tan","kind":3,"detail":"Float","sortText":"00004","insertText":"tan(${1:expr})${0}","insertTextFormat":2},{"label":"tanh","kind":3,"detail":"Float","sortText":"00004","insertText":"tanh(${1:expr})${0}","insertTextFormat":2},{"label":"tempname","kind":3,"detail":"String","sortText":"00004","insertText":"tempname(${0})","insertTextFormat":2},{"label":"test_garbagecollect_now","kind":3,"detail":"none","sortText":"00004","insertText":"test_garbagecollect_now(${0})","insertTextFormat":2},{"label":"timer_info","kind":3,"detail":"List","sortText":"00004","insertText":"timer_info(${1})${0}","insertTextFormat":2},{"label":"timer_pause","kind":3,"detail":"none","sortText":"00004","insertText":"timer_pause(${1:id}, ${2:pause})${0}","insertTextFormat":2},{"label":"timer_start","kind":3,"detail":"Number","sortText":"00004","insertText":"timer_start(${1:time}, ${2:callback})${0}","insertTextFormat":2},{"label":"timer_stop","kind":3,"detail":"none","sortText":"00004","insertText":"timer_stop(${1:timer})${0}","insertTextFormat":2},{"label":"timer_stopall","kind":3,"detail":"none","sortText":"00004","insertText":"timer_stopall(${0})","insertTextFormat":2},{"label":"tolower","kind":3,"detail":"String","sortText":"00004","insertText":"tolower(${1:expr})${0}","insertTextFormat":2},{"label":"toupper","kind":3,"detail":"String","sortText":"00004","insertText":"toupper(${1:expr})${0}","insertTextFormat":2},{"label":"tr","kind":3,"detail":"String","sortText":"00004","insertText":"tr(${1:src}, ${2:fromstr}, ${3:tostr})${0}","insertTextFormat":2},{"label":"trim","kind":3,"detail":"String","sortText":"00004","insertText":"trim(${1:text})${0}","insertTextFormat":2},{"label":"trunc","kind":3,"detail":"Float","sortText":"00004","insertText":"trunc(${1:expr})${0}","insertTextFormat":2},{"label":"type","kind":3,"detail":"Number","sortText":"00004","insertText":"type(${1:name})${0}","insertTextFormat":2},{"label":"undofile","kind":3,"detail":"String","sortText":"00004","insertText":"undofile(${1:name})${0}","insertTextFormat":2},{"label":"undotree","kind":3,"detail":"List","sortText":"00004","insertText":"undotree(${0})","insertTextFormat":2},{"label":"uniq","kind":3,"detail":"List","sortText":"00004","insertText":"uniq(${1:list})${0}","insertTextFormat":2},{"label":"values","kind":3,"detail":"List","sortText":"00004","insertText":"values(${1:dict})${0}","insertTextFormat":2},{"label":"virtcol","kind":3,"detail":"Number","sortText":"00004","insertText":"virtcol(${1:expr})${0}","insertTextFormat":2},{"label":"visualmode","kind":3,"detail":"String","sortText":"00004","insertText":"visualmode(${1})${0}","insertTextFormat":2},{"label":"wait","kind":3,"detail":"Number","sortText":"00004","insertText":"wait(${1:timeout}, ${2:condition})${0}","insertTextFormat":2},{"label":"wildmenumode","kind":3,"detail":"Number","sortText":"00004","insertText":"wildmenumode(${0})","insertTextFormat":2},{"label":"win_findbuf","kind":3,"detail":"List","sortText":"00004","insertText":"win_findbuf(${1:bufnr})${0}","insertTextFormat":2},{"label":"win_getid","kind":3,"detail":"Number","sortText":"00004","insertText":"win_getid(${1})${0}","insertTextFormat":2},{"label":"win_gotoid","kind":3,"detail":"Number","sortText":"00004","insertText":"win_gotoid(${1:expr})${0}","insertTextFormat":2},{"label":"win_id2tabwin","kind":3,"detail":"List","sortText":"00004","insertText":"win_id2tabwin(${1:expr})${0}","insertTextFormat":2},{"label":"win_id2win","kind":3,"detail":"Number","sortText":"00004","insertText":"win_id2win(${1:expr})${0}","insertTextFormat":2},{"label":"win_screenpos","kind":3,"detail":"List","sortText":"00004","insertText":"win_screenpos(${1:nr})${0}","insertTextFormat":2},{"label":"winbufnr","kind":3,"detail":"Number","sortText":"00004","insertText":"winbufnr(${1:nr})${0}","insertTextFormat":2},{"label":"wincol","kind":3,"detail":"Number","sortText":"00004","insertText":"wincol(${0})","insertTextFormat":2},{"label":"winheight","kind":3,"detail":"Number","sortText":"00004","insertText":"winheight(${1:nr})${0}","insertTextFormat":2},{"label":"winlayout","kind":3,"detail":"List","sortText":"00004","insertText":"winlayout(${1})${0}","insertTextFormat":2},{"label":"winline","kind":3,"detail":"Number","sortText":"00004","insertText":"winline(${0})","insertTextFormat":2},{"label":"winnr","kind":3,"detail":"Number","sortText":"00004","insertText":"winnr(${1})${0}","insertTextFormat":2},{"label":"winrestcmd","kind":3,"detail":"String","sortText":"00004","insertText":"winrestcmd(${0})","insertTextFormat":2},{"label":"winrestview","kind":3,"detail":"none","sortText":"00004","insertText":"winrestview(${1:dict})${0}","insertTextFormat":2},{"label":"winsaveview","kind":3,"detail":"Dict","sortText":"00004","insertText":"winsaveview(${0})","insertTextFormat":2},{"label":"winwidth","kind":3,"detail":"Number","sortText":"00004","insertText":"winwidth(${1:nr})${0}","insertTextFormat":2},{"label":"wordcount","kind":3,"detail":"Dict","sortText":"00004","insertText":"wordcount(${0})","insertTextFormat":2},{"label":"writefile","kind":3,"detail":"Number","sortText":"00004","insertText":"writefile(${1:list}, ${2:fname})${0}","insertTextFormat":2},{"label":"xor","kind":3,"detail":"Number","sortText":"00004","insertText":"xor(${1:expr}, ${2:expr})${0}","insertTextFormat":2},{"label":"nvim__id","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim__id(${1:obj})${0}","insertTextFormat":2},{"label":"nvim__id_array","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim__id_array(${1:arr})${0}","insertTextFormat":2},{"label":"nvim__id_dictionary","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim__id_dictionary(${1:dct})${0}","insertTextFormat":2},{"label":"nvim__id_float","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim__id_float(${1:flt})${0}","insertTextFormat":2},{"label":"nvim__inspect_cell","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim__inspect_cell(${1:grid}, ${2:row}, ${3:col})${0}","insertTextFormat":2},{"label":"nvim__put_attr","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim__put_attr(${1:id}, ${2:c0}, ${3:c1})${0}","insertTextFormat":2},{"label":"nvim__stats","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim__stats(${0})","insertTextFormat":2},{"label":"nvim_call_atomic","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_call_atomic(${1:calls})${0}","insertTextFormat":2},{"label":"nvim_call_dict_function","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_call_dict_function(${1:dict}, ${2:fn}, ${3:args})${0}","insertTextFormat":2},{"label":"nvim_call_function","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_call_function(${1:fn}, ${2:args})${0}","insertTextFormat":2},{"label":"nvim_command","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_command(${1:command})${0}","insertTextFormat":2},{"label":"nvim_create_buf","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_create_buf(${1:listed}, ${2:scratch})${0}","insertTextFormat":2},{"label":"nvim_create_namespace","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_create_namespace(${1:name})${0}","insertTextFormat":2},{"label":"nvim_del_current_line","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_del_current_line(${0})","insertTextFormat":2},{"label":"nvim_del_keymap","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_del_keymap(${1:mode}, ${2:lhs})${0}","insertTextFormat":2},{"label":"nvim_del_var","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_del_var(${1:name})${0}","insertTextFormat":2},{"label":"nvim_err_write","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_err_write(${1:str})${0}","insertTextFormat":2},{"label":"nvim_err_writeln","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_err_writeln(${1:str})${0}","insertTextFormat":2},{"label":"nvim_eval","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_eval(${1:expr})${0}","insertTextFormat":2},{"label":"nvim_exec","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_exec(${1:src}, ${2:output})${0}","insertTextFormat":2},{"label":"nvim_exec_lua","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_exec_lua(${1:code}, ${2:args})${0}","insertTextFormat":2},{"label":"nvim_feedkeys","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_feedkeys(${1:keys}, ${2:mode}, ${3:escape_csi})${0}","insertTextFormat":2},{"label":"nvim_get_api_info","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_get_api_info(${0})","insertTextFormat":2},{"label":"nvim_get_chan_info","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_get_chan_info(${1:chan})${0}","insertTextFormat":2},{"label":"nvim_get_color_by_name","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_get_color_by_name(${1:name})${0}","insertTextFormat":2},{"label":"nvim_get_color_map","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_get_color_map(${0})","insertTextFormat":2},{"label":"nvim_get_commands","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_get_commands(${1:opts})${0}","insertTextFormat":2},{"label":"nvim_get_context","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_get_context(${1:opts})${0}","insertTextFormat":2},{"label":"nvim_get_current_buf","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_get_current_buf(${0})","insertTextFormat":2},{"label":"nvim_get_current_line","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_get_current_line(${0})","insertTextFormat":2},{"label":"nvim_get_current_tabpage","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_get_current_tabpage(${0})","insertTextFormat":2},{"label":"nvim_get_current_win","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_get_current_win(${0})","insertTextFormat":2},{"label":"nvim_get_hl_by_id","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_get_hl_by_id(${1:hl_id}, ${2:rgb})${0}","insertTextFormat":2},{"label":"nvim_get_hl_by_name","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_get_hl_by_name(${1:name}, ${2:rgb})${0}","insertTextFormat":2},{"label":"nvim_get_hl_id_by_name","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_get_hl_id_by_name(${1:name})${0}","insertTextFormat":2},{"label":"nvim_get_keymap","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_get_keymap(${1:mode})${0}","insertTextFormat":2},{"label":"nvim_get_mode","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_get_mode(${0})","insertTextFormat":2},{"label":"nvim_get_namespaces","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_get_namespaces(${0})","insertTextFormat":2},{"label":"nvim_get_option","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_get_option(${1:name})${0}","insertTextFormat":2},{"label":"nvim_get_proc","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_get_proc(${1:pid})${0}","insertTextFormat":2},{"label":"nvim_get_proc_children","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_get_proc_children(${1:pid})${0}","insertTextFormat":2},{"label":"nvim_get_var","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_get_var(${1:name})${0}","insertTextFormat":2},{"label":"nvim_get_vvar","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_get_vvar(${1:name})${0}","insertTextFormat":2},{"label":"nvim_input","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_input(${1:keys})${0}","insertTextFormat":2},{"label":"nvim_input_mouse","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_input_mouse(${1:button}, ${2:action}, ${3:modifier}, ${4:grid}, ${5:row}, ${6:col})${0}","insertTextFormat":2},{"label":"nvim_list_bufs","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_list_bufs(${0})","insertTextFormat":2},{"label":"nvim_list_chans","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_list_chans(${0})","insertTextFormat":2},{"label":"nvim_list_runtime_paths","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_list_runtime_paths(${0})","insertTextFormat":2},{"label":"nvim_list_tabpages","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_list_tabpages(${0})","insertTextFormat":2},{"label":"nvim_list_uis","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_list_uis(${0})","insertTextFormat":2},{"label":"nvim_list_wins","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_list_wins(${0})","insertTextFormat":2},{"label":"nvim_load_context","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_load_context(${1:dict})${0}","insertTextFormat":2},{"label":"nvim_open_win","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_open_win(${1:buffer}, ${2:enter}, ${3:config})${0}","insertTextFormat":2},{"label":"nvim_out_write","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_out_write(${1:str})${0}","insertTextFormat":2},{"label":"nvim_parse_expression","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_parse_expression(${1:expr}, ${2:flags}, ${3:highlight})${0}","insertTextFormat":2},{"label":"nvim_paste","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_paste(${1:data}, ${2:crlf}, ${3:phase})${0}","insertTextFormat":2},{"label":"nvim_put","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_put(${1:lines}, ${2:type}, ${3:after}, ${4:follow})${0}","insertTextFormat":2},{"label":"nvim_replace_termcodes","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_replace_termcodes(${1:str}, ${2:from_part}, ${3:do_lt}, ${4:special})${0}","insertTextFormat":2},{"label":"nvim_select_popupmenu_item","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_select_popupmenu_item(${1:item}, ${2:insert}, ${3:finish}, ${4:opts})${0}","insertTextFormat":2},{"label":"nvim_set_client_info","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_set_client_info(${1:name}, ${2:version}, ${3:type}, ${4:methods}, ${5:attributes})${0}","insertTextFormat":2},{"label":"nvim_set_current_buf","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_set_current_buf(${1:buffer})${0}","insertTextFormat":2},{"label":"nvim_set_current_dir","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_set_current_dir(${1:dir})${0}","insertTextFormat":2},{"label":"nvim_set_current_line","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_set_current_line(${1:line})${0}","insertTextFormat":2},{"label":"nvim_set_current_tabpage","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_set_current_tabpage(${1:tabpage})${0}","insertTextFormat":2},{"label":"nvim_set_current_win","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_set_current_win(${1:window})${0}","insertTextFormat":2},{"label":"nvim_set_keymap","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_set_keymap(${1:mode}, ${2:lhs}, ${3:rhs}, ${4:opts})${0}","insertTextFormat":2},{"label":"nvim_set_option","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_set_option(${1:name}, ${2:value})${0}","insertTextFormat":2},{"label":"nvim_set_var","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_set_var(${1:name}, ${2:value})${0}","insertTextFormat":2},{"label":"nvim_set_vvar","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_set_vvar(${1:name}, ${2:value})${0}","insertTextFormat":2},{"label":"nvim_strwidth","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_strwidth(${1:text})${0}","insertTextFormat":2},{"label":"nvim_subscribe","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_subscribe(${1:event})${0}","insertTextFormat":2},{"label":"nvim_unsubscribe","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_unsubscribe(${1:event})${0}","insertTextFormat":2},{"label":"nvim__buf_redraw_range","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim__buf_redraw_range(${1:buffer}, ${2:first}, ${3:last})${0}","insertTextFormat":2},{"label":"nvim__buf_set_luahl","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim__buf_set_luahl(${1:buffer}, ${2:opts})${0}","insertTextFormat":2},{"label":"nvim__buf_stats","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim__buf_stats(${1:buffer})${0}","insertTextFormat":2},{"label":"nvim_buf_add_highlight","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_add_highlight(${1:buffer}, ${2:ns_id}, ${3:hl_group}, ${4:line}, ${5:col_start}, ${6:col_end})${0}","insertTextFormat":2},{"label":"nvim_buf_attach","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_attach(${1:buffer}, ${2:send_buffer}, ${3:opts})${0}","insertTextFormat":2},{"label":"nvim_buf_clear_namespace","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_clear_namespace(${1:buffer}, ${2:ns_id}, ${3:line_start}, ${4:line_end})${0}","insertTextFormat":2},{"label":"nvim_buf_del_extmark","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_del_extmark(${1:buffer}, ${2:ns_id}, ${3:id})${0}","insertTextFormat":2},{"label":"nvim_buf_del_keymap","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_del_keymap(${1:buffer}, ${2:mode}, ${3:lhs})${0}","insertTextFormat":2},{"label":"nvim_buf_del_var","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_del_var(${1:buffer}, ${2:name})${0}","insertTextFormat":2},{"label":"nvim_buf_detach","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_detach(${1:buffer})${0}","insertTextFormat":2},{"label":"nvim_buf_get_changedtick","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_get_changedtick(${1:buffer})${0}","insertTextFormat":2},{"label":"nvim_buf_get_commands","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_get_commands(${1:buffer}, ${2:opts})${0}","insertTextFormat":2},{"label":"nvim_buf_get_extmark_by_id","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_get_extmark_by_id(${1:buffer}, ${2:ns_id}, ${3:id})${0}","insertTextFormat":2},{"label":"nvim_buf_get_extmarks","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_get_extmarks(${1:buffer}, ${2:ns_id}, ${3:start}, ${4:end}, ${5:opts})${0}","insertTextFormat":2},{"label":"nvim_buf_get_keymap","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_get_keymap(${1:buffer}, ${2:mode})${0}","insertTextFormat":2},{"label":"nvim_buf_get_lines","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_get_lines(${1:buffer}, ${2:start}, ${3:end}, ${4:strict_indexing})${0}","insertTextFormat":2},{"label":"nvim_buf_get_mark","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_get_mark(${1:buffer}, ${2:name})${0}","insertTextFormat":2},{"label":"nvim_buf_get_name","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_get_name(${1:buffer})${0}","insertTextFormat":2},{"label":"nvim_buf_get_offset","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_get_offset(${1:buffer}, ${2:index})${0}","insertTextFormat":2},{"label":"nvim_buf_get_option","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_get_option(${1:buffer}, ${2:name})${0}","insertTextFormat":2},{"label":"nvim_buf_get_var","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_get_var(${1:buffer}, ${2:name})${0}","insertTextFormat":2},{"label":"nvim_buf_get_virtual_text","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_get_virtual_text(${1:buffer}, ${2:lnum})${0}","insertTextFormat":2},{"label":"nvim_buf_is_loaded","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_is_loaded(${1:buffer})${0}","insertTextFormat":2},{"label":"nvim_buf_is_valid","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_is_valid(${1:buffer})${0}","insertTextFormat":2},{"label":"nvim_buf_line_count","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_line_count(${1:buffer})${0}","insertTextFormat":2},{"label":"nvim_buf_set_extmark","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_set_extmark(${1:buffer}, ${2:ns_id}, ${3:id}, ${4:line}, ${5:col}, ${6:opts})${0}","insertTextFormat":2},{"label":"nvim_buf_set_keymap","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_set_keymap(${1:buffer}, ${2:mode}, ${3:lhs}, ${4:rhs}, ${5:opts})${0}","insertTextFormat":2},{"label":"nvim_buf_set_lines","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_set_lines(${1:buffer}, ${2:start}, ${3:end}, ${4:strict_indexing}, ${5:replacement})${0}","insertTextFormat":2},{"label":"nvim_buf_set_name","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_set_name(${1:buffer}, ${2:name})${0}","insertTextFormat":2},{"label":"nvim_buf_set_option","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_set_option(${1:buffer}, ${2:name}, ${3:value})${0}","insertTextFormat":2},{"label":"nvim_buf_set_var","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_set_var(${1:buffer}, ${2:name}, ${3:value})${0}","insertTextFormat":2},{"label":"nvim_buf_set_virtual_text","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_buf_set_virtual_text(${1:buffer}, ${2:ns_id}, ${3:line}, ${4:chunks}, ${5:opts})${0}","insertTextFormat":2},{"label":"nvim_win_close","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_win_close(${1:window}, ${2:force})${0}","insertTextFormat":2},{"label":"nvim_win_del_var","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_win_del_var(${1:window}, ${2:name})${0}","insertTextFormat":2},{"label":"nvim_win_get_buf","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_win_get_buf(${1:window})${0}","insertTextFormat":2},{"label":"nvim_win_get_config","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_win_get_config(${1:window})${0}","insertTextFormat":2},{"label":"nvim_win_get_cursor","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_win_get_cursor(${1:window})${0}","insertTextFormat":2},{"label":"nvim_win_get_height","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_win_get_height(${1:window})${0}","insertTextFormat":2},{"label":"nvim_win_get_number","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_win_get_number(${1:window})${0}","insertTextFormat":2},{"label":"nvim_win_get_option","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_win_get_option(${1:window}, ${2:name})${0}","insertTextFormat":2},{"label":"nvim_win_get_position","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_win_get_position(${1:window})${0}","insertTextFormat":2},{"label":"nvim_win_get_tabpage","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_win_get_tabpage(${1:window})${0}","insertTextFormat":2},{"label":"nvim_win_get_var","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_win_get_var(${1:window}, ${2:name})${0}","insertTextFormat":2},{"label":"nvim_win_get_width","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_win_get_width(${1:window})${0}","insertTextFormat":2},{"label":"nvim_win_is_valid","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_win_is_valid(${1:window})${0}","insertTextFormat":2},{"label":"nvim_win_set_buf","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_win_set_buf(${1:window}, ${2:buffer})${0}","insertTextFormat":2},{"label":"nvim_win_set_config","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_win_set_config(${1:window}, ${2:config})${0}","insertTextFormat":2},{"label":"nvim_win_set_cursor","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_win_set_cursor(${1:window}, ${2:pos})${0}","insertTextFormat":2},{"label":"nvim_win_set_height","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_win_set_height(${1:window}, ${2:height})${0}","insertTextFormat":2},{"label":"nvim_win_set_option","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_win_set_option(${1:window}, ${2:name}, ${3:value})${0}","insertTextFormat":2},{"label":"nvim_win_set_var","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_win_set_var(${1:window}, ${2:name}, ${3:value})${0}","insertTextFormat":2},{"label":"nvim_win_set_width","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_win_set_width(${1:window}, ${2:width})${0}","insertTextFormat":2},{"label":"nvim_tabpage_del_var","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_tabpage_del_var(${1:tabpage}, ${2:name})${0}","insertTextFormat":2},{"label":"nvim_tabpage_get_number","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_tabpage_get_number(${1:tabpage})${0}","insertTextFormat":2},{"label":"nvim_tabpage_get_var","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_tabpage_get_var(${1:tabpage}, ${2:name})${0}","insertTextFormat":2},{"label":"nvim_tabpage_get_win","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_tabpage_get_win(${1:tabpage})${0}","insertTextFormat":2},{"label":"nvim_tabpage_is_valid","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_tabpage_is_valid(${1:tabpage})${0}","insertTextFormat":2},{"label":"nvim_tabpage_list_wins","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_tabpage_list_wins(${1:tabpage})${0}","insertTextFormat":2},{"label":"nvim_tabpage_set_var","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_tabpage_set_var(${1:tabpage}, ${2:name}, ${3:value})${0}","insertTextFormat":2},{"label":"nvim_ui_attach","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_ui_attach(${1:width}, ${2:height}, ${3:options})${0}","insertTextFormat":2},{"label":"nvim_ui_detach","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_ui_detach(${0})","insertTextFormat":2},{"label":"nvim_ui_pum_set_height","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_ui_pum_set_height(${1:height})${0}","insertTextFormat":2},{"label":"nvim_ui_set_option","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_ui_set_option(${1:name}, ${2:value})${0}","insertTextFormat":2},{"label":"nvim_ui_try_resize","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_ui_try_resize(${1:width}, ${2:height})${0}","insertTextFormat":2},{"label":"nvim_ui_try_resize_grid","kind":3,"detail":"","documentation":"","sortText":"00004","insertText":"nvim_ui_try_resize_grid(${1:grid}, ${2:width}, ${3:height})${0}","insertTextFormat":2},{"label":"balloon_gettext","kind":3,"detail":"String","sortText":"00004","insertText":"balloon_gettext(${0})","insertTextFormat":2},{"label":"balloon_show","kind":3,"detail":"none","sortText":"00004","insertText":"balloon_show(${1:expr})${0}","insertTextFormat":2},{"label":"balloon_split","kind":3,"detail":"List","sortText":"00004","insertText":"balloon_split(${1:msg})${0}","insertTextFormat":2},{"label":"ch_canread","kind":3,"detail":"Number","sortText":"00004","insertText":"ch_canread(${1:handle})${0}","insertTextFormat":2},{"label":"ch_close","kind":3,"detail":"none","sortText":"00004","insertText":"ch_close(${1:handle})${0}","insertTextFormat":2},{"label":"ch_close_in","kind":3,"detail":"none","sortText":"00004","insertText":"ch_close_in(${1:handle})${0}","insertTextFormat":2},{"label":"ch_evalexpr","kind":3,"detail":"any","sortText":"00004","insertText":"ch_evalexpr(${1:handle}, ${2:expr})${0}","insertTextFormat":2},{"label":"ch_evalraw","kind":3,"detail":"any","sortText":"00004","insertText":"ch_evalraw(${1:handle}, ${2:string})${0}","insertTextFormat":2},{"label":"ch_getbufnr","kind":3,"detail":"Number","sortText":"00004","insertText":"ch_getbufnr(${1:handle}, ${2:what})${0}","insertTextFormat":2},{"label":"ch_getjob","kind":3,"detail":"Job","sortText":"00004","insertText":"ch_getjob(${1:channel})${0}","insertTextFormat":2},{"label":"ch_info","kind":3,"detail":"String","sortText":"00004","insertText":"ch_info(${1:handle})${0}","insertTextFormat":2},{"label":"ch_log","kind":3,"detail":"none","sortText":"00004","insertText":"ch_log(${1:msg})${0}","insertTextFormat":2},{"label":"ch_logfile","kind":3,"detail":"none","sortText":"00004","insertText":"ch_logfile(${1:fname})${0}","insertTextFormat":2},{"label":"ch_open","kind":3,"detail":"Channel","sortText":"00004","insertText":"ch_open(${1:address})${0}","insertTextFormat":2},{"label":"ch_read","kind":3,"detail":"String","sortText":"00004","insertText":"ch_read(${1:handle})${0}","insertTextFormat":2},{"label":"ch_readblob","kind":3,"detail":"Blob","sortText":"00004","insertText":"ch_readblob(${1:handle})${0}","insertTextFormat":2},{"label":"ch_readraw","kind":3,"detail":"String","sortText":"00004","insertText":"ch_readraw(${1:handle})${0}","insertTextFormat":2},{"label":"ch_sendexpr","kind":3,"detail":"any","sortText":"00004","insertText":"ch_sendexpr(${1:handle}, ${2:expr})${0}","insertTextFormat":2},{"label":"ch_sendraw","kind":3,"detail":"any","sortText":"00004","insertText":"ch_sendraw(${1:handle}, ${2:expr})${0}","insertTextFormat":2},{"label":"ch_setoptions","kind":3,"detail":"none","sortText":"00004","insertText":"ch_setoptions(${1:handle}, ${2:options})${0}","insertTextFormat":2},{"label":"ch_status","kind":3,"detail":"String","sortText":"00004","insertText":"ch_status(${1:handle})${0}","insertTextFormat":2},{"label":"chdir","kind":3,"detail":"String","sortText":"00004","insertText":"chdir(${1:dir})${0}","insertTextFormat":2},{"label":"getimstatus","kind":3,"detail":"Number","sortText":"00004","insertText":"getimstatus(${0})","insertTextFormat":2},{"label":"getmousepos","kind":3,"detail":"Dict","sortText":"00004","insertText":"getmousepos(${0})","insertTextFormat":2},{"label":"inputdialog","kind":3,"detail":"String","sortText":"00004","insertText":"inputdialog(${1:prompt})${0}","insertTextFormat":2},{"label":"interrupt","kind":3,"detail":"none","sortText":"00004","insertText":"interrupt(${0})","insertTextFormat":2},{"label":"job_getchannel","kind":3,"detail":"Channel","sortText":"00004","insertText":"job_getchannel(${1:job})${0}","insertTextFormat":2},{"label":"job_info","kind":3,"detail":"Dict","sortText":"00004","insertText":"job_info(${1})${0}","insertTextFormat":2},{"label":"job_setoptions","kind":3,"detail":"none","sortText":"00004","insertText":"job_setoptions(${1:job}, ${2:options})${0}","insertTextFormat":2},{"label":"job_start","kind":3,"detail":"Job","sortText":"00004","insertText":"job_start(${1:command})${0}","insertTextFormat":2},{"label":"job_status","kind":3,"detail":"String","sortText":"00004","insertText":"job_status(${1:job})${0}","insertTextFormat":2},{"label":"job_stop","kind":3,"detail":"Number","sortText":"00004","insertText":"job_stop(${1:job})${0}","insertTextFormat":2},{"label":"js_decode","kind":3,"detail":"any","sortText":"00004","insertText":"js_decode(${1:string})${0}","insertTextFormat":2},{"label":"js_encode","kind":3,"detail":"String","sortText":"00004","insertText":"js_encode(${1:expr})${0}","insertTextFormat":2},{"label":"listener_add","kind":3,"detail":"Number","sortText":"00004","insertText":"listener_add(${1:callback})${0}","insertTextFormat":2},{"label":"listener_flush","kind":3,"detail":"none","sortText":"00004","insertText":"listener_flush(${1})${0}","insertTextFormat":2},{"label":"listener_remove","kind":3,"detail":"none","sortText":"00004","insertText":"listener_remove(${1:id})${0}","insertTextFormat":2},{"label":"mzeval","kind":3,"detail":"any","sortText":"00004","insertText":"mzeval(${1:expr})${0}","insertTextFormat":2},{"label":"perleval","kind":3,"detail":"any","sortText":"00004","insertText":"perleval(${1:expr})${0}","insertTextFormat":2},{"label":"popup_atcursor","kind":3,"detail":"Number","sortText":"00004","insertText":"popup_atcursor(${1:what}, ${2:options})${0}","insertTextFormat":2},{"label":"popup_beval","kind":3,"detail":"Number","sortText":"00004","insertText":"popup_beval(${1:what}, ${2:options})${0}","insertTextFormat":2},{"label":"popup_clear","kind":3,"detail":"none","sortText":"00004","insertText":"popup_clear(${0})","insertTextFormat":2},{"label":"popup_close","kind":3,"detail":"none","sortText":"00004","insertText":"popup_close(${1:id})${0}","insertTextFormat":2},{"label":"popup_create","kind":3,"detail":"Number","sortText":"00004","insertText":"popup_create(${1:what}, ${2:options})${0}","insertTextFormat":2},{"label":"popup_dialog","kind":3,"detail":"Number","sortText":"00004","insertText":"popup_dialog(${1:what}, ${2:options})${0}","insertTextFormat":2},{"label":"popup_filter_menu","kind":3,"detail":"Number","sortText":"00004","insertText":"popup_filter_menu(${1:id}, ${2:key})${0}","insertTextFormat":2},{"label":"popup_filter_yesno","kind":3,"detail":"Number","sortText":"00004","insertText":"popup_filter_yesno(${1:id}, ${2:key})${0}","insertTextFormat":2},{"label":"popup_findinfo","kind":3,"detail":"Number","sortText":"00004","insertText":"popup_findinfo(${0})","insertTextFormat":2},{"label":"popup_findpreview","kind":3,"detail":"Number","sortText":"00004","insertText":"popup_findpreview(${0})","insertTextFormat":2},{"label":"popup_getoptions","kind":3,"detail":"Dict","sortText":"00004","insertText":"popup_getoptions(${1:id})${0}","insertTextFormat":2},{"label":"popup_getpos","kind":3,"detail":"Dict","sortText":"00004","insertText":"popup_getpos(${1:id})${0}","insertTextFormat":2},{"label":"popup_hide","kind":3,"detail":"none","sortText":"00004","insertText":"popup_hide(${1:id})${0}","insertTextFormat":2},{"label":"popup_menu","kind":3,"detail":"Number","sortText":"00004","insertText":"popup_menu(${1:what}, ${2:options})${0}","insertTextFormat":2},{"label":"popup_move","kind":3,"detail":"none","sortText":"00004","insertText":"popup_move(${1:id}, ${2:options})${0}","insertTextFormat":2},{"label":"popup_notification","kind":3,"detail":"Number","sortText":"00004","insertText":"popup_notification(${1:what}, ${2:options})${0}","insertTextFormat":2},{"label":"popup_show","kind":3,"detail":"none","sortText":"00004","insertText":"popup_show(${1:id})${0}","insertTextFormat":2},{"label":"popup_setoptions","kind":3,"detail":"none","sortText":"00004","insertText":"popup_setoptions(${1:id}, ${2:options})${0}","insertTextFormat":2},{"label":"popup_settext","kind":3,"detail":"none","sortText":"00004","insertText":"popup_settext(${1:id}, ${2:text})${0}","insertTextFormat":2},{"label":"prop_add","kind":3,"detail":"none","sortText":"00004","insertText":"prop_add(${1:lnum}, ${2:col}, ${3:props})${0}","insertTextFormat":2},{"label":"prop_clear","kind":3,"detail":"none","sortText":"00004","insertText":"prop_clear(${1:lnum})${0}","insertTextFormat":2},{"label":"prop_find","kind":3,"detail":"Dict","sortText":"00004","insertText":"prop_find(${1:props})${0}","insertTextFormat":2},{"label":"prop_list","kind":3,"detail":"List","sortText":"00004","insertText":"prop_list(${1:lnum})${0}","insertTextFormat":2},{"label":"prop_remove","kind":3,"detail":"Number","sortText":"00004","insertText":"prop_remove(${1:props})${0}","insertTextFormat":2},{"label":"prop_type_add","kind":3,"detail":"none","sortText":"00004","insertText":"prop_type_add(${1:name}, ${2:props})${0}","insertTextFormat":2},{"label":"prop_type_change","kind":3,"detail":"none","sortText":"00004","insertText":"prop_type_change(${1:name}, ${2:props})${0}","insertTextFormat":2},{"label":"prop_type_delete","kind":3,"detail":"none","sortText":"00004","insertText":"prop_type_delete(${1:name})${0}","insertTextFormat":2},{"label":"prop_type_get","kind":3,"detail":"Dict","sortText":"00004","insertText":"prop_type_get(${1})${0}","insertTextFormat":2},{"label":"prop_type_list","kind":3,"detail":"List","sortText":"00004","insertText":"prop_type_list(${1})${0}","insertTextFormat":2},{"label":"rand","kind":3,"detail":"Number","sortText":"00004","insertText":"rand(${1})${0}","insertTextFormat":2},{"label":"rubyeval","kind":3,"detail":"any","sortText":"00004","insertText":"rubyeval(${1:expr})${0}","insertTextFormat":2},{"label":"screenchars","kind":3,"detail":"List","sortText":"00004","insertText":"screenchars(${1:row}, ${2:col})${0}","insertTextFormat":2},{"label":"screenstring","kind":3,"detail":"String","sortText":"00004","insertText":"screenstring(${1:row}, ${2:col})${0}","insertTextFormat":2},{"label":"searchpair","kind":3,"detail":"Number","sortText":"00004","insertText":"searchpair(${1:start}, ${2:middle}, ${3:end})${0}","insertTextFormat":2},{"label":"searchpairpos","kind":3,"detail":"List","sortText":"00004","insertText":"searchpairpos(${1:start}, ${2:middle}, ${3:end})${0}","insertTextFormat":2},{"label":"sign_placelist","kind":3,"detail":"List","sortText":"00004","insertText":"sign_placelist(${1:list})${0}","insertTextFormat":2},{"label":"sign_unplacelist","kind":3,"detail":"List","sortText":"00004","insertText":"sign_unplacelist(${1:list})${0}","insertTextFormat":2},{"label":"sound_clear","kind":3,"detail":"none","sortText":"00004","insertText":"sound_clear(${0})","insertTextFormat":2},{"label":"sound_playevent","kind":3,"detail":"Number","sortText":"00004","insertText":"sound_playevent(${1:name})${0}","insertTextFormat":2},{"label":"sound_playfile","kind":3,"detail":"Number","sortText":"00004","insertText":"sound_playfile(${1:path})${0}","insertTextFormat":2},{"label":"sound_stop","kind":3,"detail":"none","sortText":"00004","insertText":"sound_stop(${1:id})${0}","insertTextFormat":2},{"label":"srand","kind":3,"detail":"List","sortText":"00004","insertText":"srand(${1})${0}","insertTextFormat":2},{"label":"state","kind":3,"detail":"String","sortText":"00004","insertText":"state(${1})${0}","insertTextFormat":2},{"label":"strptime","kind":3,"detail":"Number","sortText":"00004","insertText":"strptime(${1:format}, ${2:timestring})${0}","insertTextFormat":2},{"label":"term_dumpdiff","kind":3,"detail":"Number","sortText":"00004","insertText":"term_dumpdiff(${1:filename}, ${2:filename})${0}","insertTextFormat":2},{"label":"term_dumpload","kind":3,"detail":"Number","sortText":"00004","insertText":"term_dumpload(${1:filename})${0}","insertTextFormat":2},{"label":"term_dumpwrite","kind":3,"detail":"none","sortText":"00004","insertText":"term_dumpwrite(${1:buf}, ${2:filename})${0}","insertTextFormat":2},{"label":"term_getaltscreen","kind":3,"detail":"Number","sortText":"00004","insertText":"term_getaltscreen(${1:buf})${0}","insertTextFormat":2},{"label":"term_getansicolors","kind":3,"detail":"List","sortText":"00004","insertText":"term_getansicolors(${1:buf})${0}","insertTextFormat":2},{"label":"term_getattr","kind":3,"detail":"Number","sortText":"00004","insertText":"term_getattr(${1:attr}, ${2:what})${0}","insertTextFormat":2},{"label":"term_getcursor","kind":3,"detail":"List","sortText":"00004","insertText":"term_getcursor(${1:buf})${0}","insertTextFormat":2},{"label":"term_getjob","kind":3,"detail":"Job","sortText":"00004","insertText":"term_getjob(${1:buf})${0}","insertTextFormat":2},{"label":"term_getline","kind":3,"detail":"String","sortText":"00004","insertText":"term_getline(${1:buf}, ${2:row})${0}","insertTextFormat":2},{"label":"term_getscrolled","kind":3,"detail":"Number","sortText":"00004","insertText":"term_getscrolled(${1:buf})${0}","insertTextFormat":2},{"label":"term_getsize","kind":3,"detail":"List","sortText":"00004","insertText":"term_getsize(${1:buf})${0}","insertTextFormat":2},{"label":"term_getstatus","kind":3,"detail":"String","sortText":"00004","insertText":"term_getstatus(${1:buf})${0}","insertTextFormat":2},{"label":"term_gettitle","kind":3,"detail":"String","sortText":"00004","insertText":"term_gettitle(${1:buf})${0}","insertTextFormat":2},{"label":"term_gettty","kind":3,"detail":"String","sortText":"00004","insertText":"term_gettty(${1:buf},)${0}","insertTextFormat":2},{"label":"term_list","kind":3,"detail":"List","sortText":"00004","insertText":"term_list(${0})","insertTextFormat":2},{"label":"term_scrape","kind":3,"detail":"List","sortText":"00004","insertText":"term_scrape(${1:buf}, ${2:row})${0}","insertTextFormat":2},{"label":"term_sendkeys","kind":3,"detail":"none","sortText":"00004","insertText":"term_sendkeys(${1:buf}, ${2:keys})${0}","insertTextFormat":2},{"label":"term_setapi","kind":3,"detail":"none","sortText":"00004","insertText":"term_setapi(${1:buf}, ${2:expr})${0}","insertTextFormat":2},{"label":"term_setansicolors","kind":3,"detail":"none","sortText":"00004","insertText":"term_setansicolors(${1:buf}, ${2:colors})${0}","insertTextFormat":2},{"label":"term_setkill","kind":3,"detail":"none","sortText":"00004","insertText":"term_setkill(${1:buf}, ${2:how})${0}","insertTextFormat":2},{"label":"term_setrestore","kind":3,"detail":"none","sortText":"00004","insertText":"term_setrestore(${1:buf}, ${2:command})${0}","insertTextFormat":2},{"label":"term_setsize","kind":3,"detail":"none","sortText":"00004","insertText":"term_setsize(${1:buf}, ${2:rows}, ${3:cols})${0}","insertTextFormat":2},{"label":"term_start","kind":3,"detail":"Number","sortText":"00004","insertText":"term_start(${1:cmd})${0}","insertTextFormat":2},{"label":"term_wait","kind":3,"detail":"Number","sortText":"00004","insertText":"term_wait(${1:buf})${0}","insertTextFormat":2},{"label":"test_alloc_fail","kind":3,"detail":"none","sortText":"00004","insertText":"test_alloc_fail(${1:id}, ${2:countdown}, ${3:repeat})${0}","insertTextFormat":2},{"label":"test_autochdir","kind":3,"detail":"none","sortText":"00004","insertText":"test_autochdir(${0})","insertTextFormat":2},{"label":"test_feedinput","kind":3,"detail":"none","sortText":"00004","insertText":"test_feedinput(${1:string})${0}","insertTextFormat":2},{"label":"test_garbagecollect_soon","kind":3,"detail":"none","sortText":"00004","insertText":"test_garbagecollect_soon(${0})","insertTextFormat":2},{"label":"test_getvalue","kind":3,"detail":"any","sortText":"00004","insertText":"test_getvalue(${1:string})${0}","insertTextFormat":2},{"label":"test_ignore_error","kind":3,"detail":"none","sortText":"00004","insertText":"test_ignore_error(${1:expr})${0}","insertTextFormat":2},{"label":"test_null_blob","kind":3,"detail":"Blob","sortText":"00004","insertText":"test_null_blob(${0})","insertTextFormat":2},{"label":"test_null_channel","kind":3,"detail":"Channel","sortText":"00004","insertText":"test_null_channel(${0})","insertTextFormat":2},{"label":"test_null_dict","kind":3,"detail":"Dict","sortText":"00004","insertText":"test_null_dict(${0})","insertTextFormat":2},{"label":"test_null_job","kind":3,"detail":"Job","sortText":"00004","insertText":"test_null_job(${0})","insertTextFormat":2},{"label":"test_null_list","kind":3,"detail":"List","sortText":"00004","insertText":"test_null_list(${0})","insertTextFormat":2},{"label":"test_null_partial","kind":3,"detail":"Funcref","sortText":"00004","insertText":"test_null_partial(${0})","insertTextFormat":2},{"label":"test_null_string","kind":3,"detail":"String","sortText":"00004","insertText":"test_null_string(${0})","insertTextFormat":2},{"label":"test_option_not_set","kind":3,"detail":"none","sortText":"00004","insertText":"test_option_not_set(${1:name})${0}","insertTextFormat":2},{"label":"test_override","kind":3,"detail":"none","sortText":"00004","insertText":"test_override(${1:expr}, ${2:val})${0}","insertTextFormat":2},{"label":"test_refcount","kind":3,"detail":"Number","sortText":"00004","insertText":"test_refcount(${1:expr})${0}","insertTextFormat":2},{"label":"test_scrollbar","kind":3,"detail":"none","sortText":"00004","insertText":"test_scrollbar(${1:which}, ${2:value}, ${3:dragging})${0}","insertTextFormat":2},{"label":"test_setmouse","kind":3,"detail":"none","sortText":"00004","insertText":"test_setmouse(${1:row}, ${2:col})${0}","insertTextFormat":2},{"label":"test_settime","kind":3,"detail":"none","sortText":"00004","insertText":"test_settime(${1:expr})${0}","insertTextFormat":2},{"label":"win_execute","kind":3,"detail":"String","sortText":"00004","insertText":"win_execute(${1:id}, ${2:command})${0}","insertTextFormat":2},{"label":"win_splitmove","kind":3,"detail":"Number","sortText":"00004","insertText":"win_splitmove(${1:nr}, ${2:target})${0}","insertTextFormat":2}],"variables":[{"label":"v:beval_col","kind":6,"sortText":"00004","insertText":"beval_col","insertTextFormat":1},{"label":"v:beval_bufnr","kind":6,"sortText":"00004","insertText":"beval_bufnr","insertTextFormat":1},{"label":"v:beval_lnum","kind":6,"sortText":"00004","insertText":"beval_lnum","insertTextFormat":1},{"label":"v:beval_text","kind":6,"sortText":"00004","insertText":"beval_text","insertTextFormat":1},{"label":"v:beval_winnr","kind":6,"sortText":"00004","insertText":"beval_winnr","insertTextFormat":1},{"label":"v:beval_winid","kind":6,"sortText":"00004","insertText":"beval_winid","insertTextFormat":1},{"label":"v:char","kind":6,"sortText":"00004","insertText":"char","insertTextFormat":1},{"label":"v:cmdarg","kind":6,"sortText":"00004","insertText":"cmdarg","insertTextFormat":1},{"label":"v:cmdbang","kind":6,"sortText":"00004","insertText":"cmdbang","insertTextFormat":1},{"label":"v:count","kind":6,"sortText":"00004","insertText":"count","insertTextFormat":1},{"label":"v:count1","kind":6,"sortText":"00004","insertText":"count1","insertTextFormat":1},{"label":"v:ctype","kind":6,"sortText":"00004","insertText":"ctype","insertTextFormat":1},{"label":"v:dying","kind":6,"sortText":"00004","insertText":"dying","insertTextFormat":1},{"label":"v:exiting","kind":6,"sortText":"00004","insertText":"exiting","insertTextFormat":1},{"label":"v:echospace","kind":6,"sortText":"00004","insertText":"echospace","insertTextFormat":1},{"label":"v:errmsg","kind":6,"sortText":"00004","insertText":"errmsg","insertTextFormat":1},{"label":"v:errors","kind":6,"sortText":"00004","insertText":"errors","insertTextFormat":1},{"label":"v:event","kind":6,"sortText":"00004","insertText":"event","insertTextFormat":1},{"label":"v:exception","kind":6,"sortText":"00004","insertText":"exception","insertTextFormat":1},{"label":"v:false","kind":6,"sortText":"00004","insertText":"false","insertTextFormat":1},{"label":"v:fcs_reason","kind":6,"sortText":"00004","insertText":"fcs_reason","insertTextFormat":1},{"label":"v:fcs_choice","kind":6,"sortText":"00004","insertText":"fcs_choice","insertTextFormat":1},{"label":"v:fname_in","kind":6,"sortText":"00004","insertText":"fname_in","insertTextFormat":1},{"label":"v:fname_out","kind":6,"sortText":"00004","insertText":"fname_out","insertTextFormat":1},{"label":"v:fname_new","kind":6,"sortText":"00004","insertText":"fname_new","insertTextFormat":1},{"label":"v:fname_diff","kind":6,"sortText":"00004","insertText":"fname_diff","insertTextFormat":1},{"label":"v:folddashes","kind":6,"sortText":"00004","insertText":"folddashes","insertTextFormat":1},{"label":"v:foldlevel","kind":6,"sortText":"00004","insertText":"foldlevel","insertTextFormat":1},{"label":"v:foldend","kind":6,"sortText":"00004","insertText":"foldend","insertTextFormat":1},{"label":"v:foldstart","kind":6,"sortText":"00004","insertText":"foldstart","insertTextFormat":1},{"label":"v:hlsearch","kind":6,"sortText":"00004","insertText":"hlsearch","insertTextFormat":1},{"label":"v:insertmode","kind":6,"sortText":"00004","insertText":"insertmode","insertTextFormat":1},{"label":"v:key","kind":6,"sortText":"00004","insertText":"key","insertTextFormat":1},{"label":"v:lang","kind":6,"sortText":"00004","insertText":"lang","insertTextFormat":1},{"label":"v:lc_time","kind":6,"sortText":"00004","insertText":"lc_time","insertTextFormat":1},{"label":"v:lnum","kind":6,"sortText":"00004","insertText":"lnum","insertTextFormat":1},{"label":"v:lua","kind":6,"sortText":"00004","insertText":"lua","insertTextFormat":1},{"label":"v:mouse_win","kind":6,"sortText":"00004","insertText":"mouse_win","insertTextFormat":1},{"label":"v:mouse_winid","kind":6,"sortText":"00004","insertText":"mouse_winid","insertTextFormat":1},{"label":"v:mouse_lnum","kind":6,"sortText":"00004","insertText":"mouse_lnum","insertTextFormat":1},{"label":"v:mouse_col","kind":6,"sortText":"00004","insertText":"mouse_col","insertTextFormat":1},{"label":"v:msgpack_types","kind":6,"sortText":"00004","insertText":"msgpack_types","insertTextFormat":1},{"label":"v:null","kind":6,"sortText":"00004","insertText":"null","insertTextFormat":1},{"label":"v:oldfiles","kind":6,"sortText":"00004","insertText":"oldfiles","insertTextFormat":1},{"label":"v:option_new","kind":6,"sortText":"00004","insertText":"option_new","insertTextFormat":1},{"label":"v:option_old","kind":6,"sortText":"00004","insertText":"option_old","insertTextFormat":1},{"label":"v:option_type","kind":6,"sortText":"00004","insertText":"option_type","insertTextFormat":1},{"label":"v:operator","kind":6,"sortText":"00004","insertText":"operator","insertTextFormat":1},{"label":"v:prevcount","kind":6,"sortText":"00004","insertText":"prevcount","insertTextFormat":1},{"label":"v:profiling","kind":6,"sortText":"00004","insertText":"profiling","insertTextFormat":1},{"label":"v:progname","kind":6,"sortText":"00004","insertText":"progname","insertTextFormat":1},{"label":"v:progpath","kind":6,"sortText":"00004","insertText":"progpath","insertTextFormat":1},{"label":"v:register","kind":6,"sortText":"00004","insertText":"register","insertTextFormat":1},{"label":"v:scrollstart","kind":6,"sortText":"00004","insertText":"scrollstart","insertTextFormat":1},{"label":"v:servername","kind":6,"sortText":"00004","insertText":"servername","insertTextFormat":1},{"label":"v:searchforward","kind":6,"sortText":"00004","insertText":"searchforward","insertTextFormat":1},{"label":"v:shell_error","kind":6,"sortText":"00004","insertText":"shell_error","insertTextFormat":1},{"label":"v:statusmsg","kind":6,"sortText":"00004","insertText":"statusmsg","insertTextFormat":1},{"label":"v:stderr","kind":6,"sortText":"00004","insertText":"stderr","insertTextFormat":1},{"label":"v:swapname","kind":6,"sortText":"00004","insertText":"swapname","insertTextFormat":1},{"label":"v:swapchoice","kind":6,"sortText":"00004","insertText":"swapchoice","insertTextFormat":1},{"label":"v:swapcommand","kind":6,"sortText":"00004","insertText":"swapcommand","insertTextFormat":1},{"label":"v:t_bool","kind":6,"sortText":"00004","insertText":"t_bool","insertTextFormat":1},{"label":"v:t_dict","kind":6,"sortText":"00004","insertText":"t_dict","insertTextFormat":1},{"label":"v:t_float","kind":6,"sortText":"00004","insertText":"t_float","insertTextFormat":1},{"label":"v:t_func","kind":6,"sortText":"00004","insertText":"t_func","insertTextFormat":1},{"label":"v:t_list","kind":6,"sortText":"00004","insertText":"t_list","insertTextFormat":1},{"label":"v:t_number","kind":6,"sortText":"00004","insertText":"t_number","insertTextFormat":1},{"label":"v:t_string","kind":6,"sortText":"00004","insertText":"t_string","insertTextFormat":1},{"label":"v:termresponse","kind":6,"sortText":"00004","insertText":"termresponse","insertTextFormat":1},{"label":"v:testing","kind":6,"sortText":"00004","insertText":"testing","insertTextFormat":1},{"label":"v:this_session","kind":6,"sortText":"00004","insertText":"this_session","insertTextFormat":1},{"label":"v:throwpoint","kind":6,"sortText":"00004","insertText":"throwpoint","insertTextFormat":1},{"label":"v:true","kind":6,"sortText":"00004","insertText":"true","insertTextFormat":1},{"label":"v:val","kind":6,"sortText":"00004","insertText":"val","insertTextFormat":1},{"label":"v:version","kind":6,"sortText":"00004","insertText":"version","insertTextFormat":1},{"label":"v:vim_did_enter","kind":6,"sortText":"00004","insertText":"vim_did_enter","insertTextFormat":1},{"label":"v:warningmsg","kind":6,"sortText":"00004","insertText":"warningmsg","insertTextFormat":1},{"label":"v:windowid","kind":6,"sortText":"00004","insertText":"windowid","insertTextFormat":1},{"label":"v:argv","kind":6,"sortText":"00004","insertText":"argv","insertTextFormat":1},{"label":"v:none","kind":6,"sortText":"00004","insertText":"none","insertTextFormat":1},{"label":"v:t_channel","kind":6,"sortText":"00004","insertText":"t_channel","insertTextFormat":1},{"label":"v:t_job","kind":6,"sortText":"00004","insertText":"t_job","insertTextFormat":1},{"label":"v:t_none","kind":6,"sortText":"00004","insertText":"t_none","insertTextFormat":1},{"label":"v:t_blob","kind":6,"sortText":"00004","insertText":"t_blob","insertTextFormat":1},{"label":"v:termblinkresp","kind":6,"sortText":"00004","insertText":"termblinkresp","insertTextFormat":1},{"label":"v:termstyleresp","kind":6,"sortText":"00004","insertText":"termstyleresp","insertTextFormat":1},{"label":"v:termrbgresp","kind":6,"sortText":"00004","insertText":"termrbgresp","insertTextFormat":1},{"label":"v:termrfgresp","kind":6,"sortText":"00004","insertText":"termrfgresp","insertTextFormat":1},{"label":"v:termu7resp","kind":6,"sortText":"00004","insertText":"termu7resp","insertTextFormat":1},{"label":"v:versionlong","kind":6,"sortText":"00004","insertText":"versionlong","insertTextFormat":1}],"options":[{"label":"aleph","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"aleph","insertTextFormat":1},{"label":"allowrevins","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"allowrevins","insertTextFormat":1},{"label":"ambiwidth","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"ambiwidth","insertTextFormat":1},{"label":"autochdir","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"autochdir","insertTextFormat":1},{"label":"arabic","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"arabic","insertTextFormat":1},{"label":"arabicshape","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"arabicshape","insertTextFormat":1},{"label":"autoindent","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"autoindent","insertTextFormat":1},{"label":"autowrite","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"autowrite","insertTextFormat":1},{"label":"autowriteall","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"autowriteall","insertTextFormat":1},{"label":"background","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"background","insertTextFormat":1},{"label":"backspace","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"backspace","insertTextFormat":1},{"label":"backup","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"backup","insertTextFormat":1},{"label":"backupcopy","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"backupcopy","insertTextFormat":1},{"label":"backupdir","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"backupdir","insertTextFormat":1},{"label":"backupext","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"backupext","insertTextFormat":1},{"label":"backupskip","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"backupskip","insertTextFormat":1},{"label":"balloondelay","kind":10,"detail":"Removed.","documentation":"","sortText":"00004","insertText":"balloondelay","insertTextFormat":1},{"label":"ballooneval","kind":10,"detail":"Removed.","documentation":"","sortText":"00004","insertText":"ballooneval","insertTextFormat":1},{"label":"balloonexpr","kind":10,"detail":"Removed.","documentation":"","sortText":"00004","insertText":"balloonexpr","insertTextFormat":1},{"label":"belloff","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"belloff","insertTextFormat":1},{"label":"binary","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"binary","insertTextFormat":1},{"label":"bomb","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"bomb","insertTextFormat":1},{"label":"breakat","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"breakat","insertTextFormat":1},{"label":"breakindent","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"breakindent","insertTextFormat":1},{"label":"breakindentopt","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"breakindentopt","insertTextFormat":1},{"label":"browsedir","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"browsedir","insertTextFormat":1},{"label":"bufhidden","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"bufhidden","insertTextFormat":1},{"label":"buflisted","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"buflisted","insertTextFormat":1},{"label":"buftype","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"buftype","insertTextFormat":1},{"label":"casemap","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"casemap","insertTextFormat":1},{"label":"cdpath","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"cdpath","insertTextFormat":1},{"label":"cedit","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"cedit","insertTextFormat":1},{"label":"channel","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"channel","insertTextFormat":1},{"label":"charconvert","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"charconvert","insertTextFormat":1},{"label":"cindent","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"cindent","insertTextFormat":1},{"label":"cinkeys","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"cinkeys","insertTextFormat":1},{"label":"cinoptions","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"cinoptions","insertTextFormat":1},{"label":"cinwords","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"cinwords","insertTextFormat":1},{"label":"clipboard","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"clipboard","insertTextFormat":1},{"label":"cmdheight","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"cmdheight","insertTextFormat":1},{"label":"cmdwinheight","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"cmdwinheight","insertTextFormat":1},{"label":"colorcolumn","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"colorcolumn","insertTextFormat":1},{"label":"columns","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"columns","insertTextFormat":1},{"label":"comments","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"comments","insertTextFormat":1},{"label":"commentstring","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"commentstring","insertTextFormat":1},{"label":"complete","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"complete","insertTextFormat":1},{"label":"completefunc","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"completefunc","insertTextFormat":1},{"label":"completeopt","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"completeopt","insertTextFormat":1},{"label":"concealcursor","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"concealcursor","insertTextFormat":1},{"label":"conceallevel","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"conceallevel","insertTextFormat":1},{"label":"confirm","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"confirm","insertTextFormat":1},{"label":"copyindent","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"copyindent","insertTextFormat":1},{"label":"cpoptions","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"cpoptions","insertTextFormat":1},{"label":"cscopepathcomp","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"cscopepathcomp","insertTextFormat":1},{"label":"cscopeprg","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"cscopeprg","insertTextFormat":1},{"label":"cscopequickfix","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"cscopequickfix","insertTextFormat":1},{"label":"cscoperelative","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"cscoperelative","insertTextFormat":1},{"label":"cscopetag","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"cscopetag","insertTextFormat":1},{"label":"cscopetagorder","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"cscopetagorder","insertTextFormat":1},{"label":"cursorbind","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"cursorbind","insertTextFormat":1},{"label":"cursorcolumn","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"cursorcolumn","insertTextFormat":1},{"label":"cursorline","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"cursorline","insertTextFormat":1},{"label":"debug","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"debug","insertTextFormat":1},{"label":"define","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"define","insertTextFormat":1},{"label":"delcombine","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"delcombine","insertTextFormat":1},{"label":"dictionary","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"dictionary","insertTextFormat":1},{"label":"diff","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"diff","insertTextFormat":1},{"label":"diffexpr","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"diffexpr","insertTextFormat":1},{"label":"diffopt","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"diffopt","insertTextFormat":1},{"label":"digraph","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"digraph","insertTextFormat":1},{"label":"directory","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"directory","insertTextFormat":1},{"label":"display","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"display","insertTextFormat":1},{"label":"eadirection","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"eadirection","insertTextFormat":1},{"label":"emoji","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"emoji","insertTextFormat":1},{"label":"endofline","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"endofline","insertTextFormat":1},{"label":"equalalways","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"equalalways","insertTextFormat":1},{"label":"equalprg","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"equalprg","insertTextFormat":1},{"label":"errorbells","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"errorbells","insertTextFormat":1},{"label":"errorfile","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"errorfile","insertTextFormat":1},{"label":"errorformat","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"errorformat","insertTextFormat":1},{"label":"expandtab","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"expandtab","insertTextFormat":1},{"label":"fileencoding","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"fileencoding","insertTextFormat":1},{"label":"fileencodings","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"fileencodings","insertTextFormat":1},{"label":"fileformat","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"fileformat","insertTextFormat":1},{"label":"fileformats","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"fileformats","insertTextFormat":1},{"label":"fileignorecase","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"fileignorecase","insertTextFormat":1},{"label":"filetype","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"filetype","insertTextFormat":1},{"label":"fillchars","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"fillchars","insertTextFormat":1},{"label":"fixendofline","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"fixendofline","insertTextFormat":1},{"label":"foldclose","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"foldclose","insertTextFormat":1},{"label":"foldcolumn","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"foldcolumn","insertTextFormat":1},{"label":"foldenable","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"foldenable","insertTextFormat":1},{"label":"foldexpr","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"foldexpr","insertTextFormat":1},{"label":"foldignore","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"foldignore","insertTextFormat":1},{"label":"foldlevel","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"foldlevel","insertTextFormat":1},{"label":"foldlevelstart","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"foldlevelstart","insertTextFormat":1},{"label":"foldmarker","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"foldmarker","insertTextFormat":1},{"label":"foldmethod","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"foldmethod","insertTextFormat":1},{"label":"foldminlines","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"foldminlines","insertTextFormat":1},{"label":"foldnestmax","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"foldnestmax","insertTextFormat":1},{"label":"foldopen","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"foldopen","insertTextFormat":1},{"label":"foldtext","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"foldtext","insertTextFormat":1},{"label":"formatexpr","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"formatexpr","insertTextFormat":1},{"label":"formatlistpat","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"formatlistpat","insertTextFormat":1},{"label":"formatoptions","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"formatoptions","insertTextFormat":1},{"label":"formatprg","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"formatprg","insertTextFormat":1},{"label":"fsync","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"fsync","insertTextFormat":1},{"label":"gdefault","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"gdefault","insertTextFormat":1},{"label":"grepformat","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"grepformat","insertTextFormat":1},{"label":"grepprg","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"grepprg","insertTextFormat":1},{"label":"guicursor","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"guicursor","insertTextFormat":1},{"label":"guifont","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"guifont","insertTextFormat":1},{"label":"guifontwide","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"guifontwide","insertTextFormat":1},{"label":"guioptions","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"guioptions","insertTextFormat":1},{"label":"guitablabel","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"guitablabel","insertTextFormat":1},{"label":"guitabtooltip","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"guitabtooltip","insertTextFormat":1},{"label":"helpfile","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"helpfile","insertTextFormat":1},{"label":"helpheight","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"helpheight","insertTextFormat":1},{"label":"helplang","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"helplang","insertTextFormat":1},{"label":"hidden","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"hidden","insertTextFormat":1},{"label":"history","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"history","insertTextFormat":1},{"label":"hkmap","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"hkmap","insertTextFormat":1},{"label":"hkmapp","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"hkmapp","insertTextFormat":1},{"label":"hlsearch","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"hlsearch","insertTextFormat":1},{"label":"icon","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"icon","insertTextFormat":1},{"label":"iconstring","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"iconstring","insertTextFormat":1},{"label":"ignorecase","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"ignorecase","insertTextFormat":1},{"label":"imcmdline","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"imcmdline","insertTextFormat":1},{"label":"imdisable","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"imdisable","insertTextFormat":1},{"label":"iminsert","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"iminsert","insertTextFormat":1},{"label":"imsearch","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"imsearch","insertTextFormat":1},{"label":"inccommand","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"inccommand","insertTextFormat":1},{"label":"include","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"include","insertTextFormat":1},{"label":"includeexpr","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"includeexpr","insertTextFormat":1},{"label":"incsearch","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"incsearch","insertTextFormat":1},{"label":"indentexpr","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"indentexpr","insertTextFormat":1},{"label":"indentkeys","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"indentkeys","insertTextFormat":1},{"label":"infercase","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"infercase","insertTextFormat":1},{"label":"insertmode","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"insertmode","insertTextFormat":1},{"label":"isfname","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"isfname","insertTextFormat":1},{"label":"isident","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"isident","insertTextFormat":1},{"label":"iskeyword","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"iskeyword","insertTextFormat":1},{"label":"isprint","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"isprint","insertTextFormat":1},{"label":"jumpoptions","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"jumpoptions","insertTextFormat":1},{"label":"joinspaces","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"joinspaces","insertTextFormat":1},{"label":"keymap","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"keymap","insertTextFormat":1},{"label":"keymodel","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"keymodel","insertTextFormat":1},{"label":"keywordprg","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"keywordprg","insertTextFormat":1},{"label":"langmap","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"langmap","insertTextFormat":1},{"label":"langmenu","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"langmenu","insertTextFormat":1},{"label":"langremap","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"langremap","insertTextFormat":1},{"label":"laststatus","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"laststatus","insertTextFormat":1},{"label":"lazyredraw","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"lazyredraw","insertTextFormat":1},{"label":"linebreak","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"linebreak","insertTextFormat":1},{"label":"lines","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"lines","insertTextFormat":1},{"label":"linespace","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"linespace","insertTextFormat":1},{"label":"lisp","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"lisp","insertTextFormat":1},{"label":"lispwords","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"lispwords","insertTextFormat":1},{"label":"list","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"list","insertTextFormat":1},{"label":"listchars","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"listchars","insertTextFormat":1},{"label":"loadplugins","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"loadplugins","insertTextFormat":1},{"label":"magic","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"magic","insertTextFormat":1},{"label":"makeef","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"makeef","insertTextFormat":1},{"label":"makeencoding","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"makeencoding","insertTextFormat":1},{"label":"makeprg","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"makeprg","insertTextFormat":1},{"label":"matchpairs","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"matchpairs","insertTextFormat":1},{"label":"matchtime","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"matchtime","insertTextFormat":1},{"label":"maxcombine","kind":10,"detail":"Removed.","documentation":"","sortText":"00004","insertText":"maxcombine","insertTextFormat":1},{"label":"maxfuncdepth","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"maxfuncdepth","insertTextFormat":1},{"label":"maxmapdepth","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"maxmapdepth","insertTextFormat":1},{"label":"maxmempattern","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"maxmempattern","insertTextFormat":1},{"label":"menuitems","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"menuitems","insertTextFormat":1},{"label":"mkspellmem","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"mkspellmem","insertTextFormat":1},{"label":"modeline","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"modeline","insertTextFormat":1},{"label":"modelineexpr","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"modelineexpr","insertTextFormat":1},{"label":"modelines","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"modelines","insertTextFormat":1},{"label":"modifiable","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"modifiable","insertTextFormat":1},{"label":"modified","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"modified","insertTextFormat":1},{"label":"more","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"more","insertTextFormat":1},{"label":"mouse","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"mouse","insertTextFormat":1},{"label":"mousefocus","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"mousefocus","insertTextFormat":1},{"label":"mousehide","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"mousehide","insertTextFormat":1},{"label":"mousemodel","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"mousemodel","insertTextFormat":1},{"label":"mouseshape","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"mouseshape","insertTextFormat":1},{"label":"mousetime","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"mousetime","insertTextFormat":1},{"label":"nrformats","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"nrformats","insertTextFormat":1},{"label":"number","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"number","insertTextFormat":1},{"label":"numberwidth","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"numberwidth","insertTextFormat":1},{"label":"omnifunc","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"omnifunc","insertTextFormat":1},{"label":"opendevice","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"opendevice","insertTextFormat":1},{"label":"operatorfunc","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"operatorfunc","insertTextFormat":1},{"label":"packpath","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"packpath","insertTextFormat":1},{"label":"paragraphs","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"paragraphs","insertTextFormat":1},{"label":"paste","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"paste","insertTextFormat":1},{"label":"pastetoggle","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"pastetoggle","insertTextFormat":1},{"label":"patchexpr","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"patchexpr","insertTextFormat":1},{"label":"patchmode","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"patchmode","insertTextFormat":1},{"label":"path","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"path","insertTextFormat":1},{"label":"preserveindent","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"preserveindent","insertTextFormat":1},{"label":"previewheight","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"previewheight","insertTextFormat":1},{"label":"previewwindow","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"previewwindow","insertTextFormat":1},{"label":"printdevice","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"printdevice","insertTextFormat":1},{"label":"printencoding","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"printencoding","insertTextFormat":1},{"label":"printexpr","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"printexpr","insertTextFormat":1},{"label":"printfont","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"printfont","insertTextFormat":1},{"label":"printheader","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"printheader","insertTextFormat":1},{"label":"printmbcharset","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"printmbcharset","insertTextFormat":1},{"label":"printmbfont","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"printmbfont","insertTextFormat":1},{"label":"printoptions","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"printoptions","insertTextFormat":1},{"label":"prompt","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"prompt","insertTextFormat":1},{"label":"pumblend","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"pumblend","insertTextFormat":1},{"label":"pumheight","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"pumheight","insertTextFormat":1},{"label":"pumwidth","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"pumwidth","insertTextFormat":1},{"label":"pyxversion","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"pyxversion","insertTextFormat":1},{"label":"quoteescape","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"quoteescape","insertTextFormat":1},{"label":"readonly","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"readonly","insertTextFormat":1},{"label":"redrawdebug","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"redrawdebug","insertTextFormat":1},{"label":"redrawtime","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"redrawtime","insertTextFormat":1},{"label":"regexpengine","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"regexpengine","insertTextFormat":1},{"label":"relativenumber","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"relativenumber","insertTextFormat":1},{"label":"remap","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"remap","insertTextFormat":1},{"label":"report","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"report","insertTextFormat":1},{"label":"revins","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"revins","insertTextFormat":1},{"label":"rightleft","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"rightleft","insertTextFormat":1},{"label":"rightleftcmd","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"rightleftcmd","insertTextFormat":1},{"label":"ruler","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"ruler","insertTextFormat":1},{"label":"rulerformat","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"rulerformat","insertTextFormat":1},{"label":"runtimepath","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"runtimepath","insertTextFormat":1},{"label":"scroll","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"scroll","insertTextFormat":1},{"label":"scrollback","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"scrollback","insertTextFormat":1},{"label":"scrollbind","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"scrollbind","insertTextFormat":1},{"label":"scrolljump","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"scrolljump","insertTextFormat":1},{"label":"scrolloff","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"scrolloff","insertTextFormat":1},{"label":"scrollopt","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"scrollopt","insertTextFormat":1},{"label":"sections","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"sections","insertTextFormat":1},{"label":"secure","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"secure","insertTextFormat":1},{"label":"selection","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"selection","insertTextFormat":1},{"label":"selectmode","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"selectmode","insertTextFormat":1},{"label":"sessionoptions","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"sessionoptions","insertTextFormat":1},{"label":"shada","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"shada","insertTextFormat":1},{"label":"shadafile","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"shadafile","insertTextFormat":1},{"label":"shell","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"shell","insertTextFormat":1},{"label":"shellcmdflag","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"shellcmdflag","insertTextFormat":1},{"label":"shellpipe","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"shellpipe","insertTextFormat":1},{"label":"shellquote","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"shellquote","insertTextFormat":1},{"label":"shellredir","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"shellredir","insertTextFormat":1},{"label":"shelltemp","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"shelltemp","insertTextFormat":1},{"label":"shellxescape","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"shellxescape","insertTextFormat":1},{"label":"shellxquote","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"shellxquote","insertTextFormat":1},{"label":"shiftround","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"shiftround","insertTextFormat":1},{"label":"shiftwidth","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"shiftwidth","insertTextFormat":1},{"label":"shortmess","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"shortmess","insertTextFormat":1},{"label":"showbreak","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"showbreak","insertTextFormat":1},{"label":"showcmd","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"showcmd","insertTextFormat":1},{"label":"showfulltag","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"showfulltag","insertTextFormat":1},{"label":"showmatch","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"showmatch","insertTextFormat":1},{"label":"showmode","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"showmode","insertTextFormat":1},{"label":"showtabline","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"showtabline","insertTextFormat":1},{"label":"sidescroll","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"sidescroll","insertTextFormat":1},{"label":"sidescrolloff","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"sidescrolloff","insertTextFormat":1},{"label":"signcolumn","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"signcolumn","insertTextFormat":1},{"label":"smartcase","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"smartcase","insertTextFormat":1},{"label":"smartindent","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"smartindent","insertTextFormat":1},{"label":"smarttab","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"smarttab","insertTextFormat":1},{"label":"softtabstop","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"softtabstop","insertTextFormat":1},{"label":"spell","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"spell","insertTextFormat":1},{"label":"spellcapcheck","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"spellcapcheck","insertTextFormat":1},{"label":"spellfile","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"spellfile","insertTextFormat":1},{"label":"spelllang","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"spelllang","insertTextFormat":1},{"label":"spellsuggest","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"spellsuggest","insertTextFormat":1},{"label":"splitbelow","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"splitbelow","insertTextFormat":1},{"label":"splitright","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"splitright","insertTextFormat":1},{"label":"startofline","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"startofline","insertTextFormat":1},{"label":"statusline","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"statusline","insertTextFormat":1},{"label":"suffixes","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"suffixes","insertTextFormat":1},{"label":"swapfile","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"swapfile","insertTextFormat":1},{"label":"switchbuf","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"switchbuf","insertTextFormat":1},{"label":"synmaxcol","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"synmaxcol","insertTextFormat":1},{"label":"syntax","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"syntax","insertTextFormat":1},{"label":"tabline","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"tabline","insertTextFormat":1},{"label":"tabpagemax","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"tabpagemax","insertTextFormat":1},{"label":"tabstop","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"tabstop","insertTextFormat":1},{"label":"tagbsearch","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"tagbsearch","insertTextFormat":1},{"label":"tagcase","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"tagcase","insertTextFormat":1},{"label":"tagfunc","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"tagfunc","insertTextFormat":1},{"label":"taglength","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"taglength","insertTextFormat":1},{"label":"tagrelative","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"tagrelative","insertTextFormat":1},{"label":"tags","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"tags","insertTextFormat":1},{"label":"tagstack","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"tagstack","insertTextFormat":1},{"label":"termbidi","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"termbidi","insertTextFormat":1},{"label":"termguicolors","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"termguicolors","insertTextFormat":1},{"label":"terse","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"terse","insertTextFormat":1},{"label":"textwidth","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"textwidth","insertTextFormat":1},{"label":"thesaurus","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"thesaurus","insertTextFormat":1},{"label":"tildeop","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"tildeop","insertTextFormat":1},{"label":"timeout","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"timeout","insertTextFormat":1},{"label":"ttimeout","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"ttimeout","insertTextFormat":1},{"label":"timeoutlen","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"timeoutlen","insertTextFormat":1},{"label":"ttimeoutlen","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"ttimeoutlen","insertTextFormat":1},{"label":"title","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"title","insertTextFormat":1},{"label":"titlelen","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"titlelen","insertTextFormat":1},{"label":"titlestring","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"titlestring","insertTextFormat":1},{"label":"ttyfast","kind":10,"detail":"Removed.","documentation":"","sortText":"00004","insertText":"ttyfast","insertTextFormat":1},{"label":"undodir","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"undodir","insertTextFormat":1},{"label":"undofile","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"undofile","insertTextFormat":1},{"label":"undolevels","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"undolevels","insertTextFormat":1},{"label":"undoreload","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"undoreload","insertTextFormat":1},{"label":"updatecount","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"updatecount","insertTextFormat":1},{"label":"updatetime","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"updatetime","insertTextFormat":1},{"label":"verbose","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"verbose","insertTextFormat":1},{"label":"verbosefile","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"verbosefile","insertTextFormat":1},{"label":"viewdir","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"viewdir","insertTextFormat":1},{"label":"viewoptions","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"viewoptions","insertTextFormat":1},{"label":"virtualedit","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"virtualedit","insertTextFormat":1},{"label":"visualbell","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"visualbell","insertTextFormat":1},{"label":"warn","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"warn","insertTextFormat":1},{"label":"whichwrap","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"whichwrap","insertTextFormat":1},{"label":"wildchar","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"wildchar","insertTextFormat":1},{"label":"wildcharm","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"wildcharm","insertTextFormat":1},{"label":"wildignore","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"wildignore","insertTextFormat":1},{"label":"wildignorecase","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"wildignorecase","insertTextFormat":1},{"label":"wildmenu","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"wildmenu","insertTextFormat":1},{"label":"wildmode","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"wildmode","insertTextFormat":1},{"label":"wildoptions","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"wildoptions","insertTextFormat":1},{"label":"winaltkeys","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"winaltkeys","insertTextFormat":1},{"label":"winblend","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"winblend","insertTextFormat":1},{"label":"window","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"window","insertTextFormat":1},{"label":"winheight","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"winheight","insertTextFormat":1},{"label":"winhighlight","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"winhighlight","insertTextFormat":1},{"label":"winfixheight","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"winfixheight","insertTextFormat":1},{"label":"winfixwidth","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"winfixwidth","insertTextFormat":1},{"label":"winminheight","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"winminheight","insertTextFormat":1},{"label":"winminwidth","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"winminwidth","insertTextFormat":1},{"label":"winwidth","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"winwidth","insertTextFormat":1},{"label":"wrap","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"wrap","insertTextFormat":1},{"label":"wrapmargin","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"wrapmargin","insertTextFormat":1},{"label":"wrapscan","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"wrapscan","insertTextFormat":1},{"label":"write","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"write","insertTextFormat":1},{"label":"writeany","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"writeany","insertTextFormat":1},{"label":"writebackup","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"writebackup","insertTextFormat":1},{"label":"writedelay","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"writedelay","insertTextFormat":1},{"label":"altkeymap","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"altkeymap","insertTextFormat":1},{"label":"antialias","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"antialias","insertTextFormat":1},{"label":"balloonevalterm","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"balloonevalterm","insertTextFormat":1},{"label":"bioskey","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"bioskey","insertTextFormat":1},{"label":"compatible","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"compatible","insertTextFormat":1},{"label":"completeslash","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"completeslash","insertTextFormat":1},{"label":"completepopup","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"completepopup","insertTextFormat":1},{"label":"conskey","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"conskey","insertTextFormat":1},{"label":"cryptmethod","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"cryptmethod","insertTextFormat":1},{"label":"cscopeverbose","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"cscopeverbose","insertTextFormat":1},{"label":"cursorlineopt","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"cursorlineopt","insertTextFormat":1},{"label":"edcompatible","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"edcompatible","insertTextFormat":1},{"label":"encoding","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"encoding","insertTextFormat":1},{"label":"esckeys","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"esckeys","insertTextFormat":1},{"label":"exrc","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"exrc","insertTextFormat":1},{"label":"fkmap","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"fkmap","insertTextFormat":1},{"label":"guiheadroom","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"guiheadroom","insertTextFormat":1},{"label":"guipty","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"guipty","insertTextFormat":1},{"label":"highlight","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"highlight","insertTextFormat":1},{"label":"imactivatefunc","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"imactivatefunc","insertTextFormat":1},{"label":"imactivatekey","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"imactivatekey","insertTextFormat":1},{"label":"imstatusfunc","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"imstatusfunc","insertTextFormat":1},{"label":"imstyle","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"imstyle","insertTextFormat":1},{"label":"key","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"key","insertTextFormat":1},{"label":"langnoremap","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"langnoremap","insertTextFormat":1},{"label":"luadll","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"luadll","insertTextFormat":1},{"label":"macatsui","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"macatsui","insertTextFormat":1},{"label":"maxmem","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"maxmem","insertTextFormat":1},{"label":"maxmemtot","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"maxmemtot","insertTextFormat":1},{"label":"mzschemedll","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"mzschemedll","insertTextFormat":1},{"label":"mzschemegcdll","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"mzschemegcdll","insertTextFormat":1},{"label":"mzquantum","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"mzquantum","insertTextFormat":1},{"label":"osfiletype","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"osfiletype","insertTextFormat":1},{"label":"perldll","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"perldll","insertTextFormat":1},{"label":"previewpopup","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"previewpopup","insertTextFormat":1},{"label":"pythondll","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"pythondll","insertTextFormat":1},{"label":"pythonhome","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"pythonhome","insertTextFormat":1},{"label":"renderoptions","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"renderoptions","insertTextFormat":1},{"label":"restorescreen","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"restorescreen","insertTextFormat":1},{"label":"rubydll","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"rubydll","insertTextFormat":1},{"label":"scrollfocus","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"scrollfocus","insertTextFormat":1},{"label":"shelltype","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"shelltype","insertTextFormat":1},{"label":"shortname","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"shortname","insertTextFormat":1},{"label":"swapsync","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"swapsync","insertTextFormat":1},{"label":"tcldll","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"tcldll","insertTextFormat":1},{"label":"term","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"term","insertTextFormat":1},{"label":"termencoding","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"termencoding","insertTextFormat":1},{"label":"termwinkey","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"termwinkey","insertTextFormat":1},{"label":"termwinscroll","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"termwinscroll","insertTextFormat":1},{"label":"termwinsize","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"termwinsize","insertTextFormat":1},{"label":"termwintype","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"termwintype","insertTextFormat":1},{"label":"textauto","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"textauto","insertTextFormat":1},{"label":"textmode","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"textmode","insertTextFormat":1},{"label":"toolbar","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"toolbar","insertTextFormat":1},{"label":"toolbariconsize","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"toolbariconsize","insertTextFormat":1},{"label":"ttybuiltin","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"ttybuiltin","insertTextFormat":1},{"label":"ttymouse","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"ttymouse","insertTextFormat":1},{"label":"ttyscroll","kind":10,"detail":"number","documentation":"","sortText":"00004","insertText":"ttyscroll","insertTextFormat":1},{"label":"ttytype","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"ttytype","insertTextFormat":1},{"label":"varsofttabstop","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"varsofttabstop","insertTextFormat":1},{"label":"vartabstop","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"vartabstop","insertTextFormat":1},{"label":"viminfo","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"viminfo","insertTextFormat":1},{"label":"viminfofile","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"viminfofile","insertTextFormat":1},{"label":"weirdinvert","kind":10,"detail":"boolean","documentation":"","sortText":"00004","insertText":"weirdinvert","insertTextFormat":1},{"label":"wincolor","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"wincolor","insertTextFormat":1},{"label":"winptydll","kind":10,"detail":"string","documentation":"","sortText":"00004","insertText":"winptydll","insertTextFormat":1}],"features":[{"label":"acl","kind":20,"documentation":"","sortText":"00004","insertText":"acl","insertTextFormat":1},{"label":"bsd","kind":20,"documentation":"","sortText":"00004","insertText":"bsd","insertTextFormat":1},{"label":"iconv","kind":20,"documentation":"","sortText":"00004","insertText":"iconv","insertTextFormat":1},{"label":"+shellslash","kind":20,"documentation":"","sortText":"00004","insertText":"+shellslash","insertTextFormat":1},{"label":"clipboard","kind":20,"documentation":"","sortText":"00004","insertText":"clipboard","insertTextFormat":1},{"label":"mac","kind":20,"documentation":"","sortText":"00004","insertText":"mac","insertTextFormat":1},{"label":"nvim","kind":20,"documentation":"","sortText":"00004","insertText":"nvim","insertTextFormat":1},{"label":"python2","kind":20,"documentation":"","sortText":"00004","insertText":"python2","insertTextFormat":1},{"label":"python3","kind":20,"documentation":"","sortText":"00004","insertText":"python3","insertTextFormat":1},{"label":"pythonx","kind":20,"documentation":"","sortText":"00004","insertText":"pythonx","insertTextFormat":1},{"label":"ttyin","kind":20,"documentation":"","sortText":"00004","insertText":"ttyin","insertTextFormat":1},{"label":"ttyout","kind":20,"documentation":"","sortText":"00004","insertText":"ttyout","insertTextFormat":1},{"label":"unix","kind":20,"documentation":"","sortText":"00004","insertText":"unix","insertTextFormat":1},{"label":"vim_starting","kind":20,"documentation":"","sortText":"00004","insertText":"vim_starting","insertTextFormat":1},{"label":"win32","kind":20,"documentation":"","sortText":"00004","insertText":"win32","insertTextFormat":1},{"label":"win64","kind":20,"documentation":"","sortText":"00004","insertText":"win64","insertTextFormat":1},{"label":"wsl","kind":20,"documentation":"","sortText":"00004","insertText":"wsl","insertTextFormat":1},{"label":"all_builtin_terms","kind":20,"documentation":"","sortText":"00004","insertText":"all_builtin_terms","insertTextFormat":1},{"label":"amiga","kind":20,"documentation":"","sortText":"00004","insertText":"amiga","insertTextFormat":1},{"label":"arabic","kind":20,"documentation":"","sortText":"00004","insertText":"arabic","insertTextFormat":1},{"label":"arp","kind":20,"documentation":"","sortText":"00004","insertText":"arp","insertTextFormat":1},{"label":"autocmd","kind":20,"documentation":"","sortText":"00004","insertText":"autocmd","insertTextFormat":1},{"label":"autochdir","kind":20,"documentation":"","sortText":"00004","insertText":"autochdir","insertTextFormat":1},{"label":"autoservername","kind":20,"documentation":"","sortText":"00004","insertText":"autoservername","insertTextFormat":1},{"label":"balloon_eval","kind":20,"documentation":"","sortText":"00004","insertText":"balloon_eval","insertTextFormat":1},{"label":"balloon_multiline","kind":20,"documentation":"","sortText":"00004","insertText":"balloon_multiline","insertTextFormat":1},{"label":"beos","kind":20,"documentation":"","sortText":"00004","insertText":"beos","insertTextFormat":1},{"label":"browse","kind":20,"documentation":"","sortText":"00004","insertText":"browse","insertTextFormat":1},{"label":"browsefilter","kind":20,"documentation":"","sortText":"00004","insertText":"browsefilter","insertTextFormat":1},{"label":"builtin_terms","kind":20,"documentation":"","sortText":"00004","insertText":"builtin_terms","insertTextFormat":1},{"label":"byte_offset","kind":20,"documentation":"","sortText":"00004","insertText":"byte_offset","insertTextFormat":1},{"label":"cindent","kind":20,"documentation":"","sortText":"00004","insertText":"cindent","insertTextFormat":1},{"label":"clientserver","kind":20,"documentation":"","sortText":"00004","insertText":"clientserver","insertTextFormat":1},{"label":"clipboard_working","kind":20,"documentation":"","sortText":"00004","insertText":"clipboard_working","insertTextFormat":1},{"label":"cmdline_compl","kind":20,"documentation":"","sortText":"00004","insertText":"cmdline_compl","insertTextFormat":1},{"label":"cmdline_hist","kind":20,"documentation":"","sortText":"00004","insertText":"cmdline_hist","insertTextFormat":1},{"label":"cmdline_info","kind":20,"documentation":"","sortText":"00004","insertText":"cmdline_info","insertTextFormat":1},{"label":"comments","kind":20,"documentation":"","sortText":"00004","insertText":"comments","insertTextFormat":1},{"label":"compatible","kind":20,"documentation":"","sortText":"00004","insertText":"compatible","insertTextFormat":1},{"label":"conpty","kind":20,"documentation":"","sortText":"00004","insertText":"conpty","insertTextFormat":1},{"label":"cryptv","kind":20,"documentation":"","sortText":"00004","insertText":"cryptv","insertTextFormat":1},{"label":"cscope","kind":20,"documentation":"","sortText":"00004","insertText":"cscope","insertTextFormat":1},{"label":"cursorbind","kind":20,"documentation":"","sortText":"00004","insertText":"cursorbind","insertTextFormat":1},{"label":"debug","kind":20,"documentation":"","sortText":"00004","insertText":"debug","insertTextFormat":1},{"label":"dialog_con","kind":20,"documentation":"","sortText":"00004","insertText":"dialog_con","insertTextFormat":1},{"label":"dialog_gui","kind":20,"documentation":"","sortText":"00004","insertText":"dialog_gui","insertTextFormat":1},{"label":"diff","kind":20,"documentation":"","sortText":"00004","insertText":"diff","insertTextFormat":1},{"label":"digraphs","kind":20,"documentation":"","sortText":"00004","insertText":"digraphs","insertTextFormat":1},{"label":"directx","kind":20,"documentation":"","sortText":"00004","insertText":"directx","insertTextFormat":1},{"label":"dnd","kind":20,"documentation":"","sortText":"00004","insertText":"dnd","insertTextFormat":1},{"label":"ebcdic","kind":20,"documentation":"","sortText":"00004","insertText":"ebcdic","insertTextFormat":1},{"label":"emacs_tags","kind":20,"documentation":"","sortText":"00004","insertText":"emacs_tags","insertTextFormat":1},{"label":"eval","kind":20,"documentation":"","sortText":"00004","insertText":"eval","insertTextFormat":1},{"label":"true,","kind":20,"documentation":"","sortText":"00004","insertText":"true,","insertTextFormat":1},{"label":"ex_extra","kind":20,"documentation":"","sortText":"00004","insertText":"ex_extra","insertTextFormat":1},{"label":"extra_search","kind":20,"documentation":"","sortText":"00004","insertText":"extra_search","insertTextFormat":1},{"label":"farsi","kind":20,"documentation":"","sortText":"00004","insertText":"farsi","insertTextFormat":1},{"label":"file_in_path","kind":20,"documentation":"","sortText":"00004","insertText":"file_in_path","insertTextFormat":1},{"label":"filterpipe","kind":20,"documentation":"","sortText":"00004","insertText":"filterpipe","insertTextFormat":1},{"label":"read/write/filter","kind":20,"documentation":"","sortText":"00004","insertText":"read/write/filter","insertTextFormat":1},{"label":"find_in_path","kind":20,"documentation":"","sortText":"00004","insertText":"find_in_path","insertTextFormat":1},{"label":"float","kind":20,"documentation":"","sortText":"00004","insertText":"float","insertTextFormat":1},{"label":"fname_case","kind":20,"documentation":"","sortText":"00004","insertText":"fname_case","insertTextFormat":1},{"label":"Windows","kind":20,"documentation":"","sortText":"00004","insertText":"Windows","insertTextFormat":1},{"label":"folding","kind":20,"documentation":"","sortText":"00004","insertText":"folding","insertTextFormat":1},{"label":"footer","kind":20,"documentation":"","sortText":"00004","insertText":"footer","insertTextFormat":1},{"label":"fork","kind":20,"documentation":"","sortText":"00004","insertText":"fork","insertTextFormat":1},{"label":"gettext","kind":20,"documentation":"","sortText":"00004","insertText":"gettext","insertTextFormat":1},{"label":"gui","kind":20,"documentation":"","sortText":"00004","insertText":"gui","insertTextFormat":1},{"label":"gui_athena","kind":20,"documentation":"","sortText":"00004","insertText":"gui_athena","insertTextFormat":1},{"label":"gui_gnome","kind":20,"documentation":"","sortText":"00004","insertText":"gui_gnome","insertTextFormat":1},{"label":"gui_gtk","kind":20,"documentation":"","sortText":"00004","insertText":"gui_gtk","insertTextFormat":1},{"label":"gui_gtk2","kind":20,"documentation":"","sortText":"00004","insertText":"gui_gtk2","insertTextFormat":1},{"label":"gui_gtk3","kind":20,"documentation":"","sortText":"00004","insertText":"gui_gtk3","insertTextFormat":1},{"label":"gui_mac","kind":20,"documentation":"","sortText":"00004","insertText":"gui_mac","insertTextFormat":1},{"label":"gui_motif","kind":20,"documentation":"","sortText":"00004","insertText":"gui_motif","insertTextFormat":1},{"label":"gui_photon","kind":20,"documentation":"","sortText":"00004","insertText":"gui_photon","insertTextFormat":1},{"label":"gui_running","kind":20,"documentation":"","sortText":"00004","insertText":"gui_running","insertTextFormat":1},{"label":"gui_win32","kind":20,"documentation":"","sortText":"00004","insertText":"gui_win32","insertTextFormat":1},{"label":"gui_win32s","kind":20,"documentation":"","sortText":"00004","insertText":"gui_win32s","insertTextFormat":1},{"label":"hangul_input","kind":20,"documentation":"","sortText":"00004","insertText":"hangul_input","insertTextFormat":1},{"label":"hpux","kind":20,"documentation":"","sortText":"00004","insertText":"hpux","insertTextFormat":1},{"label":"insert_expand","kind":20,"documentation":"","sortText":"00004","insertText":"insert_expand","insertTextFormat":1},{"label":"Insert","kind":20,"documentation":"","sortText":"00004","insertText":"Insert","insertTextFormat":1},{"label":"jumplist","kind":20,"documentation":"","sortText":"00004","insertText":"jumplist","insertTextFormat":1},{"label":"keymap","kind":20,"documentation":"","sortText":"00004","insertText":"keymap","insertTextFormat":1},{"label":"lambda","kind":20,"documentation":"","sortText":"00004","insertText":"lambda","insertTextFormat":1},{"label":"langmap","kind":20,"documentation":"","sortText":"00004","insertText":"langmap","insertTextFormat":1},{"label":"libcall","kind":20,"documentation":"","sortText":"00004","insertText":"libcall","insertTextFormat":1},{"label":"linebreak","kind":20,"documentation":"","sortText":"00004","insertText":"linebreak","insertTextFormat":1},{"label":"\'breakindent\'","kind":20,"documentation":"","sortText":"00004","insertText":"\'breakindent\'","insertTextFormat":1},{"label":"linux","kind":20,"documentation":"","sortText":"00004","insertText":"linux","insertTextFormat":1},{"label":"lispindent","kind":20,"documentation":"","sortText":"00004","insertText":"lispindent","insertTextFormat":1},{"label":"listcmds","kind":20,"documentation":"","sortText":"00004","insertText":"listcmds","insertTextFormat":1},{"label":"and","kind":20,"documentation":"","sortText":"00004","insertText":"and","insertTextFormat":1},{"label":"localmap","kind":20,"documentation":"","sortText":"00004","insertText":"localmap","insertTextFormat":1},{"label":"lua","kind":20,"documentation":"","sortText":"00004","insertText":"lua","insertTextFormat":1},{"label":"macunix","kind":20,"documentation":"","sortText":"00004","insertText":"macunix","insertTextFormat":1},{"label":"menu","kind":20,"documentation":"","sortText":"00004","insertText":"menu","insertTextFormat":1},{"label":"mksession","kind":20,"documentation":"","sortText":"00004","insertText":"mksession","insertTextFormat":1},{"label":"modify_fname","kind":20,"documentation":"","sortText":"00004","insertText":"modify_fname","insertTextFormat":1},{"label":"(always","kind":20,"documentation":"","sortText":"00004","insertText":"(always","insertTextFormat":1},{"label":"mouse","kind":20,"documentation":"","sortText":"00004","insertText":"mouse","insertTextFormat":1},{"label":"mouse_dec","kind":20,"documentation":"","sortText":"00004","insertText":"mouse_dec","insertTextFormat":1},{"label":"mouse_gpm","kind":20,"documentation":"","sortText":"00004","insertText":"mouse_gpm","insertTextFormat":1},{"label":"mouse_gpm_enabled","kind":20,"documentation":"","sortText":"00004","insertText":"mouse_gpm_enabled","insertTextFormat":1},{"label":"mouse_netterm","kind":20,"documentation":"","sortText":"00004","insertText":"mouse_netterm","insertTextFormat":1},{"label":"mouse_pterm","kind":20,"documentation":"","sortText":"00004","insertText":"mouse_pterm","insertTextFormat":1},{"label":"mouse_sysmouse","kind":20,"documentation":"","sortText":"00004","insertText":"mouse_sysmouse","insertTextFormat":1},{"label":"mouse_sgr","kind":20,"documentation":"","sortText":"00004","insertText":"mouse_sgr","insertTextFormat":1},{"label":"mouse_urxvt","kind":20,"documentation":"","sortText":"00004","insertText":"mouse_urxvt","insertTextFormat":1},{"label":"mouse_xterm","kind":20,"documentation":"","sortText":"00004","insertText":"mouse_xterm","insertTextFormat":1},{"label":"mouseshape","kind":20,"documentation":"","sortText":"00004","insertText":"mouseshape","insertTextFormat":1},{"label":"multi_byte","kind":20,"documentation":"","sortText":"00004","insertText":"multi_byte","insertTextFormat":1},{"label":"multi_byte_encoding","kind":20,"documentation":"","sortText":"00004","insertText":"multi_byte_encoding","insertTextFormat":1},{"label":"multi_byte_ime","kind":20,"documentation":"","sortText":"00004","insertText":"multi_byte_ime","insertTextFormat":1},{"label":"multi_lang","kind":20,"documentation":"","sortText":"00004","insertText":"multi_lang","insertTextFormat":1},{"label":"mzscheme","kind":20,"documentation":"","sortText":"00004","insertText":"mzscheme","insertTextFormat":1},{"label":"netbeans_enabled","kind":20,"documentation":"","sortText":"00004","insertText":"netbeans_enabled","insertTextFormat":1},{"label":"netbeans_intg","kind":20,"documentation":"","sortText":"00004","insertText":"netbeans_intg","insertTextFormat":1},{"label":"num64","kind":20,"documentation":"","sortText":"00004","insertText":"num64","insertTextFormat":1},{"label":"ole","kind":20,"documentation":"","sortText":"00004","insertText":"ole","insertTextFormat":1},{"label":"osx","kind":20,"documentation":"","sortText":"00004","insertText":"osx","insertTextFormat":1},{"label":"osxdarwin","kind":20,"documentation":"","sortText":"00004","insertText":"osxdarwin","insertTextFormat":1},{"label":"packages","kind":20,"documentation":"","sortText":"00004","insertText":"packages","insertTextFormat":1},{"label":"path_extra","kind":20,"documentation":"","sortText":"00004","insertText":"path_extra","insertTextFormat":1},{"label":"perl","kind":20,"documentation":"","sortText":"00004","insertText":"perl","insertTextFormat":1},{"label":"persistent_undo","kind":20,"documentation":"","sortText":"00004","insertText":"persistent_undo","insertTextFormat":1},{"label":"postscript","kind":20,"documentation":"","sortText":"00004","insertText":"postscript","insertTextFormat":1},{"label":"printer","kind":20,"documentation":"","sortText":"00004","insertText":"printer","insertTextFormat":1},{"label":"profile","kind":20,"documentation":"","sortText":"00004","insertText":"profile","insertTextFormat":1},{"label":"python","kind":20,"documentation":"","sortText":"00004","insertText":"python","insertTextFormat":1},{"label":"python_compiled","kind":20,"documentation":"","sortText":"00004","insertText":"python_compiled","insertTextFormat":1},{"label":"python_dynamic","kind":20,"documentation":"","sortText":"00004","insertText":"python_dynamic","insertTextFormat":1},{"label":"python3_compiled","kind":20,"documentation":"","sortText":"00004","insertText":"python3_compiled","insertTextFormat":1},{"label":"python3_dynamic","kind":20,"documentation":"","sortText":"00004","insertText":"python3_dynamic","insertTextFormat":1},{"label":"qnx","kind":20,"documentation":"","sortText":"00004","insertText":"qnx","insertTextFormat":1},{"label":"quickfix","kind":20,"documentation":"","sortText":"00004","insertText":"quickfix","insertTextFormat":1},{"label":"reltime","kind":20,"documentation":"","sortText":"00004","insertText":"reltime","insertTextFormat":1},{"label":"rightleft","kind":20,"documentation":"","sortText":"00004","insertText":"rightleft","insertTextFormat":1},{"label":"ruby","kind":20,"documentation":"","sortText":"00004","insertText":"ruby","insertTextFormat":1},{"label":"scrollbind","kind":20,"documentation":"","sortText":"00004","insertText":"scrollbind","insertTextFormat":1},{"label":"showcmd","kind":20,"documentation":"","sortText":"00004","insertText":"showcmd","insertTextFormat":1},{"label":"signs","kind":20,"documentation":"","sortText":"00004","insertText":"signs","insertTextFormat":1},{"label":"smartindent","kind":20,"documentation":"","sortText":"00004","insertText":"smartindent","insertTextFormat":1},{"label":"sound","kind":20,"documentation":"","sortText":"00004","insertText":"sound","insertTextFormat":1},{"label":"spell","kind":20,"documentation":"","sortText":"00004","insertText":"spell","insertTextFormat":1},{"label":"startuptime","kind":20,"documentation":"","sortText":"00004","insertText":"startuptime","insertTextFormat":1},{"label":"statusline","kind":20,"documentation":"","sortText":"00004","insertText":"statusline","insertTextFormat":1},{"label":"sun","kind":20,"documentation":"","sortText":"00004","insertText":"sun","insertTextFormat":1},{"label":"sun_workshop","kind":20,"documentation":"","sortText":"00004","insertText":"sun_workshop","insertTextFormat":1},{"label":"syntax","kind":20,"documentation":"","sortText":"00004","insertText":"syntax","insertTextFormat":1},{"label":"syntax_items","kind":20,"documentation":"","sortText":"00004","insertText":"syntax_items","insertTextFormat":1},{"label":"current","kind":20,"documentation":"","sortText":"00004","insertText":"current","insertTextFormat":1},{"label":"system","kind":20,"documentation":"","sortText":"00004","insertText":"system","insertTextFormat":1},{"label":"tag_binary","kind":20,"documentation":"","sortText":"00004","insertText":"tag_binary","insertTextFormat":1},{"label":"tag_old_static","kind":20,"documentation":"","sortText":"00004","insertText":"tag_old_static","insertTextFormat":1},{"label":"tcl","kind":20,"documentation":"","sortText":"00004","insertText":"tcl","insertTextFormat":1},{"label":"termguicolors","kind":20,"documentation":"","sortText":"00004","insertText":"termguicolors","insertTextFormat":1},{"label":"terminal","kind":20,"documentation":"","sortText":"00004","insertText":"terminal","insertTextFormat":1},{"label":"terminfo","kind":20,"documentation":"","sortText":"00004","insertText":"terminfo","insertTextFormat":1},{"label":"termresponse","kind":20,"documentation":"","sortText":"00004","insertText":"termresponse","insertTextFormat":1},{"label":"textobjects","kind":20,"documentation":"","sortText":"00004","insertText":"textobjects","insertTextFormat":1},{"label":"textprop","kind":20,"documentation":"","sortText":"00004","insertText":"textprop","insertTextFormat":1},{"label":"tgetent","kind":20,"documentation":"","sortText":"00004","insertText":"tgetent","insertTextFormat":1},{"label":"or","kind":20,"documentation":"","sortText":"00004","insertText":"or","insertTextFormat":1},{"label":"timers","kind":20,"documentation":"","sortText":"00004","insertText":"timers","insertTextFormat":1},{"label":"title","kind":20,"documentation":"","sortText":"00004","insertText":"title","insertTextFormat":1},{"label":"toolbar","kind":20,"documentation":"","sortText":"00004","insertText":"toolbar","insertTextFormat":1},{"label":"unnamedplus","kind":20,"documentation":"","sortText":"00004","insertText":"unnamedplus","insertTextFormat":1},{"label":"user_commands","kind":20,"documentation":"","sortText":"00004","insertText":"user_commands","insertTextFormat":1},{"label":"vartabs","kind":20,"documentation":"","sortText":"00004","insertText":"vartabs","insertTextFormat":1},{"label":"vcon","kind":20,"documentation":"","sortText":"00004","insertText":"vcon","insertTextFormat":1},{"label":"\'termguicolors\'.","kind":20,"documentation":"","sortText":"00004","insertText":"\'termguicolors\'.","insertTextFormat":1},{"label":"vertsplit","kind":20,"documentation":"","sortText":"00004","insertText":"vertsplit","insertTextFormat":1},{"label":"viminfo","kind":20,"documentation":"","sortText":"00004","insertText":"viminfo","insertTextFormat":1},{"label":"vimscript-1","kind":20,"documentation":"","sortText":"00004","insertText":"vimscript-1","insertTextFormat":1},{"label":"vimscript-2","kind":20,"documentation":"","sortText":"00004","insertText":"vimscript-2","insertTextFormat":1},{"label":"vimscript-3","kind":20,"documentation":"","sortText":"00004","insertText":"vimscript-3","insertTextFormat":1},{"label":"virtualedit","kind":20,"documentation":"","sortText":"00004","insertText":"virtualedit","insertTextFormat":1},{"label":"visual","kind":20,"documentation":"","sortText":"00004","insertText":"visual","insertTextFormat":1},{"label":"visualextra","kind":20,"documentation":"","sortText":"00004","insertText":"visualextra","insertTextFormat":1},{"label":"true)","kind":20,"documentation":"","sortText":"00004","insertText":"true)","insertTextFormat":1},{"label":"vms","kind":20,"documentation":"","sortText":"00004","insertText":"vms","insertTextFormat":1},{"label":"vreplace","kind":20,"documentation":"","sortText":"00004","insertText":"vreplace","insertTextFormat":1},{"label":"vtp","kind":20,"documentation":"","sortText":"00004","insertText":"vtp","insertTextFormat":1},{"label":"out","kind":20,"documentation":"","sortText":"00004","insertText":"out","insertTextFormat":1},{"label":"wildignore","kind":20,"documentation":"","sortText":"00004","insertText":"wildignore","insertTextFormat":1},{"label":"wildmenu","kind":20,"documentation":"","sortText":"00004","insertText":"wildmenu","insertTextFormat":1},{"label":"win16","kind":20,"documentation":"","sortText":"00004","insertText":"win16","insertTextFormat":1},{"label":"64","kind":20,"documentation":"","sortText":"00004","insertText":"64","insertTextFormat":1},{"label":"win32unix","kind":20,"documentation":"","sortText":"00004","insertText":"win32unix","insertTextFormat":1},{"label":"win95","kind":20,"documentation":"","sortText":"00004","insertText":"win95","insertTextFormat":1},{"label":"winaltkeys","kind":20,"documentation":"","sortText":"00004","insertText":"winaltkeys","insertTextFormat":1},{"label":"windows","kind":20,"documentation":"","sortText":"00004","insertText":"windows","insertTextFormat":1},{"label":"writebackup","kind":20,"documentation":"","sortText":"00004","insertText":"writebackup","insertTextFormat":1},{"label":"xfontset","kind":20,"documentation":"","sortText":"00004","insertText":"xfontset","insertTextFormat":1},{"label":"xim","kind":20,"documentation":"","sortText":"00004","insertText":"xim","insertTextFormat":1},{"label":"xpm","kind":20,"documentation":"","sortText":"00004","insertText":"xpm","insertTextFormat":1},{"label":"xpm_w32","kind":20,"documentation":"","sortText":"00004","insertText":"xpm_w32","insertTextFormat":1},{"label":"backward","kind":20,"documentation":"","sortText":"00004","insertText":"backward","insertTextFormat":1},{"label":"xsmp","kind":20,"documentation":"","sortText":"00004","insertText":"xsmp","insertTextFormat":1},{"label":"xsmp_interact","kind":20,"documentation":"","sortText":"00004","insertText":"xsmp_interact","insertTextFormat":1},{"label":"xterm_clipboard","kind":20,"documentation":"","sortText":"00004","insertText":"xterm_clipboard","insertTextFormat":1},{"label":"xterm_save","kind":20,"documentation":"","sortText":"00004","insertText":"xterm_save","insertTextFormat":1},{"label":"xterm","kind":20,"documentation":"","sortText":"00004","insertText":"xterm","insertTextFormat":1},{"label":"x11","kind":20,"documentation":"","sortText":"00004","insertText":"x11","insertTextFormat":1}],"expandKeywords":[{"label":"<cfile>","kind":14,"documentation":"file name under the cursor","sortText":"00004","insertText":"<cfile>","insertTextFormat":1},{"label":"<afile>","kind":14,"documentation":"autocmd file name","sortText":"00004","insertText":"<afile>","insertTextFormat":1},{"label":"<abuf>","kind":14,"documentation":"autocmd buffer number (as a String!)","sortText":"00004","insertText":"<abuf>","insertTextFormat":1},{"label":"<amatch>","kind":14,"documentation":"autocmd matched name","sortText":"00004","insertText":"<amatch>","insertTextFormat":1},{"label":"<sfile>","kind":14,"documentation":"sourced script file or function name","sortText":"00004","insertText":"<sfile>","insertTextFormat":1},{"label":"<slnum>","kind":14,"documentation":"sourced script file line number","sortText":"00004","insertText":"<slnum>","insertTextFormat":1},{"label":"<cword>","kind":14,"documentation":"word under the cursor","sortText":"00004","insertText":"<cword>","insertTextFormat":1},{"label":"<cWORD>","kind":14,"documentation":"WORD under the cursor","sortText":"00004","insertText":"<cWORD>","insertTextFormat":1},{"label":"<client>","kind":14,"documentation":"the {clientid} of the last received message `server2client()`","sortText":"00004","insertText":"<client>","insertTextFormat":1}],"autocmds":[{"label":"BufNewFile","kind":20,"documentation":"starting to edit a file that doesn\'t exist","sortText":"00004","insertText":"BufNewFile","insertTextFormat":1},{"label":"BufReadPre","kind":20,"documentation":"starting to edit a new buffer, before reading the file","sortText":"00004","insertText":"BufReadPre","insertTextFormat":1},{"label":"BufRead","kind":20,"documentation":"starting to edit a new buffer, after reading the file","sortText":"00004","insertText":"BufRead","insertTextFormat":1},{"label":"BufReadPost","kind":20,"documentation":"starting to edit a new buffer, after reading the file","sortText":"00004","insertText":"BufReadPost","insertTextFormat":1},{"label":"BufReadCmd","kind":20,"documentation":"before starting to edit a new buffer |Cmd-event|","sortText":"00004","insertText":"BufReadCmd","insertTextFormat":1},{"label":"FileReadPre","kind":20,"documentation":"before reading a file with a \\":read\\" command","sortText":"00004","insertText":"FileReadPre","insertTextFormat":1},{"label":"FileReadPost","kind":20,"documentation":"after reading a file with a \\":read\\" command","sortText":"00004","insertText":"FileReadPost","insertTextFormat":1},{"label":"FileReadCmd","kind":20,"documentation":"before reading a file with a \\":read\\" command |Cmd-event|","sortText":"00004","insertText":"FileReadCmd","insertTextFormat":1},{"label":"FilterReadPre","kind":20,"documentation":"before reading a file from a filter command","sortText":"00004","insertText":"FilterReadPre","insertTextFormat":1},{"label":"FilterReadPost","kind":20,"documentation":"after reading a file from a filter command","sortText":"00004","insertText":"FilterReadPost","insertTextFormat":1},{"label":"StdinReadPre","kind":20,"documentation":"before reading from stdin into the buffer","sortText":"00004","insertText":"StdinReadPre","insertTextFormat":1},{"label":"StdinReadPost","kind":20,"documentation":"After reading from the stdin into the buffer","sortText":"00004","insertText":"StdinReadPost","insertTextFormat":1},{"label":"BufWrite","kind":20,"documentation":"starting to write the whole buffer to a file","sortText":"00004","insertText":"BufWrite","insertTextFormat":1},{"label":"BufWritePre","kind":20,"documentation":"starting to write the whole buffer to a file","sortText":"00004","insertText":"BufWritePre","insertTextFormat":1},{"label":"BufWritePost","kind":20,"documentation":"after writing the whole buffer to a file","sortText":"00004","insertText":"BufWritePost","insertTextFormat":1},{"label":"BufWriteCmd","kind":20,"documentation":"before writing the whole buffer to a file |Cmd-event|","sortText":"00004","insertText":"BufWriteCmd","insertTextFormat":1},{"label":"FileWritePre","kind":20,"documentation":"starting to write part of a buffer to a file","sortText":"00004","insertText":"FileWritePre","insertTextFormat":1},{"label":"FileWritePost","kind":20,"documentation":"after writing part of a buffer to a file","sortText":"00004","insertText":"FileWritePost","insertTextFormat":1},{"label":"FileWriteCmd","kind":20,"documentation":"before writing part of a buffer to a file |Cmd-event|","sortText":"00004","insertText":"FileWriteCmd","insertTextFormat":1},{"label":"FileAppendPre","kind":20,"documentation":"starting to append to a file","sortText":"00004","insertText":"FileAppendPre","insertTextFormat":1},{"label":"FileAppendPost","kind":20,"documentation":"after appending to a file","sortText":"00004","insertText":"FileAppendPost","insertTextFormat":1},{"label":"FileAppendCmd","kind":20,"documentation":"before appending to a file |Cmd-event|","sortText":"00004","insertText":"FileAppendCmd","insertTextFormat":1},{"label":"FilterWritePre","kind":20,"documentation":"starting to write a file for a filter command or diff","sortText":"00004","insertText":"FilterWritePre","insertTextFormat":1},{"label":"FilterWritePost","kind":20,"documentation":"after writing a file for a filter command or diff","sortText":"00004","insertText":"FilterWritePost","insertTextFormat":1},{"label":"BufAdd","kind":20,"documentation":"just after adding a buffer to the buffer list","sortText":"00004","insertText":"BufAdd","insertTextFormat":1},{"label":"BufDelete","kind":20,"documentation":"before deleting a buffer from the buffer list","sortText":"00004","insertText":"BufDelete","insertTextFormat":1},{"label":"BufWipeout","kind":20,"documentation":"before completely deleting a buffer","sortText":"00004","insertText":"BufWipeout","insertTextFormat":1},{"label":"BufFilePre","kind":20,"documentation":"before changing the name of the current buffer","sortText":"00004","insertText":"BufFilePre","insertTextFormat":1},{"label":"BufFilePost","kind":20,"documentation":"after changing the name of the current buffer","sortText":"00004","insertText":"BufFilePost","insertTextFormat":1},{"label":"BufEnter","kind":20,"documentation":"after entering a buffer","sortText":"00004","insertText":"BufEnter","insertTextFormat":1},{"label":"BufLeave","kind":20,"documentation":"before leaving to another buffer","sortText":"00004","insertText":"BufLeave","insertTextFormat":1},{"label":"BufWinEnter","kind":20,"documentation":"after a buffer is displayed in a window","sortText":"00004","insertText":"BufWinEnter","insertTextFormat":1},{"label":"BufWinLeave","kind":20,"documentation":"before a buffer is removed from a window","sortText":"00004","insertText":"BufWinLeave","insertTextFormat":1},{"label":"BufUnload","kind":20,"documentation":"before unloading a buffer","sortText":"00004","insertText":"BufUnload","insertTextFormat":1},{"label":"BufHidden","kind":20,"documentation":"just after a buffer has become hidden","sortText":"00004","insertText":"BufHidden","insertTextFormat":1},{"label":"BufNew","kind":20,"documentation":"just after creating a new buffer","sortText":"00004","insertText":"BufNew","insertTextFormat":1},{"label":"SwapExists","kind":20,"documentation":"detected an existing swap file","sortText":"00004","insertText":"SwapExists","insertTextFormat":1},{"label":"TermOpen","kind":20,"documentation":"starting a terminal job","sortText":"00004","insertText":"TermOpen","insertTextFormat":1},{"label":"TermEnter","kind":20,"documentation":"entering Terminal-mode","sortText":"00004","insertText":"TermEnter","insertTextFormat":1},{"label":"TermLeave","kind":20,"documentation":"leaving Terminal-mode","sortText":"00004","insertText":"TermLeave","insertTextFormat":1},{"label":"TermClose","kind":20,"documentation":"stopping a terminal job","sortText":"00004","insertText":"TermClose","insertTextFormat":1},{"label":"ChanOpen","kind":20,"documentation":"after a channel opened","sortText":"00004","insertText":"ChanOpen","insertTextFormat":1},{"label":"ChanInfo","kind":20,"documentation":"after a channel has its state changed","sortText":"00004","insertText":"ChanInfo","insertTextFormat":1},{"label":"FileType","kind":20,"documentation":"when the \'filetype\' option has been set","sortText":"00004","insertText":"FileType","insertTextFormat":1},{"label":"Syntax","kind":20,"documentation":"when the \'syntax\' option has been set","sortText":"00004","insertText":"Syntax","insertTextFormat":1},{"label":"OptionSet","kind":20,"documentation":"after setting any option","sortText":"00004","insertText":"OptionSet","insertTextFormat":1},{"label":"VimEnter","kind":20,"documentation":"after doing all the startup stuff","sortText":"00004","insertText":"VimEnter","insertTextFormat":1},{"label":"UIEnter","kind":20,"documentation":"after a UI attaches","sortText":"00004","insertText":"UIEnter","insertTextFormat":1},{"label":"UILeave","kind":20,"documentation":"after a UI detaches","sortText":"00004","insertText":"UILeave","insertTextFormat":1},{"label":"TermResponse","kind":20,"documentation":"after the terminal response to t_RV is received","sortText":"00004","insertText":"TermResponse","insertTextFormat":1},{"label":"QuitPre","kind":20,"documentation":"when using `:quit`, before deciding whether to exit","sortText":"00004","insertText":"QuitPre","insertTextFormat":1},{"label":"ExitPre","kind":20,"documentation":"when using a command that may make Vim exit","sortText":"00004","insertText":"ExitPre","insertTextFormat":1},{"label":"VimLeavePre","kind":20,"documentation":"before exiting Nvim, before writing the shada file","sortText":"00004","insertText":"VimLeavePre","insertTextFormat":1},{"label":"VimLeave","kind":20,"documentation":"before exiting Nvim, after writing the shada file","sortText":"00004","insertText":"VimLeave","insertTextFormat":1},{"label":"VimResume","kind":20,"documentation":"after Nvim is resumed","sortText":"00004","insertText":"VimResume","insertTextFormat":1},{"label":"VimSuspend","kind":20,"documentation":"before Nvim is suspended","sortText":"00004","insertText":"VimSuspend","insertTextFormat":1},{"label":"DiffUpdated","kind":20,"documentation":"after diffs have been updated","sortText":"00004","insertText":"DiffUpdated","insertTextFormat":1},{"label":"DirChanged","kind":20,"documentation":"after the |current-directory| was changed","sortText":"00004","insertText":"DirChanged","insertTextFormat":1},{"label":"FileChangedShell","kind":20,"documentation":"Vim notices that a file changed since editing started","sortText":"00004","insertText":"FileChangedShell","insertTextFormat":1},{"label":"FileChangedShellPost","kind":20,"documentation":"after handling a file changed since editing started","sortText":"00004","insertText":"FileChangedShellPost","insertTextFormat":1},{"label":"FileChangedRO","kind":20,"documentation":"before making the first change to a read-only file","sortText":"00004","insertText":"FileChangedRO","insertTextFormat":1},{"label":"ShellCmdPost","kind":20,"documentation":"after executing a shell command","sortText":"00004","insertText":"ShellCmdPost","insertTextFormat":1},{"label":"ShellFilterPost","kind":20,"documentation":"after filtering with a shell command","sortText":"00004","insertText":"ShellFilterPost","insertTextFormat":1},{"label":"CmdUndefined","kind":20,"documentation":"a user command is used but it isn\'t defined","sortText":"00004","insertText":"CmdUndefined","insertTextFormat":1},{"label":"FuncUndefined","kind":20,"documentation":"a user function is used but it isn\'t defined","sortText":"00004","insertText":"FuncUndefined","insertTextFormat":1},{"label":"SpellFileMissing","kind":20,"documentation":"a spell file is used but it can\'t be found","sortText":"00004","insertText":"SpellFileMissing","insertTextFormat":1},{"label":"SourcePre","kind":20,"documentation":"before sourcing a Vim script","sortText":"00004","insertText":"SourcePre","insertTextFormat":1},{"label":"SourcePost","kind":20,"documentation":"after sourcing a Vim script","sortText":"00004","insertText":"SourcePost","insertTextFormat":1},{"label":"SourceCmd","kind":20,"documentation":"before sourcing a Vim script |Cmd-event|","sortText":"00004","insertText":"SourceCmd","insertTextFormat":1},{"label":"VimResized","kind":20,"documentation":"after the Vim window size changed","sortText":"00004","insertText":"VimResized","insertTextFormat":1},{"label":"FocusGained","kind":20,"documentation":"Nvim got focus","sortText":"00004","insertText":"FocusGained","insertTextFormat":1},{"label":"FocusLost","kind":20,"documentation":"Nvim lost focus","sortText":"00004","insertText":"FocusLost","insertTextFormat":1},{"label":"CursorHold","kind":20,"documentation":"the user doesn\'t press a key for a while","sortText":"00004","insertText":"CursorHold","insertTextFormat":1},{"label":"CursorHoldI","kind":20,"documentation":"the user doesn\'t press a key for a while in Insert mode","sortText":"00004","insertText":"CursorHoldI","insertTextFormat":1},{"label":"CursorMoved","kind":20,"documentation":"the cursor was moved in Normal mode","sortText":"00004","insertText":"CursorMoved","insertTextFormat":1},{"label":"CursorMovedI","kind":20,"documentation":"the cursor was moved in Insert mode","sortText":"00004","insertText":"CursorMovedI","insertTextFormat":1},{"label":"WinClosed","kind":20,"documentation":"after closing a window","sortText":"00004","insertText":"WinClosed","insertTextFormat":1},{"label":"WinNew","kind":20,"documentation":"after creating a new window","sortText":"00004","insertText":"WinNew","insertTextFormat":1},{"label":"WinEnter","kind":20,"documentation":"after entering another window","sortText":"00004","insertText":"WinEnter","insertTextFormat":1},{"label":"WinLeave","kind":20,"documentation":"before leaving a window","sortText":"00004","insertText":"WinLeave","insertTextFormat":1},{"label":"TabEnter","kind":20,"documentation":"after entering another tab page","sortText":"00004","insertText":"TabEnter","insertTextFormat":1},{"label":"TabLeave","kind":20,"documentation":"before leaving a tab page","sortText":"00004","insertText":"TabLeave","insertTextFormat":1},{"label":"TabNew","kind":20,"documentation":"when creating a new tab page","sortText":"00004","insertText":"TabNew","insertTextFormat":1},{"label":"TabNewEntered","kind":20,"documentation":"after entering a new tab page","sortText":"00004","insertText":"TabNewEntered","insertTextFormat":1},{"label":"TabClosed","kind":20,"documentation":"after closing a tab page","sortText":"00004","insertText":"TabClosed","insertTextFormat":1},{"label":"CmdlineChanged","kind":20,"documentation":"after a change was made to the command-line text","sortText":"00004","insertText":"CmdlineChanged","insertTextFormat":1},{"label":"CmdlineEnter","kind":20,"documentation":"after entering cmdline mode","sortText":"00004","insertText":"CmdlineEnter","insertTextFormat":1},{"label":"CmdlineLeave","kind":20,"documentation":"before leaving cmdline mode","sortText":"00004","insertText":"CmdlineLeave","insertTextFormat":1},{"label":"CmdwinEnter","kind":20,"documentation":"after entering the command-line window","sortText":"00004","insertText":"CmdwinEnter","insertTextFormat":1},{"label":"CmdwinLeave","kind":20,"documentation":"before leaving the command-line window","sortText":"00004","insertText":"CmdwinLeave","insertTextFormat":1},{"label":"InsertEnter","kind":20,"documentation":"starting Insert mode","sortText":"00004","insertText":"InsertEnter","insertTextFormat":1},{"label":"InsertChange","kind":20,"documentation":"when typing <Insert> while in Insert or Replace mode","sortText":"00004","insertText":"InsertChange","insertTextFormat":1},{"label":"InsertLeave","kind":20,"documentation":"when leaving Insert mode","sortText":"00004","insertText":"InsertLeave","insertTextFormat":1},{"label":"InsertCharPre","kind":20,"documentation":"when a character was typed in Insert mode, before","sortText":"00004","insertText":"InsertCharPre","insertTextFormat":1},{"label":"TextYankPost","kind":20,"documentation":"when some text is yanked or deleted","sortText":"00004","insertText":"TextYankPost","insertTextFormat":1},{"label":"TextChanged","kind":20,"documentation":"after a change was made to the text in Normal mode","sortText":"00004","insertText":"TextChanged","insertTextFormat":1},{"label":"TextChangedI","kind":20,"documentation":"after a change was made to the text in Insert mode","sortText":"00004","insertText":"TextChangedI","insertTextFormat":1},{"label":"TextChangedP","kind":20,"documentation":"after a change was made to the text in Insert mode","sortText":"00004","insertText":"TextChangedP","insertTextFormat":1},{"label":"ColorSchemePre","kind":20,"documentation":"before loading a color scheme","sortText":"00004","insertText":"ColorSchemePre","insertTextFormat":1},{"label":"ColorScheme","kind":20,"documentation":"after loading a color scheme","sortText":"00004","insertText":"ColorScheme","insertTextFormat":1},{"label":"RemoteReply","kind":20,"documentation":"a reply from a server Vim was received","sortText":"00004","insertText":"RemoteReply","insertTextFormat":1},{"label":"QuickFixCmdPre","kind":20,"documentation":"before a quickfix command is run","sortText":"00004","insertText":"QuickFixCmdPre","insertTextFormat":1},{"label":"QuickFixCmdPost","kind":20,"documentation":"after a quickfix command is run","sortText":"00004","insertText":"QuickFixCmdPost","insertTextFormat":1},{"label":"SessionLoadPost","kind":20,"documentation":"after loading a session file","sortText":"00004","insertText":"SessionLoadPost","insertTextFormat":1},{"label":"MenuPopup","kind":20,"documentation":"just before showing the popup menu","sortText":"00004","insertText":"MenuPopup","insertTextFormat":1},{"label":"CompleteChanged","kind":20,"documentation":"after popup menu changed, not fired on popup menu hide","sortText":"00004","insertText":"CompleteChanged","insertTextFormat":1},{"label":"CompleteDonePre","kind":20,"documentation":"after Insert mode completion is done, before clearing","sortText":"00004","insertText":"CompleteDonePre","insertTextFormat":1},{"label":"CompleteDone","kind":20,"documentation":"after Insert mode completion is done, after clearing","sortText":"00004","insertText":"CompleteDone","insertTextFormat":1},{"label":"User","kind":20,"documentation":"to be used in combination with \\":doautocmd\\"","sortText":"00004","insertText":"User","insertTextFormat":1},{"label":"Signal","kind":20,"documentation":"after Nvim receives a signal","sortText":"00004","insertText":"Signal","insertTextFormat":1},{"label":"BufCreate","kind":20,"documentation":"just after adding a buffer to the buffer list","sortText":"00004","insertText":"BufCreate","insertTextFormat":1},{"label":"EncodingChanged","kind":20,"documentation":"after the \'encoding\' option has been changed","sortText":"00004","insertText":"EncodingChanged","insertTextFormat":1},{"label":"TermChanged","kind":20,"documentation":"after the value of \'term\' has changed","sortText":"00004","insertText":"TermChanged","insertTextFormat":1},{"label":"GUIEnter","kind":20,"documentation":"after starting the GUI successfully","sortText":"00004","insertText":"GUIEnter","insertTextFormat":1},{"label":"GUIFailed","kind":20,"documentation":"after starting the GUI failed","sortText":"00004","insertText":"GUIFailed","insertTextFormat":1},{"label":"TerminalOpen","kind":20,"documentation":"after a terminal buffer was created","sortText":"00004","insertText":"TerminalOpen","insertTextFormat":1},{"label":"TerminalWinOpen","kind":20,"documentation":"after a terminal buffer was created in a new window","sortText":"00004","insertText":"TerminalWinOpen","insertTextFormat":1},{"label":"SafeState","kind":20,"documentation":"nothing pending, going to wait for the user to type a","sortText":"00004","insertText":"SafeState","insertTextFormat":1},{"label":"SafeStateAgain","kind":20,"documentation":"repeated SafeState","sortText":"00004","insertText":"SafeStateAgain","insertTextFormat":1}]},"signatureHelp":{"abs":["{expr}","Float"],"acos":["{expr}","Float"],"add":["{list}, {item}","List"],"and":["{expr}, {expr}","Number"],"append":["{lnum}, {list}","Number"],"appendbufline":["{expr}, {lnum}, {text}","Number"],"argc":["[{winid}]","Number"],"argidx":["","Number"],"arglistid":["[{winnr} [, {tabnr}]]","Number"],"argv":["[-1, {winid}]","List"],"assert_beeps":["{cmd}","Number"],"assert_equal":["{exp}, {act} [, {msg}]","Number"],"assert_equalfile":["{fname-one}, {fname-two}","Number"],"assert_exception":["{error} [, {msg}]","Number"],"assert_fails":["{cmd} [, {error}]","Number"],"assert_false":["{actual} [, {msg}]","Number"],"assert_inrange":["{lower}, {upper}, {actual} [, {msg}]","Number"],"assert_match":["{pat}, {text} [, {msg}]","Number"],"assert_notequal":["{exp}, {act} [, {msg}]","Number"],"assert_notmatch":["{pat}, {text} [, {msg}]","Number"],"assert_report":["{msg}","Number"],"assert_true":["{actual} [, {msg}]","Number"],"asin":["{expr}","Float"],"atan":["{expr}","Float"],"atan2":["{expr}, {expr}","Float"],"balloon_gettext":["","String"],"balloon_show":["{expr}","none"],"balloon_split":["{msg}","List"],"browse":["{save}, {title}, {initdir}, {default}","String"],"browsedir":["{title}, {initdir}","String"],"bufadd":["{name}","Number"],"bufexists":["{expr}","Number"],"buflisted":["{expr}","Number"],"bufload":["{expr}","Number"],"bufloaded":["{expr}","Number"],"bufname":["[{expr}]","String"],"bufnr":["[{expr} [, {create}]]","Number"],"bufwinid":["{expr}","Number"],"bufwinnr":["{expr}","Number"],"byte2line":["{byte}","Number"],"byteidx":["{expr}, {nr}","Number"],"byteidxcomp":["{expr}, {nr}","Number"],"call":["{func}, {arglist} [, {dict}]","any"],"ceil":["{expr}","Float"],"ch_canread":["{handle}","Number"],"ch_close":["{handle}","none"],"ch_close_in":["{handle}","none"],"ch_evalexpr":["{handle}, {expr} [, {options}]","any"],"ch_evalraw":["{handle}, {string} [, {options}]","any"],"ch_getbufnr":["{handle}, {what}","Number"],"ch_getjob":["{channel}","Job"],"ch_info":["{handle}","String"],"ch_log":["{msg} [, {handle}]","none"],"ch_logfile":["{fname} [, {mode}]","none"],"ch_open":["{address} [, {options}]","Channel"],"ch_read":["{handle} [, {options}]","String"],"ch_readblob":["{handle} [, {options}]","Blob"],"ch_readraw":["{handle} [, {options}]","String"],"ch_sendexpr":["{handle}, {expr} [, {options}]","any"],"ch_sendraw":["{handle}, {expr} [, {options}]","any"],"ch_setoptions":["{handle}, {options}","none"],"ch_status":["{handle} [, {options}]","String"],"changenr":["","Number"],"char2nr":["{expr}[, {utf8}]","Number"],"chdir":["{dir}","String"],"cindent":["{lnum}","Number"],"clearmatches":["","none"],"col":["{expr}","Number"],"complete":["{startcol}, {matches}","none"],"complete_add":["{expr}","Number"],"complete_check":["","Number"],"complete_info":["[{what}]","Dict"],"confirm":["{msg} [, {choices} [, {default} [, {type}]]]","Number"],"copy":["{expr}","any"],"cos":["{expr}","Float"],"cosh":["{expr}","Float"],"count":["{list}, {expr} [, {ic} [, {start}]]","Number"],"cscope_connection":["[{num}, {dbpath} [, {prepend}]]","Number"],"cursor":["{list}","Number"],"debugbreak":["{pid}","Number"],"deepcopy":["{expr} [, {noref}]","any"],"delete":["{fname} [, {flags}]","Number"],"deletebufline":["{expr}, {first}[, {last}]","Number"],"did_filetype":["","Number"],"diff_filler":["{lnum}","Number"],"diff_hlID":["{lnum}, {col}","Number"],"empty":["{expr}","Number"],"environ":["","Dict"],"escape":["{string}, {chars}","String"],"eval":["{string}","any"],"eventhandler":["","Number"],"executable":["{expr}","Number"],"execute":["{command}","String"],"exepath":["{expr}","String"],"exists":["{expr}","Number"],"extend":["{expr1}, {expr2} [, {expr3}]","List/Dict"],"exp":["{expr}","Float"],"expand":["{expr} [, {nosuf} [, {list}]]","any"],"expandcmd":["{expr}","String"],"feedkeys":["{string} [, {mode}]","Number"],"filereadable":["{file}","Number"],"filewritable":["{file}","Number"],"filter":["{expr1}, {expr2}","List/Dict"],"finddir":["{name} [, {path} [, {count}]]","String"],"findfile":["{name} [, {path} [, {count}]]","String"],"float2nr":["{expr}","Number"],"floor":["{expr}","Float"],"fmod":["{expr1}, {expr2}","Float"],"fnameescape":["{fname}","String"],"fnamemodify":["{fname}, {mods}","String"],"foldclosed":["{lnum}","Number"],"foldclosedend":["{lnum}","Number"],"foldlevel":["{lnum}","Number"],"foldtext":["","String"],"foldtextresult":["{lnum}","String"],"foreground":["","Number"],"funcref":["{name} [, {arglist}] [, {dict}]","Funcref"],"function":["{name} [, {arglist}] [, {dict}]","Funcref"],"garbagecollect":["[{atexit}]","none"],"get":["{func}, {what}","any"],"getbufinfo":["[{expr}]","List"],"getbufline":["{expr}, {lnum} [, {end}]","List"],"getbufvar":["{expr}, {varname} [, {def}]","any"],"getchangelist":["{expr}","List"],"getchar":["[expr]","Number"],"getcharmod":["","Number"],"getcharsearch":["","Dict"],"getcmdline":["","String"],"getcmdpos":["","Number"],"getcmdtype":["","String"],"getcmdwintype":["","String"],"getcompletion":["{pat}, {type} [, {filtered}]","List"],"getcurpos":["","List"],"getcwd":["[{winnr} [, {tabnr}]]","String"],"getenv":["{name}","String"],"getfontname":["[{name}]","String"],"getfperm":["{fname}","String"],"getfsize":["{fname}","Number"],"getftime":["{fname}","Number"],"getftype":["{fname}","String"],"getimstatus":["","Number"],"getjumplist":["[{winnr} [, {tabnr}]]","List"],"getline":["{lnum}, {end}","List"],"getloclist":["{nr} [, {what}]","List"],"getmatches":["","List"],"getmousepos":["","Dict"],"getpid":["","Number"],"getpos":["{expr}","List"],"getqflist":["[{what}]","List"],"getreg":["[{regname} [, 1 [, {list}]]]","String"],"getregtype":["[{regname}]","String"],"gettabinfo":["[{expr}]","List"],"gettabvar":["{nr}, {varname} [, {def}]","any"],"gettabwinvar":["{tabnr}, {winnr}, {name} [, {def}]","any"],"gettagstack":["[{nr}]","Dict"],"getwininfo":["[{winid}]","List"],"getwinpos":["[{timeout}]","List"],"getwinposx":["","Number"],"getwinposy":["","Number"],"getwinvar":["{nr}, {varname} [, {def}]","any"],"glob":["{expr} [, {nosuf} [, {list} [, {alllinks}]]]","any"],"glob2regpat":["{expr}","String"],"globpath":["{path}, {expr} [, {nosuf} [, {list} [, {alllinks}]]]","String"],"has":["{feature}","Number"],"has_key":["{dict}, {key}","Number"],"haslocaldir":["[{winnr} [, {tabnr}]]","Number"],"hasmapto":["{what} [, {mode} [, {abbr}]]","Number"],"histadd":["{history}, {item}","String"],"histdel":["{history} [, {item}]","String"],"histget":["{history} [, {index}]","String"],"histnr":["{history}","Number"],"hlexists":["{name}","Number"],"hlID":["{name}","Number"],"hostname":["","String"],"iconv":["{expr}, {from}, {to}","String"],"indent":["{lnum}","Number"],"index":["{list}, {expr} [, {start} [, {ic}]]","Number"],"input":["{prompt} [, {text} [, {completion}]]","String"],"inputdialog":["{prompt} [, {text} [, {completion}]]","String"],"inputlist":["{textlist}","Number"],"inputrestore":["","Number"],"inputsave":["","Number"],"inputsecret":["{prompt} [, {text}]","String"],"insert":["{list}, {item} [, {idx}]","List"],"interrupt":["","none"],"invert":["{expr}","Number"],"isdirectory":["{directory}","Number"],"isinf":["{expr}","Number"],"islocked":["{expr}","Number"],"isnan":["{expr}","Number"],"items":["{dict}","List"],"job_getchannel":["{job}","Channel"],"job_info":["[{job}]","Dict"],"job_setoptions":["{job}, {options}","none"],"job_start":["{command} [, {options}]","Job"],"job_status":["{job}","String"],"job_stop":["{job} [, {how}]","Number"],"join":["{list} [, {sep}]","String"],"js_decode":["{string}","any"],"js_encode":["{expr}","String"],"json_decode":["{expr}","any"],"json_encode":["{expr}","String"],"keys":["{dict}","List"],"len":["{expr}","Number"],"libcall":["{lib}, {func}, {arg}","String"],"libcallnr":["{lib}, {func}, {arg}","Number"],"line":["{expr}","Number"],"line2byte":["{lnum}","Number"],"lispindent":["{lnum}","Number"],"list2str":["{list} [, {utf8}]","String"],"listener_add":["{callback} [, {buf}]","Number"],"listener_flush":["[{buf}]","none"],"listener_remove":["{id}","none"],"localtime":["","Number"],"log":["{expr}","Float"],"log10":["{expr}","Float"],"luaeval":["{expr}[, {expr}]","any"],"map":["{expr1}, {expr2}","List/Dict"],"maparg":["{name}[, {mode} [, {abbr} [, {dict}]]]","String"],"mapcheck":["{name}[, {mode} [, {abbr}]]","String"],"match":["{expr}, {pat}[, {start}[, {count}]]","Number"],"matchadd":["{group}, {pattern}[, {priority}[, {id}]]","Number"],"matchaddpos":["{group}, {list}[, {priority}[, {id}]]","Number"],"matcharg":["{nr}","List"],"matchdelete":["{id}","Number"],"matchend":["{expr}, {pat}[, {start}[, {count}]]","Number"],"matchlist":["{expr}, {pat}[, {start}[, {count}]]","List"],"matchstr":["{expr}, {pat}[, {start}[, {count}]]","String"],"matchstrpos":["{expr}, {pat}[, {start}[, {count}]]","List"],"max":["{expr}","Number"],"min":["{expr}","Number"],"mkdir":["{name} [, {path} [, {prot}]]","Number"],"mode":["[expr]","String"],"mzeval":["{expr}","any"],"nextnonblank":["{lnum}","Number"],"nr2char":["{expr}[, {utf8}]","String"],"or":["{expr}, {expr}","Number"],"pathshorten":["{expr}","String"],"perleval":["{expr}","any"],"popup_atcursor":["{what}, {options}","Number"],"popup_beval":["{what}, {options}","Number"],"popup_clear":["","none"],"popup_close":["{id} [, {result}]","none"],"popup_create":["{what}, {options}","Number"],"popup_dialog":["{what}, {options}","Number"],"popup_filter_menu":["{id}, {key}","Number"],"popup_filter_yesno":["{id}, {key}","Number"],"popup_findinfo":["","Number"],"popup_findpreview":["","Number"],"popup_getoptions":["{id}","Dict"],"popup_getpos":["{id}","Dict"],"popup_hide":["{id}","none"],"popup_menu":["{what}, {options}","Number"],"popup_move":["{id}, {options}","none"],"popup_notification":["{what}, {options}","Number"],"popup_show":["{id}","none"],"popup_setoptions":["{id}, {options}","none"],"popup_settext":["{id}, {text}","none"],"pow":["{x}, {y}","Float"],"prevnonblank":["{lnum}","Number"],"printf":["{fmt}, {expr1}...","String"],"prompt_setcallback":["{buf}, {expr}","none"],"prompt_setinterrupt":["{buf}, {text}","none"],"prompt_setprompt":["{buf}, {text}","none"],"prop_add":["{lnum}, {col}, {props}","none"],"prop_clear":["{lnum} [, {lnum-end} [, {props}]]","none"],"prop_find":["{props} [, {direction}]","Dict"],"prop_list":["{lnum} [, {props}","List"],"prop_remove":["{props} [, {lnum} [, {lnum-end}]]","Number"],"prop_type_add":["{name}, {props}","none"],"prop_type_change":["{name}, {props}","none"],"prop_type_delete":["{name} [, {props}]","none"],"prop_type_get":["[{name} [, {props}]","Dict"],"prop_type_list":["[{props}]","List"],"pum_getpos":["","Dict"],"pumvisible":["","Number"],"pyeval":["{expr}","any"],"py3eval":["{expr}","any"],"pyxeval":["{expr}","any"],"rand":["[{expr}]","Number"],"range":["{expr} [, {max} [, {stride}]]","List"],"readdir":["{dir} [, {expr}]","List"],"readfile":["{fname} [, {binary} [, {max}]]","List"],"reg_executing":["","String"],"reg_recording":["","String"],"reltime":["[{start} [, {end}]]","List"],"reltimefloat":["{time}","Float"],"reltimestr":["{time}","String"],"remote_expr":["{server}, {string} [, {idvar} [, {timeout}]]","String"],"remote_foreground":["{server}","Number"],"remote_peek":["{serverid} [, {retvar}]","Number"],"remote_read":["{serverid} [, {timeout}]","String"],"remote_send":["{server}, {string} [, {idvar}]","String"],"remote_startserver":["{name}","none"],"remove":["{dict}, {key}","any"],"rename":["{from}, {to}","Number"],"repeat":["{expr}, {count}","String"],"resolve":["{filename}","String"],"reverse":["{list}","List"],"round":["{expr}","Float"],"rubyeval":["{expr}","any"],"screenattr":["{row}, {col}","Number"],"screenchar":["{row}, {col}","Number"],"screenchars":["{row}, {col}","List"],"screencol":["","Number"],"screenpos":["{winid}, {lnum}, {col}","Dict"],"screenrow":["","Number"],"screenstring":["{row}, {col}","String"],"search":["{pattern} [, {flags} [, {stopline} [, {timeout}]]]","Number"],"searchdecl":["{name} [, {global} [, {thisblock}]]","Number"],"searchpair":["{start}, {middle}, {end} [, {flags} [, {skip} [...]]]","Number"],"searchpairpos":["{start}, {middle}, {end} [, {flags} [, {skip} [...]]]","List"],"searchpos":["{pattern} [, {flags} [, {stopline} [, {timeout}]]]","List"],"server2client":["{clientid}, {string}","Number"],"serverlist":["","String"],"setbufline":[" {expr}, {lnum}, {line}","Number"],"setbufvar":["{expr}, {varname}, {val}","set"],"setcharsearch":["{dict}","Dict"],"setcmdpos":["{pos}","Number"],"setenv":["{name}, {val}","none"],"setfperm":["{fname}, {mode}","Number"],"setline":["{lnum}, {line}","Number"],"setloclist":["{nr}, {list}[, {action}[, {what}]]","Number"],"setmatches":["{list}","Number"],"setpos":["{expr}, {list}","Number"],"setqflist":["{list} [, {action} [, {what}]]","Number"],"setreg":["{n}, {v}[, {opt}]","Number"],"settabvar":["{nr}, {varname}, {val}","set"],"settabwinvar":["{tabnr}, {winnr}, {varname}, {val}","set"],"settagstack":["{nr}, {dict} [, {action}]","Number"],"setwinvar":["{nr}, {varname}, {val}","set"],"sha256":["{string}","String"],"shellescape":["{string} [, {special}]","String"],"shiftwidth":["","Number"],"sign_define":["{name} [, {dict}]","Number"],"sign_getdefined":["[{name}]","List"],"sign_getplaced":["[{expr} [, {dict}]]","List"],"sign_jump":["{id}, {group}, {expr}","Number"],"sign_place":["{id}, {group}, {name}, {expr} [, {dict}]","Number"],"sign_placelist":["{list}","List"],"sign_undefine":["[{name}]","Number"],"sign_unplace":["{group} [, {dict}]","Number"],"sign_unplacelist":["{list}","List"],"simplify":["{filename}","String"],"sin":["{expr}","Float"],"sinh":["{expr}","Float"],"sort":["{list} [, {func} [, {dict}]]","List"],"sound_clear":["","none"],"sound_playevent":["{name} [, {callback}]","Number"],"sound_playfile":["{path} [, {callback}]","Number"],"sound_stop":["{id}","none"],"soundfold":["{word}","String"],"spellbadword":["","String"],"spellsuggest":["{word} [, {max} [, {capital}]]","List"],"split":["{expr} [, {pat} [, {keepempty}]]","List"],"sqrt":["{expr}","Float"],"srand":["[{expr}]","List"],"state":["[{what}]","String"],"str2float":["{expr}","Float"],"str2list":["{expr} [, {utf8}]","List"],"str2nr":["{expr} [, {base}]","Number"],"strchars":["{expr} [, {skipcc}]","Number"],"strcharpart":["{str}, {start} [, {len}]","String"],"strdisplaywidth":["{expr} [, {col}]","Number"],"strftime":["{format} [, {time}]","String"],"strgetchar":["{str}, {index}","Number"],"stridx":["{haystack}, {needle} [, {start}]","Number"],"string":["{expr}","String"],"strlen":["{expr}","Number"],"strpart":["{str}, {start} [, {len}]","String"],"strptime":["{format}, {timestring}","Number"],"strridx":["{haystack}, {needle} [, {start}]","Number"],"strtrans":["{expr}","String"],"strwidth":["{expr}","Number"],"submatch":["{nr} [, {list}]","String"],"substitute":["{expr}, {pat}, {sub}, {flags}","String"],"swapinfo":["{fname}","Dict"],"swapname":["{expr}","String"],"synID":["{lnum}, {col}, {trans}","Number"],"synIDattr":["{synID}, {what} [, {mode}]","String"],"synIDtrans":["{synID}","Number"],"synconcealed":["{lnum}, {col}","List"],"synstack":["{lnum}, {col}","List"],"system":["{cmd} [, {input}]","String"],"systemlist":["{cmd} [, {input}]","List"],"tabpagebuflist":["[{arg}]","List"],"tabpagenr":["[{arg}]","Number"],"tabpagewinnr":["{tabarg}[, {arg}]","Number"],"taglist":["{expr}[, {filename}]","List"],"tagfiles":["","List"],"tan":["{expr}","Float"],"tanh":["{expr}","Float"],"tempname":["","String"],"term_dumpdiff":["{filename}, {filename} [, {options}]","Number"],"term_dumpload":["{filename} [, {options}]","Number"],"term_dumpwrite":["{buf}, {filename} [, {options}]","none"],"term_getaltscreen":["{buf}","Number"],"term_getansicolors":["{buf}","List"],"term_getattr":["{attr}, {what}","Number"],"term_getcursor":["{buf}","List"],"term_getjob":["{buf}","Job"],"term_getline":["{buf}, {row}","String"],"term_getscrolled":["{buf}","Number"],"term_getsize":["{buf}","List"],"term_getstatus":["{buf}","String"],"term_gettitle":["{buf}","String"],"term_gettty":["{buf}, [{input}]","String"],"term_list":["","List"],"term_scrape":["{buf}, {row}","List"],"term_sendkeys":["{buf}, {keys}","none"],"term_setapi":["{buf}, {expr}","none"],"term_setansicolors":["{buf}, {colors}","none"],"term_setkill":["{buf}, {how}","none"],"term_setrestore":["{buf}, {command}","none"],"term_setsize":["{buf}, {rows}, {cols}","none"],"term_start":["{cmd} [, {options}]","Number"],"term_wait":["{buf} [, {time}]","Number"],"test_alloc_fail":["{id}, {countdown}, {repeat}","none"],"test_autochdir":["","none"],"test_feedinput":["{string}","none"],"test_garbagecollect_now":["","none"],"test_garbagecollect_soon":["","none"],"test_getvalue":["{string}","any"],"test_ignore_error":["{expr}","none"],"test_null_blob":["","Blob"],"test_null_channel":["","Channel"],"test_null_dict":["","Dict"],"test_null_job":["","Job"],"test_null_list":["","List"],"test_null_partial":["","Funcref"],"test_null_string":["","String"],"test_option_not_set":["{name}","none"],"test_override":["{expr}, {val}","none"],"test_refcount":["{expr}","Number"],"test_scrollbar":["{which}, {value}, {dragging}","none"],"test_setmouse":["{row}, {col}","none"],"test_settime":["{expr}","none"],"timer_info":["[{id}]","List"],"timer_pause":["{id}, {pause}","none"],"timer_start":["{time}, {callback} [, {options}]","Number"],"timer_stop":["{timer}","none"],"timer_stopall":["","none"],"tolower":["{expr}","String"],"toupper":["{expr}","String"],"tr":["{src}, {fromstr}, {tostr}","String"],"trim":["{text} [, {mask}]","String"],"trunc":["{expr}","Float"],"type":["{name}","Number"],"undofile":["{name}","String"],"undotree":["","List"],"uniq":["{list} [, {func} [, {dict}]]","List"],"values":["{dict}","List"],"virtcol":["{expr}","Number"],"visualmode":["[expr]","String"],"wildmenumode":["","Number"],"win_execute":["{id}, {command} [, {silent}]","String"],"win_findbuf":["{bufnr}","List"],"win_getid":["[{win} [, {tab}]]","Number"],"win_gotoid":["{expr}","Number"],"win_id2tabwin":["{expr}","List"],"win_id2win":["{expr}","Number"],"win_screenpos":["{nr}","List"],"win_splitmove":["{nr}, {target} [, {options}]","Number"],"winbufnr":["{nr}","Number"],"wincol":["","Number"],"winheight":["{nr}","Number"],"winlayout":["[{tabnr}]","List"],"winline":["","Number"],"winnr":["[{expr}]","Number"],"winrestcmd":["","String"],"winrestview":["{dict}","none"],"winsaveview":["","Dict"],"winwidth":["{nr}","Number"],"wordcount":["","Dict"],"writefile":["{list}, {fname} [, {flags}]","Number"],"xor":["{expr}, {expr}","Number"],"api_info":["","Dict"],"chanclose":["{id}[, {stream}]","Number"],"chansend":["{id}, {data}","Number"],"ctxget":["[{index}]","Dict"],"ctxpop":["","none"],"ctxpush":["[{types}]","none"],"ctxset":["{context}[, {index}]","none"],"ctxsize":["","Number"],"dictwatcheradd":["{dict}, {pattern}, {callback}","Start"],"dictwatcherdel":["{dict}, {pattern}, {callback}","Stop"],"id":["{expr}","String"],"jobpid":["{id}","Number"],"jobresize":["{id}, {width}, {height}","Number"],"jobstart":["{cmd}[, {opts}]","Number"],"jobstop":["{id}","Number"],"jobwait":["{ids}[, {timeout}]","Number"],"msgpackdump":["{list}","List"],"msgpackparse":["{list}","List"],"prompt_addtext":["{buf}, {expr}","none"],"rpcnotify":["{channel}, {event}[, {args}...]","Sends"],"rpcrequest":["{channel}, {method}[, {args}...]","Sends"],"sockconnect":["{mode}, {address} [, {opts}]","Number"],"stdioopen":["{dict}","Number"],"stdpath":["{what}","String/List"],"wait":["{timeout}, {condition}[, {interval}]","Number"],"nvim__id":["{obj}",""],"nvim__id_array":["{arr}",""],"nvim__id_dictionary":["{dct}",""],"nvim__id_float":["{flt}",""],"nvim__inspect_cell":["{grid}, {row}, {col}",""],"nvim__put_attr":["{id}, {c0}, {c1}",""],"nvim__stats":["",""],"nvim_call_atomic":["{calls}",""],"nvim_call_dict_function":["{dict}, {fn}, {args}",""],"nvim_call_function":["{fn}, {args}",""],"nvim_command":["{command}",""],"nvim_create_buf":["{listed}, {scratch}",""],"nvim_create_namespace":["{name}",""],"nvim_del_current_line":["",""],"nvim_del_keymap":["{mode}, {lhs}",""],"nvim_del_var":["{name}",""],"nvim_err_write":["{str}",""],"nvim_err_writeln":["{str}",""],"nvim_eval":["{expr}",""],"nvim_exec":["{src}, {output}",""],"nvim_exec_lua":["{code}, {args}",""],"nvim_feedkeys":["{keys}, {mode}, {escape_csi}",""],"nvim_get_api_info":["",""],"nvim_get_chan_info":["{chan}",""],"nvim_get_color_by_name":["{name}",""],"nvim_get_color_map":["",""],"nvim_get_commands":["{opts}",""],"nvim_get_context":["{opts}",""],"nvim_get_current_buf":["",""],"nvim_get_current_line":["",""],"nvim_get_current_tabpage":["",""],"nvim_get_current_win":["",""],"nvim_get_hl_by_id":["{hl_id}, {rgb}",""],"nvim_get_hl_by_name":["{name}, {rgb}",""],"nvim_get_hl_id_by_name":["{name}",""],"nvim_get_keymap":["{mode}",""],"nvim_get_mode":["",""],"nvim_get_namespaces":["",""],"nvim_get_option":["{name}",""],"nvim_get_proc":["{pid}",""],"nvim_get_proc_children":["{pid}",""],"nvim_get_var":["{name}",""],"nvim_get_vvar":["{name}",""],"nvim_input":["{keys}",""],"nvim_input_mouse":["{button}, {action}, {modifier}, {grid}, {row}, {col}",""],"nvim_list_bufs":["",""],"nvim_list_chans":["",""],"nvim_list_runtime_paths":["",""],"nvim_list_tabpages":["",""],"nvim_list_uis":["",""],"nvim_list_wins":["",""],"nvim_load_context":["{dict}",""],"nvim_open_win":["{buffer}, {enter}, {config}",""],"nvim_out_write":["{str}",""],"nvim_parse_expression":["{expr}, {flags}, {highlight}",""],"nvim_paste":["{data}, {crlf}, {phase}",""],"nvim_put":["{lines}, {type}, {after}, {follow}",""],"nvim_replace_termcodes":["{str}, {from_part}, {do_lt}, {special}",""],"nvim_select_popupmenu_item":["{item}, {insert}, {finish}, {opts}",""],"nvim_set_client_info":["{name}, {version}, {type}, {methods}, {attributes}",""],"nvim_set_current_buf":["{buffer}",""],"nvim_set_current_dir":["{dir}",""],"nvim_set_current_line":["{line}",""],"nvim_set_current_tabpage":["{tabpage}",""],"nvim_set_current_win":["{window}",""],"nvim_set_keymap":["{mode}, {lhs}, {rhs}, {opts}",""],"nvim_set_option":["{name}, {value}",""],"nvim_set_var":["{name}, {value}",""],"nvim_set_vvar":["{name}, {value}",""],"nvim_strwidth":["{text}",""],"nvim_subscribe":["{event}",""],"nvim_unsubscribe":["{event}",""],"nvim__buf_redraw_range":["{buffer}, {first}, {last}",""],"nvim__buf_set_luahl":["{buffer}, {opts}",""],"nvim__buf_stats":["{buffer}",""],"nvim_buf_add_highlight":["{buffer}, {ns_id}, {hl_group}, {line}, {col_start}, {col_end}",""],"nvim_buf_attach":["{buffer}, {send_buffer}, {opts}",""],"nvim_buf_clear_namespace":["{buffer}, {ns_id}, {line_start}, {line_end}",""],"nvim_buf_del_extmark":["{buffer}, {ns_id}, {id}",""],"nvim_buf_del_keymap":["{buffer}, {mode}, {lhs}",""],"nvim_buf_del_var":["{buffer}, {name}",""],"nvim_buf_detach":["{buffer}",""],"nvim_buf_get_changedtick":["{buffer}",""],"nvim_buf_get_commands":["{buffer}, {opts}",""],"nvim_buf_get_extmark_by_id":["{buffer}, {ns_id}, {id}",""],"nvim_buf_get_extmarks":["{buffer}, {ns_id}, {start}, {end}, {opts}",""],"nvim_buf_get_keymap":["{buffer}, {mode}",""],"nvim_buf_get_lines":["{buffer}, {start}, {end}, {strict_indexing}",""],"nvim_buf_get_mark":["{buffer}, {name}",""],"nvim_buf_get_name":["{buffer}",""],"nvim_buf_get_offset":["{buffer}, {index}",""],"nvim_buf_get_option":["{buffer}, {name}",""],"nvim_buf_get_var":["{buffer}, {name}",""],"nvim_buf_get_virtual_text":["{buffer}, {lnum}",""],"nvim_buf_is_loaded":["{buffer}",""],"nvim_buf_is_valid":["{buffer}",""],"nvim_buf_line_count":["{buffer}",""],"nvim_buf_set_extmark":["{buffer}, {ns_id}, {id}, {line}, {col}, {opts}",""],"nvim_buf_set_keymap":["{buffer}, {mode}, {lhs}, {rhs}, {opts}",""],"nvim_buf_set_lines":["{buffer}, {start}, {end}, {strict_indexing}, {replacement}",""],"nvim_buf_set_name":["{buffer}, {name}",""],"nvim_buf_set_option":["{buffer}, {name}, {value}",""],"nvim_buf_set_var":["{buffer}, {name}, {value}",""],"nvim_buf_set_virtual_text":["{buffer}, {ns_id}, {line}, {chunks}, {opts}",""],"nvim_win_close":["{window}, {force}",""],"nvim_win_del_var":["{window}, {name}",""],"nvim_win_get_buf":["{window}",""],"nvim_win_get_config":["{window}",""],"nvim_win_get_cursor":["{window}",""],"nvim_win_get_height":["{window}",""],"nvim_win_get_number":["{window}",""],"nvim_win_get_option":["{window}, {name}",""],"nvim_win_get_position":["{window}",""],"nvim_win_get_tabpage":["{window}",""],"nvim_win_get_var":["{window}, {name}",""],"nvim_win_get_width":["{window}",""],"nvim_win_is_valid":["{window}",""],"nvim_win_set_buf":["{window}, {buffer}",""],"nvim_win_set_config":["{window}, {config}",""],"nvim_win_set_cursor":["{window}, {pos}",""],"nvim_win_set_height":["{window}, {height}",""],"nvim_win_set_option":["{window}, {name}, {value}",""],"nvim_win_set_var":["{window}, {name}, {value}",""],"nvim_win_set_width":["{window}, {width}",""],"nvim_tabpage_del_var":["{tabpage}, {name}",""],"nvim_tabpage_get_number":["{tabpage}",""],"nvim_tabpage_get_var":["{tabpage}, {name}",""],"nvim_tabpage_get_win":["{tabpage}",""],"nvim_tabpage_is_valid":["{tabpage}",""],"nvim_tabpage_list_wins":["{tabpage}",""],"nvim_tabpage_set_var":["{tabpage}, {name}, {value}",""],"nvim_ui_attach":["{width}, {height}, {options}",""],"nvim_ui_detach":["",""],"nvim_ui_pum_set_height":["{height}",""],"nvim_ui_set_option":["{name}, {value}",""],"nvim_ui_try_resize":["{width}, {height}",""],"nvim_ui_try_resize_grid":["{grid}, {width}, {height}",""]},"documents":{"commands":{"range":["go to last line in {range}"],"!":["filter lines or execute an external command"],"!!":["repeat last \\":!\\" command"],"#":["same as \\":number\\""],"&":["repeat last \\":substitute\\""],"star":["execute contents of a register"],"<":["shift lines one \'shiftwidth\' left"],"=":["print the cursor line number"],">":["shift lines one \'shiftwidth\' right"],"@":["execute contents of a register"],"@@":["repeat the previous \\":@\\""],"Next":["go to previous file in the argument list"],"append":["append text"],"abbreviate":["enter abbreviation"],"abclear":["remove all abbreviations"],"aboveleft":["make split window appear left or above"],"all":["open a window for each file in the argument","\\t\\t\\t\\tlist"],"amenu":["enter new menu item for all modes"],"anoremenu":["enter a new menu for all modes that will not","\\t\\t\\t\\tbe remapped"],"args":["print the argument list"],"argadd":["add items to the argument list"],"argdelete":["delete items from the argument list"],"argedit":["add item to the argument list and edit it"],"argdo":["do a command on all items in the argument list"],"argglobal":["define the global argument list"],"arglocal":["define a local argument list"],"argument":["go to specific file in the argument list"],"ascii":["print ascii value of character under the cursor"],"autocmd":["enter or show autocommands"],"augroup":["select the autocommand group to use"],"aunmenu":["remove menu for all modes"],"buffer":["go to specific buffer in the buffer list"],"bNext":["go to previous buffer in the buffer list"],"ball":["open a window for each buffer in the buffer list"],"badd":["add buffer to the buffer list"],"bdelete":["remove a buffer from the buffer list"],"behave":["set mouse and selection behavior"],"belowright":["make split window appear right or below"],"bfirst":["go to first buffer in the buffer list"],"blast":["go to last buffer in the buffer list"],"bmodified":["go to next buffer in the buffer list that has","\\t\\t\\t\\tbeen modified"],"bnext":["go to next buffer in the buffer list"],"botright":["make split window appear at bottom or far right"],"bprevious":["go to previous buffer in the buffer list"],"brewind":["go to first buffer in the buffer list"],"break":["break out of while loop"],"breakadd":["add a debugger breakpoint"],"breakdel":["delete a debugger breakpoint"],"breaklist":["list debugger breakpoints"],"browse":["use file selection dialog"],"bufdo":["execute command in each listed buffer"],"buffers":["list all files in the buffer list"],"bunload":["unload a specific buffer"],"bwipeout":["really delete a buffer"],"change":["replace a line or series of lines"],"cNext":["go to previous error"],"cNfile":["go to last error in previous file"],"cabbrev":["like \\":abbreviate\\" but for Command-line mode"],"cabclear":["clear all abbreviations for Command-line mode"],"cabove":["go to error above current line"],"caddbuffer":["add errors from buffer"],"caddexpr":["add errors from expr"],"caddfile":["add error message to current quickfix list"],"call":["call a function"],"catch":["part of a :try command"],"cbelow":["go to error below current line"],"cbottom":["scroll to the bottom of the quickfix window"],"cbuffer":["parse error messages and jump to first error"],"cc":["go to specific error"],"cclose":["close quickfix window"],"cd":["change directory"],"cdo":["execute command in each valid error list entry"],"cfdo":["execute command in each file in error list"],"center":["format lines at the center"],"cexpr":["read errors from expr and jump to first"],"cfile":["read file with error messages and jump to first"],"cfirst":["go to the specified error, default first one"],"cgetbuffer":["get errors from buffer"],"cgetexpr":["get errors from expr"],"cgetfile":["read file with error messages"],"changes":["print the change list"],"chdir":["change directory"],"checkpath":["list included files"],"checktime":["check timestamp of loaded buffers"],"chistory":["list the error lists"],"clast":["go to the specified error, default last one"],"clearjumps":["clear the jump list"],"clist":["list all errors"],"close":["close current window"],"cmap":["like \\":map\\" but for Command-line mode"],"cmapclear":["clear all mappings for Command-line mode"],"cmenu":["add menu for Command-line mode"],"cnext":["go to next error"],"cnewer":["go to newer error list"],"cnfile":["go to first error in next file"],"cnoremap":["like \\":noremap\\" but for Command-line mode"],"cnoreabbrev":["like \\":noreabbrev\\" but for Command-line mode"],"cnoremenu":["like \\":noremenu\\" but for Command-line mode"],"copy":["copy lines"],"colder":["go to older error list"],"colorscheme":["load a specific color scheme"],"command":["create user-defined command"],"comclear":["clear all user-defined commands"],"compiler":["do settings for a specific compiler"],"continue":["go back to :while"],"confirm":["prompt user when confirmation required"],"const":["create a variable as a constant"],"copen":["open quickfix window"],"cprevious":["go to previous error"],"cpfile":["go to last error in previous file"],"cquit":["quit Vim with an error code"],"crewind":["go to the specified error, default first one"],"cscope":["execute cscope command"],"cstag":["use cscope to jump to a tag"],"cunmap":["like \\":unmap\\" but for Command-line mode"],"cunabbrev":["like \\":unabbrev\\" but for Command-line mode"],"cunmenu":["remove menu for Command-line mode"],"cwindow":["open or close quickfix window"],"delete":["delete lines"],"delmarks":["delete marks"],"debug":["run a command in debugging mode"],"debuggreedy":["read debug mode commands from normal input"],"delcommand":["delete user-defined command"],"delfunction":["delete a user function"],"diffupdate":["update \'diff\' buffers"],"diffget":["remove differences in current buffer"],"diffoff":["switch off diff mode"],"diffpatch":["apply a patch and show differences"],"diffput":["remove differences in other buffer"],"diffsplit":["show differences with another file"],"diffthis":["make current window a diff window"],"digraphs":["show or enter digraphs"],"display":["display registers"],"djump":["jump to #define"],"dl":["short for |:delete| with the \'l\' flag"],"del":["short for |:delete| with the \'l\' flag"],"dlist":["list #defines"],"doautocmd":["apply autocommands to current buffer"],"doautoall":["apply autocommands for all loaded buffers"],"dp":["short for |:delete| with the \'p\' flag"],"drop":["jump to window editing file or edit file in","\\t\\t\\t\\tcurrent window"],"dsearch":["list one #define"],"dsplit":["split window and jump to #define"],"edit":["edit a file"],"earlier":["go to older change, undo"],"echo":["echoes the result of expressions"],"echoerr":["like :echo, show like an error and use history"],"echohl":["set highlighting for echo commands"],"echomsg":["same as :echo, put message in history"],"echon":["same as :echo, but without <EOL>"],"else":["part of an :if command"],"elseif":["part of an :if command"],"emenu":["execute a menu by name"],"endif":["end previous :if"],"endfor":["end previous :for"],"endfunction":["end of a user function"],"endtry":["end previous :try"],"endwhile":["end previous :while"],"enew":["edit a new, unnamed buffer"],"ex":["same as \\":edit\\""],"execute":["execute result of expressions"],"exit":["same as \\":xit\\""],"exusage":["overview of Ex commands"],"file":["show or set the current file name"],"files":["list all files in the buffer list"],"filetype":["switch file type detection on/off"],"filter":["filter output of following command"],"find":["find file in \'path\' and edit it"],"finally":["part of a :try command"],"finish":["quit sourcing a Vim script"],"first":["go to the first file in the argument list"],"fold":["create a fold"],"foldclose":["close folds"],"folddoopen":["execute command on lines not in a closed fold"],"folddoclosed":["execute command on lines in a closed fold"],"foldopen":["open folds"],"for":["for loop"],"function":["define a user function"],"global":["execute commands for matching lines"],"goto":["go to byte in the buffer"],"grep":["run \'grepprg\' and jump to first match"],"grepadd":["like :grep, but append to current list"],"gui":["start the GUI"],"gvim":["start the GUI"],"hardcopy":["send text to the printer"],"help":["open a help window"],"helpclose":["close one help window"],"helpgrep":["like \\":grep\\" but searches help files"],"helptags":["generate help tags for a directory"],"highlight":["specify highlighting methods"],"hide":["hide current buffer for a command"],"history":["print a history list"],"insert":["insert text"],"iabbrev":["like \\":abbrev\\" but for Insert mode"],"iabclear":["like \\":abclear\\" but for Insert mode"],"if":["execute commands when condition met"],"ijump":["jump to definition of identifier"],"ilist":["list lines where identifier matches"],"imap":["like \\":map\\" but for Insert mode"],"imapclear":["like \\":mapclear\\" but for Insert mode"],"imenu":["add menu for Insert mode"],"inoremap":["like \\":noremap\\" but for Insert mode"],"inoreabbrev":["like \\":noreabbrev\\" but for Insert mode"],"inoremenu":["like \\":noremenu\\" but for Insert mode"],"intro":["print the introductory message"],"isearch":["list one line where identifier matches"],"isplit":["split window and jump to definition of","\\t\\t\\t\\tidentifier"],"iunmap":["like \\":unmap\\" but for Insert mode"],"iunabbrev":["like \\":unabbrev\\" but for Insert mode"],"iunmenu":["remove menu for Insert mode"],"join":["join lines"],"jumps":["print the jump list"],"k":["set a mark"],"keepalt":["following command keeps the alternate file"],"keepmarks":["following command keeps marks where they are"],"keepjumps":["following command keeps jumplist and marks"],"keeppatterns":["following command keeps search pattern history"],"lNext":["go to previous entry in location list"],"lNfile":["go to last entry in previous file"],"list":["print lines"],"labove":["go to location above current line"],"laddexpr":["add locations from expr"],"laddbuffer":["add locations from buffer"],"laddfile":["add locations to current location list"],"last":["go to the last file in the argument list"],"language":["set the language (locale)"],"later":["go to newer change, redo"],"lbelow":["go to location below current line"],"lbottom":["scroll to the bottom of the location window"],"lbuffer":["parse locations and jump to first location"],"lcd":["change directory locally"],"lchdir":["change directory locally"],"lclose":["close location window"],"lcscope":["like \\":cscope\\" but uses location list"],"ldo":["execute command in valid location list entries"],"lfdo":["execute command in each file in location list"],"left":["left align lines"],"leftabove":["make split window appear left or above"],"let":["assign a value to a variable or option"],"lexpr":["read locations from expr and jump to first"],"lfile":["read file with locations and jump to first"],"lfirst":["go to the specified location, default first one"],"lgetbuffer":["get locations from buffer"],"lgetexpr":["get locations from expr"],"lgetfile":["read file with locations"],"lgrep":["run \'grepprg\' and jump to first match"],"lgrepadd":["like :grep, but append to current list"],"lhelpgrep":["like \\":helpgrep\\" but uses location list"],"lhistory":["list the location lists"],"ll":["go to specific location"],"llast":["go to the specified location, default last one"],"llist":["list all locations"],"lmake":["execute external command \'makeprg\' and parse","\\t\\t\\t\\terror messages"],"lmap":["like \\":map!\\" but includes Lang-Arg mode"],"lmapclear":["like \\":mapclear!\\" but includes Lang-Arg mode"],"lnext":["go to next location"],"lnewer":["go to newer location list"],"lnfile":["go to first location in next file"],"lnoremap":["like \\":noremap!\\" but includes Lang-Arg mode"],"loadkeymap":["load the following keymaps until EOF"],"loadview":["load view for current window from a file"],"lockmarks":["following command keeps marks where they are"],"lockvar":["lock variables"],"lolder":["go to older location list"],"lopen":["open location window"],"lprevious":["go to previous location"],"lpfile":["go to last location in previous file"],"lrewind":["go to the specified location, default first one"],"ls":["list all buffers"],"ltag":["jump to tag and add matching tags to the","\\t\\t\\t\\tlocation list"],"lunmap":["like \\":unmap!\\" but includes Lang-Arg mode"],"lua":["execute |Lua| command"],"luado":["execute Lua command for each line"],"luafile":["execute |Lua| script file"],"lvimgrep":["search for pattern in files"],"lvimgrepadd":["like :vimgrep, but append to current list"],"lwindow":["open or close location window"],"move":["move lines"],"mark":["set a mark"],"make":["execute external command \'makeprg\' and parse","\\t\\t\\t\\terror messages"],"map":["show or enter a mapping"],"mapclear":["clear all mappings for Normal and Visual mode"],"marks":["list all marks"],"match":["define a match to highlight"],"menu":["enter a new menu item"],"menutranslate":["add a menu translation item"],"messages":["view previously displayed messages"],"mkexrc":["write current mappings and settings to a file"],"mksession":["write session info to a file"],"mkspell":["produce .spl spell file"],"mkvimrc":["write current mappings and settings to a file"],"mkview":["write view of current window to a file"],"mode":["show or change the screen mode"],"next":["go to next file in the argument list"],"new":["create a new empty window"],"nmap":["like \\":map\\" but for Normal mode"],"nmapclear":["clear all mappings for Normal mode"],"nmenu":["add menu for Normal mode"],"nnoremap":["like \\":noremap\\" but for Normal mode"],"nnoremenu":["like \\":noremenu\\" but for Normal mode"],"noautocmd":["following commands don\'t trigger autocommands"],"noremap":["enter a mapping that will not be remapped"],"nohlsearch":["suspend \'hlsearch\' highlighting"],"noreabbrev":["enter an abbreviation that will not be","\\t\\t\\t\\tremapped"],"noremenu":["enter a menu that will not be remapped"],"normal":["execute Normal mode commands"],"noswapfile":["following commands don\'t create a swap file"],"number":["print lines with line number"],"nunmap":["like \\":unmap\\" but for Normal mode"],"nunmenu":["remove menu for Normal mode"],"oldfiles":["list files that have marks in the |shada| file"],"omap":["like \\":map\\" but for Operator-pending mode"],"omapclear":["remove all mappings for Operator-pending mode"],"omenu":["add menu for Operator-pending mode"],"only":["close all windows except the current one"],"onoremap":["like \\":noremap\\" but for Operator-pending mode"],"onoremenu":["like \\":noremenu\\" but for Operator-pending mode"],"options":["open the options-window"],"ounmap":["like \\":unmap\\" but for Operator-pending mode"],"ounmenu":["remove menu for Operator-pending mode"],"ownsyntax":["set new local syntax highlight for this window"],"packadd":["add a plugin from \'packpath\'"],"packloadall":["load all packages under \'packpath\'"],"pclose":["close preview window"],"pedit":["edit file in the preview window"],"print":["print lines"],"profdel":["stop profiling a function or script"],"profile":["profiling functions and scripts"],"promptfind":["open GUI dialog for searching"],"promptrepl":["open GUI dialog for search/replace"],"pop":["jump to older entry in tag stack"],"popup":["popup a menu by name"],"ppop":["\\":pop\\" in preview window"],"preserve":["write all text to swap file"],"previous":["go to previous file in argument list"],"psearch":["like \\":ijump\\" but shows match in preview window"],"ptag":["show tag in preview window"],"ptNext":["|:tNext| in preview window"],"ptfirst":["|:trewind| in preview window"],"ptjump":["|:tjump| and show tag in preview window"],"ptlast":["|:tlast| in preview window"],"ptnext":["|:tnext| in preview window"],"ptprevious":["|:tprevious| in preview window"],"ptrewind":["|:trewind| in preview window"],"ptselect":["|:tselect| and show tag in preview window"],"put":["insert contents of register in the text"],"pwd":["print current directory"],"py3":["execute Python 3 command"],"python3":["same as :py3"],"py3do":["execute Python 3 command for each line"],"py3file":["execute Python 3 script file"],"python":["execute Python command"],"pydo":["execute Python command for each line"],"pyfile":["execute Python script file"],"pyx":["execute |python_x| command"],"pythonx":["same as :pyx"],"pyxdo":["execute |python_x| command for each line"],"pyxfile":["execute |python_x| script file"],"quit":["quit current window (when one window quit Vim)"],"quitall":["quit Vim"],"qall":["quit Vim"],"read":["read file into the text"],"recover":["recover a file from a swap file"],"redo":["redo one undone change"],"redir":["redirect messages to a file or register"],"redraw":["force a redraw of the display"],"redrawstatus":["force a redraw of the status line(s)"],"redrawtabline":["force a redraw of the tabline"],"registers":["display the contents of registers"],"resize":["change current window height"],"retab":["change tab size"],"return":["return from a user function"],"rewind":["go to the first file in the argument list"],"right":["right align text"],"rightbelow":["make split window appear right or below"],"rshada":["read from |shada| file"],"ruby":["execute Ruby command"],"rubydo":["execute Ruby command for each line"],"rubyfile":["execute Ruby script file"],"rundo":["read undo information from a file"],"runtime":["source vim scripts in \'runtimepath\'"],"substitute":["find and replace text"],"sNext":["split window and go to previous file in","\\t\\t\\t\\targument list"],"sandbox":["execute a command in the sandbox"],"sargument":["split window and go to specific file in","\\t\\t\\t\\targument list"],"sall":["open a window for each file in argument list"],"saveas":["save file under another name."],"sbuffer":["split window and go to specific file in the","\\t\\t\\t\\tbuffer list"],"sbNext":["split window and go to previous file in the","\\t\\t\\t\\tbuffer list"],"sball":["open a window for each file in the buffer list"],"sbfirst":["split window and go to first file in the","\\t\\t\\t\\tbuffer list"],"sblast":["split window and go to last file in buffer","\\t\\t\\t\\tlist"],"sbmodified":["split window and go to modified file in the","\\t\\t\\t\\tbuffer list"],"sbnext":["split window and go to next file in the buffer","\\t\\t\\t\\tlist"],"sbprevious":["split window and go to previous file in the","\\t\\t\\t\\tbuffer list"],"sbrewind":["split window and go to first file in the","\\t\\t\\t\\tbuffer list"],"scriptnames":["list names of all sourced Vim scripts"],"scriptencoding":["encoding used in sourced Vim script"],"scriptversion":["version of Vim script used"],"scscope":["split window and execute cscope command"],"set":["show or set options"],"setfiletype":["set \'filetype\', unless it was set already"],"setglobal":["show global values of options"],"setlocal":["show or set options locally"],"sfind":["split current window and edit file in \'path\'"],"sfirst":["split window and go to first file in the","\\t\\t\\t\\targument list"],"sign":["manipulate signs"],"silent":["run a command silently"],"sleep":["do nothing for a few seconds"],"slast":["split window and go to last file in the","\\t\\t\\t\\targument list"],"smagic":[":substitute with \'magic\'"],"smap":["like \\":map\\" but for Select mode"],"smapclear":["remove all mappings for Select mode"],"smenu":["add menu for Select mode"],"snext":["split window and go to next file in the","\\t\\t\\t\\targument list"],"snomagic":[":substitute with \'nomagic\'"],"snoremap":["like \\":noremap\\" but for Select mode"],"snoremenu":["like \\":noremenu\\" but for Select mode"],"sort":["sort lines"],"source":["read Vim or Ex commands from a file"],"spelldump":["split window and fill with all correct words"],"spellgood":["add good word for spelling"],"spellinfo":["show info about loaded spell files"],"spellrare":["add rare word for spelling"],"spellrepall":["replace all bad words like last |z=|"],"spellundo":["remove good or bad word"],"spellwrong":["add spelling mistake"],"split":["split current window"],"sprevious":["split window and go to previous file in the","\\t\\t\\t\\targument list"],"srewind":["split window and go to first file in the","\\t\\t\\t\\targument list"],"stop":["suspend the editor or escape to a shell"],"stag":["split window and jump to a tag"],"startinsert":["start Insert mode"],"startgreplace":["start Virtual Replace mode"],"startreplace":["start Replace mode"],"stopinsert":["stop Insert mode"],"stjump":["do \\":tjump\\" and split window"],"stselect":["do \\":tselect\\" and split window"],"sunhide":["same as \\":unhide\\""],"sunmap":["like \\":unmap\\" but for Select mode"],"sunmenu":["remove menu for Select mode"],"suspend":["same as \\":stop\\""],"sview":["split window and edit file read-only"],"swapname":["show the name of the current swap file"],"syntax":["syntax highlighting"],"syntime":["measure syntax highlighting speed"],"syncbind":["sync scroll binding"],"t":["same as \\":copy\\""],"tNext":["jump to previous matching tag"],"tabNext":["go to previous tab page"],"tabclose":["close current tab page"],"tabdo":["execute command in each tab page"],"tabedit":["edit a file in a new tab page"],"tabfind":["find file in \'path\', edit it in a new tab page"],"tabfirst":["go to first tab page"],"tablast":["go to last tab page"],"tabmove":["move tab page to other position"],"tabnew":["edit a file in a new tab page"],"tabnext":["go to next tab page"],"tabonly":["close all tab pages except the current one"],"tabprevious":["go to previous tab page"],"tabrewind":["go to first tab page"],"tabs":["list the tab pages and what they contain"],"tab":["create new tab when opening new window"],"tag":["jump to tag"],"tags":["show the contents of the tag stack"],"tcd":["change directory for tab page"],"tchdir":["change directory for tab page"],"terminal":["open a terminal buffer"],"tfirst":["jump to first matching tag"],"throw":["throw an exception"],"tjump":["like \\":tselect\\", but jump directly when there","\\t\\t\\t\\tis only one match"],"tlast":["jump to last matching tag"],"tmapclear":["remove all mappings for Terminal-Job mode"],"tmap":["like \\":map\\" but for Terminal-Job mode"],"tmenu":["define menu tooltip"],"tnext":["jump to next matching tag"],"tnoremap":["like \\":noremap\\" but for Terminal-Job mode"],"topleft":["make split window appear at top or far left"],"tprevious":["jump to previous matching tag"],"trewind":["jump to first matching tag"],"try":["execute commands, abort on error or exception"],"tselect":["list matching tags and select one"],"tunmap":["like \\":unmap\\" but for Terminal-Job mode"],"tunmenu":["remove menu tooltip"],"undo":["undo last change(s)"],"undojoin":["join next change with previous undo block"],"undolist":["list leafs of the undo tree"],"unabbreviate":["remove abbreviation"],"unhide":["open a window for each loaded file in the","\\t\\t\\t\\tbuffer list"],"unlet":["delete variable"],"unlockvar":["unlock variables"],"unmap":["remove mapping"],"unmenu":["remove menu"],"unsilent":["run a command not silently"],"update":["write buffer if modified"],"vglobal":["execute commands for not matching lines"],"version":["print version number and other info"],"verbose":["execute command with \'verbose\' set"],"vertical":["make following command split vertically"],"vimgrep":["search for pattern in files"],"vimgrepadd":["like :vimgrep, but append to current list"],"visual":["same as \\":edit\\", but turns off \\"Ex\\" mode"],"viusage":["overview of Normal mode commands"],"view":["edit a file read-only"],"vmap":["like \\":map\\" but for Visual+Select mode"],"vmapclear":["remove all mappings for Visual+Select mode"],"vmenu":["add menu for Visual+Select mode"],"vnew":["create a new empty window, vertically split"],"vnoremap":["like \\":noremap\\" but for Visual+Select mode"],"vnoremenu":["like \\":noremenu\\" but for Visual+Select mode"],"vsplit":["split current window vertically"],"vunmap":["like \\":unmap\\" but for Visual+Select mode"],"vunmenu":["remove menu for Visual+Select mode"],"windo":["execute command in each window"],"write":["write to a file"],"wNext":["write to a file and go to previous file in","\\t\\t\\t\\targument list"],"wall":["write all (changed) buffers"],"while":["execute loop for as long as condition met"],"winsize":["get or set window size (obsolete)"],"wincmd":["execute a Window (CTRL-W) command"],"winpos":["get or set window position"],"wnext":["write to a file and go to next file in","\\t\\t\\t\\targument list"],"wprevious":["write to a file and go to previous file in","\\t\\t\\t\\targument list"],"wq":["write to a file and quit window or Vim"],"wqall":["write all changed buffers and quit Vim"],"wshada":["write to ShaDa file"],"wundo":["write undo information to a file"],"xit":["write if buffer changed and quit window or Vim"],"xall":["same as \\":wqall\\""],"xmapclear":["remove all mappings for Visual mode"],"xmap":["like \\":map\\" but for Visual mode"],"xmenu":["add menu for Visual mode"],"xnoremap":["like \\":noremap\\" but for Visual mode"],"xnoremenu":["like \\":noremenu\\" but for Visual mode"],"xunmap":["like \\":unmap\\" but for Visual mode"],"xunmenu":["remove menu for Visual mode"],"yank":["yank lines into a register"],"z":["print some lines"],"~":["repeat last \\":substitute\\""],"Print":["print lines"],"X":["ask for encryption key"],"cafter":["go to error after current cursor"],"cbefore":["go to error before current cursor"],"fixdel":["set key code of <Del>"],"helpfind":["dialog to open a help window"],"lafter":["go to location after current cursor"],"lbefore":["go to location before current cursor"],"mzscheme":["execute MzScheme command"],"mzfile":["execute MzScheme script file"],"nbclose":["close the current Netbeans session"],"nbkey":["pass a key to Netbeans"],"nbstart":["start a new Netbeans session"],"open":["start open mode (not implemented)"],"perl":["execute Perl command"],"perldo":["execute Perl command for each line"],"rviminfo":["read from viminfo file"],"shell":["escape to a shell"],"simalt":["Win32 GUI: simulate Windows ALT key"],"smile":["make the user happy"],"tcl":["execute Tcl command"],"tcldo":["execute Tcl command for each line"],"tclfile":["execute Tcl script file"],"tearoff":["tear-off a menu"],"tlmenu":["add menu for Terminal-Job mode"],"tlnoremenu":["like \\":noremenu\\" but for Terminal-Job mode"],"tlunmenu":["remove menu for Terminal-Job mode"],"wviminfo":["write to viminfo file"],"xrestore":["restores the X server connection"]},"functions":{"abs":["\\t\\tReturn the absolute value of {expr}. When {expr} evaluates to","\\t\\ta |Float| abs() returns a |Float|. When {expr} can be","\\t\\tconverted to a |Number| abs() returns a |Number|. Otherwise","\\t\\tabs() gives an error message and returns -1.","\\t\\tExamples: >","\\t\\t\\techo abs(1.456)","<\\t\\t\\t1.456 >","\\t\\t\\techo abs(-5.456)","<\\t\\t\\t5.456 >","\\t\\t\\techo abs(-4)","<\\t\\t\\t4",""],"acos":["\\t\\tReturn the arc cosine of {expr} measured in radians, as a","\\t\\t|Float| in the range of [0, pi].","\\t\\t{expr} must evaluate to a |Float| or a |Number| in the range","\\t\\t[-1, 1].","\\t\\tExamples: >","\\t\\t\\t:echo acos(0)","<\\t\\t\\t1.570796 >","\\t\\t\\t:echo acos(-0.5)","<\\t\\t\\t2.094395",""],"add":["\\t\\tAppend the item {expr} to |List| {list}. Returns the","\\t\\tresulting |List|. Examples: >","\\t\\t\\t:let alist = add([1, 2, 3], item)","\\t\\t\\t:call add(mylist, \\"woodstock\\")","<\\t\\tNote that when {expr} is a |List| it is appended as a single","\\t\\titem. Use |extend()| to concatenate |Lists|.","\\t\\tUse |insert()| to add an item at another position.",""],"and":["\\t\\tBitwise AND on the two arguments. The arguments are converted","\\t\\tto a number. A List, Dict or Float argument causes an error.","\\t\\tExample: >","\\t\\t\\t:let flag = and(bits, 0x80)"],"api_info":["\\t\\tReturns Dictionary of |api-metadata|.","","\\t\\tView it in a nice human-readable format: >","\\t\\t :lua print(vim.inspect(vim.fn.api_info()))"],"append":["\\t\\tWhen {text} is a |List|: Append each item of the |List| as a","\\t\\ttext line below line {lnum} in the current buffer.","\\t\\tOtherwise append {text} as one text line below line {lnum} in","\\t\\tthe current buffer.","\\t\\t{lnum} can be zero to insert a line before the first one.","\\t\\tReturns 1 for failure ({lnum} out of range or out of memory),","\\t\\t0 for success. Example: >","\\t\\t\\t:let failed = append(line(\'$\'), \\"# THE END\\")","\\t\\t\\t:let failed = append(0, [\\"Chapter 1\\", \\"the beginning\\"])"],"appendbufline":["\\t\\tLike |append()| but append the text in buffer {expr}.","","\\t\\tFor the use of {expr}, see |bufname()|.","","\\t\\t{lnum} is used like with |append()|. Note that using |line()|","\\t\\twould use the current buffer, not the one appending to.","\\t\\tUse \\"$\\" to append at the end of the buffer.","","\\t\\tOn success 0 is returned, on failure 1 is returned.","","\\t\\tIf {expr} is not a valid buffer or {lnum} is not valid, an","\\t\\terror message is given. Example: >","\\t\\t\\t:let failed = appendbufline(13, 0, \\"# THE START\\")","<"],"argc":["\\t\\tThe result is the number of files in the argument list. See","\\t\\t|arglist|.","\\t\\tIf {winid} is not supplied, the argument list of the current","\\t\\twindow is used.","\\t\\tIf {winid} is -1, the global argument list is used.","\\t\\tOtherwise {winid} specifies the window of which the argument","\\t\\tlist is used: either the window number or the window ID.","\\t\\tReturns -1 if the {winid} argument is invalid.",""],"argidx":["\\t\\tthe first file. argc() - 1 is the last one. See |arglist|.",""],"arglistid":["\\t\\tReturn the argument list ID. This is a number which","\\t\\tidentifies the argument list being used. Zero is used for the","\\t\\tglobal argument list. See |arglist|.","\\t\\tReturns -1 if the arguments are invalid.","","\\t\\tWithout arguments use the current window.","\\t\\tWith {winnr} only use this window in the current tab page.","\\t\\tWith {winnr} and {tabnr} use the window in the specified tab","\\t\\tpage.","\\t\\t{winnr} can be the window number or the |window-ID|.",""],"argv":["\\t\\tThe result is the {nr}th file in the argument list. See","\\t\\t|arglist|. \\"argv(0)\\" is the first one. Example: >","\\t:let i = 0","\\t:while i < argc()","\\t: let f = escape(fnameescape(argv(i)), \'.\')","\\t: exe \'amenu Arg.\' . f . \' :e \' . f . \'<CR>\'","\\t: let i = i + 1","\\t:endwhile","<\\t\\tWithout the {nr} argument, or when {nr} is -1, a |List| with","\\t\\tthe whole |arglist| is returned.","","\\t\\tThe {winid} argument specifies the window ID, see |argc()|."],"assert_beeps":["\\t\\tRun {cmd} and add an error message to |v:errors| if it does","\\t\\tNOT produce a beep or visual bell.","\\t\\tAlso see |assert_fails()| and |assert-return|.",""],"assert_equal":["\\t\\tWhen {expected} and {actual} are not equal an error message is","\\t\\tadded to |v:errors| and 1 is returned. Otherwise zero is","\\t\\treturned |assert-return|.","\\t\\tThere is no automatic conversion, the String \\"4\\" is different","\\t\\tfrom the Number 4. And the number 4 is different from the","\\t\\tFloat 4.0. The value of \'ignorecase\' is not used here, case","\\t\\talways matters.","\\t\\tWhen {msg} is omitted an error in the form \\"Expected","\\t\\t{expected} but got {actual}\\" is produced.","\\t\\tExample: >","\\tassert_equal(\'foo\', \'bar\')","<\\t\\tWill result in a string to be added to |v:errors|:","\\ttest.vim line 12: Expected \'foo\' but got \'bar\' ~",""],"assert_equalfile":["\\t\\tWhen the files {fname-one} and {fname-two} do not contain","\\t\\texactly the same text an error message is added to |v:errors|.","\\t\\tAlso see |assert-return|.","\\t\\tWhen {fname-one} or {fname-two} does not exist the error will","\\t\\tmention that."],"assert_exception":["\\t\\tWhen v:exception does not contain the string {error} an error","\\t\\tmessage is added to |v:errors|. Also see |assert-return|.","\\t\\tThis can be used to assert that a command throws an exception.","\\t\\tUsing the error number, followed by a colon, avoids problems","\\t\\twith translations: >","\\t\\t\\ttry","\\t\\t\\t commandthatfails","\\t\\t\\t call assert_false(1, \'command should have failed\')","\\t\\t\\tcatch","\\t\\t\\t call assert_exception(\'E492:\')","\\t\\t\\tendtry"],"assert_fails":["\\t\\tRun {cmd} and add an error message to |v:errors| if it does","\\t\\tNOT produce an error. Also see |assert-return|.","\\t\\tWhen {error} is given it must match in |v:errmsg|.","\\t\\tNote that beeping is not considered an error, and some failing","\\t\\tcommands only beep. Use |assert_beeps()| for those."],"assert_false":["\\t\\tWhen {actual} is not false an error message is added to","\\t\\t|v:errors|, like with |assert_equal()|.","\\t\\tAlso see |assert-return|.","\\t\\tA value is false when it is zero or |v:false|. When \\"{actual}\\"","\\t\\tis not a number or |v:false| the assert fails.","\\t\\tWhen {msg} is omitted an error in the form","\\t\\t\\"Expected False but got {actual}\\" is produced."],"assert_inrange":["\\t\\tThis asserts number and |Float| values. When {actual} is lower","\\t\\tthan {lower} or higher than {upper} an error message is added","\\t\\tto |v:errors|. Also see |assert-return|.","\\t\\tWhen {msg} is omitted an error in the form","\\t\\t\\"Expected range {lower} - {upper}, but got {actual}\\" is","\\t\\tproduced.",""],"assert_match":["\\t\\tWhen {pattern} does not match {actual} an error message is","\\t\\tadded to |v:errors|. Also see |assert-return|.","","\\t\\t{pattern} is used as with |=~|: The matching is always done","\\t\\tlike \'magic\' was set and \'cpoptions\' is empty, no matter what","\\t\\tthe actual value of \'magic\' or \'cpoptions\' is.","","\\t\\t{actual} is used as a string, automatic conversion applies.","\\t\\tUse \\"^\\" and \\"$\\" to match with the start and end of the text.","\\t\\tUse both to match the whole text.","","\\t\\tWhen {msg} is omitted an error in the form","\\t\\t\\"Pattern {pattern} does not match {actual}\\" is produced.","\\t\\tExample: >","\\tassert_match(\'^f.*o$\', \'foobar\')","<\\t\\tWill result in a string to be added to |v:errors|:","\\ttest.vim line 12: Pattern \'^f.*o$\' does not match \'foobar\' ~",""],"assert_notequal":["\\t\\tThe opposite of `assert_equal()`: add an error message to","\\t\\t|v:errors| when {expected} and {actual} are equal.","\\t\\tAlso see |assert-return|.",""],"assert_notmatch":["\\t\\tThe opposite of `assert_match()`: add an error message to","\\t\\t|v:errors| when {pattern} matches {actual}.","\\t\\tAlso see |assert-return|."],"assert_report":["\\t\\tReport a test failure directly, using {msg}.","\\t\\tAlways returns one."],"assert_true":["\\t\\tWhen {actual} is not true an error message is added to","\\t\\t|v:errors|, like with |assert_equal()|.","\\t\\tAlso see |assert-return|.","\\t\\tA value is |TRUE| when it is a non-zero number or |v:true|.","\\t\\tWhen {actual} is not a number or |v:true| the assert fails.","\\t\\tWhen {msg} is omitted an error in the form \\"Expected True but","\\t\\tgot {actual}\\" is produced."],"asin":["\\t\\tReturn the arc sine of {expr} measured in radians, as a |Float|","\\t\\tin the range of [-pi/2, pi/2].","\\t\\t{expr} must evaluate to a |Float| or a |Number| in the range","\\t\\t[-1, 1].","\\t\\tExamples: >","\\t\\t\\t:echo asin(0.8)","<\\t\\t\\t0.927295 >","\\t\\t\\t:echo asin(-0.5)","<\\t\\t\\t-0.523599",""],"atan":["\\t\\tReturn the principal value of the arc tangent of {expr}, in","\\t\\tthe range [-pi/2, +pi/2] radians, as a |Float|.","\\t\\t{expr} must evaluate to a |Float| or a |Number|.","\\t\\tExamples: >","\\t\\t\\t:echo atan(100)","<\\t\\t\\t1.560797 >","\\t\\t\\t:echo atan(-4.01)","<\\t\\t\\t-1.326405",""],"atan2":["\\t\\tReturn the arc tangent of {expr1} / {expr2}, measured in","\\t\\tradians, as a |Float| in the range [-pi, pi].","\\t\\t{expr1} and {expr2} must evaluate to a |Float| or a |Number|.","\\t\\tExamples: >","\\t\\t\\t:echo atan2(-1, 1)","<\\t\\t\\t-0.785398 >","\\t\\t\\t:echo atan2(1, -1)","<\\t\\t\\t2.356194","",""],"browse":["\\t\\tPut up a file requester. This only works when \\"has(\\"browse\\")\\"","\\t\\treturns |TRUE| (only in some GUI versions).","\\t\\tThe input fields are:","\\t\\t {save}\\twhen |TRUE|, select file to write","\\t\\t {title}\\ttitle for the requester","\\t\\t {initdir}\\tdirectory to start browsing in","\\t\\t {default}\\tdefault file name","\\t\\tWhen the \\"Cancel\\" button is hit, something went wrong, or","\\t\\tbrowsing is not possible, an empty string is returned.",""],"browsedir":["\\t\\tPut up a directory requester. This only works when","\\t\\t\\"has(\\"browse\\")\\" returns |TRUE| (only in some GUI versions).","\\t\\tOn systems where a directory browser is not supported a file","\\t\\tbrowser is used. In that case: select a file in the directory","\\t\\tto be used.","\\t\\tThe input fields are:","\\t\\t {title}\\ttitle for the requester","\\t\\t {initdir}\\tdirectory to start browsing in","\\t\\tWhen the \\"Cancel\\" button is hit, something went wrong, or","\\t\\tbrowsing is not possible, an empty string is returned."],"bufadd":["\\t\\tAdd a buffer to the buffer list with {name}.","\\t\\tIf a buffer for file {name} already exists, return that buffer","\\t\\tnumber. Otherwise return the buffer number of the newly","\\t\\tcreated buffer. When {name} is an empty string then a new","\\t\\tbuffer is always created.","\\t\\tThe buffer will not have\' \'buflisted\' set."],"bufexists":["\\t\\tThe result is a Number, which is |TRUE| if a buffer called","\\t\\t{expr} exists.","\\t\\tIf the {expr} argument is a number, buffer numbers are used.","\\t\\tNumber zero is the alternate buffer for the current window.","","\\t\\tIf the {expr} argument is a string it must match a buffer name","\\t\\texactly. The name can be:","\\t\\t- Relative to the current directory.","\\t\\t- A full path.","\\t\\t- The name of a buffer with \'buftype\' set to \\"nofile\\".","\\t\\t- A URL name.","\\t\\tUnlisted buffers will be found.","\\t\\tNote that help files are listed by their short name in the","\\t\\toutput of |:buffers|, but bufexists() requires using their","\\t\\tlong name to be able to find them.","\\t\\tbufexists() may report a buffer exists, but to use the name","\\t\\twith a |:buffer| command you may need to use |expand()|. Esp","\\t\\tfor MS-Windows 8.3 names in the form \\"c:\\\\DOCUME~1\\"","\\t\\tUse \\"bufexists(0)\\" to test for the existence of an alternate","\\t\\tfile name."],"buflisted":["\\t\\tThe result is a Number, which is |TRUE| if a buffer called","\\t\\t{expr} exists and is listed (has the \'buflisted\' option set).","\\t\\tThe {expr} argument is used like with |bufexists()|."],"bufload":["\\t\\tEnsure the buffer {expr} is loaded. When the buffer name","\\t\\trefers to an existing file then the file is read. Otherwise","\\t\\tthe buffer will be empty. If the buffer was already loaded","\\t\\tthen there is no change.","\\t\\tIf there is an existing swap file for the file of the buffer,","\\t\\tthere will be no dialog, the buffer will be loaded anyway.","\\t\\tThe {expr} argument is used like with |bufexists()|."],"bufloaded":["\\t\\tThe result is a Number, which is |TRUE| if a buffer called","\\t\\t{expr} exists and is loaded (shown in a window or hidden).","\\t\\tThe {expr} argument is used like with |bufexists()|."],"bufname":["\\t\\tThe result is the name of a buffer, as it is displayed by the","\\t\\t\\":ls\\" command.","+\\t\\tIf {expr} is omitted the current buffer is used.","\\t\\tIf {expr} is a Number, that buffer number\'s name is given.","\\t\\tNumber zero is the alternate buffer for the current window.","\\t\\tIf {expr} is a String, it is used as a |file-pattern| to match","\\t\\twith the buffer names. This is always done like \'magic\' is","\\t\\tset and \'cpoptions\' is empty. When there is more than one","\\t\\tmatch an empty string is returned.","\\t\\t\\"\\" or \\"%\\" can be used for the current buffer, \\"#\\" for the","\\t\\talternate buffer.","\\t\\tA full match is preferred, otherwise a match at the start, end","\\t\\tor middle of the buffer name is accepted. If you only want a","\\t\\tfull match then put \\"^\\" at the start and \\"$\\" at the end of the","\\t\\tpattern.","\\t\\tListed buffers are found first. If there is a single match","\\t\\twith a listed buffer, that one is returned. Next unlisted","\\t\\tbuffers are searched for.","\\t\\tIf the {expr} is a String, but you want to use it as a buffer","\\t\\tnumber, force it to be a Number by adding zero to it: >","\\t\\t\\t:echo bufname(\\"3\\" + 0)","<\\t\\tIf the buffer doesn\'t exist, or doesn\'t have a name, an empty","\\t\\tstring is returned. >","\\tbufname(\\"#\\")\\t\\talternate buffer name","\\tbufname(3)\\t\\tname of buffer 3","\\tbufname(\\"%\\")\\t\\tname of current buffer","\\tbufname(\\"file2\\")\\tname of buffer where \\"file2\\" matches.",""],"bufnr":["\\t\\tThe result is the number of a buffer, as it is displayed by","\\t\\tthe \\":ls\\" command. For the use of {expr}, see |bufname()|","\\t\\tabove.","\\t\\tIf the buffer doesn\'t exist, -1 is returned. Or, if the","\\t\\t{create} argument is present and not zero, a new, unlisted,","\\t\\tbuffer is created and its number is returned.","\\t\\tbufnr(\\"$\\") is the last buffer: >","\\t\\t\\t:let last_buffer = bufnr(\\"$\\")","<\\t\\tThe result is a Number, which is the highest buffer number","\\t\\tof existing buffers. Note that not all buffers with a smaller","\\t\\tnumber necessarily exist, because \\":bwipeout\\" may have removed","\\t\\tthem. Use bufexists() to test for the existence of a buffer."],"bufwinid":["\\t\\tThe result is a Number, which is the |window-ID| of the first","\\t\\twindow associated with buffer {expr}. For the use of {expr},","\\t\\tsee |bufname()| above. If buffer {expr} doesn\'t exist or","\\t\\tthere is no such window, -1 is returned. Example: >","","\\techo \\"A window containing buffer 1 is \\" . (bufwinid(1))","<","\\t\\tOnly deals with the current tab page."],"bufwinnr":["\\t\\tThe result is a Number, which is the number of the first","\\t\\twindow associated with buffer {expr}. For the use of {expr},","\\t\\tsee |bufname()| above. If buffer {expr} doesn\'t exist or","\\t\\tthere is no such window, -1 is returned. Example: >","","\\techo \\"A window containing buffer 1 is \\" . (bufwinnr(1))","","<\\t\\tThe number can be used with |CTRL-W_w| and \\":wincmd w\\"","\\t\\t|:wincmd|.","\\t\\tOnly deals with the current tab page.",""],"byte2line":["\\t\\tReturn the line number that contains the character at byte","\\t\\tcount {byte} in the current buffer. This includes the","\\t\\tend-of-line character, depending on the \'fileformat\' option","\\t\\tfor the current buffer. The first character has byte count","\\t\\tone.","\\t\\tAlso see |line2byte()|, |go| and |:goto|."],"byteidx":["\\t\\tReturn byte index of the {nr}\'th character in the string","\\t\\t{expr}. Use zero for the first character, it returns zero.","\\t\\tThis function is only useful when there are multibyte","\\t\\tcharacters, otherwise the returned value is equal to {nr}.","\\t\\tComposing characters are not counted separately, their byte","\\t\\tlength is added to the preceding base character. See","\\t\\t|byteidxcomp()| below for counting composing characters","\\t\\tseparately.","\\t\\tExample : >","\\t\\t\\techo matchstr(str, \\".\\", byteidx(str, 3))","<\\t\\twill display the fourth character. Another way to do the","\\t\\tsame: >","\\t\\t\\tlet s = strpart(str, byteidx(str, 3))","\\t\\t\\techo strpart(s, 0, byteidx(s, 1))","<\\t\\tAlso see |strgetchar()| and |strcharpart()|.","","\\t\\tIf there are less than {nr} characters -1 is returned.","\\t\\tIf there are exactly {nr} characters the length of the string","\\t\\tin bytes is returned."],"byteidxcomp":["\\t\\tLike byteidx(), except that a composing character is counted","\\t\\tas a separate character. Example: >","\\t\\t\\tlet s = \'e\' . nr2char(0x301)","\\t\\t\\techo byteidx(s, 1)","\\t\\t\\techo byteidxcomp(s, 1)","\\t\\t\\techo byteidxcomp(s, 2)","<\\t\\tThe first and third echo result in 3 (\'e\' plus composing","\\t\\tcharacter is 3 bytes), the second echo results in 1 (\'e\' is","\\t\\tone byte)."],"call":["\\t\\tCall function {func} with the items in |List| {arglist} as","\\t\\targuments.","\\t\\t{func} can either be a |Funcref| or the name of a function.","\\t\\ta:firstline and a:lastline are set to the cursor line.","\\t\\tReturns the return value of the called function.","\\t\\t{dict} is for functions with the \\"dict\\" attribute. It will be","\\t\\tused to set the local variable \\"self\\". |Dictionary-function|"],"ceil":["\\t\\tReturn the smallest integral value greater than or equal to","\\t\\t{expr} as a |Float| (round up).","\\t\\t{expr} must evaluate to a |Float| or a |Number|.","\\t\\tExamples: >","\\t\\t\\techo ceil(1.456)","<\\t\\t\\t2.0 >","\\t\\t\\techo ceil(-5.456)","<\\t\\t\\t-5.0 >","\\t\\t\\techo ceil(4.0)","<\\t\\t\\t4.0"],"changenr":["\\t\\tReturn the number of the most recent change. This is the same","\\t\\tnumber as what is displayed with |:undolist| and can be used","\\t\\twith the |:undo| command.","\\t\\tWhen a change was made it is the number of that change. After","\\t\\tredo it is the number of the redone change. After undo it is","\\t\\tone less than the number of the undone change."],"chanclose":["\\t\\tClose a channel or a specific stream associated with it.","\\t\\tFor a job, {stream} can be one of \\"stdin\\", \\"stdout\\",","\\t\\t\\"stderr\\" or \\"rpc\\" (closes stdin/stdout for a job started","\\t\\twith `\\"rpc\\":v:true`) If {stream} is omitted, all streams","\\t\\tare closed. If the channel is a pty, this will then close the","\\t\\tpty master, sending SIGHUP to the job process.","\\t\\tFor a socket, there is only one stream, and {stream} should be","\\t\\tommited."],"chansend":["\\t\\tSend data to channel {id}. For a job, it writes it to the","\\t\\tstdin of the process. For the stdio channel |channel-stdio|,","\\t\\tit writes to Nvim\'s stdout. Returns the number of bytes","\\t\\twritten if the write succeeded, 0 otherwise.","\\t\\tSee |channel-bytes| for more information.","","\\t\\t{data} may be a string, string convertible, or a list. If","\\t\\t{data} is a list, the items will be joined by newlines; any","\\t\\tnewlines in an item will be sent as NUL. To send a final","\\t\\tnewline, include a final empty string. Example: >","\\t\\t\\t:call chansend(id, [\\"abc\\", \\"123\\\\n456\\", \\"\\"])","< \\t\\twill send \\"abc<NL>123<NUL>456<NL>\\".","","\\t\\tchansend() writes raw data, not RPC messages. If the channel","\\t\\twas created with `\\"rpc\\":v:true` then the channel expects RPC","\\t\\tmessages, use |rpcnotify()| and |rpcrequest()| instead.",""],"char2nr":["\\t\\tReturn number value of the first char in {expr}. Examples: >","\\t\\t\\tchar2nr(\\" \\")\\t\\treturns 32","\\t\\t\\tchar2nr(\\"ABC\\")\\t\\treturns 65","\\t\\t\\tchar2nr(\\"á\\")\\t\\treturns 225","\\t\\t\\tchar2nr(\\"á\\"[0])\\t\\treturns 195","\\t\\t\\tchar2nr(\\"\\\\<M-x>\\")\\treturns 128","<\\t\\tNon-ASCII characters are always treated as UTF-8 characters.","\\t\\t{utf8} is ignored, it exists only for backwards-compatibility.","\\t\\tA combining character is a separate character.","\\t\\t|nr2char()| does the opposite."],"cindent":["\\t\\tGet the amount of indent for line {lnum} according the C","\\t\\tindenting rules, as with \'cindent\'.","\\t\\tThe indent is counted in spaces, the value of \'tabstop\' is","\\t\\trelevant. {lnum} is used just like in |getline()|.","\\t\\tWhen {lnum} is invalid -1 is returned.","\\t\\tSee |C-indenting|."],"clearmatches":["\\t\\tClears all matches previously defined for the current window","\\t\\tby |matchadd()| and the |:match| commands.",""],"col":["\\t\\tposition given with {expr}. The accepted positions are:","\\t\\t .\\t the cursor position","\\t\\t $\\t the end of the cursor line (the result is the","\\t\\t\\t number of bytes in the cursor line plus one)","\\t\\t \'x\\t position of mark x (if the mark is not set, 0 is","\\t\\t\\t returned)","\\t\\t v In Visual mode: the start of the Visual area (the","\\t\\t\\t cursor is the end). When not in Visual mode","\\t\\t\\t returns the cursor position. Differs from |\'<| in","\\t\\t\\t that it\'s updated right away.","\\t\\tAdditionally {expr} can be [lnum, col]: a |List| with the line","\\t\\tand column number. Most useful when the column is \\"$\\", to get","\\t\\tthe last column of a specific line. When \\"lnum\\" or \\"col\\" is","\\t\\tout of range then col() returns zero.","\\t\\tTo get the line number use |line()|. To get both use","\\t\\t|getpos()|.","\\t\\tFor the screen column position use |virtcol()|.","\\t\\tNote that only marks in the current file can be used.","\\t\\tExamples: >","\\t\\t\\tcol(\\".\\")\\t\\tcolumn of cursor","\\t\\t\\tcol(\\"$\\")\\t\\tlength of cursor line plus one","\\t\\t\\tcol(\\"\'t\\")\\t\\tcolumn of mark t","\\t\\t\\tcol(\\"\'\\" . markname)\\tcolumn of mark markname","<\\t\\tThe first column is 1. 0 is returned for an error.","\\t\\tFor an uppercase mark the column may actually be in another","\\t\\tbuffer.","\\t\\tFor the cursor position, when \'virtualedit\' is active, the","\\t\\tcolumn is one higher if the cursor is after the end of the","\\t\\tline. This can be used to obtain the column in Insert mode: >","\\t\\t\\t:imap <F2> <C-O>:let save_ve = &ve<CR>","\\t\\t\\t\\t\\\\<C-O>:set ve=all<CR>","\\t\\t\\t\\t\\\\<C-O>:echo col(\\".\\") . \\"\\\\n\\" <Bar>","\\t\\t\\t\\t\\\\let &ve = save_ve<CR>","<"],"complete":["\\t\\tSet the matches for Insert mode completion.","\\t\\tCan only be used in Insert mode. You need to use a mapping","\\t\\twith CTRL-R = (see |i_CTRL-R|). It does not work after CTRL-O","\\t\\tor with an expression mapping.","\\t\\t{startcol} is the byte offset in the line where the completed","\\t\\ttext start. The text up to the cursor is the original text","\\t\\tthat will be replaced by the matches. Use col(\'.\') for an","\\t\\tempty string. \\"col(\'.\') - 1\\" will replace one character by a","\\t\\tmatch.","\\t\\t{matches} must be a |List|. Each |List| item is one match.","\\t\\tSee |complete-items| for the kind of items that are possible.","\\t\\tNote that the after calling this function you need to avoid","\\t\\tinserting anything that would cause completion to stop.","\\t\\tThe match can be selected with CTRL-N and CTRL-P as usual with","\\t\\tInsert mode completion. The popup menu will appear if","\\t\\tspecified, see |ins-completion-menu|.","\\t\\tExample: >","\\tinoremap <F5> <C-R>=ListMonths()<CR>","","\\tfunc! ListMonths()","\\t call complete(col(\'.\'), [\'January\', \'February\', \'March\',","\\t\\t\\\\ \'April\', \'May\', \'June\', \'July\', \'August\', \'September\',","\\t\\t\\\\ \'October\', \'November\', \'December\'])","\\t return \'\'","\\tendfunc","<\\t\\tThis isn\'t very useful, but it shows how it works. Note that","\\t\\tan empty string is returned to avoid a zero being inserted."],"complete_add":["\\t\\tAdd {expr} to the list of matches. Only to be used by the","\\t\\tfunction specified with the \'completefunc\' option.","\\t\\tReturns 0 for failure (empty string or out of memory),","\\t\\t1 when the match was added, 2 when the match was already in","\\t\\tthe list.","\\t\\tSee |complete-functions| for an explanation of {expr}. It is","\\t\\tthe same as one item in the list that \'omnifunc\' would return."],"complete_check":["\\t\\tCheck for a key typed while looking for completion matches.","\\t\\tThis is to be used when looking for matches takes some time.","\\t\\tReturns |TRUE| when searching for matches is to be aborted,","\\t\\tzero otherwise.","\\t\\tOnly to be used by the function specified with the","\\t\\t\'completefunc\' option.",""],"complete_info":["\\t\\tReturns a Dictionary with information about Insert mode","\\t\\tcompletion. See |ins-completion|.","\\t\\tThe items are:","\\t\\t mode\\t\\tCurrent completion mode name string.","\\t\\t\\t\\tSee |complete_info_mode| for the values.","\\t\\t pum_visible\\t|TRUE| if popup menu is visible.","\\t\\t\\t\\tSee |pumvisible()|.","\\t\\t items\\tList of completion matches. Each item is a","\\t\\t\\t\\tdictionary containing the entries \\"word\\",","\\t\\t\\t\\t\\"abbr\\", \\"menu\\", \\"kind\\", \\"info\\" and \\"user_data\\".","\\t\\t\\t\\tSee |complete-items|.","\\t\\t selected\\tSelected item index. First index is zero.","\\t\\t\\t\\tIndex is -1 if no item is selected (showing","\\t\\t\\t\\ttyped text only)","\\t\\t inserted\\tInserted string. [NOT IMPLEMENT YET]","","\\t\\t\\t\\t\\t\\t\\t*complete_info_mode*","\\t\\tmode values are:","\\t\\t \\"\\"\\t\\t Not in completion mode","\\t\\t \\"keyword\\"\\t Keyword completion |i_CTRL-X_CTRL-N|","\\t\\t \\"ctrl_x\\"\\t Just pressed CTRL-X |i_CTRL-X|","\\t\\t \\"whole_line\\"\\t Whole lines |i_CTRL-X_CTRL-L|","\\t\\t \\"files\\"\\t File names |i_CTRL-X_CTRL-F|","\\t\\t \\"tags\\"\\t Tags |i_CTRL-X_CTRL-]|","\\t\\t \\"path_defines\\" Definition completion |i_CTRL-X_CTRL-D|","\\t\\t \\"path_patterns\\" Include completion |i_CTRL-X_CTRL-I|","\\t\\t \\"dictionary\\"\\t Dictionary |i_CTRL-X_CTRL-K|","\\t\\t \\"thesaurus\\"\\t Thesaurus |i_CTRL-X_CTRL-T|","\\t\\t \\"cmdline\\"\\t Vim Command line |i_CTRL-X_CTRL-V|","\\t\\t \\"function\\"\\t User defined completion |i_CTRL-X_CTRL-U|","\\t\\t \\"omni\\"\\t Omni completion |i_CTRL-X_CTRL-O|","\\t\\t \\"spell\\"\\t Spelling suggestions |i_CTRL-X_s|","\\t\\t \\"eval\\" |complete()| completion","\\t\\t \\"unknown\\"\\t Other internal modes","","\\t\\tIf the optional {what} list argument is supplied, then only","\\t\\tthe items listed in {what} are returned. Unsupported items in","\\t\\t{what} are silently ignored.","","\\t\\tTo get the position and size of the popup menu, see","\\t\\t|pum_getpos()|. It\'s also available in |v:event| during the","\\t\\t|CompleteChanged| event.","","\\t\\tExamples: >","\\t\\t\\t\\" Get all items","\\t\\t\\tcall complete_info()","\\t\\t\\t\\" Get only \'mode\'","\\t\\t\\tcall complete_info([\'mode\'])","\\t\\t\\t\\" Get only \'mode\' and \'pum_visible\'","\\t\\t\\tcall complete_info([\'mode\', \'pum_visible\'])","<"],"confirm":["\\t\\tConfirm() offers the user a dialog, from which a choice can be","\\t\\tmade. It returns the number of the choice. For the first","\\t\\tchoice this is 1.","","\\t\\t{msg} is displayed in a dialog with {choices} as the","\\t\\talternatives. When {choices} is missing or empty, \\"&OK\\" is","\\t\\tused (and translated).","\\t\\t{msg} is a String, use \'\\\\n\' to include a newline. Only on","\\t\\tsome systems the string is wrapped when it doesn\'t fit.","","\\t\\t{choices} is a String, with the individual choices separated","\\t\\tby \'\\\\n\', e.g. >","\\t\\t\\tconfirm(\\"Save changes?\\", \\"&Yes\\\\n&No\\\\n&Cancel\\")","<\\t\\tThe letter after the \'&\' is the shortcut key for that choice.","\\t\\tThus you can type \'c\' to select \\"Cancel\\". The shortcut does","\\t\\tnot need to be the first letter: >","\\t\\t\\tconfirm(\\"file has been modified\\", \\"&Save\\\\nSave &All\\")","<\\t\\tFor the console, the first letter of each choice is used as","\\t\\tthe default shortcut key.","","\\t\\tThe optional {default} argument is the number of the choice","\\t\\tthat is made if the user hits <CR>. Use 1 to make the first","\\t\\tchoice the default one. Use 0 to not set a default. If","\\t\\t{default} is omitted, 1 is used.","","\\t\\tThe optional {type} argument gives the type of dialog. This","\\t\\tis only used for the icon of the Win32 GUI. It can be one of","\\t\\tthese values: \\"Error\\", \\"Question\\", \\"Info\\", \\"Warning\\" or","\\t\\t\\"Generic\\". Only the first character is relevant.","\\t\\tWhen {type} is omitted, \\"Generic\\" is used.","","\\t\\tIf the user aborts the dialog by pressing <Esc>, CTRL-C,","\\t\\tor another valid interrupt key, confirm() returns 0.","","\\t\\tAn example: >"," :let choice = confirm(\\"What do you want?\\", \\"&Apples\\\\n&Oranges\\\\n&Bananas\\", 2)"," :if choice == 0"," :\\techo \\"make up your mind!\\""," :elseif choice == 3"," :\\techo \\"tasteful\\""," :else"," :\\techo \\"I prefer bananas myself.\\""," :endif","<\\t\\tIn a GUI dialog, buttons are used. The layout of the buttons","\\t\\tdepends on the \'v\' flag in \'guioptions\'. If it is included,","\\t\\tthe buttons are always put vertically. Otherwise, confirm()","\\t\\ttries to put the buttons in one horizontal line. If they","\\t\\tdon\'t fit, a vertical layout is used anyway. For some systems","\\t\\tthe horizontal layout is always used.",""],"copy":["\\t\\tdifferent from using {expr} directly.","\\t\\tWhen {expr} is a |List| a shallow copy is created. This means","\\t\\tthat the original |List| can be changed without changing the","\\t\\tcopy, and vice versa. But the items are identical, thus","\\t\\tchanging an item changes the contents of both |Lists|.","\\t\\tA |Dictionary| is copied in a similar way as a |List|.","\\t\\tAlso see |deepcopy()|."],"cos":["\\t\\tReturn the cosine of {expr}, measured in radians, as a |Float|.","\\t\\t{expr} must evaluate to a |Float| or a |Number|.","\\t\\tExamples: >","\\t\\t\\t:echo cos(100)","<\\t\\t\\t0.862319 >","\\t\\t\\t:echo cos(-4.01)","<\\t\\t\\t-0.646043",""],"cosh":["\\t\\tReturn the hyperbolic cosine of {expr} as a |Float| in the range","\\t\\t[1, inf].","\\t\\t{expr} must evaluate to a |Float| or a |Number|.","\\t\\tExamples: >","\\t\\t\\t:echo cosh(0.5)","<\\t\\t\\t1.127626 >","\\t\\t\\t:echo cosh(-0.5)","<\\t\\t\\t-1.127626",""],"count":["\\t\\tReturn the number of times an item with value {expr} appears","\\t\\tin |String|, |List| or |Dictionary| {comp}.","","\\t\\tIf {start} is given then start with the item with this index.","\\t\\t{start} can only be used with a |List|.","","\\t\\tWhen {ic} is given and it\'s |TRUE| then case is ignored.","","\\t\\tWhen {comp} is a string then the number of not overlapping","\\t\\toccurrences of {expr} is returned. Zero is returned when","\\t\\t{expr} is an empty string.",""],"cscope_connection":["\\t\\tChecks for the existence of a |cscope| connection. If no","\\t\\tparameters are specified, then the function returns:","\\t\\t\\t0, if cscope was not available (not compiled in), or","\\t\\t\\t if there are no cscope connections;","\\t\\t\\t1, if there is at least one cscope connection.","","\\t\\tIf parameters are specified, then the value of {num}","\\t\\tdetermines how existence of a cscope connection is checked:","","\\t\\t{num}\\tDescription of existence check","\\t\\t-----\\t------------------------------","\\t\\t0\\tSame as no parameters (e.g., \\"cscope_connection()\\").","\\t\\t1\\tIgnore {prepend}, and use partial string matches for","\\t\\t\\t{dbpath}.","\\t\\t2\\tIgnore {prepend}, and use exact string matches for","\\t\\t\\t{dbpath}.","\\t\\t3\\tUse {prepend}, use partial string matches for both","\\t\\t\\t{dbpath} and {prepend}.","\\t\\t4\\tUse {prepend}, use exact string matches for both","\\t\\t\\t{dbpath} and {prepend}.","","\\t\\tNote: All string comparisons are case sensitive!","","\\t\\tExamples. Suppose we had the following (from \\":cs show\\"): >",""," # pid database name\\t\\t\\tprepend path"," 0 27664 cscope.out\\t\\t\\t\\t/usr/local","<","\\t\\tInvocation\\t\\t\\t\\t\\tReturn Val ~","\\t\\t----------\\t\\t\\t\\t\\t---------- >","\\t\\tcscope_connection()\\t\\t\\t\\t\\t1","\\t\\tcscope_connection(1, \\"out\\")\\t\\t\\t\\t1","\\t\\tcscope_connection(2, \\"out\\")\\t\\t\\t\\t0","\\t\\tcscope_connection(3, \\"out\\")\\t\\t\\t\\t0","\\t\\tcscope_connection(3, \\"out\\", \\"local\\")\\t\\t\\t1","\\t\\tcscope_connection(4, \\"out\\")\\t\\t\\t\\t0","\\t\\tcscope_connection(4, \\"out\\", \\"local\\")\\t\\t\\t0","\\t\\tcscope_connection(4, \\"cscope.out\\", \\"/usr/local\\")\\t1","<"],"ctxget":["\\t\\tReturns a |Dictionary| representing the |context| at {index}","\\t\\tfrom the top of the |context-stack| (see |context-dict|).","\\t\\tIf {index} is not given, it is assumed to be 0 (i.e.: top)."],"ctxpop":["\\t\\tPops and restores the |context| at the top of the","\\t\\t|context-stack|."],"ctxpush":["\\t\\tPushes the current editor state (|context|) on the","\\t\\t|context-stack|.","\\t\\tIf {types} is given and is a |List| of |String|s, it specifies","\\t\\twhich |context-types| to include in the pushed context.","\\t\\tOtherwise, all context types are included."],"ctxset":["\\t\\tSets the |context| at {index} from the top of the","\\t\\t|context-stack| to that represented by {context}.","\\t\\t{context} is a Dictionary with context data (|context-dict|).","\\t\\tIf {index} is not given, it is assumed to be 0 (i.e.: top)."],"ctxsize":["\\t\\tReturns the size of the |context-stack|."],"cursor":["\\t\\tPositions the cursor at the column (byte count) {col} in the","\\t\\tline {lnum}. The first column is one.","","\\t\\tWhen there is one argument {list} this is used as a |List|","\\t\\twith two, three or four item:","\\t\\t\\t[{lnum}, {col}]","\\t\\t\\t[{lnum}, {col}, {off}]","\\t\\t\\t[{lnum}, {col}, {off}, {curswant}]","\\t\\tThis is like the return value of |getpos()| or |getcurpos()|,","\\t\\tbut without the first item.","","\\t\\tDoes not change the jumplist.","\\t\\tIf {lnum} is greater than the number of lines in the buffer,","\\t\\tthe cursor will be positioned at the last line in the buffer.","\\t\\tIf {lnum} is zero, the cursor will stay in the current line.","\\t\\tIf {col} is greater than the number of bytes in the line,","\\t\\tthe cursor will be positioned at the last character in the","\\t\\tline.","\\t\\tIf {col} is zero, the cursor will stay in the current column.","\\t\\tIf {curswant} is given it is used to set the preferred column","\\t\\tfor vertical movement. Otherwise {col} is used.","","\\t\\tWhen \'virtualedit\' is used {off} specifies the offset in","\\t\\tscreen columns from the start of the character. E.g., a","\\t\\tposition within a <Tab> or after the last character.","\\t\\tReturns 0 when the position could be set, -1 otherwise.",""],"deepcopy":["\\t\\tMake a copy of {expr}. For Numbers and Strings this isn\'t","\\t\\tdifferent from using {expr} directly.","\\t\\tWhen {expr} is a |List| a full copy is created. This means","\\t\\tthat the original |List| can be changed without changing the","\\t\\tcopy, and vice versa. When an item is a |List|, a copy for it","\\t\\tis made, recursively. Thus changing an item in the copy does","\\t\\tnot change the contents of the original |List|.","\\t\\tWhen {noref} is omitted or zero a contained |List| or","\\t\\t|Dictionary| is only copied once. All references point to","\\t\\tthis single copy. With {noref} set to 1 every occurrence of a","\\t\\t|List| or |Dictionary| results in a new copy. This also means","\\t\\tthat a cyclic reference causes deepcopy() to fail.","\\t\\t\\t\\t\\t\\t\\t\\t*E724*","\\t\\tNesting is possible up to 100 levels. When there is an item","\\t\\tthat refers back to a higher level making a deep copy with","\\t\\t{noref} set to 1 will fail.","\\t\\tAlso see |copy()|."],"delete":["\\t\\tWithout {flags} or with {flags} empty: Deletes the file by the","\\t\\tname {fname}. This also works when {fname} is a symbolic link.","\\t\\tA symbolic link itself is deleted, not what it points to.","","\\t\\tWhen {flags} is \\"d\\": Deletes the directory by the name","\\t\\t{fname}. This fails when directory {fname} is not empty.","","\\t\\tWhen {flags} is \\"rf\\": Deletes the directory by the name","\\t\\t{fname} and everything in it, recursively. BE CAREFUL!","\\t\\tNote: on MS-Windows it is not possible to delete a directory","\\t\\tthat is being used.","","\\t\\tThe result is a Number, which is 0 if the delete operation was","\\t\\tsuccessful and -1 when the deletion failed or partly failed."],"deletebufline":["\\t\\tDelete lines {first} to {last} (inclusive) from buffer {expr}.","\\t\\tIf {last} is omitted then delete line {first} only.","\\t\\tOn success 0 is returned, on failure 1 is returned.","","\\t\\tFor the use of {expr}, see |bufname()| above.","","\\t\\t{first} and {last} are used like with |setline()|. Note that","\\t\\twhen using |line()| this refers to the current buffer. Use \\"$\\"","\\t\\tto refer to the last line in buffer {expr}."],"dictwatcheradd":["\\t\\tAdds a watcher to a dictionary. A dictionary watcher is","\\t\\tidentified by three components:","","\\t\\t- A dictionary({dict});","\\t\\t- A key pattern({pattern}).","\\t\\t- A function({callback}).","","\\t\\tAfter this is called, every change on {dict} and on keys","\\t\\tmatching {pattern} will result in {callback} being invoked.","","\\t\\tFor example, to watch all global variables: >","\\t\\t\\tsilent! call dictwatcherdel(g:, \'*\', \'OnDictChanged\')","\\t\\t\\tfunction! OnDictChanged(d,k,z)","\\t\\t\\t echomsg string(a:k) string(a:z)","\\t\\t\\tendfunction","\\t\\t\\tcall dictwatcheradd(g:, \'*\', \'OnDictChanged\')","<","\\t\\tFor now {pattern} only accepts very simple patterns that can","\\t\\tcontain a \'*\' at the end of the string, in which case it will","\\t\\tmatch every key that begins with the substring before the \'*\'.","\\t\\tThat means if \'*\' is not the last character of {pattern}, only","\\t\\tkeys that are exactly equal as {pattern} will be matched.","","\\t\\tThe {callback} receives three arguments:","","\\t\\t- The dictionary being watched.","\\t\\t- The key which changed.","\\t\\t- A dictionary containing the new and old values for the key.","","\\t\\tThe type of change can be determined by examining the keys","\\t\\tpresent on the third argument:","","\\t\\t- If contains both `old` and `new`, the key was updated.","\\t\\t- If it contains only `new`, the key was added.","\\t\\t- If it contains only `old`, the key was deleted.","","\\t\\tThis function can be used by plugins to implement options with","\\t\\tvalidation and parsing logic."],"dictwatcherdel":["\\t\\tRemoves a watcher added with |dictwatcheradd()|. All three","\\t\\targuments must match the ones passed to |dictwatcheradd()| in","\\t\\torder for the watcher to be successfully deleted.",""],"did_filetype":["\\t\\tFileType event has been triggered at least once. Can be used","\\t\\tto avoid triggering the FileType event again in the scripts","\\t\\tthat detect the file type. |FileType|","\\t\\tReturns |FALSE| when `:setf FALLBACK` was used.","\\t\\tWhen editing another file, the counter is reset, thus this","\\t\\treally checks if the FileType event has been triggered for the","\\t\\tcurrent buffer. This allows an autocommand that starts","\\t\\tediting another buffer to set \'filetype\' and load a syntax","\\t\\tfile."],"diff_filler":["\\t\\tReturns the number of filler lines above line {lnum}.","\\t\\tThese are the lines that were inserted at this point in","\\t\\tanother diff\'ed window. These filler lines are shown in the","\\t\\tdisplay but don\'t exist in the buffer.","\\t\\t{lnum} is used like with |getline()|. Thus \\".\\" is the current","\\t\\tline, \\"\'m\\" mark m, etc.","\\t\\tReturns 0 if the current window is not in diff mode."],"diff_hlID":["\\t\\tReturns the highlight ID for diff mode at line {lnum} column","\\t\\t{col} (byte index). When the current line does not have a","\\t\\tdiff change zero is returned.","\\t\\t{lnum} is used like with |getline()|. Thus \\".\\" is the current","\\t\\tline, \\"\'m\\" mark m, etc.","\\t\\t{col} is 1 for the leftmost column, {lnum} is 1 for the first","\\t\\tline.","\\t\\tThe highlight ID can be used with |synIDattr()| to obtain","\\t\\tsyntax information about the highlighting."],"environ":["\\t\\tReturn all of environment variables as dictionary. You can","\\t\\tcheck if an environment variable exists like this: >","\\t\\t\\t:echo has_key(environ(), \'HOME\')","<\\t\\tNote that the variable name may be CamelCase; to ignore case","\\t\\tuse this: >","\\t\\t\\t:echo index(keys(environ()), \'HOME\', 0, 1) != -1"],"empty":["\\t\\tReturn the Number 1 if {expr} is empty, zero otherwise.","\\t\\tA |List| or |Dictionary| is empty when it does not have any","\\t\\titems. A Number is empty when its value is zero. Special","\\t\\tvariable is empty when it is |v:false| or |v:null|."],"escape":["\\t\\tEscape the characters in {chars} that occur in {string} with a","\\t\\tbackslash. Example: >","\\t\\t\\t:echo escape(\'c:\\\\program files\\\\vim\', \' \\\\\')","<\\t\\tresults in: >","\\t\\t\\tc:\\\\\\\\program\\\\ files\\\\\\\\vim","<\\t\\tAlso see |shellescape()| and |fnameescape()|.",""],"eval":["\\t\\tturn the result of |string()| back into the original value.","\\t\\tThis works for Numbers, Floats, Strings and composites of","\\t\\tthem. Also works for |Funcref|s that refer to existing","\\t\\tfunctions."],"eventhandler":["\\t\\tReturns 1 when inside an event handler. That is that Vim got","\\t\\tinterrupted while waiting for the user to type a character,","\\t\\te.g., when dropping a file on Vim. This means interactive","\\t\\tcommands cannot be used. Otherwise zero is returned."],"executable":["\\t\\tThis function checks if an executable with the name {expr}","\\t\\texists. {expr} must be the name of the program without any","\\t\\targuments.","\\t\\texecutable() uses the value of $PATH and/or the normal","\\t\\tsearchpath for programs.\\t\\t*PATHEXT*","\\t\\tOn Windows the \\".exe\\", \\".bat\\", etc. can","\\t\\toptionally be included. Then the extensions in $PATHEXT are","\\t\\ttried. Thus if \\"foo.exe\\" does not exist, \\"foo.exe.bat\\" can be","\\t\\tfound. If $PATHEXT is not set then \\".exe;.com;.bat;.cmd\\" is","\\t\\tused. A dot by itself can be used in $PATHEXT to try using","\\t\\tthe name without an extension. When \'shell\' looks like a","\\t\\tUnix shell, then the name is also tried without adding an","\\t\\textension.","\\t\\tOn Windows it only checks if the file exists and","\\t\\tis not a directory, not if it\'s really executable.","\\t\\tOn Windows an executable in the same directory as Vim is","\\t\\talways found (it is added to $PATH at |startup|).","\\t\\tThe result is a Number:","\\t\\t\\t1\\texists","\\t\\t\\t0\\tdoes not exist","\\t\\t\\t-1\\tnot implemented on this system","\\t\\t|exepath()| can be used to get the full path of an executable."],"execute":["\\t\\tExecute {command} and capture its output.","\\t\\tIf {command} is a |String|, returns {command} output.","\\t\\tIf {command} is a |List|, returns concatenated outputs.","\\t\\tExamples: >","\\t\\t\\techo execute(\'echon \\"foo\\"\')","<\\t\\t\\tfoo >","\\t\\t\\techo execute([\'echon \\"foo\\"\', \'echon \\"bar\\"\'])","<\\t\\t\\tfoobar","","\\t\\tThe optional {silent} argument can have these values:","\\t\\t\\t\\"\\"\\t\\tno `:silent` used","\\t\\t\\t\\"silent\\"\\t`:silent` used","\\t\\t\\t\\"silent!\\"\\t`:silent!` used","\\t\\tThe default is \\"silent\\". Note that with \\"silent!\\", unlike","\\t\\t`:redir`, error messages are dropped.","","\\t\\tTo get a list of lines use |split()| on the result: >","\\t\\t\\tsplit(execute(\'args\'), \\"\\\\n\\")","","<\\t\\tThis function is not available in the |sandbox|.","\\t\\tNote: If nested, an outer execute() will not observe output of","\\t\\tthe inner calls.","\\t\\tNote: Text attributes (highlights) are not captured."],"exepath":["\\t\\tReturns the full path of {expr} if it is an executable and","\\t\\tgiven as a (partial or full) path or is found in $PATH.","\\t\\tReturns empty string otherwise.","\\t\\tIf {expr} starts with \\"./\\" the |current-directory| is used.",""],"exists":["\\t\\tdefined, zero otherwise.","","\\t\\tFor checking for a supported feature use |has()|.","\\t\\tFor checking if a file exists use |filereadable()|.","","\\t\\tThe {expr} argument is a string, which contains one of these:","\\t\\t\\t&option-name\\tVim option (only checks if it exists,","\\t\\t\\t\\t\\tnot if it really works)","\\t\\t\\t+option-name\\tVim option that works.","\\t\\t\\t$ENVNAME\\tenvironment variable (could also be","\\t\\t\\t\\t\\tdone by comparing with an empty","\\t\\t\\t\\t\\tstring)","\\t\\t\\t*funcname\\tbuilt-in function (see |functions|)","\\t\\t\\t\\t\\tor user defined function (see","\\t\\t\\t\\t\\t|user-function|). Also works for a","\\t\\t\\t\\t\\tvariable that is a Funcref.","\\t\\t\\tvarname\\t\\tinternal variable (see","\\t\\t\\t\\t\\t|internal-variables|). Also works","\\t\\t\\t\\t\\tfor |curly-braces-names|, |Dictionary|","\\t\\t\\t\\t\\tentries, |List| items, etc. Beware","\\t\\t\\t\\t\\tthat evaluating an index may cause an","\\t\\t\\t\\t\\terror message for an invalid","\\t\\t\\t\\t\\texpression. E.g.: >","\\t\\t\\t\\t\\t :let l = [1, 2, 3]","\\t\\t\\t\\t\\t :echo exists(\\"l[5]\\")","<\\t\\t\\t\\t\\t 0 >","\\t\\t\\t\\t\\t :echo exists(\\"l[xx]\\")","<\\t\\t\\t\\t\\t E121: Undefined variable: xx","\\t\\t\\t\\t\\t 0","\\t\\t\\t:cmdname\\tEx command: built-in command, user","\\t\\t\\t\\t\\tcommand or command modifier |:command|.","\\t\\t\\t\\t\\tReturns:","\\t\\t\\t\\t\\t1 for match with start of a command","\\t\\t\\t\\t\\t2 full match with a command","\\t\\t\\t\\t\\t3 matches several user commands","\\t\\t\\t\\t\\tTo check for a supported command","\\t\\t\\t\\t\\talways check the return value to be 2.","\\t\\t\\t:2match\\t\\tThe |:2match| command.","\\t\\t\\t:3match\\t\\tThe |:3match| command.","\\t\\t\\t#event\\t\\tautocommand defined for this event","\\t\\t\\t#event#pattern\\tautocommand defined for this event and","\\t\\t\\t\\t\\tpattern (the pattern is taken","\\t\\t\\t\\t\\tliterally and compared to the","\\t\\t\\t\\t\\tautocommand patterns character by","\\t\\t\\t\\t\\tcharacter)","\\t\\t\\t#group\\t\\tautocommand group exists","\\t\\t\\t#group#event\\tautocommand defined for this group and","\\t\\t\\t\\t\\tevent.","\\t\\t\\t#group#event#pattern","\\t\\t\\t\\t\\tautocommand defined for this group,","\\t\\t\\t\\t\\tevent and pattern.","\\t\\t\\t##event\\t\\tautocommand for this event is","\\t\\t\\t\\t\\tsupported.","","\\t\\tExamples: >","\\t\\t\\texists(\\"&mouse\\")","\\t\\t\\texists(\\"$HOSTNAME\\")","\\t\\t\\texists(\\"*strftime\\")","\\t\\t\\texists(\\"*s:MyFunc\\")","\\t\\t\\texists(\\"bufcount\\")","\\t\\t\\texists(\\":Make\\")","\\t\\t\\texists(\\"#CursorHold\\")","\\t\\t\\texists(\\"#BufReadPre#*.gz\\")","\\t\\t\\texists(\\"#filetypeindent\\")","\\t\\t\\texists(\\"#filetypeindent#FileType\\")","\\t\\t\\texists(\\"#filetypeindent#FileType#*\\")","\\t\\t\\texists(\\"##ColorScheme\\")","<\\t\\tThere must be no space between the symbol (&/$/*/#) and the","\\t\\tname.","\\t\\tThere must be no extra characters after the name, although in","\\t\\ta few cases this is ignored. That may become more strict in","\\t\\tthe future, thus don\'t count on it!","\\t\\tWorking example: >","\\t\\t\\texists(\\":make\\")","<\\t\\tNOT working example: >","\\t\\t\\texists(\\":make install\\")","","<\\t\\tNote that the argument must be a string, not the name of the","\\t\\tvariable itself. For example: >","\\t\\t\\texists(bufcount)","<\\t\\tThis doesn\'t check for existence of the \\"bufcount\\" variable,","\\t\\tbut gets the value of \\"bufcount\\", and checks if that exists."],"exp":["\\t\\tReturn the exponential of {expr} as a |Float| in the range","\\t\\t[0, inf].","\\t\\t{expr} must evaluate to a |Float| or a |Number|.","\\t\\tExamples: >","\\t\\t\\t:echo exp(2)","<\\t\\t\\t7.389056 >","\\t\\t\\t:echo exp(-1)","<\\t\\t\\t0.367879"],"debugbreak":["\\t\\tSpecifically used to interrupt a program being debugged. It","\\t\\twill cause process {pid} to get a SIGTRAP. Behavior for other","\\t\\tprocesses is undefined. See |terminal-debugger|.","\\t\\t{Sends a SIGINT to a process {pid} other than MS-Windows}"],"expand":["\\t\\tExpand wildcards and the following special keywords in {expr}.","\\t\\t\'wildignorecase\' applies.","","\\t\\tIf {list} is given and it is |TRUE|, a List will be returned.","\\t\\tOtherwise the result is a String and when there are several","\\t\\tmatches, they are separated by <NL> characters.","","\\t\\tIf the expansion fails, the result is an empty string. A name","\\t\\tfor a non-existing file is not included, unless {expr} does","\\t\\tnot start with \'%\', \'#\' or \'<\', see below.","","\\t\\tWhen {expr} starts with \'%\', \'#\' or \'<\', the expansion is done","\\t\\tlike for the |cmdline-special| variables with their associated","\\t\\tmodifiers. Here is a short overview:","","\\t\\t\\t%\\t\\tcurrent file name","\\t\\t\\t#\\t\\talternate file name","\\t\\t\\t#n\\t\\talternate file name n","\\t\\t\\t<cfile>\\t\\tfile name under the cursor","\\t\\t\\t<afile>\\t\\tautocmd file name","\\t\\t\\t<abuf>\\t\\tautocmd buffer number (as a String!)","\\t\\t\\t<amatch>\\tautocmd matched name","\\t\\t\\t<sfile>\\t\\tsourced script file or function name","\\t\\t\\t<slnum>\\t\\tsourced script line number or function","\\t\\t\\t\\t\\tline number","\\t\\t\\t<sflnum>\\tscript file line number, also when in","\\t\\t\\t\\t\\ta function","\\t\\t\\t<cword>\\t\\tword under the cursor","\\t\\t\\t<cWORD>\\t\\tWORD under the cursor","\\t\\t\\t<client>\\tthe {clientid} of the last received","\\t\\t\\t\\t\\tmessage |server2client()|","\\t\\tModifiers:","\\t\\t\\t:p\\t\\texpand to full path","\\t\\t\\t:h\\t\\thead (last path component removed)","\\t\\t\\t:t\\t\\ttail (last path component only)","\\t\\t\\t:r\\t\\troot (one extension removed)","\\t\\t\\t:e\\t\\textension only","","\\t\\tExample: >","\\t\\t\\t:let &tags = expand(\\"%:p:h\\") . \\"/tags\\"","<\\t\\tNote that when expanding a string that starts with \'%\', \'#\' or","\\t\\t\'<\', any following text is ignored. This does NOT work: >","\\t\\t\\t:let doesntwork = expand(\\"%:h.bak\\")","<\\t\\tUse this: >","\\t\\t\\t:let doeswork = expand(\\"%:h\\") . \\".bak\\"","<\\t\\tAlso note that expanding \\"<cfile>\\" and others only returns the","\\t\\treferenced file name without further expansion. If \\"<cfile>\\"","\\t\\tis \\"~/.cshrc\\", you need to do another expand() to have the","\\t\\t\\"~/\\" expanded into the path of the home directory: >","\\t\\t\\t:echo expand(expand(\\"<cfile>\\"))","<","\\t\\tThere cannot be white space between the variables and the","\\t\\tfollowing modifier. The |fnamemodify()| function can be used","\\t\\tto modify normal file names.","","\\t\\tWhen using \'%\' or \'#\', and the current or alternate file name","\\t\\tis not defined, an empty string is used. Using \\"%:p\\" in a","\\t\\tbuffer with no name, results in the current directory, with a","\\t\\t\'/\' added.","","\\t\\tWhen {expr} does not start with \'%\', \'#\' or \'<\', it is","\\t\\texpanded like a file name is expanded on the command line.","\\t\\t\'suffixes\' and \'wildignore\' are used, unless the optional","\\t\\t{nosuf} argument is given and it is |TRUE|.","\\t\\tNames for non-existing files are included. The \\"**\\" item can","\\t\\tbe used to search in a directory tree. For example, to find","\\t\\tall \\"README\\" files in the current directory and below: >","\\t\\t\\t:echo expand(\\"**/README\\")","<","\\t\\texpand() can also be used to expand variables and environment","\\t\\tvariables that are only known in a shell. But this can be","\\t\\tslow, because a shell may be used to do the expansion. See","\\t\\t|expr-env-expand|.","\\t\\tThe expanded variable is still handled like a list of file","\\t\\tnames. When an environment variable cannot be expanded, it is","\\t\\tleft unchanged. Thus \\":echo expand(\'$FOOBAR\')\\" results in","\\t\\t\\"$FOOBAR\\".","","\\t\\tSee |glob()| for finding existing files. See |system()| for","\\t\\tgetting the raw output of an external command."],"expandcmd":["\\t\\tExpand special items in {expr} like what is done for an Ex","\\t\\tcommand such as `:edit`. This expands special keywords, like","\\t\\twith |expand()|, and environment variables, anywhere in","\\t\\t{expr}. Returns the expanded string.","\\t\\tExample: >","\\t\\t\\t:echo expandcmd(\'make %<.o\')"],"extend":["\\t\\t{expr1} and {expr2} must be both |Lists| or both","\\t\\t|Dictionaries|.","","\\t\\tIf they are |Lists|: Append {expr2} to {expr1}.","\\t\\tIf {expr3} is given insert the items of {expr2} before item","\\t\\t{expr3} in {expr1}. When {expr3} is zero insert before the","\\t\\tfirst item. When {expr3} is equal to len({expr1}) then","\\t\\t{expr2} is appended.","\\t\\tExamples: >","\\t\\t\\t:echo sort(extend(mylist, [7, 5]))","\\t\\t\\t:call extend(mylist, [2, 3], 1)","<\\t\\tWhen {expr1} is the same List as {expr2} then the number of","\\t\\titems copied is equal to the original length of the List.","\\t\\tE.g., when {expr3} is 1 you get N new copies of the first item","\\t\\t(where N is the original length of the List).","\\t\\tUse |add()| to concatenate one item to a list. To concatenate","\\t\\ttwo lists into a new list use the + operator: >","\\t\\t\\t:let newlist = [1, 2, 3] + [4, 5]","<","\\t\\tIf they are |Dictionaries|:","\\t\\tAdd all entries from {expr2} to {expr1}.","\\t\\tIf a key exists in both {expr1} and {expr2} then {expr3} is","\\t\\tused to decide what to do:","\\t\\t{expr3} = \\"keep\\": keep the value of {expr1}","\\t\\t{expr3} = \\"force\\": use the value of {expr2}","\\t\\t{expr3} = \\"error\\": give an error message\\t\\t*E737*","\\t\\tWhen {expr3} is omitted then \\"force\\" is assumed.","","\\t\\t{expr1} is changed when {expr2} is not empty. If necessary","\\t\\tmake a copy of {expr1} first.","\\t\\t{expr2} remains unchanged.","\\t\\tWhen {expr1} is locked and {expr2} is not empty the operation","\\t\\tfails.","\\t\\tReturns {expr1}.",""],"feedkeys":["\\t\\tCharacters in {string} are queued for processing as if they","\\t\\tcome from a mapping or were typed by the user.","","\\t\\tBy default the string is added to the end of the typeahead","\\t\\tbuffer, thus if a mapping is still being executed the","\\t\\tcharacters come after them. Use the \'i\' flag to insert before","\\t\\tother characters, they will be executed next, before any","\\t\\tcharacters from a mapping.","","\\t\\tThe function does not wait for processing of keys contained in","\\t\\t{string}.","","\\t\\tTo include special keys into {string}, use double-quotes","\\t\\tand \\"\\\\...\\" notation |expr-quote|. For example,","\\t\\tfeedkeys(\\"\\\\<CR>\\") simulates pressing of the <Enter> key. But","\\t\\tfeedkeys(\'\\\\<CR>\') pushes 5 characters.","\\t\\tThe |<Ignore>| keycode may be used to exit the","\\t\\twait-for-character without doing anything.","","\\t\\t{mode} is a String, which can contain these character flags:","\\t\\t\'m\'\\tRemap keys. This is default. If {mode} is absent,","\\t\\t\\tkeys are remapped.","\\t\\t\'n\'\\tDo not remap keys.","\\t\\t\'t\'\\tHandle keys as if typed; otherwise they are handled as","\\t\\t\\tif coming from a mapping. This matters for undo,","\\t\\t\\topening folds, etc.","\\t\\t\'i\'\\tInsert the string instead of appending (see above).","\\t\\t\'x\'\\tExecute commands until typeahead is empty. This is","\\t\\t\\tsimilar to using \\":normal!\\". You can call feedkeys()","\\t\\t\\tseveral times without \'x\' and then one time with \'x\'","\\t\\t\\t(possibly with an empty {string}) to execute all the","\\t\\t\\ttypeahead. Note that when Vim ends in Insert mode it","\\t\\t\\twill behave as if <Esc> is typed, to avoid getting","\\t\\t\\tstuck, waiting for a character to be typed before the","\\t\\t\\tscript continues.","\\t\\t\\tNote that if you manage to call feedkeys() while","\\t\\t\\texecuting commands, thus calling it recursively, the","\\t\\t\\tall typehead will be consumed by the last call.","\\t\\t\'!\'\\tWhen used with \'x\' will not end Insert mode. Can be","\\t\\t\\tused in a test when a timer is set to exit Insert mode","\\t\\t\\ta little later. Useful for testing CursorHoldI.","","\\t\\tReturn value is always 0."],"filereadable":["\\t\\tThe result is a Number, which is |TRUE| when a file with the","\\t\\tname {file} exists, and can be read. If {file} doesn\'t exist,","\\t\\tor is a directory, the result is |FALSE|. {file} is any","\\t\\texpression, which is used as a String.","\\t\\tIf you don\'t care about the file being readable you can use","\\t\\t|glob()|.",""],"filewritable":["\\t\\tThe result is a Number, which is 1 when a file with the","\\t\\tname {file} exists, and can be written. If {file} doesn\'t","\\t\\texist, or is not writable, the result is 0. If {file} is a","\\t\\tdirectory, and we can write to it, the result is 2.",""],"filter":["\\t\\t{expr1} must be a |List| or a |Dictionary|.","\\t\\tFor each item in {expr1} evaluate {expr2} and when the result","\\t\\tis zero remove the item from the |List| or |Dictionary|.","\\t\\t{expr2} must be a |string| or |Funcref|.","","\\t\\tIf {expr2} is a |string|, inside {expr2} |v:val| has the value","\\t\\tof the current item. For a |Dictionary| |v:key| has the key","\\t\\tof the current item and for a |List| |v:key| has the index of","\\t\\tthe current item.","\\t\\tFor a |Dictionary| |v:key| has the key of the current item.","\\t\\tExamples: >","\\t\\t\\tcall filter(mylist, \'v:val !~ \\"OLD\\"\')","<\\t\\tRemoves the items where \\"OLD\\" appears. >","\\t\\t\\tcall filter(mydict, \'v:key >= 8\')","<\\t\\tRemoves the items with a key below 8. >","\\t\\t\\tcall filter(var, 0)","<\\t\\tRemoves all the items, thus clears the |List| or |Dictionary|.","","\\t\\tNote that {expr2} is the result of expression and is then","\\t\\tused as an expression again. Often it is good to use a","\\t\\t|literal-string| to avoid having to double backslashes.","","\\t\\tIf {expr2} is a |Funcref| it must take two arguments:","\\t\\t\\t1. the key or the index of the current item.","\\t\\t\\t2. the value of the current item.","\\t\\tThe function must return |TRUE| if the item should be kept.","\\t\\tExample that keeps the odd items of a list: >","\\t\\t\\tfunc Odd(idx, val)","\\t\\t\\t return a:idx % 2 == 1","\\t\\t\\tendfunc","\\t\\t\\tcall filter(mylist, function(\'Odd\'))","<\\t\\tIt is shorter when using a |lambda|: >","\\t\\t\\tcall filter(myList, {idx, val -> idx * val <= 42})","<\\t\\tIf you do not use \\"val\\" you can leave it out: >","\\t\\t\\tcall filter(myList, {idx -> idx % 2 == 1})","<","\\t\\tThe operation is done in-place. If you want a |List| or","\\t\\t|Dictionary| to remain unmodified make a copy first: >","\\t\\t\\t:let l = filter(copy(mylist), \'v:val =~ \\"KEEP\\"\')","","<\\t\\tReturns {expr1}, the |List| or |Dictionary| that was filtered.","\\t\\tWhen an error is encountered while evaluating {expr2} no","\\t\\tfurther items in {expr1} are processed. When {expr2} is a","\\t\\tFuncref errors inside a function are ignored, unless it was","\\t\\tdefined with the \\"abort\\" flag.",""],"finddir":["\\t\\tFind directory {name} in {path}. Supports both downwards and","\\t\\tupwards recursive directory searches. See |file-searching|","\\t\\tfor the syntax of {path}.","\\t\\tReturns the path of the first found match. When the found","\\t\\tdirectory is below the current directory a relative path is","\\t\\treturned. Otherwise a full path is returned.","\\t\\tIf {path} is omitted or empty then \'path\' is used.","\\t\\tIf the optional {count} is given, find {count}\'s occurrence of","\\t\\t{name} in {path} instead of the first one.","\\t\\tWhen {count} is negative return all the matches in a |List|.","\\t\\tThis is quite similar to the ex-command |:find|."],"findfile":["\\t\\tJust like |finddir()|, but find a file instead of a directory.","\\t\\tUses \'suffixesadd\'.","\\t\\tExample: >","\\t\\t\\t:echo findfile(\\"tags.vim\\", \\".;\\")","<\\t\\tSearches from the directory of the current file upwards until","\\t\\tit finds the file \\"tags.vim\\"."],"float2nr":["\\t\\tConvert {expr} to a Number by omitting the part after the","\\t\\tdecimal point.","\\t\\t{expr} must evaluate to a |Float| or a Number.","\\t\\tWhen the value of {expr} is out of range for a |Number| the","\\t\\tresult is truncated to 0x7fffffff or -0x7fffffff (or when","\\t\\t64-bit Number support is enabled, 0x7fffffffffffffff or","\\t\\t-0x7fffffffffffffff). NaN results in -0x80000000 (or when","\\t\\t64-bit Number support is enabled, -0x8000000000000000).","\\t\\tExamples: >","\\t\\t\\techo float2nr(3.95)","<\\t\\t\\t3 >","\\t\\t\\techo float2nr(-23.45)","<\\t\\t\\t-23 >","\\t\\t\\techo float2nr(1.0e100)","<\\t\\t\\t2147483647 (or 9223372036854775807) >","\\t\\t\\techo float2nr(-1.0e150)","<\\t\\t\\t-2147483647 (or -9223372036854775807) >","\\t\\t\\techo float2nr(1.0e-100)","<\\t\\t\\t0",""],"floor":["\\t\\tReturn the largest integral value less than or equal to","\\t\\t{expr} as a |Float| (round down).","\\t\\t{expr} must evaluate to a |Float| or a |Number|.","\\t\\tExamples: >","\\t\\t\\techo floor(1.856)","<\\t\\t\\t1.0 >","\\t\\t\\techo floor(-5.456)","<\\t\\t\\t-6.0 >","\\t\\t\\techo floor(4.0)","<\\t\\t\\t4.0",""],"fmod":["\\t\\tReturn the remainder of {expr1} / {expr2}, even if the","\\t\\tdivision is not representable. Returns {expr1} - i * {expr2}","\\t\\tfor some integer i such that if {expr2} is non-zero, the","\\t\\tresult has the same sign as {expr1} and magnitude less than","\\t\\tthe magnitude of {expr2}. If {expr2} is zero, the value","\\t\\treturned is zero. The value returned is a |Float|.","\\t\\t{expr1} and {expr2} must evaluate to a |Float| or a |Number|.","\\t\\tExamples: >","\\t\\t\\t:echo fmod(12.33, 1.22)","<\\t\\t\\t0.13 >","\\t\\t\\t:echo fmod(-12.33, 1.22)","<\\t\\t\\t-0.13",""],"fnameescape":["\\t\\tEscape {string} for use as file name command argument. All","\\t\\tcharacters that have a special meaning, such as \'%\' and \'|\'","\\t\\tare escaped with a backslash.","\\t\\tFor most systems the characters escaped are","\\t\\t\\" \\\\t\\\\n*?[{`$\\\\\\\\%#\'\\\\\\"|!<\\". For systems where a backslash","\\t\\tappears in a filename, it depends on the value of \'isfname\'.","\\t\\tA leading \'+\' and \'>\' is also escaped (special after |:edit|","\\t\\tand |:write|). And a \\"-\\" by itself (special after |:cd|).","\\t\\tExample: >","\\t\\t\\t:let fname = \'+some str%nge|name\'","\\t\\t\\t:exe \\"edit \\" . fnameescape(fname)","<\\t\\tresults in executing: >","\\t\\t\\tedit \\\\+some\\\\ str\\\\%nge\\\\|name"],"fnamemodify":["\\t\\tModify file name {fname} according to {mods}. {mods} is a","\\t\\tstring of characters like it is used for file names on the","\\t\\tcommand line. See |filename-modifiers|.","\\t\\tExample: >","\\t\\t\\t:echo fnamemodify(\\"main.c\\", \\":p:h\\")","<\\t\\tresults in: >","\\t\\t\\t/home/mool/vim/vim/src","<\\t\\tNote: Environment variables don\'t work in {fname}, use","\\t\\t|expand()| first then."],"foldclosed":["\\t\\tThe result is a Number. If the line {lnum} is in a closed","\\t\\tfold, the result is the number of the first line in that fold.","\\t\\tIf the line {lnum} is not in a closed fold, -1 is returned."],"foldclosedend":["\\t\\tThe result is a Number. If the line {lnum} is in a closed","\\t\\tfold, the result is the number of the last line in that fold.","\\t\\tIf the line {lnum} is not in a closed fold, -1 is returned."],"foldlevel":["\\t\\tThe result is a Number, which is the foldlevel of line {lnum}","\\t\\tin the current buffer. For nested folds the deepest level is","\\t\\treturned. If there is no fold at line {lnum}, zero is","\\t\\treturned. It doesn\'t matter if the folds are open or closed.","\\t\\tWhen used while updating folds (from \'foldexpr\') -1 is","\\t\\treturned for lines where folds are still to be updated and the","\\t\\tfoldlevel is unknown. As a special case the level of the","\\t\\tprevious line is usually available.",""],"foldtext":["\\t\\tthe default function used for the \'foldtext\' option and should","\\t\\tonly be called from evaluating \'foldtext\'. It uses the","\\t\\t|v:foldstart|, |v:foldend| and |v:folddashes| variables.","\\t\\tThe returned string looks like this: >","\\t\\t\\t+-- 45 lines: abcdef","<\\t\\tThe number of leading dashes depends on the foldlevel. The","\\t\\t\\"45\\" is the number of lines in the fold. \\"abcdef\\" is the text","\\t\\tin the first non-blank line of the fold. Leading white space,","\\t\\t\\"//\\" or \\"/*\\" and the text from the \'foldmarker\' and","\\t\\t\'commentstring\' options is removed.","\\t\\tWhen used to draw the actual foldtext, the rest of the line","\\t\\twill be filled with the fold char from the \'fillchars\'","\\t\\tsetting."],"foldtextresult":["\\t\\tReturns the text that is displayed for the closed fold at line","\\t\\t{lnum}. Evaluates \'foldtext\' in the appropriate context.","\\t\\tWhen there is no closed fold at {lnum} an empty string is","\\t\\treturned.","\\t\\t{lnum} is used like with |getline()|. Thus \\".\\" is the current","\\t\\tline, \\"\'m\\" mark m, etc.","\\t\\tUseful when exporting folded text, e.g., to HTML.",""],"foreground":["\\t\\ta client to a Vim server. |remote_send()|","\\t\\tOn Win32 systems this might not work, the OS does not always","\\t\\tallow a window to bring itself to the foreground. Use","\\t\\t|remote_foreground()| instead.","\\t\\t{only in the Win32 GUI and console version}",""],"funcref":["\\t\\tJust like |function()|, but the returned Funcref will lookup","\\t\\tthe function by reference, not by name. This matters when the","\\t\\tfunction {name} is redefined later.","","\\t\\tUnlike |function()|, {name} must be an existing user function.","\\t\\tAlso for autoloaded functions. {name} cannot be a builtin","\\t\\tfunction.",""],"function":["\\t\\tReturn a |Funcref| variable that refers to function {name}.","\\t\\t{name} can be a user defined function or an internal function.","","\\t\\t{name} can also be a Funcref or a partial. When it is a","\\t\\tpartial the dict stored in it will be used and the {dict}","\\t\\targument is not allowed. E.g.: >","\\t\\t\\tlet FuncWithArg = function(dict.Func, [arg])","\\t\\t\\tlet Broken = function(dict.Func, [arg], dict)","<","\\t\\tWhen using the Funcref the function will be found by {name},","\\t\\talso when it was redefined later. Use |funcref()| to keep the","\\t\\tsame function.","","\\t\\tWhen {arglist} or {dict} is present this creates a partial.","\\t\\tThat means the argument list and/or the dictionary is stored in","\\t\\tthe Funcref and will be used when the Funcref is called.","","\\t\\tThe arguments are passed to the function in front of other","\\t\\targuments, but after any argument from |method|. Example: >","\\t\\t\\tfunc Callback(arg1, arg2, name)","\\t\\t\\t...","\\t\\t\\tlet Partial = function(\'Callback\', [\'one\', \'two\'])","\\t\\t\\t...","\\t\\t\\tcall Partial(\'name\')","<\\t\\tInvokes the function as with: >","\\t\\t\\tcall Callback(\'one\', \'two\', \'name\')","","<\\t\\tThe Dictionary is only useful when calling a \\"dict\\" function.","\\t\\tIn that case the {dict} is passed in as \\"self\\". Example: >","\\t\\t\\tfunction Callback() dict","\\t\\t\\t echo \\"called for \\" . self.name","\\t\\t\\tendfunction","\\t\\t\\t...","\\t\\t\\tlet context = {\\"name\\": \\"example\\"}","\\t\\t\\tlet Func = function(\'Callback\', context)","\\t\\t\\t...","\\t\\t\\tcall Func()\\t\\" will echo: called for example","","<\\t\\tThe argument list and the Dictionary can be combined: >","\\t\\t\\tfunction Callback(arg1, count) dict","\\t\\t\\t...","\\t\\t\\tlet context = {\\"name\\": \\"example\\"}","\\t\\t\\tlet Func = function(\'Callback\', [\'one\'], context)","\\t\\t\\t...","\\t\\t\\tcall Func(500)","<\\t\\tInvokes the function as with: >","\\t\\t\\tcall context.Callback(\'one\', 500)",""],"garbagecollect":["\\t\\tCleanup unused |Lists| and |Dictionaries| that have circular","\\t\\treferences.","\\t\\t","\\t\\tThere is hardly ever a need to invoke this function, as it is","\\t\\tautomatically done when Vim runs out of memory or is waiting","\\t\\tfor the user to press a key after \'updatetime\'. Items without","\\t\\tcircular references are always freed when they become unused.","\\t\\tThis is useful if you have deleted a very big |List| and/or","\\t\\t|Dictionary| with circular references in a script that runs","\\t\\tfor a long time.","","\\t\\tWhen the optional {atexit} argument is one, garbage","\\t\\tcollection will also be done when exiting Vim, if it wasn\'t","\\t\\tdone before. This is useful when checking for memory leaks.","","\\t\\tThe garbage collection is not done immediately but only when","\\t\\tit\'s safe to perform. This is when waiting for the user to","\\t\\ttype a character."],"get":["\\t\\tGet item {idx} from |List| {list}. When this item is not","\\t\\tavailable return {default}. Return zero when {default} is","\\t\\tGet item with key {key} from |Dictionary| {dict}. When this","\\t\\titem is not available return {default}. Return zero when","\\t\\t{default} is omitted. Useful example: >","\\t\\t\\tlet val = get(g:, \'var_name\', \'default\')","<\\t\\tThis gets the value of g:var_name if it exists, and uses","\\t\\tGet item {what} from Funcref {func}. Possible values for","\\t\\t{what} are:","\\t\\t\\t\\"name\\"\\tThe function name","\\t\\t\\t\\"func\\"\\tThe function","\\t\\t\\t\\"dict\\"\\tThe dictionary","\\t\\t\\t\\"args\\"\\tThe list with arguments",""],"getbufinfo":["\\t\\tGet information about buffers as a List of Dictionaries.","","\\t\\tWithout an argument information about all the buffers is","\\t\\treturned.","","\\t\\tWhen the argument is a Dictionary only the buffers matching","\\t\\tthe specified criteria are returned. The following keys can","\\t\\tbe specified in {dict}:","\\t\\t\\tbuflisted\\tinclude only listed buffers.","\\t\\t\\tbufloaded\\tinclude only loaded buffers.","\\t\\t\\tbufmodified\\tinclude only modified buffers.","","\\t\\tOtherwise, {expr} specifies a particular buffer to return","\\t\\tinformation for. For the use of {expr}, see |bufname()|","\\t\\tabove. If the buffer is found the returned List has one item.","\\t\\tOtherwise the result is an empty list.","","\\t\\tEach returned List item is a dictionary with the following","\\t\\tentries:","\\t\\t\\tbufnr\\t\\tbuffer number.","\\t\\t\\tchanged\\t\\tTRUE if the buffer is modified.","\\t\\t\\tchangedtick\\tnumber of changes made to the buffer.","\\t\\t\\thidden\\t\\tTRUE if the buffer is hidden.","\\t\\t\\tlisted\\t\\tTRUE if the buffer is listed.","\\t\\t\\tlnum\\t\\tcurrent line number in buffer.","\\t\\t\\tlinecount\\tnumber of lines in the buffer (only","\\t\\t\\t\\t\\tvalid when loaded)","\\t\\t\\tloaded\\t\\tTRUE if the buffer is loaded.","\\t\\t\\tname\\t\\tfull path to the file in the buffer.","\\t\\t\\tsigns\\t\\tlist of signs placed in the buffer.","\\t\\t\\t\\t\\tEach list item is a dictionary with","\\t\\t\\t\\t\\tthe following fields:","\\t\\t\\t\\t\\t id\\t sign identifier","\\t\\t\\t\\t\\t lnum line number","\\t\\t\\t\\t\\t name sign name","\\t\\t\\tvariables\\ta reference to the dictionary with","\\t\\t\\t\\t\\tbuffer-local variables.","\\t\\t\\twindows\\t\\tlist of |window-ID|s that display this","\\t\\t\\t\\t\\tbuffer","","\\t\\tExamples: >","\\t\\t\\tfor buf in getbufinfo()","\\t\\t\\t echo buf.name","\\t\\t\\tendfor","\\t\\t\\tfor buf in getbufinfo({\'buflisted\':1})","\\t\\t\\t if buf.changed","\\t\\t\\t\\t....","\\t\\t\\t endif","\\t\\t\\tendfor","<","\\t\\tTo get buffer-local options use: >","\\t\\t\\tgetbufvar({bufnr}, \'&option_name\')","","<"],"getbufline":["\\t\\tReturn a |List| with the lines starting from {lnum} to {end}","\\t\\t(inclusive) in the buffer {expr}. If {end} is omitted, a","\\t\\t|List| with only the line {lnum} is returned.","","\\t\\tFor the use of {expr}, see |bufname()| above.","","\\t\\tFor {lnum} and {end} \\"$\\" can be used for the last line of the","\\t\\tbuffer. Otherwise a number must be used.","","\\t\\tWhen {lnum} is smaller than 1 or bigger than the number of","\\t\\tlines in the buffer, an empty |List| is returned.","","\\t\\tWhen {end} is greater than the number of lines in the buffer,","\\t\\tit is treated as {end} is set to the number of lines in the","\\t\\tbuffer. When {end} is before {lnum} an empty |List| is","\\t\\treturned.","","\\t\\tThis function works only for loaded buffers. For unloaded and","\\t\\tnon-existing buffers, an empty |List| is returned.","","\\t\\tExample: >","\\t\\t\\t:let lines = getbufline(bufnr(\\"myfile\\"), 1, \\"$\\")"],"getbufvar":["\\t\\tThe result is the value of option or local buffer variable","\\t\\t{varname} in buffer {expr}. Note that the name without \\"b:\\"","\\t\\tmust be used.","\\t\\tWhen {varname} is empty returns a dictionary with all the","\\t\\tbuffer-local variables.","\\t\\tWhen {varname} is equal to \\"&\\" returns a dictionary with all","\\t\\tthe buffer-local options.","\\t\\tOtherwise, when {varname} starts with \\"&\\" returns the value of","\\t\\ta buffer-local option.","\\t\\tThis also works for a global or buffer-local option, but it","\\t\\tdoesn\'t work for a global variable, window-local variable or","\\t\\twindow-local option.","\\t\\tFor the use of {expr}, see |bufname()| above.","\\t\\tWhen the buffer or variable doesn\'t exist {def} or an empty","\\t\\tstring is returned, there is no error message.","\\t\\tExamples: >","\\t\\t\\t:let bufmodified = getbufvar(1, \\"&mod\\")","\\t\\t\\t:echo \\"todo myvar = \\" . getbufvar(\\"todo\\", \\"myvar\\")"],"getchangelist":["\\t\\tReturns the |changelist| for the buffer {expr}. For the use","\\t\\tof {expr}, see |bufname()| above. If buffer {expr} doesn\'t","\\t\\texist, an empty list is returned.","","\\t\\tThe returned list contains two entries: a list with the change","\\t\\tlocations and the current position in the list. Each","\\t\\tentry in the change list is a dictionary with the following","\\t\\tentries:","\\t\\t\\tcol\\t\\tcolumn number","\\t\\t\\tcoladd\\t\\tcolumn offset for \'virtualedit\'","\\t\\t\\tlnum\\t\\tline number","\\t\\tIf buffer {expr} is the current buffer, then the current","\\t\\tposition refers to the position in the list. For other","\\t\\tbuffers, it is set to the length of the list."],"getchar":["\\t\\tGet a single character from the user or input stream.","\\t\\tIf [expr] is omitted, wait until a character is available.","\\t\\tIf [expr] is 0, only get a character when one is available.","\\t\\t\\tReturn zero otherwise.","\\t\\tIf [expr] is 1, only check if a character is available, it is","\\t\\t\\tnot consumed. Return zero if no character available.","","\\t\\tWithout [expr] and when [expr] is 0 a whole character or","\\t\\tspecial key is returned. If it is a single character, the","\\t\\tresult is a number. Use nr2char() to convert it to a String.","\\t\\tOtherwise a String is returned with the encoded character.","\\t\\tFor a special key it\'s a String with a sequence of bytes","\\t\\tstarting with 0x80 (decimal: 128). This is the same value as","\\t\\tthe String \\"\\\\<Key>\\", e.g., \\"\\\\<Left>\\". The returned value is","\\t\\talso a String when a modifier (shift, control, alt) was used","\\t\\tthat is not included in the character.","","\\t\\tWhen [expr] is 0 and Esc is typed, there will be a short delay","\\t\\twhile Vim waits to see if this is the start of an escape","\\t\\tsequence.","","\\t\\tWhen [expr] is 1 only the first byte is returned. For a","\\t\\tone-byte character it is the character itself as a number.","\\t\\tUse nr2char() to convert it to a String.","","\\t\\tUse getcharmod() to obtain any additional modifiers.","","\\t\\tWhen the user clicks a mouse button, the mouse event will be","\\t\\treturned. The position can then be found in |v:mouse_col|,","\\t\\t|v:mouse_lnum|, |v:mouse_winid| and |v:mouse_win|. This","\\t\\texample positions the mouse as it would normally happen: >","\\t\\t\\tlet c = getchar()","\\t\\t\\tif c == \\"\\\\<LeftMouse>\\" && v:mouse_win > 0","\\t\\t\\t exe v:mouse_win . \\"wincmd w\\"","\\t\\t\\t exe v:mouse_lnum","\\t\\t\\t exe \\"normal \\" . v:mouse_col . \\"|\\"","\\t\\t\\tendif","<","\\t\\tThere is no prompt, you will somehow have to make clear to the","\\t\\tuser that a character has to be typed.","\\t\\tThere is no mapping for the character.","\\t\\tKey codes are replaced, thus when the user presses the <Del>","\\t\\tkey you get the code for the <Del> key, not the raw character","\\t\\tsequence. Examples: >","\\t\\t\\tgetchar() == \\"\\\\<Del>\\"","\\t\\t\\tgetchar() == \\"\\\\<S-Left>\\"","<\\t\\tThis example redefines \\"f\\" to ignore case: >","\\t\\t\\t:nmap f :call FindChar()<CR>","\\t\\t\\t:function FindChar()","\\t\\t\\t: let c = nr2char(getchar())","\\t\\t\\t: while col(\'.\') < col(\'$\') - 1","\\t\\t\\t: normal l","\\t\\t\\t: if getline(\'.\')[col(\'.\') - 1] ==? c","\\t\\t\\t: break","\\t\\t\\t: endif","\\t\\t\\t: endwhile","\\t\\t\\t:endfunction"],"getcharmod":["\\t\\tThe result is a Number which is the state of the modifiers for","\\t\\tthe last obtained character with getchar() or in another way.","\\t\\tThese values are added together:","\\t\\t\\t2\\tshift","\\t\\t\\t4\\tcontrol","\\t\\t\\t8\\talt (meta)","\\t\\t\\t16\\tmeta (when it\'s different from ALT)","\\t\\t\\t32\\tmouse double click","\\t\\t\\t64\\tmouse triple click","\\t\\t\\t96\\tmouse quadruple click (== 32 + 64)","\\t\\t\\t128\\tcommand (Macintosh only)","\\t\\tOnly the modifiers that have not been included in the","\\t\\tcharacter itself are obtained. Thus Shift-a results in \\"A\\"","\\t\\twithout a modifier."],"getcharsearch":["\\t\\tReturn the current character search information as a {dict}","\\t\\twith the following entries:","","\\t\\t char\\tcharacter previously used for a character","\\t\\t\\t\\tsearch (|t|, |f|, |T|, or |F|); empty string","\\t\\t\\t\\tif no character search has been performed","\\t\\t forward\\tdirection of character search; 1 for forward,","\\t\\t\\t\\t0 for backward","\\t\\t until\\ttype of character search; 1 for a |t| or |T|","\\t\\t\\t\\tcharacter search, 0 for an |f| or |F|","\\t\\t\\t\\tcharacter search","","\\t\\tThis can be useful to always have |;| and |,| search","\\t\\tforward/backward regardless of the direction of the previous","\\t\\tcharacter search: >","\\t\\t\\t:nnoremap <expr> ; getcharsearch().forward ? \';\' : \',\'","\\t\\t\\t:nnoremap <expr> , getcharsearch().forward ? \',\' : \';\'","<\\t\\tAlso see |setcharsearch()|."],"getcmdline":["\\t\\tReturn the current command-line. Only works when the command","\\t\\tline is being edited, thus requires use of |c_CTRL-\\\\_e| or","\\t\\t|c_CTRL-R_=|.","\\t\\tExample: >","\\t\\t\\t:cmap <F7> <C-\\\\>eescape(getcmdline(), \' \\\\\')<CR>","<\\t\\tAlso see |getcmdtype()|, |getcmdpos()| and |setcmdpos()|.","\\t\\tReturns an empty string when entering a password or using","\\t\\t|inputsecret()|."],"getcmdpos":["\\t\\tReturn the position of the cursor in the command line as a","\\t\\tbyte count. The first column is 1.","\\t\\tOnly works when editing the command line, thus requires use of","\\t\\t|c_CTRL-\\\\_e| or |c_CTRL-R_=| or an expression mapping.","\\t\\tReturns 0 otherwise.","\\t\\tAlso see |getcmdtype()|, |setcmdpos()| and |getcmdline()|."],"getcmdtype":["\\t\\tReturn the current command-line type. Possible return values","\\t\\tare:","\\t\\t :\\tnormal Ex command","\\t\\t >\\tdebug mode command |debug-mode|","\\t\\t /\\tforward search command","\\t\\t ?\\tbackward search command","\\t\\t @\\t|input()| command","\\t\\t -\\t|:insert| or |:append| command","\\t\\t =\\t|i_CTRL-R_=|","\\t\\tOnly works when editing the command line, thus requires use of","\\t\\t|c_CTRL-\\\\_e| or |c_CTRL-R_=| or an expression mapping.","\\t\\tReturns an empty string otherwise.","\\t\\tAlso see |getcmdpos()|, |setcmdpos()| and |getcmdline()|."],"getcmdwintype":["\\t\\tReturn the current |command-line-window| type. Possible return","\\t\\tvalues are the same as |getcmdtype()|. Returns an empty string","\\t\\twhen not in the command-line window."],"getcompletion":["\\t\\tReturn a list of command-line completion matches. {type}","\\t\\tspecifies what for. The following completion types are","\\t\\tsupported:","","\\t\\targlist\\t\\tfile names in argument list","\\t\\taugroup\\t\\tautocmd groups","\\t\\tbuffer\\t\\tbuffer names","\\t\\tbehave\\t\\t:behave suboptions","\\t\\tcmdline\\t\\t|cmdline-completion|","\\t\\tcolor\\t\\tcolor schemes","\\t\\tcommand\\t\\tEx command (and arguments)","\\t\\tcompiler\\tcompilers","\\t\\tcscope\\t\\t|:cscope| suboptions","\\t\\tdir\\t\\tdirectory names","\\t\\tenvironment\\tenvironment variable names","\\t\\tevent\\t\\tautocommand events","\\t\\texpression\\tVim expression","\\t\\tfile\\t\\tfile and directory names","\\t\\tfile_in_path\\tfile and directory names in |\'path\'|","\\t\\tfiletype\\tfiletype names |\'filetype\'|","\\t\\tfunction\\tfunction name","\\t\\thelp\\t\\thelp subjects","\\t\\thighlight\\thighlight groups","\\t\\thistory\\t\\t:history suboptions","\\t\\tlocale\\t\\tlocale names (as output of locale -a)","\\t\\tmapclear buffer argument","\\t\\tmapping\\t\\tmapping name","\\t\\tmenu\\t\\tmenus","\\t\\tmessages\\t|:messages| suboptions","\\t\\toption\\t\\toptions","\\t\\tpackadd\\t\\toptional package |pack-add| names","\\t\\tshellcmd\\tShell command","\\t\\tsign\\t\\t|:sign| suboptions","\\t\\tsyntax\\t\\tsyntax file names |\'syntax\'|","\\t\\tsyntime\\t\\t|:syntime| suboptions","\\t\\ttag\\t\\ttags","\\t\\ttag_listfiles\\ttags, file names","\\t\\tuser\\t\\tuser names","\\t\\tvar\\t\\tuser variables","","\\t\\tIf {pat} is an empty string then all matches are returned.","\\t\\tOtherwise only items matching {pat} are returned. See","\\t\\t|wildcards| for the use of special characters in {pat}.","","\\t\\tIf the optional {filtered} flag is set to 1, then \'wildignore\'","\\t\\tis applied to filter the results. Otherwise all the matches","\\t\\tare returned. The \'wildignorecase\' option always applies.","","\\t\\tIf there are no matches, an empty list is returned. An","\\t\\tinvalid value for {type} produces an error.",""],"getcurpos":["\\t\\tincludes an extra item in the list:","\\t\\t [bufnum, lnum, col, off, curswant] ~"," \\t\\tThe \\"curswant\\" number is the preferred column when moving the","\\t\\tcursor vertically. Also see |getpos()|.",""," \\t\\tThis can be used to save and restore the cursor position: >"," \\t\\t\\tlet save_cursor = getcurpos()"," \\t\\t\\tMoveTheCursorAround"," \\t\\t\\tcall setpos(\'.\', save_cursor)","<\\t\\tNote that this only works within the window. See","\\t\\t|winrestview()| for restoring more state."],"getcwd":["\\t\\tWith no arguments the result is a String, which is the name of","\\t\\tthe current effective working directory. With {winnr} or","\\t\\t{tabnr} the working directory of that scope is returned.","\\t\\tTabs and windows are identified by their respective numbers,","\\t\\t0 means current tab or window. Missing argument implies 0.","\\t\\tThus the following are equivalent: >","\\t\\t\\tgetcwd()","\\t\\t\\tgetcwd(0)","\\t\\t\\tgetcwd(0, 0)","<\\t\\tIf {winnr} is -1 it is ignored, only the tab is resolved.","\\t\\t{winnr} can be the window number or the |window-ID|."],"getenv":["\\t\\tReturn the value of environment variable {name}.","\\t\\tWhen the variable does not exist |v:null| is returned. That","\\t\\tis different from a variable set to an empty string.","\\t\\tSee also |expr-env|."],"getfontname":["\\t\\tWithout an argument returns the name of the normal font being","\\t\\tused. Like what is used for the Normal highlight group","\\t\\t|hl-Normal|.","\\t\\tWith an argument a check is done whether {name} is a valid","\\t\\tfont name. If not then an empty string is returned.","\\t\\tOtherwise the actual font name is returned, or {name} if the","\\t\\tGUI does not support obtaining the real name.","\\t\\tOnly works when the GUI is running, thus not in your vimrc or","\\t\\tgvimrc file. Use the |GUIEnter| autocommand to use this","\\t\\tfunction just after the GUI has started."],"getfperm":["\\t\\tThe result is a String, which is the read, write, and execute","\\t\\tpermissions of the given file {fname}.","\\t\\tIf {fname} does not exist or its directory cannot be read, an","\\t\\tempty string is returned.","\\t\\tThe result is of the form \\"rwxrwxrwx\\", where each group of","\\t\\t\\"rwx\\" flags represent, in turn, the permissions of the owner","\\t\\tof the file, the group the file belongs to, and other users.","\\t\\tIf a user does not have a given permission the flag for this","\\t\\tis replaced with the string \\"-\\". Examples: >","\\t\\t\\t:echo getfperm(\\"/etc/passwd\\")","\\t\\t\\t:echo getfperm(expand(\\"~/.config/nvim/init.vim\\"))","<\\t\\tThis will hopefully (from a security point of view) display","\\t\\tthe string \\"rw-r--r--\\" or even \\"rw-------\\".","","\\t\\tFor setting permissions use |setfperm()|."],"getfsize":["\\t\\tThe result is a Number, which is the size in bytes of the","\\t\\tgiven file {fname}.","\\t\\tIf {fname} is a directory, 0 is returned.","\\t\\tIf the file {fname} can\'t be found, -1 is returned.","\\t\\tIf the size of {fname} is too big to fit in a Number then -2","\\t\\tis returned."],"getftime":["\\t\\tThe result is a Number, which is the last modification time of","\\t\\tthe given file {fname}. The value is measured as seconds","\\t\\tsince 1st Jan 1970, and may be passed to strftime(). See also","\\t\\t|localtime()| and |strftime()|.","\\t\\tIf the file {fname} can\'t be found -1 is returned."],"getftype":["\\t\\tThe result is a String, which is a description of the kind of","\\t\\tfile of the given file {fname}.","\\t\\tIf {fname} does not exist an empty string is returned.","\\t\\tHere is a table over different kinds of files and their","\\t\\tresults:","\\t\\t\\tNormal file\\t\\t\\"file\\"","\\t\\t\\tDirectory\\t\\t\\"dir\\"","\\t\\t\\tSymbolic link\\t\\t\\"link\\"","\\t\\t\\tBlock device\\t\\t\\"bdev\\"","\\t\\t\\tCharacter device\\t\\"cdev\\"","\\t\\t\\tSocket\\t\\t\\t\\"socket\\"","\\t\\t\\tFIFO\\t\\t\\t\\"fifo\\"","\\t\\t\\tAll other\\t\\t\\"other\\"","\\t\\tExample: >","\\t\\t\\tgetftype(\\"/home\\")","<\\t\\tNote that a type such as \\"link\\" will only be returned on","\\t\\tsystems that support it. On some systems only \\"dir\\" and","\\t\\t\\"file\\" are returned."],"getjumplist":["\\t\\tReturns the |jumplist| for the specified window.","","\\t\\tWithout arguments use the current window.","\\t\\tWith {winnr} only use this window in the current tab page.","\\t\\t{winnr} can also be a |window-ID|.","\\t\\tWith {winnr} and {tabnr} use the window in the specified tab","\\t\\tpage.","","\\t\\tThe returned list contains two entries: a list with the jump","\\t\\tlocations and the last used jump position number in the list.","\\t\\tEach entry in the jump location list is a dictionary with","\\t\\tthe following entries:","\\t\\t\\tbufnr\\t\\tbuffer number","\\t\\t\\tcol\\t\\tcolumn number","\\t\\t\\tcoladd\\t\\tcolumn offset for \'virtualedit\'","\\t\\t\\tfilename\\tfilename if available","\\t\\t\\tlnum\\t\\tline number",""],"getline":["\\t\\tWithout {end} the result is a String, which is line {lnum}","\\t\\tfrom the current buffer. Example: >","\\t\\t\\tgetline(1)","<\\t\\tWhen {lnum} is a String that doesn\'t start with a","\\t\\tdigit, |line()| is called to translate the String into a Number.","\\t\\tTo get the line under the cursor: >","\\t\\t\\tgetline(\\".\\")","<\\t\\tWhen {lnum} is smaller than 1 or bigger than the number of","\\t\\tlines in the buffer, an empty string is returned.","","\\t\\tWhen {end} is given the result is a |List| where each item is","\\t\\ta line from the current buffer in the range {lnum} to {end},","\\t\\tincluding line {end}.","\\t\\t{end} is used in the same way as {lnum}.","\\t\\tNon-existing lines are silently omitted.","\\t\\tWhen {end} is before {lnum} an empty |List| is returned.","\\t\\tExample: >","\\t\\t\\t:let start = line(\'.\')","\\t\\t\\t:let end = search(\\"^$\\") - 1","\\t\\t\\t:let lines = getline(start, end)","","<\\t\\tTo get lines from another buffer see |getbufline()|"],"getloclist":["\\t\\tReturns a list with all the entries in the location list for","\\t\\twindow {nr}. {nr} can be the window number or the |window-ID|.","\\t\\tWhen {nr} is zero the current window is used.","","\\t\\tFor a location list window, the displayed location list is","\\t\\treturned. For an invalid window number {nr}, an empty list is","\\t\\treturned. Otherwise, same as |getqflist()|.","","\\t\\tIf the optional {what} dictionary argument is supplied, then","\\t\\treturns the items listed in {what} as a dictionary. Refer to","\\t\\t|getqflist()| for the supported items in {what}.","\\t\\tIf {what} contains \'filewinid\', then returns the id of the","\\t\\twindow used to display files from the location list. This","\\t\\tfield is applicable only when called from a location list","\\t\\twindow."],"getmatches":["\\t\\tReturns a |List| with all matches previously defined for the","\\t\\tcurrent window by |matchadd()| and the |:match| commands.","\\t\\t|getmatches()| is useful in combination with |setmatches()|,","\\t\\tas |setmatches()| can restore a list of matches saved by","\\t\\t|getmatches()|.","\\t\\tExample: >","\\t\\t\\t:echo getmatches()","<\\t\\t\\t[{\'group\': \'MyGroup1\', \'pattern\': \'TODO\',","\\t\\t\\t\'priority\': 10, \'id\': 1}, {\'group\': \'MyGroup2\',","\\t\\t\\t\'pattern\': \'FIXME\', \'priority\': 10, \'id\': 2}] >","\\t\\t\\t:let m = getmatches()","\\t\\t\\t:call clearmatches()","\\t\\t\\t:echo getmatches()","<\\t\\t\\t[] >","\\t\\t\\t:call setmatches(m)","\\t\\t\\t:echo getmatches()","<\\t\\t\\t[{\'group\': \'MyGroup1\', \'pattern\': \'TODO\',","\\t\\t\\t\'priority\': 10, \'id\': 1}, {\'group\': \'MyGroup2\',","\\t\\t\\t\'pattern\': \'FIXME\', \'priority\': 10, \'id\': 2}] >","\\t\\t\\t:unlet m","<"],"getpid":["\\t\\tThis is a unique number, until Vim exits.",""],"getpos":["\\t\\tsee |line()|. For getting the cursor position see","\\t\\t|getcurpos()|.","\\t\\tThe result is a |List| with four numbers:","\\t\\t [bufnum, lnum, col, off]","\\t\\t\\"bufnum\\" is zero, unless a mark like \'0 or \'A is used, then it","\\t\\tis the buffer number of the mark.","\\t\\t\\"lnum\\" and \\"col\\" are the position in the buffer. The first","\\t\\tcolumn is 1.","\\t\\tThe \\"off\\" number is zero, unless \'virtualedit\' is used. Then","\\t\\tit is the offset in screen columns from the start of the","\\t\\tcharacter. E.g., a position within a <Tab> or after the last","\\t\\tcharacter.","\\t\\tNote that for \'< and \'> Visual mode matters: when it is \\"V\\"","\\t\\t(visual line mode) the column of \'< is zero and the column of","\\t\\t\'> is a large number.","\\t\\tThis can be used to save and restore the position of a mark: >","\\t\\t\\tlet save_a_mark = getpos(\\"\'a\\")","\\t\\t\\t...","\\t\\t\\tcall setpos(\\"\'a\\", save_a_mark)","<\\t\\tAlso see |getcurpos()| and |setpos()|.",""],"getqflist":["\\t\\tReturns a list with all the current quickfix errors. Each","\\t\\tlist item is a dictionary with these entries:","\\t\\t\\tbufnr\\tnumber of buffer that has the file name, use","\\t\\t\\t\\tbufname() to get the name","\\t\\t\\tmodule\\tmodule name","\\t\\t\\tlnum\\tline number in the buffer (first line is 1)","\\t\\t\\tcol\\tcolumn number (first column is 1)","\\t\\t\\tvcol\\t|TRUE|: \\"col\\" is visual column","\\t\\t\\t\\t|FALSE|: \\"col\\" is byte index","\\t\\t\\tnr\\terror number","\\t\\t\\tpattern\\tsearch pattern used to locate the error","\\t\\t\\ttext\\tdescription of the error","\\t\\t\\ttype\\ttype of the error, \'E\', \'1\', etc.","\\t\\t\\tvalid\\t|TRUE|: recognized error message","","\\t\\tWhen there is no error list or it\'s empty, an empty list is","\\t\\treturned. Quickfix list entries with non-existing buffer","\\t\\tnumber are returned with \\"bufnr\\" set to zero.","","\\t\\tUseful application: Find pattern matches in multiple files and","\\t\\tdo something with them: >","\\t\\t\\t:vimgrep /theword/jg *.c","\\t\\t\\t:for d in getqflist()","\\t\\t\\t: echo bufname(d.bufnr) \':\' d.lnum \'=\' d.text","\\t\\t\\t:endfor","<","\\t\\tIf the optional {what} dictionary argument is supplied, then","\\t\\treturns only the items listed in {what} as a dictionary. The","\\t\\tfollowing string items are supported in {what}:","\\t\\t\\tchangedtick\\tget the total number of changes made","\\t\\t\\t\\t\\tto the list |quickfix-changedtick|","\\t\\t\\tcontext\\tget the |quickfix-context|","\\t\\t\\tefm\\terrorformat to use when parsing \\"lines\\". If","\\t\\t\\t\\tnot present, then the \'errorformat\' option","\\t\\t\\t\\tvalue is used.","\\t\\t\\tid\\tget information for the quickfix list with","\\t\\t\\t\\t|quickfix-ID|; zero means the id for the","\\t\\t\\t\\tcurrent list or the list specified by \\"nr\\"","\\t\\t\\tidx\\tindex of the current entry in the list","\\t\\t\\titems\\tquickfix list entries","\\t\\t\\tlines\\tparse a list of lines using \'efm\' and return","\\t\\t\\t\\tthe resulting entries. Only a |List| type is","\\t\\t\\t\\taccepted. The current quickfix list is not","\\t\\t\\t\\tmodified. See |quickfix-parse|.","\\t\\t\\tnr\\tget information for this quickfix list; zero","\\t\\t\\t\\tmeans the current quickfix list and \\"$\\" means","\\t\\t\\t\\tthe last quickfix list","\\t\\t\\tsize\\tnumber of entries in the quickfix list","\\t\\t\\ttitle\\tget the list title |quickfix-title|","\\t\\t\\twinid\\tget the quickfix |window-ID|","\\t\\t\\tall\\tall of the above quickfix properties","\\t\\tNon-string items in {what} are ignored. To get the value of a","\\t\\tparticular item, set it to zero.","\\t\\tIf \\"nr\\" is not present then the current quickfix list is used.","\\t\\tIf both \\"nr\\" and a non-zero \\"id\\" are specified, then the list","\\t\\tspecified by \\"id\\" is used.","\\t\\tTo get the number of lists in the quickfix stack, set \\"nr\\" to","\\t\\t\\"$\\" in {what}. The \\"nr\\" value in the returned dictionary","\\t\\tcontains the quickfix stack size.","\\t\\tWhen \\"lines\\" is specified, all the other items except \\"efm\\"","\\t\\tare ignored. The returned dictionary contains the entry","\\t\\t\\"items\\" with the list of entries.","","\\t\\tThe returned dictionary contains the following entries:","\\t\\t\\tchangedtick\\ttotal number of changes made to the","\\t\\t\\t\\t\\tlist |quickfix-changedtick|","\\t\\t\\tcontext\\tquickfix list context. See |quickfix-context|","\\t\\t\\t\\tIf not present, set to \\"\\".","\\t\\t\\tid\\tquickfix list ID |quickfix-ID|. If not","\\t\\t\\t\\tpresent, set to 0.","\\t\\t\\tidx\\tindex of the current entry in the list. If not","\\t\\t\\t\\tpresent, set to 0.","\\t\\t\\titems\\tquickfix list entries. If not present, set to","\\t\\t\\t\\tan empty list.","\\t\\t\\tnr\\tquickfix list number. If not present, set to 0","\\t\\t\\tsize\\tnumber of entries in the quickfix list. If not","\\t\\t\\t\\tpresent, set to 0.","\\t\\t\\ttitle\\tquickfix list title text. If not present, set","\\t\\t\\t\\tto \\"\\".","\\t\\t\\twinid\\tquickfix |window-ID|. If not present, set to 0","","\\t\\tExamples (See also |getqflist-examples|): >","\\t\\t\\t:echo getqflist({\'all\': 1})","\\t\\t\\t:echo getqflist({\'nr\': 2, \'title\': 1})","\\t\\t\\t:echo getqflist({\'lines\' : [\\"F1:10:L10\\"]})"],"getreg":["\\t\\tThe result is a String, which is the contents of register","\\t\\t{regname}. Example: >","\\t\\t\\t:let cliptext = getreg(\'*\')","<\\t\\tWhen {regname} was not set the result is an empty string.","","\\t\\tgetreg(\'=\') returns the last evaluated value of the expression","\\t\\tregister. (For use in maps.)","\\t\\tgetreg(\'=\', 1) returns the expression itself, so that it can","\\t\\tbe restored with |setreg()|. For other registers the extra","\\t\\targument is ignored, thus you can always give it.","","\\t\\tIf {list} is present and |TRUE|, the result type is changed","\\t\\tto |List|. Each list item is one text line. Use it if you care","\\t\\tabout zero bytes possibly present inside register: without","\\t\\tthird argument both NLs and zero bytes are represented as NLs","\\t\\t(see |NL-used-for-Nul|).","\\t\\tWhen the register was not set an empty list is returned.","","\\t\\tIf {regname} is not specified, |v:register| is used.",""],"getregtype":["\\t\\tThe result is a String, which is type of register {regname}.","\\t\\tThe value will be one of:","\\t\\t \\"v\\"\\t\\t\\tfor |charwise| text","\\t\\t \\"V\\"\\t\\t\\tfor |linewise| text","\\t\\t \\"<CTRL-V>{width}\\"\\tfor |blockwise-visual| text","\\t\\t \\"\\"\\t\\t\\tfor an empty or unknown register","\\t\\t<CTRL-V> is one character with value 0x16.","\\t\\tIf {regname} is not specified, |v:register| is used."],"gettabinfo":["\\t\\tIf {arg} is not specified, then information about all the tab","\\t\\tpages is returned as a List. Each List item is a Dictionary.","\\t\\tOtherwise, {arg} specifies the tab page number and information","\\t\\tabout that one is returned. If the tab page does not exist an","\\t\\tempty List is returned.","","\\t\\tEach List item is a Dictionary with the following entries:","\\t\\t\\ttabnr\\t\\ttab page number.","\\t\\t\\tvariables\\ta reference to the dictionary with","\\t\\t\\t\\t\\ttabpage-local variables","\\t\\t\\twindows\\t\\tList of |window-ID|s in the tab page."],"gettabvar":["\\t\\tGet the value of a tab-local variable {varname} in tab page","\\t\\t{tabnr}. |t:var|","\\t\\tTabs are numbered starting with one.","\\t\\tWhen {varname} is empty a dictionary with all tab-local","\\t\\tvariables is returned.","\\t\\tNote that the name without \\"t:\\" must be used.","\\t\\tWhen the tab or variable doesn\'t exist {def} or an empty","\\t\\tstring is returned, there is no error message."],"gettabwinvar":["\\t\\tGet the value of window-local variable {varname} in window","\\t\\t{winnr} in tab page {tabnr}.","\\t\\tWhen {varname} is empty a dictionary with all window-local","\\t\\tvariables is returned.","\\t\\tWhen {varname} is equal to \\"&\\" get the values of all","\\t\\twindow-local options in a Dictionary.","\\t\\tOtherwise, when {varname} starts with \\"&\\" get the value of a","\\t\\twindow-local option.","\\t\\tNote that {varname} must be the name without \\"w:\\".","\\t\\tTabs are numbered starting with one. For the current tabpage","\\t\\tuse |getwinvar()|.","\\t\\t{winnr} can be the window number or the |window-ID|.","\\t\\tWhen {winnr} is zero the current window is used.","\\t\\tThis also works for a global option, buffer-local option and","\\t\\twindow-local option, but it doesn\'t work for a global variable","\\t\\tor buffer-local variable.","\\t\\tWhen the tab, window or variable doesn\'t exist {def} or an","\\t\\tempty string is returned, there is no error message.","\\t\\tExamples: >","\\t\\t\\t:let list_is_on = gettabwinvar(1, 2, \'&list\')","\\t\\t\\t:echo \\"myvar = \\" . gettabwinvar(3, 1, \'myvar\')","<","\\t\\tTo obtain all window-local variables use: >","\\t\\t\\tgettabwinvar({tabnr}, {winnr}, \'&\')"],"gettagstack":["\\t\\tThe result is a Dict, which is the tag stack of window {nr}.","\\t\\t{nr} can be the window number or the |window-ID|.","\\t\\tWhen {nr} is not specified, the current window is used.","\\t\\tWhen window {nr} doesn\'t exist, an empty Dict is returned.","","\\t\\tThe returned dictionary contains the following entries:","\\t\\t\\tcuridx\\t\\tCurrent index in the stack. When at","\\t\\t\\t\\t\\ttop of the stack, set to (length + 1).","\\t\\t\\t\\t\\tIndex of bottom of the stack is 1.","\\t\\t\\titems\\t\\tList of items in the stack. Each item","\\t\\t\\t\\t\\tis a dictionary containing the","\\t\\t\\t\\t\\tentries described below.","\\t\\t\\tlength\\t\\tNumber of entries in the stack.","","\\t\\tEach item in the stack is a dictionary with the following","\\t\\tentries:","\\t\\t\\tbufnr\\t\\tbuffer number of the current jump","\\t\\t\\tfrom\\t\\tcursor position before the tag jump.","\\t\\t\\t\\t\\tSee |getpos()| for the format of the","\\t\\t\\t\\t\\treturned list.","\\t\\t\\tmatchnr\\t\\tcurrent matching tag number. Used when","\\t\\t\\t\\t\\tmultiple matching tags are found for a","\\t\\t\\t\\t\\tname.","\\t\\t\\ttagname\\t\\tname of the tag","","\\t\\tSee |tagstack| for more information about the tag stack."],"getwininfo":["\\t\\tReturns information about windows as a List with Dictionaries.","","\\t\\tIf {winid} is given Information about the window with that ID","\\t\\tis returned. If the window does not exist the result is an","\\t\\tempty list.","","\\t\\tWithout {winid} information about all the windows in all the","\\t\\ttab pages is returned.","","\\t\\tEach List item is a Dictionary with the following entries:","\\t\\t\\tbotline\\t\\tlast displayed buffer line","\\t\\t\\tbufnr\\t\\tnumber of buffer in the window","\\t\\t\\theight\\t\\twindow height (excluding winbar)","\\t\\t\\tloclist\\t\\t1 if showing a location list","\\t\\t\\tquickfix\\t1 if quickfix or location list window","\\t\\t\\tterminal\\t1 if a terminal window","\\t\\t\\ttabnr\\t\\ttab page number","\\t\\t\\ttopline\\t\\tfirst displayed buffer line ","\\t\\t\\tvariables\\ta reference to the dictionary with","\\t\\t\\t\\t\\twindow-local variables","\\t\\t\\twidth\\t\\twindow width","\\t\\t\\twinbar\\t\\t1 if the window has a toolbar, 0","\\t\\t\\t\\t\\totherwise","\\t\\t\\twincol\\t\\tleftmost screen column of the window","\\t\\t\\twinid\\t\\t|window-ID|","\\t\\t\\twinnr\\t\\twindow number","\\t\\t\\twinrow\\t\\ttopmost screen column of the window"],"getwinpos":["\\t\\tThe result is a list with two numbers, the result of","\\t\\tgetwinposx() and getwinposy() combined:","\\t\\t\\t[x-pos, y-pos]","\\t\\t{timeout} can be used to specify how long to wait in msec for","\\t\\ta response from the terminal. When omitted 100 msec is used.",""],"getwinposx":["\\t\\tthe left hand side of the GUI Vim window. The result will be","\\t\\t-1 if the information is not available.","\\t\\tThe value can be used with `:winpos`.",""],"getwinposy":["\\t\\tthe top of the GUI Vim window. The result will be -1 if the","\\t\\tinformation is not available.","\\t\\tThe value can be used with `:winpos`."],"getwinvar":["\\t\\tLike |gettabwinvar()| for the current tabpage.","\\t\\tExamples: >","\\t\\t\\t:let list_is_on = getwinvar(2, \'&list\')","\\t\\t\\t:echo \\"myvar = \\" . getwinvar(1, \'myvar\')"],"glob":["\\t\\tExpand the file wildcards in {expr}. See |wildcards| for the","\\t\\tuse of special characters.","","\\t\\tUnless the optional {nosuf} argument is given and is |TRUE|,","\\t\\tthe \'suffixes\' and \'wildignore\' options apply: Names matching","\\t\\tone of the patterns in \'wildignore\' will be skipped and","\\t\\t\'suffixes\' affect the ordering of matches.","\\t\\t\'wildignorecase\' always applies.","","\\t\\tWhen {list} is present and it is |TRUE| the result is a List","\\t\\twith all matching files. The advantage of using a List is,","\\t\\tyou also get filenames containing newlines correctly.","\\t\\tOtherwise the result is a String and when there are several","\\t\\tmatches, they are separated by <NL> characters.","","\\t\\tIf the expansion fails, the result is an empty String or List.","","\\t\\tYou can also use |readdir()| if you need to do complicated","\\t\\tthings, such as limiting the number of matches.","","\\t\\tA name for a non-existing file is not included. A symbolic","\\t\\tlink is only included if it points to an existing file.","\\t\\tHowever, when the {alllinks} argument is present and it is","\\t\\t|TRUE| then all symbolic links are included.","","\\t\\tFor most systems backticks can be used to get files names from","\\t\\tany external command. Example: >","\\t\\t\\t:let tagfiles = glob(\\"`find . -name tags -print`\\")","\\t\\t\\t:let &tags = substitute(tagfiles, \\"\\\\n\\", \\",\\", \\"g\\")","<\\t\\tThe result of the program inside the backticks should be one","\\t\\titem per line. Spaces inside an item are allowed.","","\\t\\tSee |expand()| for expanding special Vim variables. See","\\t\\t|system()| for getting the raw output of an external command."],"glob2regpat":["\\t\\tConvert a file pattern, as used by glob(), into a search","\\t\\tpattern. The result can be used to match with a string that","\\t\\tis a file name. E.g. >","\\t\\t\\tif filename =~ glob2regpat(\'Make*.mak\')","<\\t\\tThis is equivalent to: >","\\t\\t\\tif filename =~ \'^Make.*\\\\.mak$\'","<\\t\\tWhen {expr} is an empty string the result is \\"^$\\", match an","\\t\\tempty string.","\\t\\tNote that the result depends on the system. On MS-Windows","\\t\\ta backslash usually means a path separator.",""],"globpath":["\\t\\tPerform glob() on all directories in {path} and concatenate","\\t\\tthe results. Example: >","\\t\\t\\t:echo globpath(&rtp, \\"syntax/c.vim\\")","<","\\t\\t{path} is a comma-separated list of directory names. Each","\\t\\tdirectory name is prepended to {expr} and expanded like with","\\t\\t|glob()|. A path separator is inserted when needed.","\\t\\tTo add a comma inside a directory name escape it with a","\\t\\tbackslash. Note that on MS-Windows a directory may have a","\\t\\ttrailing backslash, remove it if you put a comma after it.","\\t\\tIf the expansion fails for one of the directories, there is no","\\t\\terror message.","","\\t\\tUnless the optional {nosuf} argument is given and is |TRUE|,","\\t\\tthe \'suffixes\' and \'wildignore\' options apply: Names matching","\\t\\tone of the patterns in \'wildignore\' will be skipped and","\\t\\t\'suffixes\' affect the ordering of matches.","","\\t\\tWhen {list} is present and it is |TRUE| the result is a List","\\t\\twith all matching files. The advantage of using a List is, you","\\t\\talso get filenames containing newlines correctly. Otherwise","\\t\\tthe result is a String and when there are several matches,","\\t\\tthey are separated by <NL> characters. Example: >","\\t\\t\\t:echo globpath(&rtp, \\"syntax/c.vim\\", 0, 1)","<","\\t\\t{allinks} is used as with |glob()|.","","\\t\\tThe \\"**\\" item can be used to search in a directory tree.","\\t\\tFor example, to find all \\"README.txt\\" files in the directories","\\t\\tin \'runtimepath\' and below: >","\\t\\t\\t:echo globpath(&rtp, \\"**/README.txt\\")","<\\t\\tUpwards search and limiting the depth of \\"**\\" is not","\\t\\tsupported, thus using \'path\' will not always work properly.",""],"has":["\\t\\t{feature} argument is a feature name like \\"nvim-0.2.1\\" or","\\t\\t\\"win32\\", see below. See also |exists()|.","","\\t\\tVim\'s compile-time feature-names (prefixed with \\"+\\") are not","\\t\\trecognized because Nvim is always compiled with all possible","\\t\\tfeatures. |feature-compile| ","","\\t\\tFeature names can be:","\\t\\t1. Nvim version. For example the \\"nvim-0.2.1\\" feature means","\\t\\t that Nvim is version 0.2.1 or later: >","\\t\\t\\t:if has(\\"nvim-0.2.1\\")","","<\\t\\t2. Runtime condition or other pseudo-feature. For example the","\\t\\t \\"win32\\" feature checks if the current system is Windows: >","\\t\\t\\t:if has(\\"win32\\")","<\\t\\t\\t\\t\\t\\t\\t*feature-list*","\\t\\t List of supported pseudo-feature names:","\\t\\t acl\\t\\t|ACL| support","\\t\\t\\tbsd\\t\\tBSD system (not macOS, use \\"mac\\" for that).","\\t\\t iconv\\t\\tCan use |iconv()| for conversion.","\\t\\t +shellslash\\tCan use backslashes in filenames (Windows)","\\t\\t\\tclipboard\\t|clipboard| provider is available.","\\t\\t\\tmac\\t\\tMacOS system.","\\t\\t\\tnvim\\t\\tThis is Nvim.","\\t\\t\\tpython2\\t\\tLegacy Vim |python2| interface. |has-python|","\\t\\t\\tpython3\\t\\tLegacy Vim |python3| interface. |has-python|","\\t\\t\\tpythonx\\t\\tLegacy Vim |python_x| interface. |has-pythonx|","\\t\\t\\tttyin\\t\\tinput is a terminal (tty)","\\t\\t\\tttyout\\t\\toutput is a terminal (tty)","\\t\\t\\tunix\\t\\tUnix system.","\\t\\t\\t*vim_starting*\\tTrue during |startup|. ","\\t\\t\\twin32\\t\\tWindows system (32 or 64 bit).","\\t\\t\\twin64\\t\\tWindows system (64 bit).","\\t\\t\\twsl\\t\\tWSL (Windows Subsystem for Linux) system","","\\t\\t\\t\\t\\t\\t\\t*has-patch*","\\t\\t3. Vim patch. For example the \\"patch123\\" feature means that","\\t\\t Vim patch 123 at the current |v:version| was included: >","\\t\\t\\t:if v:version > 602 || v:version == 602 && has(\\"patch148\\")","","<\\t\\t4. Vim version. For example the \\"patch-7.4.237\\" feature means","\\t\\t that Nvim is Vim-compatible to version 7.4.237 or later. >","\\t\\t\\t:if has(\\"patch-7.4.237\\")",""],"has_key":["\\t\\tThe result is a Number, which is 1 if |Dictionary| {dict} has","\\t\\tan entry with key {key}. Zero otherwise."],"haslocaldir":["\\t\\tThe result is a Number, which is 1 when the tabpage or window","\\t\\thas set a local path via |:tcd| or |:lcd|, otherwise 0.","","\\t\\tTabs and windows are identified by their respective numbers,","\\t\\t0 means current tab or window. Missing argument implies 0.","\\t\\tThus the following are equivalent: >","\\t\\t\\thaslocaldir()","\\t\\t\\thaslocaldir(0)","\\t\\t\\thaslocaldir(0, 0)","<\\t\\tWith {winnr} use that window in the current tabpage.","\\t\\tWith {winnr} and {tabnr} use the window in that tabpage.","\\t\\t{winnr} can be the window number or the |window-ID|.","\\t\\tIf {winnr} is -1 it is ignored, only the tab is resolved."],"hasmapto":["\\t\\tThe result is a Number, which is 1 if there is a mapping that","\\t\\tcontains {what} in somewhere in the rhs (what it is mapped to)","\\t\\tand this mapping exists in one of the modes indicated by","\\t\\t{mode}.","\\t\\tWhen {abbr} is there and it is |TRUE| use abbreviations","\\t\\tinstead of mappings. Don\'t forget to specify Insert and/or","\\t\\tCommand-line mode.","\\t\\tBoth the global mappings and the mappings local to the current","\\t\\tbuffer are checked for a match.","\\t\\tIf no matching mapping is found 0 is returned.","\\t\\tThe following characters are recognized in {mode}:","\\t\\t\\tn\\tNormal mode","\\t\\t\\tv\\tVisual mode","\\t\\t\\to\\tOperator-pending mode","\\t\\t\\ti\\tInsert mode","\\t\\t\\tl\\tLanguage-Argument (\\"r\\", \\"f\\", \\"t\\", etc.)","\\t\\t\\tc\\tCommand-line mode","\\t\\tWhen {mode} is omitted, \\"nvo\\" is used.","","\\t\\tThis function is useful to check if a mapping already exists","\\t\\tto a function in a Vim script. Example: >","\\t\\t\\t:if !hasmapto(\'\\\\ABCdoit\')","\\t\\t\\t: map <Leader>d \\\\ABCdoit","\\t\\t\\t:endif","<\\t\\tThis installs the mapping to \\"\\\\ABCdoit\\" only if there isn\'t","\\t\\talready a mapping to \\"\\\\ABCdoit\\"."],"histadd":["\\t\\tAdd the String {item} to the history {history} which can be","\\t\\tone of:\\t\\t\\t\\t\\t*hist-names*","\\t\\t\\t\\"cmd\\"\\t or \\":\\"\\t command line history","\\t\\t\\t\\"search\\" or \\"/\\" search pattern history","\\t\\t\\t\\"expr\\"\\t or \\"=\\" typed expression history","\\t\\t\\t\\"input\\" or \\"@\\"\\t input line history","\\t\\t\\t\\"debug\\" or \\">\\" debug command history","\\t\\t\\tempty\\t\\t the current or last used history","\\t\\tThe {history} string does not need to be the whole name, one","\\t\\tcharacter is sufficient.","\\t\\tIf {item} does already exist in the history, it will be","\\t\\tshifted to become the newest entry.","\\t\\tThe result is a Number: 1 if the operation was successful,","\\t\\totherwise 0 is returned.","","\\t\\tExample: >","\\t\\t\\t:call histadd(\\"input\\", strftime(\\"%Y %b %d\\"))","\\t\\t\\t:let date=input(\\"Enter date: \\")","<\\t\\tThis function is not available in the |sandbox|."],"histdel":["\\t\\tClear {history}, i.e. delete all its entries. See |hist-names|","\\t\\tfor the possible values of {history}.","","\\t\\tIf the parameter {item} evaluates to a String, it is used as a","\\t\\tregular expression. All entries matching that expression will","\\t\\tbe removed from the history (if there are any).","\\t\\tUpper/lowercase must match, unless \\"\\\\c\\" is used |/\\\\c|.","\\t\\tIf {item} evaluates to a Number, it will be interpreted as","\\t\\tan index, see |:history-indexing|. The respective entry will","\\t\\tbe removed if it exists.","","\\t\\tThe result is a Number: 1 for a successful operation,","\\t\\totherwise 0 is returned.","","\\t\\tExamples:","\\t\\tClear expression register history: >","\\t\\t\\t:call histdel(\\"expr\\")","<","\\t\\tRemove all entries starting with \\"*\\" from the search history: >","\\t\\t\\t:call histdel(\\"/\\", \'^\\\\*\')","<","\\t\\tThe following three are equivalent: >","\\t\\t\\t:call histdel(\\"search\\", histnr(\\"search\\"))","\\t\\t\\t:call histdel(\\"search\\", -1)","\\t\\t\\t:call histdel(\\"search\\", \'^\'.histget(\\"search\\", -1).\'$\')","<","\\t\\tTo delete the last search pattern and use the last-but-one for","\\t\\tthe \\"n\\" command and \'hlsearch\': >","\\t\\t\\t:call histdel(\\"search\\", -1)","\\t\\t\\t:let @/ = histget(\\"search\\", -1)"],"histget":["\\t\\tThe result is a String, the entry with Number {index} from","\\t\\t{history}. See |hist-names| for the possible values of","\\t\\t{history}, and |:history-indexing| for {index}. If there is","\\t\\tno such entry, an empty String is returned. When {index} is","\\t\\tomitted, the most recent item from the history is used.","","\\t\\tExamples:","\\t\\tRedo the second last search from history. >","\\t\\t\\t:execute \'/\' . histget(\\"search\\", -2)","","<\\t\\tDefine an Ex command \\":H {num}\\" that supports re-execution of","\\t\\tthe {num}th entry from the output of |:history|. >","\\t\\t\\t:command -nargs=1 H execute histget(\\"cmd\\", 0+<args>)"],"histnr":["\\t\\tThe result is the Number of the current entry in {history}.","\\t\\tSee |hist-names| for the possible values of {history}.","\\t\\tIf an error occurred, -1 is returned.","","\\t\\tExample: >","\\t\\t\\t:let inp_index = histnr(\\"expr\\")"],"hlexists":["\\t\\tThe result is a Number, which is non-zero if a highlight group","\\t\\tcalled {name} exists. This is when the group has been","\\t\\tdefined in some way. Not necessarily when highlighting has","\\t\\tbeen defined for it, it may also have been used for a syntax","\\t\\titem.",""],"hlID":["\\t\\twith name {name}. When the highlight group doesn\'t exist,","\\t\\tzero is returned.","\\t\\tThis can be used to retrieve information about the highlight","\\t\\tgroup. For example, to get the background color of the","\\t\\t\\"Comment\\" group: >","\\t:echo synIDattr(synIDtrans(hlID(\\"Comment\\")), \\"bg\\")"],"hostname":["\\t\\tThe result is a String, which is the name of the machine on","\\t\\twhich Vim is currently running. Machine names greater than","\\t\\t256 characters long are truncated."],"iconv":["\\t\\tThe result is a String, which is the text {expr} converted","\\t\\tfrom encoding {from} to encoding {to}.","\\t\\tWhen the conversion completely fails an empty string is","\\t\\treturned. When some characters could not be converted they","\\t\\tare replaced with \\"?\\".","\\t\\tThe encoding names are whatever the iconv() library function","\\t\\tcan accept, see \\":!man 3 iconv\\".","\\t\\tMost conversions require Vim to be compiled with the |+iconv|","\\t\\tfeature. Otherwise only UTF-8 to latin1 conversion and back","\\t\\tcan be done.","\\t\\tNote that Vim uses UTF-8 for all Unicode encodings, conversion","\\t\\tfrom/to UCS-2 is automatically changed to use UTF-8. You","\\t\\tcannot use UCS-2 in a string anyway, because of the NUL bytes.",""],"indent":["\\t\\tcurrent buffer. The indent is counted in spaces, the value","\\t\\tof \'tabstop\' is relevant. {lnum} is used just like in","\\t\\t|getline()|.","\\t\\tWhen {lnum} is invalid -1 is returned.",""],"index":["\\t\\tReturn the lowest index in |List| {list} where the item has a","\\t\\tvalue equal to {expr}. There is no automatic conversion, so","\\t\\tthe String \\"4\\" is different from the Number 4. And the number","\\t\\t4 is different from the Float 4.0. The value of \'ignorecase\'","\\t\\tis not used here, case always matters.","\\t\\tIf {start} is given then start looking at the item with index","\\t\\t{start} (may be negative for an item relative to the end).","\\t\\tWhen {ic} is given and it is |TRUE|, ignore case. Otherwise","\\t\\tcase must match.","\\t\\t-1 is returned when {expr} is not found in {list}.","\\t\\tExample: >","\\t\\t\\t:let idx = index(words, \\"the\\")","\\t\\t\\t:if index(numbers, 123) >= 0",""],"input":["\\t\\tThe result is a String, which is whatever the user typed on","\\t\\tthe command-line. The {prompt} argument is either a prompt","\\t\\tstring, or a blank string (for no prompt). A \'\\\\n\' can be used","\\t\\tin the prompt to start a new line.","","\\t\\tIn the second form it accepts a single dictionary with the","\\t\\tfollowing keys, any of which may be omitted:","","\\t\\tKey Default Description ~","\\t\\tprompt \\"\\" Same as {prompt} in the first form.","\\t\\tdefault \\"\\" Same as {text} in the first form.","\\t\\tcompletion nothing Same as {completion} in the first form.","\\t\\tcancelreturn \\"\\" Same as {cancelreturn} from","\\t\\t |inputdialog()|. Also works with","\\t\\t input().","\\t\\thighlight nothing Highlight handler: |Funcref|.","","\\t\\tThe highlighting set with |:echohl| is used for the prompt.","\\t\\tThe input is entered just like a command-line, with the same","\\t\\tediting commands and mappings. There is a separate history","\\t\\tfor lines typed for input().","\\t\\tExample: >","\\t\\t\\t:if input(\\"Coffee or beer? \\") == \\"beer\\"","\\t\\t\\t: echo \\"Cheers!\\"","\\t\\t\\t:endif","<","\\t\\tIf the optional {text} argument is present and not empty, this","\\t\\tis used for the default reply, as if the user typed this.","\\t\\tExample: >","\\t\\t\\t:let color = input(\\"Color? \\", \\"white\\")","","<\\t\\tThe optional {completion} argument specifies the type of","\\t\\tcompletion supported for the input. Without it completion is","\\t\\tnot performed. The supported completion types are the same as","\\t\\tthat can be supplied to a user-defined command using the","\\t\\t\\"-complete=\\" argument. Refer to |:command-completion| for","\\t\\tmore information. Example: >","\\t\\t\\tlet fname = input(\\"File: \\", \\"\\", \\"file\\")","","<\\t\\t\\t\\t\\t*input()-highlight* *E5400* *E5402*","\\t\\tThe optional `highlight` key allows specifying function which","\\t\\twill be used for highlighting user input. This function","\\t\\treceives user input as its only argument and must return","\\t\\ta list of 3-tuples [hl_start_col, hl_end_col + 1, hl_group]","\\t\\twhere","\\t\\t\\thl_start_col is the first highlighted column,","\\t\\t\\thl_end_col is the last highlighted column (+ 1!),","\\t\\t\\thl_group is |:hi| group used for highlighting.","\\t\\t\\t\\t\\t *E5403* *E5404* *E5405* *E5406*","\\t\\tBoth hl_start_col and hl_end_col + 1 must point to the start","\\t\\tof the multibyte character (highlighting must not break","\\t\\tmultibyte characters), hl_end_col + 1 may be equal to the","\\t\\tinput length. Start column must be in range [0, len(input)),","\\t\\tend column must be in range (hl_start_col, len(input)],","\\t\\tsections must be ordered so that next hl_start_col is greater","\\t\\tthen or equal to previous hl_end_col.","","\\t\\tExample (try some input with parentheses): >","\\t\\t\\thighlight RBP1 guibg=Red ctermbg=red","\\t\\t\\thighlight RBP2 guibg=Yellow ctermbg=yellow","\\t\\t\\thighlight RBP3 guibg=Green ctermbg=green","\\t\\t\\thighlight RBP4 guibg=Blue ctermbg=blue","\\t\\t\\tlet g:rainbow_levels = 4","\\t\\t\\tfunction! RainbowParens(cmdline)","\\t\\t\\t let ret = []","\\t\\t\\t let i = 0","\\t\\t\\t let lvl = 0","\\t\\t\\t while i < len(a:cmdline)","\\t\\t\\t if a:cmdline[i] is# \'(\'","\\t\\t\\t call add(ret, [i, i + 1, \'RBP\' . ((lvl % g:rainbow_levels) + 1)])","\\t\\t\\t let lvl += 1","\\t\\t\\t elseif a:cmdline[i] is# \')\'","\\t\\t\\t let lvl -= 1","\\t\\t\\t call add(ret, [i, i + 1, \'RBP\' . ((lvl % g:rainbow_levels) + 1)])","\\t\\t\\t endif","\\t\\t\\t let i += 1","\\t\\t\\t endwhile","\\t\\t\\t return ret","\\t\\t\\tendfunction","\\t\\t\\tcall input({\'prompt\':\'>\',\'highlight\':\'RainbowParens\'})","<","\\t\\tHighlight function is called at least once for each new","\\t\\tdisplayed input string, before command-line is redrawn. It is","\\t\\texpected that function is pure for the duration of one input()","\\t\\tcall, i.e. it produces the same output for the same input, so","\\t\\toutput may be memoized. Function is run like under |:silent|","\\t\\tmodifier. If the function causes any errors, it will be","\\t\\tskipped for the duration of the current input() call.","","\\t\\tHighlighting is disabled if command-line contains arabic","\\t\\tcharacters.","","\\t\\tNOTE: This function must not be used in a startup file, for","\\t\\tthe versions that only run in GUI mode (e.g., the Win32 GUI).","\\t\\tNote: When input() is called from within a mapping it will","\\t\\tconsume remaining characters from that mapping, because a","\\t\\tmapping is handled like the characters were typed.","\\t\\tUse |inputsave()| before input() and |inputrestore()|","\\t\\tafter input() to avoid that. Another solution is to avoid","\\t\\tthat further characters follow in the mapping, e.g., by using","\\t\\t|:execute| or |:normal|.","","\\t\\tExample with a mapping: >","\\t\\t\\t:nmap \\\\x :call GetFoo()<CR>:exe \\"/\\" . Foo<CR>","\\t\\t\\t:function GetFoo()","\\t\\t\\t: call inputsave()","\\t\\t\\t: let g:Foo = input(\\"enter search pattern: \\")","\\t\\t\\t: call inputrestore()","\\t\\t\\t:endfunction"],"inputlist":["\\t\\t{textlist} must be a |List| of strings. This |List| is","\\t\\tdisplayed, one string per line. The user will be prompted to","\\t\\tenter a number, which is returned.","\\t\\tThe user can also select an item by clicking on it with the","\\t\\tmouse. For the first string 0 is returned. When clicking","\\t\\tabove the first item a negative number is returned. When","\\t\\tclicking on the prompt one more than the length of {textlist}","\\t\\tis returned.","\\t\\tMake sure {textlist} has less than \'lines\' entries, otherwise","\\t\\tit won\'t work. It\'s a good idea to put the entry number at","\\t\\tthe start of the string. And put a prompt in the first item.","\\t\\tExample: >","\\t\\t\\tlet color = inputlist([\'Select color:\', \'1. red\',","\\t\\t\\t\\t\\\\ \'2. green\', \'3. blue\'])"],"inputrestore":["\\t\\tRestore typeahead that was saved with a previous |inputsave()|.","\\t\\tShould be called the same number of times inputsave() is","\\t\\tcalled. Calling it more often is harmless though.","\\t\\tReturns 1 when there is nothing to restore, 0 otherwise."],"inputsave":["\\t\\tPreserve typeahead (also from mappings) and clear it, so that","\\t\\ta following prompt gets input from the user. Should be","\\t\\tfollowed by a matching inputrestore() after the prompt. Can","\\t\\tbe used several times, in which case there must be just as","\\t\\tmany inputrestore() calls.","\\t\\tReturns 1 when out of memory, 0 otherwise."],"inputsecret":["\\t\\tThis function acts much like the |input()| function with but","\\t\\ttwo exceptions:","\\t\\ta) the user\'s response will be displayed as a sequence of","\\t\\tasterisks (\\"*\\") thereby keeping the entry secret, and","\\t\\tb) the user\'s response will not be recorded on the input","\\t\\t|history| stack.","\\t\\tThe result is a String, which is whatever the user actually","\\t\\ttyped on the command-line in response to the issued prompt.","\\t\\tNOTE: Command-line completion is not supported."],"insert":["\\t\\tInsert {item} at the start of |List| {list}.","\\t\\tIf {idx} is specified insert {item} before the item with index","\\t\\t{idx}. If {idx} is zero it goes before the first item, just","\\t\\tlike omitting {idx}. A negative {idx} is also possible, see","\\t\\t|list-index|. -1 inserts just before the last item.","\\t\\tReturns the resulting |List|. Examples: >","\\t\\t\\t:let mylist = insert([2, 3, 5], 1)","\\t\\t\\t:call insert(mylist, 4, -1)","\\t\\t\\t:call insert(mylist, 6, len(mylist))","<\\t\\tThe last example can be done simpler with |add()|.","\\t\\tNote that when {item} is a |List| it is inserted as a single","\\t\\titem. Use |extend()| to concatenate |Lists|."],"invert":["\\t\\tBitwise invert. The argument is converted to a number. A","\\t\\tList, Dict or Float argument causes an error. Example: >","\\t\\t\\t:let bits = invert(bits)"],"isdirectory":["\\t\\tThe result is a Number, which is |TRUE| when a directory","\\t\\twith the name {directory} exists. If {directory} doesn\'t","\\t\\texist, or isn\'t a directory, the result is |FALSE|. {directory}","\\t\\tis any expression, which is used as a String."],"isinf":["\\t\\tReturn 1 if {expr} is a positive infinity, or -1 a negative","\\t\\tinfinity, otherwise 0. >","\\t\\t\\t:echo isinf(1.0 / 0.0)","<\\t\\t\\t1 >","\\t\\t\\t:echo isinf(-1.0 / 0.0)","<\\t\\t\\t-1"],"islocked":["\\t\\tThe result is a Number, which is |TRUE| when {expr} is the","\\t\\tname of a locked variable.","\\t\\t{expr} must be the name of a variable, |List| item or","\\t\\t|Dictionary| entry, not the variable itself! Example: >","\\t\\t\\t:let alist = [0, [\'a\', \'b\'], 2, 3]","\\t\\t\\t:lockvar 1 alist","\\t\\t\\t:echo islocked(\'alist\')\\t\\t\\" 1","\\t\\t\\t:echo islocked(\'alist[1]\')\\t\\" 0","","<\\t\\tWhen {expr} is a variable that does not exist you get an error","\\t\\tmessage. Use |exists()| to check for existence."],"id":["\\t\\tReturns a |String| which is a unique identifier of the","\\t\\tcontainer type (|List|, |Dict| and |Partial|). It is","\\t\\tguaranteed that for the mentioned types `id(v1) ==# id(v2)`","\\t\\treturns true iff `type(v1) == type(v2) && v1 is v2` (note:","\\t\\t|v:_null_list| and |v:_null_dict| have the same `id()` with","\\t\\tdifferent types because they are internally represented as","\\t\\ta NULL pointers). Currently `id()` returns a hexadecimal","\\t\\trepresentanion of the pointers to the containers (i.e. like","\\t\\t`0x994a40`), same as `printf(\\"%p\\", {expr})`, but it is advised","\\t\\tagainst counting on exact format of return value.","","\\t\\tIt is not guaranteed that `id(no_longer_existing_container)`","\\t\\twill not be equal to some other `id()`: new containers may","\\t\\treuse identifiers of the garbage-collected ones."],"items":["\\t\\tReturn a |List| with all the key-value pairs of {dict}. Each","\\t\\t|List| item is a list with two items: the key of a {dict}","\\t\\tentry and the value of this entry. The |List| is in arbitrary","\\t\\torder."],"isnan":["\\t\\tReturn |TRUE| if {expr} is a float with value NaN. >","\\t\\t\\techo isnan(0.0 / 0.0)","<\\t\\t\\t1"],"jobpid":["\\t\\tReturn the PID (process id) of |job-id| {job}."],"jobresize":["\\t\\tResize the pseudo terminal window of |job-id| {job} to {width}","\\t\\tcolumns and {height} rows.","\\t\\tFails if the job was not started with `\\"pty\\":v:true`."],"jobstart":["\\t\\tSpawns {cmd} as a job.","\\t\\tIf {cmd} is a List it runs directly (no \'shell\').","\\t\\tIf {cmd} is a String it runs in the \'shell\', like this: >","\\t\\t :call jobstart(split(&shell) + split(&shellcmdflag) + [\'{cmd}\'])","<\\t\\t(See |shell-unquoting| for details.)","","\\t\\tExample: >","\\t\\t :call jobstart(\'nvim -h\', {\'on_stdout\':{j,d,e->append(line(\'.\'),d)}})","<","\\t\\tReturns |job-id| on success, 0 on invalid arguments (or job","\\t\\ttable is full), -1 if {cmd}[0] or \'shell\' is not executable.","\\t\\tThe returned job-id is a valid |channel-id| representing the","\\t\\tjob\'s stdio streams. Use |chansend()| (or |rpcnotify()| and","\\t\\t|rpcrequest()| if \\"rpc\\" was enabled) to send data to stdin and","\\t\\t|chanclose()| to close the streams without stopping the job.","","\\t\\tSee |job-control| and |RPC|.","","\\t\\tNOTE: on Windows if {cmd} is a List:","\\t\\t - cmd[0] must be an executable (not a \\"built-in\\"). If it is","\\t\\t in $PATH it can be called by name, without an extension: >","\\t\\t :call jobstart([\'ping\', \'neovim.io\'])","<\\t\\t If it is a full or partial path, extension is required: >","\\t\\t :call jobstart([\'System32\\\\ping.exe\', \'neovim.io\'])","<\\t\\t - {cmd} is collapsed to a string of quoted args as expected","\\t\\t by CommandLineToArgvW https://msdn.microsoft.com/bb776391","\\t\\t unless cmd[0] is some form of \\"cmd.exe\\".","","\\t\\t\\t\\t\\t\\t\\t*jobstart-options*","\\t\\t{opts} is a dictionary with these keys:","\\t\\t clear_env: (boolean) `env` defines the job environment","\\t\\t\\t exactly, instead of merging current environment.","\\t\\t cwd:\\t (string, default=|current-directory|) Working","\\t\\t\\t directory of the job.","\\t\\t detach: (boolean) Detach the job process: it will not be","\\t\\t\\t killed when Nvim exits. If the process exits","\\t\\t\\t before Nvim, `on_exit` will be invoked.","\\t\\t env:\\t (dict) Map of environment variable name:value","\\t\\t\\t pairs extending (or replacing if |clear_env|)","\\t\\t\\t the current environment.","\\t\\t height: (number) Height of the `pty` terminal.","\\t\\t |on_exit|: (function) Callback invoked when the job exits.","\\t\\t |on_stdout|: (function) Callback invoked when the job emits","\\t\\t\\t stdout data.","\\t\\t |on_stderr|: (function) Callback invoked when the job emits","\\t\\t\\t stderr data.","\\t\\t pty:\\t (boolean) Connect the job to a new pseudo","\\t\\t\\t terminal, and its streams to the master file","\\t\\t\\t descriptor. Then `on_stderr` is ignored,","\\t\\t\\t `on_stdout` receives all output.","\\t\\t rpc:\\t (boolean) Use |msgpack-rpc| to communicate with","\\t\\t\\t the job over stdio. Then `on_stdout` is ignored,","\\t\\t\\t but `on_stderr` can still be used.","\\t\\t stderr_buffered: (boolean) Collect data until EOF (stream closed)","\\t\\t\\t before invoking `on_stderr`. |channel-buffered|","\\t\\t stdout_buffered: (boolean) Collect data until EOF (stream","\\t\\t\\t closed) before invoking `on_stdout`. |channel-buffered|","\\t\\t TERM:\\t (string) Sets the `pty` $TERM environment variable.","\\t\\t width: (number) Width of the `pty` terminal.","","\\t\\t{opts} is passed as |self| dictionary to the callback; the","\\t\\tcaller may set other keys to pass application-specific data.","","\\t\\tReturns:","\\t\\t - |channel-id| on success","\\t\\t - 0 on invalid arguments","\\t\\t - -1 if {cmd}[0] is not executable.","\\t\\tSee also |job-control|, |channel|, |msgpack-rpc|."],"jobstop":["\\t\\tStop |job-id| {id} by sending SIGTERM to the job process. If","\\t\\tthe process does not terminate after a timeout then SIGKILL","\\t\\twill be sent. When the job terminates its |on_exit| handler","\\t\\t(if any) will be invoked.","\\t\\tSee |job-control|.","","\\t\\tReturns 1 for valid job id, 0 for invalid id, including jobs have","\\t\\texited or stopped."],"jobwait":["\\t\\tWaits for jobs and their |on_exit| handlers to complete.","","\\t\\t{jobs} is a List of |job-id|s to wait for.","\\t\\t{timeout} is the maximum waiting time in milliseconds, -1","\\t\\tmeans forever.","","\\t\\tTimeout of 0 can be used to check the status of a job: >","\\t\\t\\tlet running = jobwait([{job-id}], 0)[0] == -1","<","\\t\\tDuring jobwait() callbacks for jobs not in the {jobs} list may","\\t\\tbe invoked. The screen will not redraw unless |:redraw| is","\\t\\tinvoked by a callback.","","\\t\\tReturns a list of len({jobs}) integers, where each integer is","\\t\\tthe status of the corresponding job:","\\t\\t\\tExit-code, if the job exited","\\t\\t\\t-1 if the timeout was exceeded","\\t\\t\\t-2 if the job was interrupted (by |CTRL-C|)","\\t\\t\\t-3 if the job-id is invalid"],"join":["\\t\\tJoin the items in {list} together into one String.","\\t\\tWhen {sep} is specified it is put in between the items. If","\\t\\t{sep} is omitted a single space is used.","\\t\\tNote that {sep} is not added at the end. You might want to","\\t\\tadd it there too: >","\\t\\t\\tlet lines = join(mylist, \\"\\\\n\\") . \\"\\\\n\\"","<\\t\\tString items are used as-is. |Lists| and |Dictionaries| are","\\t\\tconverted into a string like with |string()|.","\\t\\tThe opposite function is |split()|."],"json_decode":["\\t\\tConvert {expr} from JSON object. Accepts |readfile()|-style","\\t\\tlist as the input, as well as regular string. May output any","\\t\\tVim value. In the following cases it will output","\\t\\t|msgpack-special-dict|:","\\t\\t1. Dictionary contains duplicate key.","\\t\\t2. Dictionary contains empty key.","\\t\\t3. String contains NUL byte. Two special dictionaries: for","\\t\\t dictionary and for string will be emitted in case string","\\t\\t with NUL byte was a dictionary key.","","\\t\\tNote: function treats its input as UTF-8 always. The JSON","\\t\\tstandard allows only a few encodings, of which UTF-8 is","\\t\\trecommended and the only one required to be supported.","\\t\\tNon-UTF-8 characters are an error."],"json_encode":["\\t\\tConvert {expr} into a JSON string. Accepts","\\t\\t|msgpack-special-dict| as the input. Will not convert","\\t\\t|Funcref|s, mappings with non-string keys (can be created as","\\t\\t|msgpack-special-dict|), values with self-referencing","\\t\\tcontainers, strings which contain non-UTF-8 characters,","\\t\\tpseudo-UTF-8 strings which contain codepoints reserved for","\\t\\tsurrogate pairs (such strings are not valid UTF-8 strings). ","\\t\\tNon-printable characters are converted into \\"\\\\u1234\\" escapes","\\t\\tor special escapes like \\"\\\\t\\", other are dumped as-is."],"keys":["\\t\\tReturn a |List| with all the keys of {dict}. The |List| is in","\\t\\tarbitrary order.",""],"len":["\\t\\tWhen {expr} is a String or a Number the length in bytes is","\\t\\tused, as with |strlen()|.","\\t\\tWhen {expr} is a |List| the number of items in the |List| is","\\t\\treturned.","\\t\\tWhen {expr} is a |Blob| the number of bytes is returned.","\\t\\tWhen {expr} is a |Dictionary| the number of entries in the","\\t\\t|Dictionary| is returned.","\\t\\tOtherwise an error is given.",""],"libcall":["\\t\\tCall function {funcname} in the run-time library {libname}","\\t\\twith single argument {argument}.","\\t\\tThis is useful to call functions in a library that you","\\t\\tespecially made to be used with Vim. Since only one argument","\\t\\tis possible, calling standard library functions is rather","\\t\\tlimited.","\\t\\tThe result is the String returned by the function. If the","\\t\\tfunction returns NULL, this will appear as an empty string \\"\\"","\\t\\tto Vim.","\\t\\tIf the function returns a number, use libcallnr()!","\\t\\tIf {argument} is a number, it is passed to the function as an","\\t\\tint; if {argument} is a string, it is passed as a","\\t\\tnull-terminated string.","\\t\\tThis function will fail in |restricted-mode|.","","\\t\\tlibcall() allows you to write your own \'plug-in\' extensions to","\\t\\tVim without having to recompile the program. It is NOT a","\\t\\tmeans to call system functions! If you try to do so Vim will","\\t\\tvery probably crash.","","\\t\\tFor Win32, the functions you write must be placed in a DLL","\\t\\tand use the normal C calling convention (NOT Pascal which is","\\t\\tused in Windows System DLLs). The function must take exactly","\\t\\tone parameter, either a character pointer or a long integer,","\\t\\tand must return a character pointer or NULL. The character","\\t\\tpointer returned must point to memory that will remain valid","\\t\\tafter the function has returned (e.g. in static data in the","\\t\\tDLL). If it points to allocated memory, that memory will","\\t\\tleak away. Using a static buffer in the function should work,","\\t\\tit\'s then freed when the DLL is unloaded.","","\\t\\tWARNING: If the function returns a non-valid pointer, Vim may","\\t\\tcrash!\\tThis also happens if the function returns a number,","\\t\\tbecause Vim thinks it\'s a pointer.","\\t\\tFor Win32 systems, {libname} should be the filename of the DLL","\\t\\twithout the \\".DLL\\" suffix. A full path is only required if","\\t\\tthe DLL is not in the usual places.","\\t\\tFor Unix: When compiling your own plugins, remember that the","\\t\\tobject code must be compiled as position-independent (\'PIC\').","\\t\\tExamples: >","\\t\\t\\t:echo libcall(\\"libc.so\\", \\"getenv\\", \\"HOME\\")","<"],"libcallnr":["\\t\\tJust like |libcall()|, but used for a function that returns an","\\t\\tint instead of a string.","\\t\\tExamples: >","\\t\\t\\t:echo libcallnr(\\"/usr/lib/libc.so\\", \\"getpid\\", \\"\\")","\\t\\t\\t:call libcallnr(\\"libc.so\\", \\"printf\\", \\"Hello World!\\\\n\\")","\\t\\t\\t:call libcallnr(\\"libc.so\\", \\"sleep\\", 10)","<"],"line":["\\t\\tposition given with {expr}. The accepted positions are:","\\t\\t .\\t the cursor position","\\t\\t $\\t the last line in the current buffer","\\t\\t \'x\\t position of mark x (if the mark is not set, 0 is","\\t\\t\\t returned)","\\t\\t w0\\t first line visible in current window (one if the","\\t\\t\\t display isn\'t updated, e.g. in silent Ex mode)","\\t\\t w$\\t last line visible in current window (this is one","\\t\\t\\t less than \\"w0\\" if no lines are visible)","\\t\\t v\\t In Visual mode: the start of the Visual area (the","\\t\\t\\t cursor is the end). When not in Visual mode","\\t\\t\\t returns the cursor position. Differs from |\'<| in","\\t\\t\\t that it\'s updated right away.","\\t\\tNote that a mark in another file can be used. The line number","\\t\\tthen applies to another buffer.","\\t\\tTo get the column number use |col()|. To get both use","\\t\\t|getpos()|.","\\t\\tExamples: >","\\t\\t\\tline(\\".\\")\\t\\tline number of the cursor","\\t\\t\\tline(\\"\'t\\")\\t\\tline number of mark t","\\t\\t\\tline(\\"\'\\" . marker)\\tline number of mark marker"],"line2byte":["\\t\\tReturn the byte count from the start of the buffer for line","\\t\\t{lnum}. This includes the end-of-line character, depending on","\\t\\tthe \'fileformat\' option for the current buffer. The first","\\t\\tline returns 1. UTF-8 encoding is used, \'fileencoding\' is","\\t\\tignored. This can also be used to get the byte count for the","\\t\\tline just below the last line: >","\\t\\t\\tline2byte(line(\\"$\\") + 1)","<\\t\\tThis is the buffer size plus one. If \'fileencoding\' is empty","\\t\\tit is the file size plus one.","\\t\\tWhen {lnum} is invalid -1 is returned.","\\t\\tAlso see |byte2line()|, |go| and |:goto|."],"lispindent":["\\t\\tGet the amount of indent for line {lnum} according the lisp","\\t\\tindenting rules, as with \'lisp\'.","\\t\\tThe indent is counted in spaces, the value of \'tabstop\' is","\\t\\trelevant. {lnum} is used just like in |getline()|.","\\t\\tWhen {lnum} is invalid or Vim was not compiled the","\\t\\t|+lispindent| feature, -1 is returned."],"list2str":["\\t\\tConvert each number in {list} to a character string can","\\t\\tconcatenate them all. Examples: >","\\t\\t\\tlist2str([32])\\t\\treturns \\" \\"","\\t\\t\\tlist2str([65, 66, 67])\\treturns \\"ABC\\"","<\\t\\tThe same can be done (slowly) with: >","\\t\\t\\tjoin(map(list, {nr, val -> nr2char(val)}), \'\')","<\\t\\t|str2list()| does the opposite.","","\\t\\tWhen {utf8} is omitted or zero, the current \'encoding\' is used.","\\t\\tWith {utf8} is 1, always return utf-8 characters.","\\t\\tWith utf-8 composing characters work as expected: >","\\t\\t\\tlist2str([97, 769])\\treturns \\"á\\""],"localtime":["\\t\\tReturn the current time, measured as seconds since 1st Jan","\\t\\t1970. See also |strftime()| and |getftime()|.",""],"log":["\\t\\tReturn the natural logarithm (base e) of {expr} as a |Float|.","\\t\\t{expr} must evaluate to a |Float| or a |Number| in the range","\\t\\t(0, inf].","\\t\\tExamples: >","\\t\\t\\t:echo log(10)","<\\t\\t\\t2.302585 >","\\t\\t\\t:echo log(exp(5))","<\\t\\t\\t5.0",""],"log10":["\\t\\tReturn the logarithm of Float {expr} to base 10 as a |Float|.","\\t\\t{expr} must evaluate to a |Float| or a |Number|.","\\t\\tExamples: >","\\t\\t\\t:echo log10(1000)","<\\t\\t\\t3.0 >","\\t\\t\\t:echo log10(0.01)","<\\t\\t\\t-2.0"],"luaeval":["\\t\\tEvaluate Lua expression {expr} and return its result converted","\\t\\tto Vim data structures. See |lua-eval| for more details."],"map":["\\t\\t{expr1} must be a |List| or a |Dictionary|.","\\t\\tReplace each item in {expr1} with the result of evaluating","\\t\\t{expr2}. {expr2} must be a |string| or |Funcref|.","\\t\\t","\\t\\tIf {expr2} is a |string|, inside {expr2} |v:val| has the value","\\t\\tof the current item. For a |Dictionary| |v:key| has the key","\\t\\tof the current item and for a |List| |v:key| has the index of","\\t\\tthe current item.","\\t\\tExample: >","\\t\\t\\t:call map(mylist, \'\\"> \\" . v:val . \\" <\\"\')","<\\t\\tThis puts \\"> \\" before and \\" <\\" after each item in \\"mylist\\".","","\\t\\tNote that {expr2} is the result of an expression and is then","\\t\\tused as an expression again. Often it is good to use a","\\t\\t|literal-string| to avoid having to double backslashes. You","\\t\\tstill have to double \' quotes","","\\t\\tIf {expr2} is a |Funcref| it is called with two arguments:","\\t\\t\\t1. The key or the index of the current item.","\\t\\t\\t2. the value of the current item.","\\t\\tThe function must return the new value of the item. Example","\\t\\tthat changes each value by \\"key-value\\": >","\\t\\t\\tfunc KeyValue(key, val)","\\t\\t\\t return a:key . \'-\' . a:val","\\t\\t\\tendfunc","\\t\\t\\tcall map(myDict, function(\'KeyValue\'))","<\\t\\tIt is shorter when using a |lambda|: >","\\t\\t\\tcall map(myDict, {key, val -> key . \'-\' . val})","<\\t\\tIf you do not use \\"val\\" you can leave it out: >","\\t\\t\\tcall map(myDict, {key -> \'item: \' . key})","<\\t\\tIf you do not use \\"key\\" you can use a short name: >","\\t\\t\\tcall map(myDict, {_, val -> \'item: \' . val})","<","\\t\\tThe operation is done in-place. If you want a |List| or","\\t\\t|Dictionary| to remain unmodified make a copy first: >","\\t\\t\\t:let tlist = map(copy(mylist), \' v:val . \\"\\\\t\\"\')","","<\\t\\tReturns {expr1}, the |List| or |Dictionary| that was filtered.","\\t\\tWhen an error is encountered while evaluating {expr2} no","\\t\\tfurther items in {expr1} are processed. When {expr2} is a","\\t\\tFuncref errors inside a function are ignored, unless it was","\\t\\tdefined with the \\"abort\\" flag.",""],"maparg":["\\t\\tWhen {dict} is omitted or zero: Return the rhs of mapping","\\t\\t{name} in mode {mode}. The returned String has special","\\t\\tcharacters translated like in the output of the \\":map\\" command","\\t\\tlisting.","","\\t\\tWhen there is no mapping for {name}, an empty String is","\\t\\treturned. When the mapping for {name} is empty, then \\"<Nop>\\"","\\t\\tis returned.","","\\t\\tThe {name} can have special key names, like in the \\":map\\"","\\t\\tcommand.","","\\t\\t{mode} can be one of these strings:","\\t\\t\\t\\"n\\"\\tNormal","\\t\\t\\t\\"v\\"\\tVisual (including Select)","\\t\\t\\t\\"o\\"\\tOperator-pending","\\t\\t\\t\\"i\\"\\tInsert","\\t\\t\\t\\"c\\"\\tCmd-line","\\t\\t\\t\\"s\\"\\tSelect","\\t\\t\\t\\"x\\"\\tVisual","\\t\\t\\t\\"l\\"\\tlangmap |language-mapping|","\\t\\t\\t\\"t\\"\\tTerminal","\\t\\t\\t\\"\\"\\tNormal, Visual and Operator-pending","\\t\\tWhen {mode} is omitted, the modes for \\"\\" are used.","","\\t\\tWhen {abbr} is there and it is |TRUE| use abbreviations","\\t\\tinstead of mappings.","","\\t\\tWhen {dict} is there and it is |TRUE| return a dictionary","\\t\\tcontaining all the information of the mapping with the","\\t\\tfollowing items:","\\t\\t \\"lhs\\"\\t The {lhs} of the mapping.","\\t\\t \\"rhs\\"\\t The {rhs} of the mapping as typed.","\\t\\t \\"silent\\" 1 for a |:map-silent| mapping, else 0.","\\t\\t \\"noremap\\" 1 if the {rhs} of the mapping is not remappable.","\\t\\t \\"expr\\" 1 for an expression mapping (|:map-<expr>|).","\\t\\t \\"buffer\\" 1 for a buffer local mapping (|:map-local|).","\\t\\t \\"mode\\" Modes for which the mapping is defined. In","\\t\\t\\t addition to the modes mentioned above, these","\\t\\t\\t characters will be used:","\\t\\t\\t \\" \\" Normal, Visual and Operator-pending","\\t\\t\\t \\"!\\" Insert and Commandline mode","\\t\\t\\t\\t (|mapmode-ic|)","\\t\\t \\"sid\\"\\t The script local ID, used for <sid> mappings","\\t\\t\\t (|<SID>|).","\\t\\t \\"lnum\\" The line number in \\"sid\\", zero if unknown.","\\t\\t \\"nowait\\" Do not wait for other, longer mappings.","\\t\\t\\t (|:map-<nowait>|).","","\\t\\tThe mappings local to the current buffer are checked first,","\\t\\tthen the global mappings.","\\t\\tThis function can be used to map a key even when it\'s already","\\t\\tmapped, and have it do the original mapping too. Sketch: >","\\t\\t\\texe \'nnoremap <Tab> ==\' . maparg(\'<Tab>\', \'n\')",""],"mapcheck":["\\t\\tCheck if there is a mapping that matches with {name} in mode","\\t\\t{mode}. See |maparg()| for {mode} and special names in","\\t\\t{name}.","\\t\\tWhen {abbr} is there and it is non-zero use abbreviations","\\t\\tinstead of mappings.","\\t\\tA match happens with a mapping that starts with {name} and","\\t\\twith a mapping which is equal to the start of {name}.","","\\t\\t\\tmatches mapping \\"a\\"\\t\\"ab\\"\\t\\"abc\\" ~","\\t\\t mapcheck(\\"a\\")\\tyes\\tyes\\t yes","\\t\\t mapcheck(\\"abc\\")\\tyes\\tyes\\t yes","\\t\\t mapcheck(\\"ax\\")\\tyes\\tno\\t no","\\t\\t mapcheck(\\"b\\")\\tno\\tno\\t no","","\\t\\tThe difference with maparg() is that mapcheck() finds a","\\t\\tmapping that matches with {name}, while maparg() only finds a","\\t\\tmapping for {name} exactly.","\\t\\tWhen there is no mapping that starts with {name}, an empty","\\t\\tString is returned. If there is one, the RHS of that mapping","\\t\\tis returned. If there are several mappings that start with","\\t\\t{name}, the RHS of one of them is returned. This will be","\\t\\t\\"<Nop>\\" if the RHS is empty.","\\t\\tThe mappings local to the current buffer are checked first,","\\t\\tthen the global mappings.","\\t\\tThis function can be used to check if a mapping can be added","\\t\\twithout being ambiguous. Example: >","\\t:if mapcheck(\\"_vv\\") == \\"\\"","\\t: map _vv :set guifont=7x13<CR>","\\t:endif","<\\t\\tThis avoids adding the \\"_vv\\" mapping when there already is a","\\t\\tmapping for \\"_v\\" or for \\"_vvv\\"."],"match":["\\t\\tWhen {expr} is a |List| then this returns the index of the","\\t\\tfirst item where {pat} matches. Each item is used as a","\\t\\tString, |Lists| and |Dictionaries| are used as echoed.","","\\t\\tOtherwise, {expr} is used as a String. The result is a","\\t\\tNumber, which gives the index (byte offset) in {expr} where","\\t\\t{pat} matches.","","\\t\\tA match at the first character or |List| item returns zero.","\\t\\tIf there is no match -1 is returned.","","\\t\\tFor getting submatches see |matchlist()|.","\\t\\tExample: >","\\t\\t\\t:echo match(\\"testing\\", \\"ing\\")\\t\\" results in 4","\\t\\t\\t:echo match([1, \'x\'], \'\\\\a\')\\t\\" results in 1","<\\t\\tSee |string-match| for how {pat} is used.","\\t\\t\\t\\t\\t\\t\\t\\t*strpbrk()*","\\t\\tVim doesn\'t have a strpbrk() function. But you can do: >","\\t\\t\\t:let sepidx = match(line, \'[.,;: \\\\t]\')","<\\t\\t\\t\\t\\t\\t\\t\\t*strcasestr()*","\\t\\tVim doesn\'t have a strcasestr() function. But you can add","\\t\\t\\"\\\\c\\" to the pattern to ignore case: >","\\t\\t\\t:let idx = match(haystack, \'\\\\cneedle\')","<","\\t\\tIf {start} is given, the search starts from byte index","\\t\\t{start} in a String or item {start} in a |List|.","\\t\\tThe result, however, is still the index counted from the","\\t\\tfirst character/item. Example: >","\\t\\t\\t:echo match(\\"testing\\", \\"ing\\", 2)","<\\t\\tresult is again \\"4\\". >","\\t\\t\\t:echo match(\\"testing\\", \\"ing\\", 4)","<\\t\\tresult is again \\"4\\". >","\\t\\t\\t:echo match(\\"testing\\", \\"t\\", 2)","<\\t\\tresult is \\"3\\".","\\t\\tFor a String, if {start} > 0 then it is like the string starts","\\t\\t{start} bytes later, thus \\"^\\" will match at {start}. Except","\\t\\twhen {count} is given, then it\'s like matches before the","\\t\\t{start} byte are ignored (this is a bit complicated to keep it","\\t\\tbackwards compatible).","\\t\\tFor a String, if {start} < 0, it will be set to 0. For a list","\\t\\tthe index is counted from the end.","\\t\\tIf {start} is out of range ({start} > strlen({expr}) for a","\\t\\tString or {start} > len({expr}) for a |List|) -1 is returned.","","\\t\\tWhen {count} is given use the {count}\'th match. When a match","\\t\\tis found in a String the search for the next one starts one","\\t\\tcharacter further. Thus this example results in 1: >","\\t\\t\\techo match(\\"testing\\", \\"..\\", 0, 2)","<\\t\\tIn a |List| the search continues in the next item.","\\t\\tNote that when {count} is added the way {start} works changes,","\\t\\tsee above.","","\\t\\tSee |pattern| for the patterns that are accepted.","\\t\\tThe \'ignorecase\' option is used to set the ignore-caseness of","\\t\\tthe pattern. \'smartcase\' is NOT used. The matching is always","\\t\\tdone like \'magic\' is set and \'cpoptions\' is empty.",""],"matchadd":["\\t\\tDefines a pattern to be highlighted in the current window (a","\\t\\t\\"match\\"). It will be highlighted with {group}. Returns an","\\t\\tidentification number (ID), which can be used to delete the","\\t\\tmatch using |matchdelete()|.","\\t\\tMatching is case sensitive and magic, unless case sensitivity","\\t\\tor magicness are explicitly overridden in {pattern}. The","\\t\\t\'magic\', \'smartcase\' and \'ignorecase\' options are not used.","\\t\\tThe \\"Conceal\\" value is special, it causes the match to be","\\t\\tconcealed.","","\\t\\tThe optional {priority} argument assigns a priority to the","\\t\\tmatch. A match with a high priority will have its","\\t\\thighlighting overrule that of a match with a lower priority.","\\t\\tA priority is specified as an integer (negative numbers are no","\\t\\texception). If the {priority} argument is not specified, the","\\t\\tdefault priority is 10. The priority of \'hlsearch\' is zero,","\\t\\thence all matches with a priority greater than zero will","\\t\\toverrule it. Syntax highlighting (see \'syntax\') is a separate","\\t\\tmechanism, and regardless of the chosen priority a match will","\\t\\talways overrule syntax highlighting.","","\\t\\tThe optional {id} argument allows the request for a specific","\\t\\tmatch ID. If a specified ID is already taken, an error","\\t\\tmessage will appear and the match will not be added. An ID","\\t\\tis specified as a positive integer (zero excluded). IDs 1, 2","\\t\\tand 3 are reserved for |:match|, |:2match| and |:3match|,","\\t\\trespectively. If the {id} argument is not specified or -1,","\\t\\t|matchadd()| automatically chooses a free ID.","","\\t\\tThe optional {dict} argument allows for further custom","\\t\\tvalues. Currently this is used to specify a match specific","\\t\\tconceal character that will be shown for |hl-Conceal|","\\t\\thighlighted matches. The dict can have the following members:","","\\t\\t\\tconceal\\t Special character to show instead of the","\\t\\t\\t\\t match (only for |hl-Conceal| highlighed","\\t\\t\\t\\t matches, see |:syn-cchar|)","\\t\\t\\twindow\\t Instead of the current window use the","\\t\\t\\t\\t window with this number or window ID.","","\\t\\tThe number of matches is not limited, as it is the case with","\\t\\tthe |:match| commands.","","\\t\\tExample: >","\\t\\t\\t:highlight MyGroup ctermbg=green guibg=green","\\t\\t\\t:let m = matchadd(\\"MyGroup\\", \\"TODO\\")","<\\t\\tDeletion of the pattern: >","\\t\\t\\t:call matchdelete(m)","","<\\t\\tA list of matches defined by |matchadd()| and |:match| are","\\t\\tavailable from |getmatches()|. All matches can be deleted in","\\t\\tone operation by |clearmatches()|.",""],"matchaddpos":["\\t\\tSame as |matchadd()|, but requires a list of positions {pos}","\\t\\tinstead of a pattern. This command is faster than |matchadd()|","\\t\\tbecause it does not require to handle regular expressions and","\\t\\tsets buffer line boundaries to redraw screen. It is supposed","\\t\\tto be used when fast match additions and deletions are","\\t\\trequired, for example to highlight matching parentheses.","\\t\\t\\t\\t\\t\\t\\t*E5030* *E5031*","\\t\\tThe list {pos} can contain one of these items:","\\t\\t- A number. This whole line will be highlighted. The first","\\t\\t line has number 1.","\\t\\t- A list with one number, e.g., [23]. The whole line with this","\\t\\t number will be highlighted.","\\t\\t- A list with two numbers, e.g., [23, 11]. The first number is","\\t\\t the line number, the second one is the column number (first","\\t\\t column is 1, the value must correspond to the byte index as","\\t\\t |col()| would return). The character at this position will","\\t\\t be highlighted.","\\t\\t- A list with three numbers, e.g., [23, 11, 3]. As above, but","\\t\\t the third number gives the length of the highlight in bytes.","","\\t\\tEntries with zero and negative line numbers are silently ","\\t\\tignored, as well as entries with negative column numbers and ","\\t\\tlengths.","","\\t\\tThe maximum number of positions is 8.","","\\t\\tExample: >","\\t\\t\\t:highlight MyGroup ctermbg=green guibg=green","\\t\\t\\t:let m = matchaddpos(\\"MyGroup\\", [[23, 24], 34])","<\\t\\tDeletion of the pattern: >","\\t\\t\\t:call matchdelete(m)","","<\\t\\tMatches added by |matchaddpos()| are returned by","\\t\\t|getmatches()| with an entry \\"pos1\\", \\"pos2\\", etc., with the","\\t\\tvalue a list like the {pos} item."],"matcharg":["\\t\\tSelects the {nr} match item, as set with a |:match|,","\\t\\t|:2match| or |:3match| command.","\\t\\tReturn a |List| with two elements:","\\t\\t\\tThe name of the highlight group used","\\t\\t\\tThe pattern used.","\\t\\tWhen {nr} is not 1, 2 or 3 returns an empty |List|.","\\t\\tWhen there is no match item set returns [\'\', \'\'].","\\t\\tThis is useful to save and restore a |:match|.","\\t\\tHighlighting matches using the |:match| commands are limited","\\t\\tto three matches. |matchadd()| does not have this limitation."],"matchdelete":["\\t\\tDeletes a match with ID {id} previously defined by |matchadd()|","\\t\\tor one of the |:match| commands. Returns 0 if successful,","\\t\\totherwise -1. See example for |matchadd()|. All matches can","\\t\\tbe deleted in one operation by |clearmatches()|."],"matchend":["\\t\\tSame as |match()|, but return the index of first character","\\t\\tafter the match. Example: >","\\t\\t\\t:echo matchend(\\"testing\\", \\"ing\\")","<\\t\\tresults in \\"7\\".","\\t\\t\\t\\t\\t\\t\\t*strspn()* *strcspn()*","\\t\\tVim doesn\'t have a strspn() or strcspn() function, but you can","\\t\\tdo it with matchend(): >","\\t\\t\\t:let span = matchend(line, \'[a-zA-Z]\')","\\t\\t\\t:let span = matchend(line, \'[^a-zA-Z]\')","<\\t\\tExcept that -1 is returned when there are no matches.","","\\t\\tThe {start}, if given, has the same meaning as for |match()|. >","\\t\\t\\t:echo matchend(\\"testing\\", \\"ing\\", 2)","<\\t\\tresults in \\"7\\". >","\\t\\t\\t:echo matchend(\\"testing\\", \\"ing\\", 5)","<\\t\\tresult is \\"-1\\".","\\t\\tWhen {expr} is a |List| the result is equal to |match()|."],"matchlist":["\\t\\tSame as |match()|, but return a |List|. The first item in the","\\t\\tlist is the matched string, same as what matchstr() would","\\t\\treturn. Following items are submatches, like \\"\\\\1\\", \\"\\\\2\\", etc.","\\t\\tin |:substitute|. When an optional submatch didn\'t match an","\\t\\tempty string is used. Example: >","\\t\\t\\techo matchlist(\'acd\', \'\\\\(a\\\\)\\\\?\\\\(b\\\\)\\\\?\\\\(c\\\\)\\\\?\\\\(.*\\\\)\')","<\\t\\tResults in: [\'acd\', \'a\', \'\', \'c\', \'d\', \'\', \'\', \'\', \'\', \'\']","\\t\\tWhen there is no match an empty list is returned."],"matchstr":["\\t\\tSame as |match()|, but return the matched string. Example: >","\\t\\t\\t:echo matchstr(\\"testing\\", \\"ing\\")","<\\t\\tresults in \\"ing\\".","\\t\\tWhen there is no match \\"\\" is returned.","\\t\\tThe {start}, if given, has the same meaning as for |match()|. >","\\t\\t\\t:echo matchstr(\\"testing\\", \\"ing\\", 2)","<\\t\\tresults in \\"ing\\". >","\\t\\t\\t:echo matchstr(\\"testing\\", \\"ing\\", 5)","<\\t\\tresult is \\"\\".","\\t\\tWhen {expr} is a |List| then the matching item is returned.","\\t\\tThe type isn\'t changed, it\'s not necessarily a String."],"matchstrpos":["\\t\\tSame as |matchstr()|, but return the matched string, the start","\\t\\tposition and the end position of the match. Example: >","\\t\\t\\t:echo matchstrpos(\\"testing\\", \\"ing\\")","<\\t\\tresults in [\\"ing\\", 4, 7].","\\t\\tWhen there is no match [\\"\\", -1, -1] is returned.","\\t\\tThe {start}, if given, has the same meaning as for |match()|. >","\\t\\t\\t:echo matchstrpos(\\"testing\\", \\"ing\\", 2)","<\\t\\tresults in [\\"ing\\", 4, 7]. >","\\t\\t\\t:echo matchstrpos(\\"testing\\", \\"ing\\", 5)","<\\t\\tresult is [\\"\\", -1, -1].","\\t\\tWhen {expr} is a |List| then the matching item, the index","\\t\\tof first item where {pat} matches, the start position and the","\\t\\tend position of the match are returned. >","\\t\\t\\t:echo matchstrpos([1, \'__x\'], \'\\\\a\')","<\\t\\tresult is [\\"x\\", 1, 2, 3].","\\t\\tThe type isn\'t changed, it\'s not necessarily a String.",""],"max":["\\t\\t{expr} can be a list or a dictionary. For a dictionary,","\\t\\tit returns the maximum of all values in the dictionary.","\\t\\tIf {expr} is neither a list nor a dictionary, or one of the","\\t\\titems in {expr} cannot be used as a Number this results in"," an error. An empty |List| or |Dictionary| results in zero."],"menu_get":["\\t\\tReturns a |List| of |Dictionaries| describing |menus| (defined","\\t\\tby |:menu|, |:amenu|, …), including |hidden-menus|.","","\\t\\t{path} matches a menu by name, or all menus if {path} is an","\\t\\tempty string. Example: >","\\t\\t\\t:echo menu_get(\'File\',\'\')","\\t\\t\\t:echo menu_get(\'\')","<","\\t\\t{modes} is a string of zero or more modes (see |maparg()| or","\\t\\t|creating-menus| for the list of modes). \\"a\\" means \\"all\\".","","\\t\\tExample: >","\\t\\t\\tnnoremenu &Test.Test inormal","\\t\\t\\tinoremenu Test.Test insert","\\t\\t\\tvnoremenu Test.Test x","\\t\\t\\techo menu_get(\\"\\")","","<\\t\\treturns something like this: >","","\\t\\t\\t[ {","\\t\\t\\t \\"hidden\\": 0,","\\t\\t\\t \\"name\\": \\"Test\\",","\\t\\t\\t \\"priority\\": 500,","\\t\\t\\t \\"shortcut\\": 84,","\\t\\t\\t \\"submenus\\": [ {","\\t\\t\\t \\"hidden\\": 0,","\\t\\t\\t \\"mappings\\": {","\\t\\t\\t i\\": {","\\t\\t\\t\\t\\"enabled\\": 1,","\\t\\t\\t\\t\\"noremap\\": 1,","\\t\\t\\t\\t\\"rhs\\": \\"insert\\",","\\t\\t\\t\\t\\"sid\\": 1,","\\t\\t\\t\\t\\"silent\\": 0","\\t\\t\\t },","\\t\\t\\t n\\": { ... },","\\t\\t\\t s\\": { ... },","\\t\\t\\t v\\": { ... }","\\t\\t\\t },","\\t\\t\\t \\"name\\": \\"Test\\",","\\t\\t\\t \\"priority\\": 500,","\\t\\t\\t \\"shortcut\\": 0","\\t\\t\\t } ]","\\t\\t\\t} ]","<",""],"min":["\\t\\t{expr} can be a list or a dictionary. For a dictionary,","\\t\\tit returns the minimum of all values in the dictionary.","\\t\\tIf {expr} is neither a list nor a dictionary, or one of the","\\t\\titems in {expr} cannot be used as a Number this results in","\\t\\tan error. An empty |List| or |Dictionary| results in zero.",""],"mkdir":["\\t\\tCreate directory {name}.","\\t\\tIf {path} is \\"p\\" then intermediate directories are created as","\\t\\tnecessary. Otherwise it must be \\"\\".","\\t\\tIf {prot} is given it is used to set the protection bits of","\\t\\tthe new directory. The default is 0755 (rwxr-xr-x: r/w for","\\t\\tthe user readable for others). Use 0700 to make it unreadable","\\t\\tfor others.","","\\t\\t{prot} is applied for all parts of {name}. Thus if you create","\\t\\t/tmp/foo/bar then /tmp/foo will be created with 0700. Example: >","\\t\\t\\t:call mkdir($HOME . \\"/tmp/foo/bar\\", \\"p\\", 0700)","<\\t\\tThis function is not available in the |sandbox|.","","\\t\\tIf you try to create an existing directory with {path} set to","\\t\\t\\"p\\" mkdir() will silently exit.",""],"mode":["\\t\\tIf [expr] is supplied and it evaluates to a non-zero Number or","\\t\\ta non-empty String (|non-zero-arg|), then the full mode is","\\t\\treturned, otherwise only the first letter is returned.","","\\t\\t n\\t Normal","\\t\\t no\\t Operator-pending","\\t\\t nov\\t Operator-pending (forced charwise |o_v|)","\\t\\t noV\\t Operator-pending (forced linewise |o_V|)","\\t\\t noCTRL-V Operator-pending (forced blockwise |o_CTRL-V|)","\\t\\t niI\\t Normal using |i_CTRL-O| in |Insert-mode|","\\t\\t niR\\t Normal using |i_CTRL-O| in |Replace-mode|","\\t\\t niV\\t Normal using |i_CTRL-O| in |Virtual-Replace-mode|","\\t\\t v\\t Visual by character","\\t\\t V\\t Visual by line","\\t\\t CTRL-V Visual blockwise","\\t\\t s\\t Select by character","\\t\\t S\\t Select by line","\\t\\t CTRL-S Select blockwise","\\t\\t i\\t Insert","\\t\\t ic\\t Insert mode completion |compl-generic|","\\t\\t ix\\t Insert mode |i_CTRL-X| completion","\\t\\t R\\t Replace |R|","\\t\\t Rc\\t Replace mode completion |compl-generic|","\\t\\t Rv\\t Virtual Replace |gR|","\\t\\t Rx\\t Replace mode |i_CTRL-X| completion","\\t\\t c\\t Command-line editing","\\t\\t cv\\t Vim Ex mode |gQ|","\\t\\t ce\\t Normal Ex mode |Q|","\\t\\t r\\t Hit-enter prompt","\\t\\t rm\\t The -- more -- prompt","\\t\\t r?\\t |:confirm| query of some sort","\\t\\t !\\t Shell or external command is executing","\\t\\t t\\t Terminal mode: keys go to the job","\\t\\tThis is useful in the \'statusline\' option or when used","\\t\\twith |remote_expr()| In most other places it always returns","\\t\\t\\"c\\" or \\"n\\".","\\t\\tNote that in the future more modes and more specific modes may","\\t\\tbe added. It\'s better not to compare the whole string but only","\\t\\tthe leading character(s).","\\t\\tAlso see |visualmode()|."],"msgpackdump":["\\t\\tConvert a list of VimL objects to msgpack. Returned value is","\\t\\t|readfile()|-style list. Example: >","\\t\\t\\tcall writefile(msgpackdump([{}]), \'fname.mpack\', \'b\')","<\\t\\tThis will write the single 0x80 byte to `fname.mpack` file","\\t\\t(dictionary with zero items is represented by 0x80 byte in","\\t\\tmessagepack).","","\\t\\tLimitations:\\t\\t\\t\\t*E5004* *E5005*","\\t\\t1. |Funcref|s cannot be dumped.","\\t\\t2. Containers that reference themselves cannot be dumped.","\\t\\t3. Dictionary keys are always dumped as STR strings.","\\t\\t4. Other strings are always dumped as BIN strings.","\\t\\t5. Points 3. and 4. do not apply to |msgpack-special-dict|s."],"msgpackparse":["\\t\\tConvert a |readfile()|-style list to a list of VimL objects.","\\t\\tExample: >","\\t\\t\\tlet fname = expand(\'~/.config/nvim/shada/main.shada\')","\\t\\t\\tlet mpack = readfile(fname, \'b\')","\\t\\t\\tlet shada_objects = msgpackparse(mpack)","<\\t\\tThis will read ~/.config/nvim/shada/main.shada file to","\\t\\t`shada_objects` list.","","\\t\\tLimitations:","\\t\\t1. Mapping ordering is not preserved unless messagepack","\\t\\t mapping is dumped using generic mapping","\\t\\t (|msgpack-special-map|).","\\t\\t2. Since the parser aims to preserve all data untouched","\\t\\t (except for 1.) some strings are parsed to","\\t\\t |msgpack-special-dict| format which is not convenient to","\\t\\t use.","\\t\\t\\t\\t\\t\\t\\t*msgpack-special-dict*","\\t\\tSome messagepack strings may be parsed to special","\\t\\tdictionaries. Special dictionaries are dictionaries which","","\\t\\t1. Contain exactly two keys: `_TYPE` and `_VAL`.","\\t\\t2. `_TYPE` key is one of the types found in |v:msgpack_types|","\\t\\t variable.","\\t\\t3. Value for `_VAL` has the following format (Key column","\\t\\t contains name of the key from |v:msgpack_types|):","","\\t\\tKey\\tValue ~","\\t\\tnil\\tZero, ignored when dumping. Not returned by","\\t\\t\\t|msgpackparse()| since |v:null| was introduced.","\\t\\tboolean\\tOne or zero. When dumping it is only checked that","\\t\\t\\tvalue is a |Number|. Not returned by |msgpackparse()|","\\t\\t\\tsince |v:true| and |v:false| were introduced.","\\t\\tinteger\\t|List| with four numbers: sign (-1 or 1), highest two","\\t\\t\\tbits, number with bits from 62nd to 31st, lowest 31","\\t\\t\\tbits. I.e. to get actual number one will need to use","\\t\\t\\tcode like >","\\t\\t\\t\\t_VAL[0] * ((_VAL[1] << 62)","\\t\\t\\t\\t & (_VAL[2] << 31)","\\t\\t\\t\\t & _VAL[3])","<\\t\\t\\tSpecial dictionary with this type will appear in","\\t\\t\\t|msgpackparse()| output under one of the following","\\t\\t\\tcircumstances:","\\t\\t\\t1. |Number| is 32-bit and value is either above","\\t\\t\\t INT32_MAX or below INT32_MIN.","\\t\\t\\t2. |Number| is 64-bit and value is above INT64_MAX. It","\\t\\t\\t cannot possibly be below INT64_MIN because msgpack","\\t\\t\\t C parser does not support such values.","\\t\\tfloat\\t|Float|. This value cannot possibly appear in","\\t\\t\\t|msgpackparse()| output.","\\t\\tstring\\t|readfile()|-style list of strings. This value will","\\t\\t\\tappear in |msgpackparse()| output if string contains","\\t\\t\\tzero byte or if string is a mapping key and mapping is","\\t\\t\\tbeing represented as special dictionary for other","\\t\\t\\treasons.","\\t\\tbinary\\t|readfile()|-style list of strings. This value will","\\t\\t\\tappear in |msgpackparse()| output if binary string","\\t\\t\\tcontains zero byte.","\\t\\tarray\\t|List|. This value cannot appear in |msgpackparse()|","\\t\\t\\toutput.","\\t\\t\\t\\t\\t\\t\\t*msgpack-special-map*","\\t\\tmap\\t|List| of |List|s with two items (key and value) each.","\\t\\t\\tThis value will appear in |msgpackparse()| output if","\\t\\t\\tparsed mapping contains one of the following keys:","\\t\\t\\t1. Any key that is not a string (including keys which","\\t\\t\\t are binary strings).","\\t\\t\\t2. String with NUL byte inside.","\\t\\t\\t3. Duplicate key.","\\t\\t\\t4. Empty key.","\\t\\text\\t|List| with two values: first is a signed integer","\\t\\t\\trepresenting extension type. Second is","\\t\\t\\t|readfile()|-style list of strings."],"nextnonblank":["\\t\\tReturn the line number of the first line at or below {lnum}","\\t\\tthat is not blank. Example: >","\\t\\t\\tif getline(nextnonblank(1)) =~ \\"Java\\"","<\\t\\tWhen {lnum} is invalid or there is no non-blank line at or","\\t\\tbelow it, zero is returned.","\\t\\tSee also |prevnonblank()|."],"nr2char":["\\t\\tReturn a string with a single character, which has the number","\\t\\tvalue {expr}. Examples: >","\\t\\t\\tnr2char(64)\\t\\treturns \\"@\\"","\\t\\t\\tnr2char(32)\\t\\treturns \\" \\"","<\\t\\tExample for \\"utf-8\\": >","\\t\\t\\tnr2char(300)\\t\\treturns I with bow character","<\\t\\tUTF-8 encoding is always used, {utf8} option has no effect,","\\t\\tand exists only for backwards-compatibility.","\\t\\tNote that a NUL character in the file is specified with","\\t\\tnr2char(10), because NULs are represented with newline","\\t\\tcharacters. nr2char(0) is a real NUL and terminates the","\\t\\tstring, thus results in an empty string.","","nvim_...({...})\\t\\t\\t\\t\\t*E5555* *nvim_...()* *eval-api*","\\t\\tCall nvim |api| functions. The type checking of arguments will","\\t\\tbe stricter than for most other builtins. For instance,","\\t\\tif Integer is expected, a |Number| must be passed in, a","\\t\\t|String| will not be autoconverted.","\\t\\tBuffer numbers, as returned by |bufnr()| could be used as","\\t\\tfirst argument to nvim_buf_... functions. All functions","\\t\\texpecting an object (buffer, window or tabpage) can","\\t\\talso take the numerical value 0 to indicate the current","\\t\\t(focused) object."],"or":["\\t\\tBitwise OR on the two arguments. The arguments are converted","\\t\\tto a number. A List, Dict or Float argument causes an error.","\\t\\tExample: >","\\t\\t\\t:let bits = or(bits, 0x80)",""],"pathshorten":["\\t\\tShorten directory names in the path {expr} and return the","\\t\\tresult. The tail, the file name, is kept as-is. The other","\\t\\tcomponents in the path are reduced to single letters. Leading","\\t\\t\'~\' and \'.\' characters are kept. Example: >","\\t\\t\\t:echo pathshorten(\'~/.config/nvim/autoload/file1.vim\')","<\\t\\t\\t~/.c/n/a/file1.vim ~","\\t\\tIt doesn\'t matter if the path exists or not."],"pow":["\\t\\tReturn the power of {x} to the exponent {y} as a |Float|.","\\t\\t{x} and {y} must evaluate to a |Float| or a |Number|.","\\t\\tExamples: >","\\t\\t\\t:echo pow(3, 3)","<\\t\\t\\t27.0 >","\\t\\t\\t:echo pow(2, 16)","<\\t\\t\\t65536.0 >","\\t\\t\\t:echo pow(32, 0.20)","<\\t\\t\\t2.0"],"prevnonblank":["\\t\\tReturn the line number of the first line at or above {lnum}","\\t\\tthat is not blank. Example: >","\\t\\t\\tlet ind = indent(prevnonblank(v:lnum - 1))","<\\t\\tWhen {lnum} is invalid or there is no non-blank line at or","\\t\\tabove it, zero is returned.","\\t\\tAlso see |nextnonblank()|.",""],"printf":["\\t\\tReturn a String with {fmt}, where \\"%\\" items are replaced by","\\t\\tthe formatted form of their respective arguments. Example: >","\\t\\t\\tprintf(\\"%4d: E%d %.30s\\", lnum, errno, msg)","<\\t\\tMay result in:","\\t\\t\\t\\" 99: E42 asdfasdfasdfasdfasdfasdfasdfas\\" ~","","\\t\\tOften used items are:","\\t\\t %s\\tstring","\\t\\t %6S\\tstring right-aligned in 6 display cells","\\t\\t %6s\\tstring right-aligned in 6 bytes","\\t\\t %.9s\\tstring truncated to 9 bytes","\\t\\t %c\\tsingle byte","\\t\\t %d\\tdecimal number","\\t\\t %5d\\tdecimal number padded with spaces to 5 characters","\\t\\t %b\\tbinary number","\\t\\t %08b\\tbinary number padded with zeros to at least 8 characters","\\t\\t %B\\tbinary number using upper case letters","\\t\\t %x\\thex number","\\t\\t %04x\\thex number padded with zeros to at least 4 characters","\\t\\t %X\\thex number using upper case letters","\\t\\t %o\\toctal number","\\t\\t %f\\tfloating point number as 12.23, inf, -inf or nan","\\t\\t %F\\tfloating point number as 12.23, INF, -INF or NAN","\\t\\t %e\\tfloating point number as 1.23e3, inf, -inf or nan","\\t\\t %E\\tfloating point number as 1.23E3, INF, -INF or NAN","\\t\\t %g\\tfloating point number, as %f or %e depending on value","\\t\\t %G\\tfloating point number, as %F or %E depending on value","\\t\\t %%\\tthe % character itself","\\t\\t %p\\trepresentation of the pointer to the container","","\\t\\tConversion specifications start with \'%\' and end with the","\\t\\tconversion type. All other characters are copied unchanged to","\\t\\tthe result.","","\\t\\tThe \\"%\\" starts a conversion specification. The following","\\t\\targuments appear in sequence:","","\\t\\t\\t% [flags] [field-width] [.precision] type","","\\t\\tflags","\\t\\t\\tZero or more of the following flags:","","\\t\\t #\\t The value should be converted to an \\"alternate","\\t\\t\\t form\\". For c, d, and s conversions, this option","\\t\\t\\t has no effect. For o conversions, the precision","\\t\\t\\t of the number is increased to force the first","\\t\\t\\t character of the output string to a zero (except","\\t\\t\\t if a zero value is printed with an explicit","\\t\\t\\t precision of zero).","\\t\\t\\t For x and X conversions, a non-zero result has","\\t\\t\\t the string \\"0x\\" (or \\"0X\\" for X conversions)","\\t\\t\\t prepended to it.","","\\t\\t 0 (zero) Zero padding. For all conversions the converted","\\t\\t\\t value is padded on the left with zeros rather","\\t\\t\\t than blanks. If a precision is given with a","\\t\\t\\t numeric conversion (d, o, x, and X), the 0 flag","\\t\\t\\t is ignored.","","\\t\\t -\\t A negative field width flag; the converted value","\\t\\t\\t is to be left adjusted on the field boundary.","\\t\\t\\t The converted value is padded on the right with","\\t\\t\\t blanks, rather than on the left with blanks or","\\t\\t\\t zeros. A - overrides a 0 if both are given.","","\\t\\t \' \' (space) A blank should be left before a positive","\\t\\t\\t number produced by a signed conversion (d).","","\\t\\t +\\t A sign must always be placed before a number","\\t\\t\\t produced by a signed conversion. A + overrides","\\t\\t\\t a space if both are used.","","\\t\\tfield-width","\\t\\t\\tAn optional decimal digit string specifying a minimum","\\t\\t\\tfield width. If the converted value has fewer bytes","\\t\\t\\tthan the field width, it will be padded with spaces on","\\t\\t\\tthe left (or right, if the left-adjustment flag has","\\t\\t\\tbeen given) to fill out the field width.","","\\t\\t.precision","\\t\\t\\tAn optional precision, in the form of a period \'.\'","\\t\\t\\tfollowed by an optional digit string. If the digit","\\t\\t\\tstring is omitted, the precision is taken as zero.","\\t\\t\\tThis gives the minimum number of digits to appear for","\\t\\t\\td, o, x, and X conversions, or the maximum number of","\\t\\t\\tbytes to be printed from a string for s conversions.","\\t\\t\\tFor floating point it is the number of digits after","\\t\\t\\tthe decimal point.","","\\t\\ttype","\\t\\t\\tA character that specifies the type of conversion to","\\t\\t\\tbe applied, see below.","","\\t\\tA field width or precision, or both, may be indicated by an","\\t\\tasterisk \'*\' instead of a digit string. In this case, a","\\t\\tNumber argument supplies the field width or precision. A","\\t\\tnegative field width is treated as a left adjustment flag","\\t\\tfollowed by a positive field width; a negative precision is","\\t\\ttreated as though it were missing. Example: >","\\t\\t\\t:echo printf(\\"%d: %.*s\\", nr, width, line)","<\\t\\tThis limits the length of the text used from \\"line\\" to","\\t\\t\\"width\\" bytes.","","\\t\\tThe conversion specifiers and their meanings are:","","\\t\\t\\t\\t*printf-d* *printf-b* *printf-B* *printf-o* *printf-x* *printf-X*","\\t\\tdbBoxX\\tThe Number argument is converted to signed decimal (d),","\\t\\t\\tunsigned binary (b and B), unsigned octal (o), or","\\t\\t\\tunsigned hexadecimal (x and X) notation. The letters","\\t\\t\\t\\"abcdef\\" are used for x conversions; the letters","\\t\\t\\t\\"ABCDEF\\" are used for X conversions. The precision, if","\\t\\t\\tany, gives the minimum number of digits that must","\\t\\t\\tappear; if the converted value requires fewer digits, it","\\t\\t\\tis padded on the left with zeros. In no case does a","\\t\\t\\tnon-existent or small field width cause truncation of a","\\t\\t\\tnumeric field; if the result of a conversion is wider","\\t\\t\\tthan the field width, the field is expanded to contain","\\t\\t\\tthe conversion result.","\\t\\t\\tThe \'h\' modifier indicates the argument is 16 bits.","\\t\\t\\tThe \'l\' modifier indicates the argument is 32 bits.","\\t\\t\\tThe \'L\' modifier indicates the argument is 64 bits.","\\t\\t\\tGenerally, these modifiers are not useful. They are","\\t\\t\\tignored when type is known from the argument.","","\\t\\ti\\talias for d","\\t\\tD\\talias for ld","\\t\\tU\\talias for lu","\\t\\tO\\talias for lo","","\\t\\t\\t\\t\\t\\t\\t*printf-c*","\\t\\tc\\tThe Number argument is converted to a byte, and the","\\t\\t\\tresulting character is written.","","\\t\\t\\t\\t\\t\\t\\t*printf-s*","\\t\\ts\\tThe text of the String argument is used. If a","\\t\\t\\tprecision is specified, no more bytes than the number","\\t\\t\\tspecified are used.","\\t\\t\\tIf the argument is not a String type, it is","\\t\\t\\tautomatically converted to text with the same format","\\t\\t\\tas \\":echo\\".","\\t\\t\\t\\t\\t\\t\\t*printf-S*","\\t\\tS\\tThe text of the String argument is used. If a","\\t\\t\\tprecision is specified, no more display cells than the","\\t\\t\\tnumber specified are used.","","\\t\\t\\t\\t\\t\\t\\t*printf-f* *E807*","\\t\\tf F\\tThe Float argument is converted into a string of the","\\t\\t\\tform 123.456. The precision specifies the number of","\\t\\t\\tdigits after the decimal point. When the precision is","\\t\\t\\tzero the decimal point is omitted. When the precision","\\t\\t\\tis not specified 6 is used. A really big number","\\t\\t\\t(out of range or dividing by zero) results in \\"inf\\"","\\t\\t\\t or \\"-inf\\" with %f (INF or -INF with %F).","\\t\\t\\t \\"0.0 / 0.0\\" results in \\"nan\\" with %f (NAN with %F).","\\t\\t\\tExample: >","\\t\\t\\t\\techo printf(\\"%.2f\\", 12.115)","<\\t\\t\\t\\t12.12","\\t\\t\\tNote that roundoff depends on the system libraries.","\\t\\t\\tUse |round()| when in doubt.","","\\t\\t\\t\\t\\t\\t\\t*printf-e* *printf-E*","\\t\\te E\\tThe Float argument is converted into a string of the","\\t\\t\\tform 1.234e+03 or 1.234E+03 when using \'E\'. The","\\t\\t\\tprecision specifies the number of digits after the","\\t\\t\\tdecimal point, like with \'f\'.","","\\t\\t\\t\\t\\t\\t\\t*printf-g* *printf-G*","\\t\\tg G\\tThe Float argument is converted like with \'f\' if the","\\t\\t\\tvalue is between 0.001 (inclusive) and 10000000.0","\\t\\t\\t(exclusive). Otherwise \'e\' is used for \'g\' and \'E\'","\\t\\t\\tfor \'G\'. When no precision is specified superfluous","\\t\\t\\tzeroes and \'+\' signs are removed, except for the zero","\\t\\t\\timmediately after the decimal point. Thus 10000000.0","\\t\\t\\tresults in 1.0e7.","","\\t\\t\\t\\t\\t\\t\\t*printf-%*","\\t\\t%\\tA \'%\' is written. No argument is converted. The","\\t\\t\\tcomplete conversion specification is \\"%%\\".","","\\t\\tWhen a Number argument is expected a String argument is also","\\t\\taccepted and automatically converted.","\\t\\tWhen a Float or String argument is expected a Number argument","\\t\\tis also accepted and automatically converted.","\\t\\tAny other argument type results in an error message.","","\\t\\t\\t\\t\\t\\t\\t*E766* *E767*","\\t\\tThe number of {exprN} arguments must exactly match the number","\\t\\tof \\"%\\" items. If there are not sufficient or too many","\\t\\targuments an error is given. Up to 18 arguments can be used."],"prompt_setcallback":["\\t\\tSet prompt callback for buffer {buf} to {expr}. When {expr}","\\t\\tis an empty string the callback is removed. This has only","\\t\\teffect if {buf} has \'buftype\' set to \\"prompt\\".","","\\t\\tThe callback is invoked when pressing Enter. The current","\\t\\tbuffer will always be the prompt buffer. A new line for a","\\t\\tprompt is added before invoking the callback, thus the prompt","\\t\\tfor which the callback was invoked will be in the last but one","\\t\\tline.","\\t\\tIf the callback wants to add text to the buffer, it must","\\t\\tinsert it above the last line, since that is where the current","\\t\\tprompt is. This can also be done asynchronously.","\\t\\tThe callback is invoked with one argument, which is the text","\\t\\tthat was entered at the prompt. This can be an empty string","\\t\\tif the user only typed Enter.","\\t\\tExample: >","\\t\\t call prompt_setcallback(bufnr(\'\'), function(\'s:TextEntered\'))","\\t\\t func s:TextEntered(text)","\\t\\t if a:text == \'exit\' || a:text == \'quit\'","\\t\\t stopinsert","\\t\\t close","\\t\\t else","\\t\\t call append(line(\'$\') - 1, \'Entered: \\"\' . a:text . \'\\"\')","\\t\\t \\" Reset \'modified\' to allow the buffer to be closed.","\\t\\t set nomodified","\\t\\t endif","\\t\\t endfunc"],"prompt_setinterrupt":["\\t\\tSet a callback for buffer {buf} to {expr}. When {expr} is an","\\t\\tempty string the callback is removed. This has only effect if","\\t\\t{buf} has \'buftype\' set to \\"prompt\\".","","\\t\\tThis callback will be invoked when pressing CTRL-C in Insert","\\t\\tmode. Without setting a callback Vim will exit Insert mode,","\\t\\tas in any buffer."],"prompt_setprompt":["\\t\\tSet prompt for buffer {buf} to {text}. You most likely want","\\t\\t{text} to end in a space.","\\t\\tThe result is only visible if {buf} has \'buftype\' set to","\\t\\t\\"prompt\\". Example: >","\\t\\t\\tcall prompt_setprompt(bufnr(\'\'), \'command: \')"],"pum_getpos":[" \\t\\tIf the popup menu (see |ins-completion-menu|) is not visible,"," \\t\\treturns an empty |Dictionary|, otherwise, returns a"," \\t\\t|Dictionary| with the following keys:"," \\t\\t\\theight\\t\\tnr of items visible"," \\t\\t\\twidth\\t\\tscreen cells"," \\t\\t\\trow\\t\\ttop screen row (0 first row)"," \\t\\t\\tcol\\t\\tleftmost screen column (0 first col)"," \\t\\t\\tsize\\t\\ttotal nr of items"," \\t\\t\\tscrollbar\\t|TRUE| if visible",""," \\t\\tThe values are the same as in |v:event| during |CompleteChanged|."],"pumvisible":["\\t\\tReturns non-zero when the popup menu is visible, zero","\\t\\totherwise. See |ins-completion-menu|.","\\t\\tThis can be used to avoid some things that would remove the","\\t\\tpopup menu."],"py3eval":["\\t\\tEvaluate Python expression {expr} and return its result","\\t\\tconverted to Vim data structures.","\\t\\tNumbers and strings are returned as they are (strings are","\\t\\tcopied though, Unicode strings are additionally converted to","\\t\\tUTF-8).","\\t\\tLists are represented as Vim |List| type.","\\t\\tDictionaries are represented as Vim |Dictionary| type with","\\t\\tkeys converted to strings.",""],"pyeval":["\\t\\tEvaluate Python expression {expr} and return its result","\\t\\tconverted to Vim data structures.","\\t\\tNumbers and strings are returned as they are (strings are","\\t\\tcopied though).","\\t\\tLists are represented as Vim |List| type.","\\t\\tDictionaries are represented as Vim |Dictionary| type,","\\t\\tnon-string keys result in error."],"pyxeval":["\\t\\tEvaluate Python expression {expr} and return its result","\\t\\tconverted to Vim data structures.","\\t\\tUses Python 2 or 3, see |python_x| and \'pyxversion\'.","\\t\\tSee also: |pyeval()|, |py3eval()|",""],"range":["\\t\\tReturns a |List| with Numbers:","\\t\\t- If only {expr} is specified: [0, 1, ..., {expr} - 1]","\\t\\t- If {max} is specified: [{expr}, {expr} + 1, ..., {max}]","\\t\\t- If {stride} is specified: [{expr}, {expr} + {stride}, ...,","\\t\\t {max}] (increasing {expr} with {stride} each time, not","\\t\\t producing a value past {max}).","\\t\\tWhen the maximum is one before the start the result is an","\\t\\tempty list. When the maximum is more than one before the","\\t\\tstart this is an error.","\\t\\tExamples: >","\\t\\t\\trange(4)\\t\\t\\" [0, 1, 2, 3]","\\t\\t\\trange(2, 4)\\t\\t\\" [2, 3, 4]","\\t\\t\\trange(2, 9, 3)\\t\\t\\" [2, 5, 8]","\\t\\t\\trange(2, -2, -1)\\t\\" [2, 1, 0, -1, -2]","\\t\\t\\trange(0)\\t\\t\\" []","\\t\\t\\trange(2, 0)\\t\\t\\" error!","<"],"readfile":["\\t\\tRead file {fname} and return a |List|, each line of the file","\\t\\tas an item. Lines are broken at NL characters. Macintosh","\\t\\tfiles separated with CR will result in a single long line","\\t\\t(unless a NL appears somewhere).","\\t\\tAll NUL characters are replaced with a NL character.","\\t\\tWhen {binary} contains \\"b\\" binary mode is used:","\\t\\t- When the last line ends in a NL an extra empty list item is","\\t\\t added.","\\t\\t- No CR characters are removed.","\\t\\tOtherwise:","\\t\\t- CR characters that appear before a NL are removed.","\\t\\t- Whether the last line ends in a NL or not does not matter.","\\t\\t- Any UTF-8 byte order mark is removed from the text.","\\t\\tWhen {max} is given this specifies the maximum number of lines","\\t\\tto be read. Useful if you only want to check the first ten","\\t\\tlines of a file: >","\\t\\t\\t:for line in readfile(fname, \'\', 10)","\\t\\t\\t: if line =~ \'Date\' | echo line | endif","\\t\\t\\t:endfor","<\\t\\tWhen {max} is negative -{max} lines from the end of the file","\\t\\tare returned, or as many as there are.","\\t\\tWhen {max} is zero the result is an empty list.","\\t\\tNote that without {max} the whole file is read into memory.","\\t\\tAlso note that there is no recognition of encoding. Read a","\\t\\tfile into a buffer if you need to.","\\t\\tWhen the file can\'t be opened an error message is given and","\\t\\tthe result is an empty list.","\\t\\tAlso see |writefile()|.",""],"readdir":["\\t\\tReturn a list with file and directory names in {directory}.","\\t\\tYou can also use |glob()| if you don\'t need to do complicated","\\t\\tthings, such as limiting the number of matches.","","\\t\\tWhen {expr} is omitted all entries are included.","\\t\\tWhen {expr} is given, it is evaluated to check what to do:","\\t\\t\\tIf {expr} results in -1 then no further entries will","\\t\\t\\tbe handled."],"reg_executing":["\\t\\tReturns the single letter name of the register being executed.","\\t\\tReturns an empty string when no register is being executed.","\\t\\tSee |@|."],"reg_recording":["\\t\\tReturns the single letter name of the register being recorded.","\\t\\tReturns an empty string string when not recording. See |q|."],"reltime":["\\t\\tReturn an item that represents a time value. The format of","\\t\\tthe item depends on the system. It can be passed to","\\t\\t|reltimestr()| to convert it to a string or |reltimefloat()|","\\t\\tto convert to a float.","","\\t\\tWithout an argument it returns the current \\"relative time\\", an","\\t\\timplementation-defined value meaningful only when used as an","\\t\\targument to |reltime()|, |reltimestr()| and |reltimefloat()|.","","\\t\\tWith one argument it returns the time passed since the time","\\t\\tspecified in the argument.","\\t\\tWith two arguments it returns the time passed between {start}","\\t\\tand {end}.","\\t\\tThe {start} and {end} arguments must be values returned by","\\t\\treltime().","","\\t\\tNote: |localtime()| returns the current (non-relative) time."],"reltimefloat":["\\t\\tReturn a Float that represents the time value of {time}.","\\t\\tUnit of time is seconds.","\\t\\tExample:","\\t\\t\\tlet start = reltime()","\\t\\t\\tcall MyFunction()","\\t\\t\\tlet seconds = reltimefloat(reltime(start))","\\t\\tSee the note of reltimestr() about overhead."," \\t\\tAlso see |profiling|."],"reltimestr":["\\t\\tReturn a String that represents the time value of {time}.","\\t\\tThis is the number of seconds, a dot and the number of","\\t\\tmicroseconds. Example: >","\\t\\t\\tlet start = reltime()","\\t\\t\\tcall MyFunction()","\\t\\t\\techo reltimestr(reltime(start))","<\\t\\tNote that overhead for the commands will be added to the time.","\\t\\tLeading spaces are used to make the string align nicely. You","\\t\\tcan use split() to remove it. >","\\t\\t\\techo split(reltimestr(reltime(start)))[0]","<\\t\\tAlso see |profiling|.",""],"remote_expr":["\\t\\tSend the {string} to {server}. The string is sent as an","\\t\\texpression and the result is returned after evaluation.","\\t\\tThe result must be a String or a |List|. A |List| is turned","\\t\\tinto a String by joining the items with a line break in","\\t\\tbetween (not at the end), like with join(expr, \\"\\\\n\\").","\\t\\tIf {idvar} is present and not empty, it is taken as the name","\\t\\tof a variable and a {serverid} for later use with","\\t\\t|remote_read()| is stored there.","\\t\\tIf {timeout} is given the read times out after this many","\\t\\tseconds. Otherwise a timeout of 600 seconds is used.","\\t\\tSee also |clientserver| |RemoteReply|.","\\t\\tThis function is not available in the |sandbox|.","\\t\\tNote: Any errors will cause a local error message to be issued","\\t\\tand the result will be the empty string.","","\\t\\tVariables will be evaluated in the global namespace,","\\t\\tindependent of a function currently being active. Except","\\t\\twhen in debug mode, then local function variables and","\\t\\targuments can be evaluated.","","\\t\\tExamples: >","\\t\\t\\t:echo remote_expr(\\"gvim\\", \\"2+2\\")","\\t\\t\\t:echo remote_expr(\\"gvim1\\", \\"b:current_syntax\\")","<"],"remote_foreground":["\\t\\tMove the Vim server with the name {server} to the foreground.","\\t\\tThis works like: >","\\t\\t\\tremote_expr({server}, \\"foreground()\\")","<\\t\\tExcept that on Win32 systems the client does the work, to work","\\t\\taround the problem that the OS doesn\'t always allow the server","\\t\\tto bring itself to the foreground.","\\t\\tNote: This does not restore the window if it was minimized,","\\t\\tlike foreground() does.","\\t\\tThis function is not available in the |sandbox|.","\\t\\t{only in the Win32 GUI and the Win32 console version}",""],"remote_peek":["\\t\\tReturns a positive number if there are available strings","\\t\\tfrom {serverid}. Copies any reply string into the variable","\\t\\t{retvar} if specified. {retvar} must be a string with the","\\t\\tname of a variable.","\\t\\tReturns zero if none are available.","\\t\\tReturns -1 if something is wrong.","\\t\\tSee also |clientserver|.","\\t\\tThis function is not available in the |sandbox|.","\\t\\tExamples: >","\\t\\t\\t:let repl = \\"\\"","\\t\\t\\t:echo \\"PEEK: \\".remote_peek(id, \\"repl\\").\\": \\".repl"],"remote_read":["\\t\\tReturn the oldest available reply from {serverid} and consume","\\t\\tit. Unless a {timeout} in seconds is given, it blocks until a","\\t\\treply is available.","\\t\\tSee also |clientserver|.","\\t\\tThis function is not available in the |sandbox|.","\\t\\tExample: >","\\t\\t\\t:echo remote_read(id)","<"],"remote_send":["\\t\\tSend the {string} to {server}. The string is sent as input","\\t\\tkeys and the function returns immediately. At the Vim server","\\t\\tthe keys are not mapped |:map|.","\\t\\tIf {idvar} is present, it is taken as the name of a variable","\\t\\tand a {serverid} for later use with remote_read() is stored","\\t\\tthere.","\\t\\tSee also |clientserver| |RemoteReply|.","\\t\\tThis function is not available in the |sandbox|.","","\\t\\tNote: Any errors will be reported in the server and may mess","\\t\\tup the display.","\\t\\tExamples: >","\\t\\t:echo remote_send(\\"gvim\\", \\":DropAndReply \\".file, \\"serverid\\").","\\t\\t \\\\ remote_read(serverid)","","\\t\\t:autocmd NONE RemoteReply *","\\t\\t \\\\ echo remote_read(expand(\\"<amatch>\\"))","\\t\\t:echo remote_send(\\"gvim\\", \\":sleep 10 | echo \\".","\\t\\t \\\\ \'server2client(expand(\\"<client>\\"), \\"HELLO\\")<CR>\')","<"],"remote_startserver":["\\t\\tBecome the server {name}. This fails if already running as a","\\t\\tserver, when |v:servername| is not empty."],"remove":["\\t\\tWithout {end}: Remove the item at {idx} from |List| {list} and","\\t\\treturn the item.","\\t\\tWith {end}: Remove items from {idx} to {end} (inclusive) and","\\t\\treturn a List with these items. When {idx} points to the same","\\t\\titem as {end} a list with one item is returned. When {end}","\\t\\tpoints to an item before {idx} this is an error.","\\t\\tSee |list-index| for possible values of {idx} and {end}.","\\t\\tExample: >","\\t\\t\\t:echo \\"last item: \\" . remove(mylist, -1)","\\t\\tRemove the entry from {dict} with key {key} and return it.","\\t\\tExample: >","\\t\\t\\t:echo \\"removed \\" . remove(dict, \\"one\\")","<\\t\\tIf there is no {key} in {dict} this is an error.","","\\t\\tUse |delete()| to remove a file."],"rename":["\\t\\tRename the file by the name {from} to the name {to}. This","\\t\\tshould also work to move files across file systems. The","\\t\\tresult is a Number, which is 0 if the file was renamed","\\t\\tsuccessfully, and non-zero when the renaming failed.","\\t\\tNOTE: If {to} exists it is overwritten without warning.","\\t\\tThis function is not available in the |sandbox|."],"repeat":["\\t\\tRepeat {expr} {count} times and return the concatenated","\\t\\tresult. Example: >","\\t\\t\\t:let separator = repeat(\'-\', 80)","<\\t\\tWhen {count} is zero or negative the result is empty.","\\t\\tWhen {expr} is a |List| the result is {expr} concatenated","\\t\\t{count} times. Example: >","\\t\\t\\t:let longlist = repeat([\'a\', \'b\'], 3)","<\\t\\tResults in [\'a\', \'b\', \'a\', \'b\', \'a\', \'b\'].",""],"resolve":["\\t\\tOn MS-Windows, when {filename} is a shortcut (a .lnk file),","\\t\\treturns the path the shortcut points to in a simplified form.","\\t\\tOn Unix, repeat resolving symbolic links in all path","\\t\\tcomponents of {filename} and return the simplified result.","\\t\\tTo cope with link cycles, resolving of symbolic links is","\\t\\tstopped after 100 iterations.","\\t\\tOn other systems, return the simplified {filename}.","\\t\\tThe simplification step is done as by |simplify()|.","\\t\\tresolve() keeps a leading path component specifying the","\\t\\tcurrent directory (provided the result is still a relative","\\t\\tpath name) and also keeps a trailing path separator.",""],"reverse":["\\t\\t{list}.","\\t\\tIf you want a list to remain unmodified make a copy first: >","\\t\\t\\t:let revlist = reverse(copy(mylist))"],"round":["\\t\\tRound off {expr} to the nearest integral value and return it","\\t\\tas a |Float|. If {expr} lies halfway between two integral","\\t\\tvalues, then use the larger one (away from zero).","\\t\\t{expr} must evaluate to a |Float| or a |Number|.","\\t\\tExamples: >","\\t\\t\\techo round(0.456)","<\\t\\t\\t0.0 >","\\t\\t\\techo round(4.5)","<\\t\\t\\t5.0 >","\\t\\t\\techo round(-4.5)","<\\t\\t\\t-5.0"],"rpcnotify":["\\t\\tSends {event} to {channel} via |RPC| and returns immediately.","\\t\\tIf {channel} is 0, the event is broadcast to all channels.","\\t\\tExample: >","\\t\\t\\t:au VimLeave call rpcnotify(0, \\"leaving\\")"],"rpcrequest":["\\t\\tSends a request to {channel} to invoke {method} via","\\t\\t|RPC| and blocks until a response is received.","\\t\\tExample: >","\\t\\t\\t:let result = rpcrequest(rpc_chan, \\"func\\", 1, 2, 3)"],"rpcstart":["\\t\\tDeprecated. Replace >","\\t\\t\\t:let id = rpcstart(\'prog\', [\'arg1\', \'arg2\'])","<\\t\\twith >","\\t\\t\\t:let id = jobstart([\'prog\', \'arg1\', \'arg2\'], {\'rpc\': v:true})"],"screenattr":["\\t\\tLike |screenchar()|, but return the attribute. This is a rather","\\t\\tarbitrary number that can only be used to compare to the","\\t\\tattribute at other positions."],"screenchar":["\\t\\tThe result is a Number, which is the character at position","\\t\\t[row, col] on the screen. This works for every possible","\\t\\tscreen position, also status lines, window separators and the","\\t\\tcommand line. The top left position is row one, column one","\\t\\tThe character excludes composing characters. For double-byte","\\t\\tencodings it may only be the first byte.","\\t\\tThis is mainly to be used for testing.","\\t\\tReturns -1 when row or col is out of range."],"screencol":["\\t\\tThe result is a Number, which is the current screen column of","\\t\\tthe cursor. The leftmost column has number 1.","\\t\\tThis function is mainly used for testing.","","\\t\\tNote: Always returns the current screen column, thus if used","\\t\\tin a command (e.g. \\":echo screencol()\\") it will return the","\\t\\tcolumn inside the command line, which is 1 when the command is","\\t\\texecuted. To get the cursor position in the file use one of","\\t\\tthe following mappings: >","\\t\\t\\tnnoremap <expr> GG \\":echom \\".screencol().\\"\\\\n\\"","\\t\\t\\tnnoremap <silent> GG :echom screencol()<CR>","\\t\\t\\tnoremap GG <Cmd>echom screencol()<Cr>"],"screenpos":["\\t\\tThe result is a Dict with the screen position of the text","\\t\\tcharacter in window {winid} at buffer line {lnum} and column","\\t\\t{col}. {col} is a one-based byte index.","\\t\\tThe Dict has these members:","\\t\\t\\trow\\tscreen row","\\t\\t\\tcol\\tfirst screen column","\\t\\t\\tendcol\\tlast screen column","\\t\\t\\tcurscol\\tcursor screen column","\\t\\tIf the specified position is not visible, all values are zero.","\\t\\tThe \\"endcol\\" value differs from \\"col\\" when the character","\\t\\toccupies more than one screen cell. E.g. for a Tab \\"col\\" can","\\t\\tbe 1 and \\"endcol\\" can be 8.","\\t\\tThe \\"curscol\\" value is where the cursor would be placed. For","\\t\\ta Tab it would be the same as \\"endcol\\", while for a double","\\t\\twidth character it would be the same as \\"col\\"."],"screenrow":["\\t\\tThe result is a Number, which is the current screen row of the","\\t\\tcursor. The top line has number one.","\\t\\tThis function is mainly used for testing.","\\t\\tAlternatively you can use |winline()|.","","\\t\\tNote: Same restrictions as with |screencol()|."],"search":["\\t\\tSearch for regexp pattern {pattern}. The search starts at the","\\t\\tcursor position (you can use |cursor()| to set it).","","\\t\\tWhen a match has been found its line number is returned.","\\t\\tIf there is no match a 0 is returned and the cursor doesn\'t","\\t\\tmove. No error message is given.","","\\t\\t{flags} is a String, which can contain these character flags:","\\t\\t\'b\'\\tsearch Backward instead of forward","\\t\\t\'c\'\\taccept a match at the Cursor position","\\t\\t\'e\'\\tmove to the End of the match","\\t\\t\'n\'\\tdo Not move the cursor","\\t\\t\'p\'\\treturn number of matching sub-Pattern (see below)","\\t\\t\'s\'\\tSet the \' mark at the previous location of the cursor","\\t\\t\'w\'\\tWrap around the end of the file","\\t\\t\'W\'\\tdon\'t Wrap around the end of the file","\\t\\t\'z\'\\tstart searching at the cursor column instead of Zero","\\t\\tIf neither \'w\' or \'W\' is given, the \'wrapscan\' option applies.","","\\t\\tIf the \'s\' flag is supplied, the \' mark is set, only if the","\\t\\tcursor is moved. The \'s\' flag cannot be combined with the \'n\'","\\t\\tflag.","","\\t\\t\'ignorecase\', \'smartcase\' and \'magic\' are used.","","\\t\\tWhen the \'z\' flag is not given, searching always starts in","\\t\\tcolumn zero and then matches before the cursor are skipped.","\\t\\tWhen the \'c\' flag is present in \'cpo\' the next search starts","\\t\\tafter the match. Without the \'c\' flag the next search starts","\\t\\tone column further.","","\\t\\tWhen the {stopline} argument is given then the search stops","\\t\\tafter searching this line. This is useful to restrict the","\\t\\tsearch to a range of lines. Examples: >","\\t\\t\\tlet match = search(\'(\', \'b\', line(\\"w0\\"))","\\t\\t\\tlet end = search(\'END\', \'\', line(\\"w$\\"))","<\\t\\tWhen {stopline} is used and it is not zero this also implies","\\t\\tthat the search does not wrap around the end of the file.","\\t\\tA zero value is equal to not giving the argument.","","\\t\\tWhen the {timeout} argument is given the search stops when","\\t\\tmore than this many milliseconds have passed. Thus when","\\t\\t{timeout} is 500 the search stops after half a second.","\\t\\tThe value must not be negative. A zero value is like not","\\t\\tgiving the argument.","","\\t\\t\\t\\t\\t\\t\\t*search()-sub-match*","\\t\\tWith the \'p\' flag the returned value is one more than the","\\t\\tfirst sub-match in \\\\(\\\\). One if none of them matched but the","\\t\\twhole pattern did match.","\\t\\tTo get the column number too use |searchpos()|.","","\\t\\tThe cursor will be positioned at the match, unless the \'n\'","\\t\\tflag is used.","","\\t\\tExample (goes over all files in the argument list): >","\\t\\t :let n = 1","\\t\\t :while n <= argc()\\t \\" loop over all files in arglist","\\t\\t : exe \\"argument \\" . n","\\t\\t : \\" start at the last char in the file and wrap for the","\\t\\t : \\" first search to find match at start of file","\\t\\t : normal G$","\\t\\t : let flags = \\"w\\"","\\t\\t : while search(\\"foo\\", flags) > 0","\\t\\t :\\t s/foo/bar/g","\\t\\t :\\t let flags = \\"W\\"","\\t\\t : endwhile","\\t\\t : update\\t\\t \\" write the file if modified","\\t\\t : let n = n + 1","\\t\\t :endwhile","<","\\t\\tExample for using some flags: >","\\t\\t :echo search(\'\\\\<if\\\\|\\\\(else\\\\)\\\\|\\\\(endif\\\\)\', \'ncpe\')","<\\t\\tThis will search for the keywords \\"if\\", \\"else\\", and \\"endif\\"","\\t\\tunder or after the cursor. Because of the \'p\' flag, it","\\t\\treturns 1, 2, or 3 depending on which keyword is found, or 0","\\t\\tif the search fails. With the cursor on the first word of the","\\t\\tline:","\\t\\t if (foo == 0) | let foo = foo + 1 | endif ~","\\t\\tthe function returns 1. Without the \'c\' flag, the function","\\t\\tfinds the \\"endif\\" and returns 3. The same thing happens","\\t\\twithout the \'e\' flag if the cursor is on the \\"f\\" of \\"if\\".","\\t\\tThe \'n\' flag tells the function not to move the cursor.",""],"searchdecl":["\\t\\tSearch for the declaration of {name}.","","\\t\\tWith a non-zero {global} argument it works like |gD|, find","\\t\\tfirst match in the file. Otherwise it works like |gd|, find","\\t\\tfirst match in the function.","","\\t\\tWith a non-zero {thisblock} argument matches in a {} block","\\t\\tthat ends before the cursor position are ignored. Avoids","\\t\\tfinding variable declarations only valid in another scope.","","\\t\\tMoves the cursor to the found match.","\\t\\tReturns zero for success, non-zero for failure.","\\t\\tExample: >","\\t\\t\\tif searchdecl(\'myvar\') == 0","\\t\\t\\t echo getline(\'.\')","\\t\\t\\tendif","<","\\t\\t\\t\\t\\t\\t\\t*searchpair()*","searchpair({start}, {middle}, {end} [, {flags} [, {skip}","\\t\\t\\t\\t[, {stopline} [, {timeout}]]]])","\\t\\tSearch for the match of a nested start-end pair. This can be","\\t\\tused to find the \\"endif\\" that matches an \\"if\\", while other","\\t\\tif/endif pairs in between are ignored.","\\t\\tThe search starts at the cursor. The default is to search","\\t\\tforward, include \'b\' in {flags} to search backward.","\\t\\tIf a match is found, the cursor is positioned at it and the","\\t\\tline number is returned. If no match is found 0 or -1 is","\\t\\treturned and the cursor doesn\'t move. No error message is","\\t\\tgiven.","","\\t\\t{start}, {middle} and {end} are patterns, see |pattern|. They","\\t\\tmust not contain \\\\( \\\\) pairs. Use of \\\\%( \\\\) is allowed. When","\\t\\t{middle} is not empty, it is found when searching from either","\\t\\tdirection, but only when not in a nested start-end pair. A","\\t\\ttypical use is: >","\\t\\t\\tsearchpair(\'\\\\<if\\\\>\', \'\\\\<else\\\\>\', \'\\\\<endif\\\\>\')","<\\t\\tBy leaving {middle} empty the \\"else\\" is skipped.","","\\t\\t{flags} \'b\', \'c\', \'n\', \'s\', \'w\' and \'W\' are used like with","\\t\\t|search()|. Additionally:","\\t\\t\'r\'\\tRepeat until no more matches found; will find the","\\t\\t\\touter pair. Implies the \'W\' flag.","\\t\\t\'m\'\\tReturn number of matches instead of line number with","\\t\\t\\tthe match; will be > 1 when \'r\' is used.","\\t\\tNote: it\'s nearly always a good idea to use the \'W\' flag, to","\\t\\tavoid wrapping around the end of the file.","","\\t\\tWhen a match for {start}, {middle} or {end} is found, the","\\t\\t{skip} expression is evaluated with the cursor positioned on","\\t\\tthe start of the match. It should return non-zero if this","\\t\\tmatch is to be skipped. E.g., because it is inside a comment","\\t\\tor a string.","\\t\\tWhen {skip} is omitted or empty, every match is accepted.","\\t\\tWhen evaluating {skip} causes an error the search is aborted","\\t\\tand -1 returned."," \\t\\t{skip} can be a string, a lambda, a funcref or a partial.","\\t\\tAnything else makes the function fail.","","\\t\\tFor {stopline} and {timeout} see |search()|.","","\\t\\tThe value of \'ignorecase\' is used. \'magic\' is ignored, the","\\t\\tpatterns are used like it\'s on.","","\\t\\tThe search starts exactly at the cursor. A match with","\\t\\t{start}, {middle} or {end} at the next character, in the","\\t\\tdirection of searching, is the first one found. Example: >","\\t\\t\\tif 1","\\t\\t\\t if 2","\\t\\t\\t endif 2","\\t\\t\\tendif 1","<\\t\\tWhen starting at the \\"if 2\\", with the cursor on the \\"i\\", and","\\t\\tsearching forwards, the \\"endif 2\\" is found. When starting on","\\t\\tthe character just before the \\"if 2\\", the \\"endif 1\\" will be","\\t\\tfound. That\'s because the \\"if 2\\" will be found first, and","\\t\\tthen this is considered to be a nested if/endif from \\"if 2\\" to","\\t\\t\\"endif 2\\".","\\t\\tWhen searching backwards and {end} is more than one character,","\\t\\tit may be useful to put \\"\\\\zs\\" at the end of the pattern, so","\\t\\tthat when the cursor is inside a match with the end it finds","\\t\\tthe matching start.","","\\t\\tExample, to find the \\"endif\\" command in a Vim script: >","","\\t:echo searchpair(\'\\\\<if\\\\>\', \'\\\\<el\\\\%[seif]\\\\>\', \'\\\\<en\\\\%[dif]\\\\>\', \'W\',","\\t\\t\\t\\\\ \'getline(\\".\\") =~ \\"^\\\\\\\\s*\\\\\\"\\"\')","","<\\t\\tThe cursor must be at or after the \\"if\\" for which a match is","\\t\\tto be found. Note that single-quote strings are used to avoid","\\t\\thaving to double the backslashes. The skip expression only","\\t\\tcatches comments at the start of a line, not after a command.","\\t\\tAlso, a word \\"en\\" or \\"if\\" halfway through a line is considered","\\t\\ta match.","\\t\\tAnother example, to search for the matching \\"{\\" of a \\"}\\": >","","\\t:echo searchpair(\'{\', \'\', \'}\', \'bW\')","","<\\t\\tThis works when the cursor is at or before the \\"}\\" for which a","\\t\\tmatch is to be found. To reject matches that syntax","\\t\\thighlighting recognized as strings: >","","\\t:echo searchpair(\'{\', \'\', \'}\', \'bW\',","\\t \\\\ \'synIDattr(synID(line(\\".\\"), col(\\".\\"), 0), \\"name\\") =~? \\"string\\"\')","<","\\t\\t\\t\\t\\t\\t\\t*searchpairpos()*","searchpairpos({start}, {middle}, {end} [, {flags} [, {skip}","\\t\\t\\t\\t[, {stopline} [, {timeout}]]]])","\\t\\tSame as |searchpair()|, but returns a |List| with the line and","\\t\\tcolumn position of the match. The first element of the |List|","\\t\\tis the line number and the second element is the byte index of","\\t\\tthe column position of the match. If no match is found,","\\t\\treturns [0, 0]. >","","\\t\\t\\t:let [lnum,col] = searchpairpos(\'{\', \'\', \'}\', \'n\')","<","\\t\\tSee |match-parens| for a bigger and more useful example."],"searchpos":["\\t\\tSame as |search()|, but returns a |List| with the line and","\\t\\tcolumn position of the match. The first element of the |List|","\\t\\tis the line number and the second element is the byte index of","\\t\\tthe column position of the match. If no match is found,","\\t\\treturns [0, 0].","\\t\\tExample: >","\\t:let [lnum, col] = searchpos(\'mypattern\', \'n\')","","<\\t\\tWhen the \'p\' flag is given then there is an extra item with","\\t\\tthe sub-pattern match number |search()-sub-match|. Example: >","\\t:let [lnum, col, submatch] = searchpos(\'\\\\(\\\\l\\\\)\\\\|\\\\(\\\\u\\\\)\', \'np\')","<\\t\\tIn this example \\"submatch\\" is 2 when a lowercase letter is","\\t\\tfound |/\\\\l|, 3 when an uppercase letter is found |/\\\\u|."],"server2client":["\\t\\tSend a reply string to {clientid}. The most recent {clientid}","\\t\\tthat sent a string can be retrieved with expand(\\"<client>\\").","\\t\\tNote:","\\t\\tThis id has to be stored before the next command can be","\\t\\treceived. I.e. before returning from the received command and","\\t\\tbefore calling any commands that waits for input.","\\t\\tSee also |clientserver|.","\\t\\tExample: >","\\t\\t\\t:echo server2client(expand(\\"<client>\\"), \\"HELLO\\")"],"serverlist":["\\t\\tReturns a list of server addresses, or empty if all servers","\\t\\twere stopped. |serverstart()| |serverstop()|","\\t\\tExample: >","\\t\\t\\t:echo serverlist()"],"serverstart":["\\t\\tOpens a socket or named pipe at {address} and listens for","\\t\\t|RPC| messages. Clients can send |API| commands to the address","\\t\\tto control Nvim. Returns the address string.","","\\t\\tIf {address} does not contain a colon \\":\\" it is interpreted as","\\t\\ta named pipe or Unix domain socket path.","","\\t\\tExample: >","\\t\\t\\tif has(\'win32\')","\\t\\t\\t call serverstart(\'\\\\\\\\.\\\\pipe\\\\nvim-pipe-1234\')","\\t\\t\\telse","\\t\\t\\t call serverstart(\'nvim.sock\')","\\t\\t\\tendif","<","\\t\\tIf {address} contains a colon \\":\\" it is interpreted as a TCP","\\t\\taddress where the last \\":\\" separates the host and port.","\\t\\tAssigns a random port if it is empty or 0. Supports IPv4/IPv6.","","\\t\\tExample: >","\\t\\t\\t:call serverstart(\'::1:12345\')","<","\\t\\tIf no address is given, it is equivalent to: >","\\t\\t\\t:call serverstart(tempname())","","< \\t\\t|$NVIM_LISTEN_ADDRESS| is set to {address} if not already set."],"serverstop":["\\t\\tCloses the pipe or socket at {address}.","\\t\\tReturns TRUE if {address} is valid, else FALSE.","\\t\\tIf |$NVIM_LISTEN_ADDRESS| is stopped it is unset.","\\t\\tIf |v:servername| is stopped it is set to the next available","\\t\\taddress returned by |serverlist()|."],"setbufline":["\\t\\tSet line {lnum} to {text} in buffer {expr}. To insert","\\t\\tlines use |append()|.","","\\t\\tFor the use of {expr}, see |bufname()| above.","","\\t\\t{lnum} is used like with |setline()|.","\\t\\tThis works like |setline()| for the specified buffer.","\\t\\tOn success 0 is returned, on failure 1 is returned.","","\\t\\tIf {expr} is not a valid buffer or {lnum} is not valid, an","\\t\\terror message is given."],"setbufvar":["\\t\\tSet option or local variable {varname} in buffer {expr} to","\\t\\t{val}.","\\t\\tThis also works for a global or local window option, but it","\\t\\tdoesn\'t work for a global or local window variable.","\\t\\tFor a local window option the global value is unchanged.","\\t\\tFor the use of {expr}, see |bufname()| above.","\\t\\tNote that the variable name without \\"b:\\" must be used.","\\t\\tExamples: >","\\t\\t\\t:call setbufvar(1, \\"&mod\\", 1)","\\t\\t\\t:call setbufvar(\\"todo\\", \\"myvar\\", \\"foobar\\")","<\\t\\tThis function is not available in the |sandbox|."],"setcharsearch":["\\t\\tSet the current character search information to {dict},","\\t\\twhich contains one or more of the following entries:","","\\t\\t char\\tcharacter which will be used for a subsequent","\\t\\t\\t\\t|,| or |;| command; an empty string clears the","\\t\\t\\t\\tcharacter search","\\t\\t forward\\tdirection of character search; 1 for forward,","\\t\\t\\t\\t0 for backward","\\t\\t until\\ttype of character search; 1 for a |t| or |T|","\\t\\t\\t\\tcharacter search, 0 for an |f| or |F|","\\t\\t\\t\\tcharacter search","","\\t\\tThis can be useful to save/restore a user\'s character search","\\t\\tfrom a script: >","\\t\\t\\t:let prevsearch = getcharsearch()","\\t\\t\\t:\\" Perform a command which clobbers user\'s search","\\t\\t\\t:call setcharsearch(prevsearch)","<\\t\\tAlso see |getcharsearch()|."],"setcmdpos":["\\t\\tSet the cursor position in the command line to byte position","\\t\\t{pos}. The first position is 1.","\\t\\tUse |getcmdpos()| to obtain the current position.","\\t\\tOnly works while editing the command line, thus you must use","\\t\\t|c_CTRL-\\\\_e|, |c_CTRL-R_=| or |c_CTRL-R_CTRL-R| with \'=\'. For","\\t\\t|c_CTRL-\\\\_e| and |c_CTRL-R_CTRL-R| with \'=\' the position is","\\t\\tset after the command line is set to the expression. For","\\t\\t|c_CTRL-R_=| it is set after evaluating the expression but","\\t\\tbefore inserting the resulting text.","\\t\\tWhen the number is too big the cursor is put at the end of the","\\t\\tline. A number smaller than one has undefined results.","\\t\\tReturns 0 when successful, 1 when not editing the command","\\t\\tline."],"setenv":["\\t\\tSet environment variable {name} to {val}.","\\t\\tWhen {val} is |v:null| the environment variable is deleted.","\\t\\tSee also |expr-env|."],"setfperm":["\\t\\tSet the file permissions for {fname} to {mode}.","\\t\\t{mode} must be a string with 9 characters. It is of the form","\\t\\t\\"rwxrwxrwx\\", where each group of \\"rwx\\" flags represent, in","\\t\\tturn, the permissions of the owner of the file, the group the","\\t\\tfile belongs to, and other users. A \'-\' character means the","\\t\\tpermission is off, any other character means on. Multi-byte","\\t\\tcharacters are not supported.","","\\t\\tFor example \\"rw-r-----\\" means read-write for the user,","\\t\\treadable by the group, not accessible by others. \\"xx-x-----\\"","\\t\\twould do the same thing.","","\\t\\tReturns non-zero for success, zero for failure.","","\\t\\tTo read permissions see |getfperm()|."],"setline":["\\t\\tSet line {lnum} of the current buffer to {text}. To insert","\\t\\tlines use |append()|. To set lines in another buffer use","\\t\\t|setbufline()|.","","\\t\\t{lnum} is used like with |getline()|.","\\t\\tWhen {lnum} is just below the last line the {text} will be","\\t\\tadded as a new line.","","\\t\\tIf this succeeds, 0 is returned. If this fails (most likely","\\t\\tbecause {lnum} is invalid) 1 is returned.","","\\t\\tExample: >","\\t\\t\\t:call setline(5, strftime(\\"%c\\"))","","<\\t\\tWhen {text} is a |List| then line {lnum} and following lines","\\t\\twill be set to the items in the list. Example: >","\\t\\t\\t:call setline(5, [\'aaa\', \'bbb\', \'ccc\'])","<\\t\\tThis is equivalent to: >","\\t\\t\\t:for [n, l] in [[5, \'aaa\'], [6, \'bbb\'], [7, \'ccc\']]","\\t\\t\\t: call setline(n, l)","\\t\\t\\t:endfor","","<\\t\\tNote: The \'[ and \'] marks are not set."],"setloclist":["\\t\\tCreate or replace or add to the location list for window {nr}.","\\t\\t{nr} can be the window number or the |window-ID|.","\\t\\tWhen {nr} is zero the current window is used.","","\\t\\tFor a location list window, the displayed location list is","\\t\\tmodified. For an invalid window number {nr}, -1 is returned.","\\t\\tOtherwise, same as |setqflist()|.","\\t\\tAlso see |location-list|.","","\\t\\tIf the optional {what} dictionary argument is supplied, then","\\t\\tonly the items listed in {what} are set. Refer to |setqflist()|","\\t\\tfor the list of supported keys in {what}."],"setmatches":["\\t\\tRestores a list of matches saved by |getmatches() for the","\\t\\tcurrent window|. Returns 0 if successful, otherwise -1. All","\\t\\tcurrent matches are cleared before the list is restored. See","\\t\\texample for |getmatches()|.",""],"setpos":["\\t\\tSet the position for {expr}. Possible values:","\\t\\t\\t.\\tthe cursor","\\t\\t\\t\'x\\tmark x","","\\t\\t{list} must be a |List| with four or five numbers:","\\t\\t [bufnum, lnum, col, off]","\\t\\t [bufnum, lnum, col, off, curswant]","","\\t\\t\\"bufnum\\" is the buffer number.\\tZero can be used for the","\\t\\tcurrent buffer. When setting an uppercase mark \\"bufnum\\" is","\\t\\tused for the mark position. For other marks it specifies the","\\t\\tbuffer to set the mark in. You can use the |bufnr()| function","\\t\\tto turn a file name into a buffer number.","\\t\\tFor setting the cursor and the \' mark \\"bufnum\\" is ignored,","\\t\\tsince these are associated with a window, not a buffer.","\\t\\tDoes not change the jumplist.","","\\t\\t\\"lnum\\" and \\"col\\" are the position in the buffer. The first","\\t\\tcolumn is 1. Use a zero \\"lnum\\" to delete a mark. If \\"col\\" is","\\t\\tsmaller than 1 then 1 is used.","","\\t\\tThe \\"off\\" number is only used when \'virtualedit\' is set. Then","\\t\\tit is the offset in screen columns from the start of the","\\t\\tcharacter. E.g., a position within a <Tab> or after the last","\\t\\tcharacter.","","\\t\\tThe \\"curswant\\" number is only used when setting the cursor","\\t\\tposition. It sets the preferred column for when moving the","\\t\\tcursor vertically. When the \\"curswant\\" number is missing the","\\t\\tpreferred column is not set. When it is present and setting a","\\t\\tmark position it is not used.","","\\t\\tNote that for \'< and \'> changing the line number may result in","\\t\\tthe marks to be effectively be swapped, so that \'< is always","\\t\\tbefore \'>.","","\\t\\tReturns 0 when the position could be set, -1 otherwise.","\\t\\tAn error message is given if {expr} is invalid.","","\\t\\tAlso see |getpos()| and |getcurpos()|.","","\\t\\tThis does not restore the preferred column for moving","\\t\\tvertically; if you set the cursor position with this, |j| and","\\t\\t|k| motions will jump to previous columns! Use |cursor()| to","\\t\\talso set the preferred column. Also see the \\"curswant\\" key in","\\t\\t|winrestview()|.",""],"setqflist":["\\t\\tCreate or replace or add to the quickfix list.","\\t\\t","\\t\\tWhen {what} is not present, use the items in {list}. Each","\\t\\titem must be a dictionary. Non-dictionary items in {list} are","\\t\\tignored. Each dictionary item can contain the following","\\t\\tentries:","","\\t\\t bufnr\\tbuffer number; must be the number of a valid","\\t\\t\\t\\tbuffer","\\t\\t filename\\tname of a file; only used when \\"bufnr\\" is not","\\t\\t\\t\\tpresent or it is invalid.","\\t\\t module\\tname of a module; if given it will be used in","\\t\\t\\t\\tquickfix error window instead of the filename","\\t\\t lnum\\tline number in the file","\\t\\t pattern\\tsearch pattern used to locate the error","\\t\\t col\\t\\tcolumn number","\\t\\t vcol\\twhen non-zero: \\"col\\" is visual column","\\t\\t\\t\\twhen zero: \\"col\\" is byte index","\\t\\t nr\\t\\terror number","\\t\\t text\\tdescription of the error","\\t\\t type\\tsingle-character error type, \'E\', \'W\', etc.","\\t\\t valid\\trecognized error message","","\\t\\tThe \\"col\\", \\"vcol\\", \\"nr\\", \\"type\\" and \\"text\\" entries are","\\t\\toptional. Either \\"lnum\\" or \\"pattern\\" entry can be used to","\\t\\tlocate a matching error line.","\\t\\tIf the \\"filename\\" and \\"bufnr\\" entries are not present or","\\t\\tneither the \\"lnum\\" or \\"pattern\\" entries are present, then the","\\t\\titem will not be handled as an error line.","\\t\\tIf both \\"pattern\\" and \\"lnum\\" are present then \\"pattern\\" will","\\t\\tbe used.","\\t\\tIf the \\"valid\\" entry is not supplied, then the valid flag is","\\t\\tset when \\"bufnr\\" is a valid buffer or \\"filename\\" exists.","\\t\\tIf you supply an empty {list}, the quickfix list will be","\\t\\tcleared.","\\t\\tNote that the list is not exactly the same as what","\\t\\t|getqflist()| returns.","","\\t\\t{action} values:\\t\\t\\t\\t*E927*","\\t\\t\'a\'\\tThe items from {list} are added to the existing","\\t\\t\\tquickfix list. If there is no existing list, then a","\\t\\t\\tnew list is created.","\\t\\t","\\t\\t\'r\'\\tThe items from the current quickfix list are replaced","\\t\\t\\twith the items from {list}. This can also be used to","\\t\\t\\tclear the list: >","\\t\\t\\t\\t:call setqflist([], \'r\')","<\\t","\\t\\t\'f\'\\tAll the quickfix lists in the quickfix stack are","\\t\\t\\tfreed.","","\\t\\tIf {action} is not present or is set to \' \', then a new list","\\t\\tis created. The new quickfix list is added after the current","\\t\\tquickfix list in the stack and all the following lists are","\\t\\tfreed. To add a new quickfix list at the end of the stack,","\\t\\tset \\"nr\\" in {what} to \\"$\\".","","\\t\\tIf the optional {what} dictionary argument is supplied, then","\\t\\tonly the items listed in {what} are set. The first {list}","\\t\\targument is ignored. The following items can be specified in","\\t\\t{what}:","\\t\\t context\\tquickfix list context. See |quickfix-context|","\\t\\t efm\\t\\terrorformat to use when parsing text from","\\t\\t\\t\\t\\"lines\\". If this is not present, then the","\\t\\t\\t\\t\'errorformat\' option value is used.","\\t\\t id\\t\\tquickfix list identifier |quickfix-ID|","\\t\\t items\\tlist of quickfix entries. Same as the {list}","\\t\\t\\t\\targument.","\\t\\t lines\\tuse \'errorformat\' to parse a list of lines and","\\t\\t\\t\\tadd the resulting entries to the quickfix list","\\t\\t\\t\\t{nr} or {id}. Only a |List| value is supported.","\\t\\t nr\\t\\tlist number in the quickfix stack; zero","\\t\\t\\t\\tmeans the current quickfix list and \\"$\\" means","\\t\\t\\t\\tthe last quickfix list","\\t\\t title\\tquickfix list title text","\\t\\tUnsupported keys in {what} are ignored.","\\t\\tIf the \\"nr\\" item is not present, then the current quickfix list","\\t\\tis modified. When creating a new quickfix list, \\"nr\\" can be","\\t\\tset to a value one greater than the quickfix stack size.","\\t\\tWhen modifying a quickfix list, to guarantee that the correct","\\t\\tlist is modified, \\"id\\" should be used instead of \\"nr\\" to","\\t\\tspecify the list.","","\\t\\tExamples (See also |setqflist-examples|): >","\\t\\t :call setqflist([], \'r\', {\'title\': \'My search\'})","\\t\\t :call setqflist([], \'r\', {\'nr\': 2, \'title\': \'Errors\'})","\\t\\t :call setqflist([], \'a\', {\'id\':qfid, \'lines\':[\\"F1:10:L10\\"]})","<","\\t\\tReturns zero for success, -1 for failure.","","\\t\\tThis function can be used to create a quickfix list","\\t\\tindependent of the \'errorformat\' setting. Use a command like","\\t\\t`:cc 1` to jump to the first position.","",""],"setreg":["\\t\\tSet the register {regname} to {value}.","\\t\\t{value} may be any value returned by |getreg()|, including","\\t\\ta |List|.","\\t\\tIf {options} contains \\"a\\" or {regname} is upper case,","\\t\\tthen the value is appended.","\\t\\t{options} can also contain a register type specification:","\\t\\t \\"c\\" or \\"v\\"\\t |charwise| mode","\\t\\t \\"l\\" or \\"V\\"\\t |linewise| mode","\\t\\t \\"b\\" or \\"<CTRL-V>\\" |blockwise-visual| mode","\\t\\tIf a number immediately follows \\"b\\" or \\"<CTRL-V>\\" then this is","\\t\\tused as the width of the selection - if it is not specified","\\t\\tthen the width of the block is set to the number of characters","\\t\\tin the longest line (counting a <Tab> as 1 character).","\\t\\tIf {options} contains \\"u\\" or \'\\"\', then the unnamed register is","\\t\\tset to point to register {regname}.","","\\t\\tIf {options} contains no register settings, then the default","\\t\\tis to use character mode unless {value} ends in a <NL> for","\\t\\tstring {value} and linewise mode for list {value}. Blockwise","\\t\\tmode is never selected automatically.","\\t\\tReturns zero for success, non-zero for failure.","","\\t\\t\\t\\t\\t\\t\\t*E883*","\\t\\tNote: you may not use |List| containing more than one item to","\\t\\t set search and expression registers. Lists containing no","\\t\\t items act like empty strings.","","\\t\\tExamples: >","\\t\\t\\t:call setreg(v:register, @*)","\\t\\t\\t:call setreg(\'*\', @%, \'ac\')","\\t\\t\\t:call setreg(\'a\', \\"1\\\\n2\\\\n3\\", \'b5\')","","<\\t\\tThis example shows using the functions to save and restore a","\\t\\tregister: >","\\t\\t\\t:let var_a = getreg(\'a\', 1, 1)","\\t\\t\\t:let var_amode = getregtype(\'a\')","\\t\\t\\t ....","\\t\\t\\t:call setreg(\'a\', var_a, var_amode)","<\\t\\tNote: you may not reliably restore register value","\\t\\twithout using the third argument to |getreg()| as without it","\\t\\tnewlines are represented as newlines AND Nul bytes are","\\t\\trepresented as newlines as well, see |NL-used-for-Nul|.","","\\t\\tYou can also change the type of a register by appending","\\t\\tnothing: >","\\t\\t\\t:call setreg(\'a\', \'\', \'al\')"],"settabvar":["\\t\\tSet tab-local variable {varname} to {val} in tab page {tabnr}.","\\t\\t|t:var|","\\t\\tNote that the variable name without \\"t:\\" must be used.","\\t\\tTabs are numbered starting with one.","\\t\\tThis function is not available in the |sandbox|."],"settabwinvar":["\\t\\tSet option or local variable {varname} in window {winnr} to","\\t\\t{val}.","\\t\\tTabs are numbered starting with one. For the current tabpage","\\t\\tuse |setwinvar()|.","\\t\\t{winnr} can be the window number or the |window-ID|.","\\t\\tWhen {winnr} is zero the current window is used.","\\t\\tThis also works for a global or local buffer option, but it","\\t\\tdoesn\'t work for a global or local buffer variable.","\\t\\tFor a local buffer option the global value is unchanged.","\\t\\tNote that the variable name without \\"w:\\" must be used.","\\t\\tExamples: >","\\t\\t\\t:call settabwinvar(1, 1, \\"&list\\", 0)","\\t\\t\\t:call settabwinvar(3, 2, \\"myvar\\", \\"foobar\\")","<\\t\\tThis function is not available in the |sandbox|."],"settagstack":["\\t\\tModify the tag stack of the window {nr} using {dict}.","\\t\\t{nr} can be the window number or the |window-ID|.","","\\t\\tFor a list of supported items in {dict}, refer to","\\t\\t|gettagstack()|. \\"curidx\\" takes effect before changing the tag","\\t\\tstack.","\\t\\t\\t\\t\\t\\t\\t*E962*","\\t\\tHow the tag stack is modified depends on the {action}","\\t\\targument:","\\t\\t- If {action} is not present or is set to \'r\', then the tag","\\t\\t stack is replaced.","\\t\\t- If {action} is set to \'a\', then new entries from {dict} are","\\t\\t pushed (added) onto the tag stack.","\\t\\t- If {action} is set to \'t\', then all the entries from the","\\t\\t current entry in the tag stack or \\"curidx\\" in {dict} are","\\t\\t removed and then new entries are pushed to the stack.","","\\t\\tThe current index is set to one after the length of the tag","\\t\\tstack after the modification.","","\\t\\tReturns zero for success, -1 for failure.","","\\t\\tExamples:","\\t\\t Set current index of the tag stack to 4: >","\\t\\t\\tcall settagstack(1005, {\'curidx\' : 4})","","<\\t\\t Empty the tag stack of window 3: >","\\t\\t\\tcall settagstack(3, {\'items\' : []})","","<\\t\\t Push a new item onto the tag stack: >","\\t\\t\\tlet pos = [bufnr(\'myfile.txt\'), 10, 1, 0]","\\t\\t\\tlet newtag = [{\'tagname\' : \'mytag\', \'from\' : pos}]","\\t\\t\\tcall settagstack(2, {\'items\' : newtag}, \'a\')","","<\\t\\t Save and restore the tag stack: >","\\t\\t\\tlet stack = gettagstack(1003)","\\t\\t\\t\\" do something else","\\t\\t\\tcall settagstack(1003, stack)","\\t\\t\\tunlet stack","<"],"setwinvar":["\\t\\tLike |settabwinvar()| for the current tab page.","\\t\\tExamples: >","\\t\\t\\t:call setwinvar(1, \\"&list\\", 0)","\\t\\t\\t:call setwinvar(2, \\"myvar\\", \\"foobar\\")"],"sha256":["\\t\\tReturns a String with 64 hex characters, which is the SHA256","\\t\\tchecksum of {string}."],"shellescape":["\\t\\tEscape {string} for use as a shell command argument.","\\t\\tOn Windows when \'shellslash\' is not set, it","\\t\\twill enclose {string} in double quotes and double all double","\\t\\tquotes within {string}.","\\t\\tOtherwise, it will enclose {string} in single quotes and","\\t\\treplace all \\"\'\\" with \\"\'\\\\\'\'\\".","","\\t\\tWhen the {special} argument is present and it\'s a non-zero","\\t\\tNumber or a non-empty String (|non-zero-arg|), then special","\\t\\titems such as \\"!\\", \\"%\\", \\"#\\" and \\"<cword>\\" will be preceded by","\\t\\ta backslash. This backslash will be removed again by the |:!|","\\t\\tcommand.","","\\t\\tThe \\"!\\" character will be escaped (again with a |non-zero-arg|","\\t\\t{special}) when \'shell\' contains \\"csh\\" in the tail. That is","\\t\\tbecause for csh and tcsh \\"!\\" is used for history replacement","\\t\\teven when inside single quotes.","","\\t\\tWith a |non-zero-arg| {special} the <NL> character is also","\\t\\tescaped. When \'shell\' containing \\"csh\\" in the tail it\'s","\\t\\tescaped a second time.","","\\t\\tExample of use with a |:!| command: >","\\t\\t :exe \'!dir \' . shellescape(expand(\'<cfile>\'), 1)","<\\t\\tThis results in a directory listing for the file under the","\\t\\tcursor. Example of use with |system()|: >","\\t\\t :call system(\\"chmod +w -- \\" . shellescape(expand(\\"%\\")))","<\\t\\tSee also |::S|.",""],"shiftwidth":["\\t\\tReturns the effective value of \'shiftwidth\'. This is the","\\t\\t\'shiftwidth\' value unless it is zero, in which case it is the","\\t\\t\'tabstop\' value. To be backwards compatible in indent","\\t\\tplugins, use this: >","\\t\\t\\tif exists(\'*shiftwidth\')","\\t\\t\\t func s:sw()","\\t\\t\\t return shiftwidth()","\\t\\t\\t endfunc","\\t\\t\\telse","\\t\\t\\t func s:sw()","\\t\\t\\t return &sw","\\t\\t\\t endfunc","\\t\\t\\tendif","<\\t\\tAnd then use s:sw() instead of &sw."],"sign_define":["\\t\\tDefine a new sign named {name} or modify the attributes of an","\\t\\texisting sign. This is similar to the |:sign-define| command.","","\\t\\tPrefix {name} with a unique text to avoid name collisions.","\\t\\tThere is no {group} like with placing signs.","","\\t\\tThe {name} can be a String or a Number. The optional {dict}","\\t\\targument specifies the sign attributes. The following values","\\t\\tare supported:","\\t\\t icon\\tfull path to the bitmap file for the sign.","\\t\\t linehl\\thighlight group used for the whole line the","\\t\\t\\t\\tsign is placed in.","\\t\\t text\\ttext that is displayed when there is no icon","\\t\\t\\t\\tor the GUI is not being used.","\\t\\t texthl\\thighlight group used for the text item","\\t\\t numhl\\thighlight group used for \'number\' column at the","\\t\\t\\t\\tassociated line. Overrides |hl-LineNr|,","\\t\\t\\t\\t|hl-CursorLineNr|.","","\\t\\tIf the sign named {name} already exists, then the attributes","\\t\\tof the sign are updated.","","\\t\\tReturns 0 on success and -1 on failure.","","\\t\\tExamples: >","\\t\\t\\tcall sign_define(\\"mySign\\", {\\"text\\" : \\"=>\\", \\"texthl\\" :","\\t\\t\\t\\t\\t\\\\ \\"Error\\", \\"linehl\\" : \\"Search\\"})"],"sign_getdefined":["\\t\\tGet a list of defined signs and their attributes.","\\t\\tThis is similar to the |:sign-list| command.","","\\t\\tIf the {name} is not supplied, then a list of all the defined","\\t\\tsigns is returned. Otherwise the attribute of the specified","\\t\\tsign is returned.","","\\t\\tEach list item in the returned value is a dictionary with the","\\t\\tfollowing entries:","\\t\\t\\ticon\\tfull path to the bitmap file of the sign","\\t\\t\\tlinehl\\thighlight group used for the whole line the","\\t\\t\\t\\tsign is placed in.","\\t\\t\\tname\\tname of the sign","\\t\\t\\ttext\\ttext that is displayed when there is no icon","\\t\\t\\t\\tor the GUI is not being used.","\\t\\t\\ttexthl\\thighlight group used for the text item","\\t\\t\\tnumhl\\thighlight group used for \'number\' column at the","\\t\\t\\t\\tassociated line. Overrides |hl-LineNr|,","\\t\\t\\t\\t|hl-CursorLineNr|.","","\\t\\tReturns an empty List if there are no signs and when {name} is","\\t\\tnot found.","","\\t\\tExamples: >","\\t\\t\\t\\" Get a list of all the defined signs","\\t\\t\\techo sign_getdefined()","","\\t\\t\\t\\" Get the attribute of the sign named mySign","\\t\\t\\techo sign_getdefined(\\"mySign\\")"],"sign_getplaced":["\\t\\tReturn a list of signs placed in a buffer or all the buffers.","\\t\\tThis is similar to the |:sign-place-list| command.","","\\t\\tIf the optional buffer name {expr} is specified, then only the","\\t\\tlist of signs placed in that buffer is returned. For the use","\\t\\tof {expr}, see |bufname()|. The optional {dict} can contain","\\t\\tthe following entries:","\\t\\t group\\tselect only signs in this group","\\t\\t id\\t\\tselect sign with this identifier","\\t\\t lnum\\t\\tselect signs placed in this line. For the use","\\t\\t\\t\\tof {lnum}, see |line()|.","\\t\\tIf {group} is \'*\', then signs in all the groups including the","\\t\\tglobal group are returned. If {group} is not supplied or is an","\\t\\tempty string, then only signs in the global group are","\\t\\treturned. If no arguments are supplied, then signs in the","\\t\\tglobal group placed in all the buffers are returned.","\\t\\tSee |sign-group|.","","\\t\\tEach list item in the returned value is a dictionary with the","\\t\\tfollowing entries:","\\t\\t\\tbufnr\\tnumber of the buffer with the sign","\\t\\t\\tsigns\\tlist of signs placed in {bufnr}. Each list","\\t\\t\\t\\titem is a dictionary with the below listed","\\t\\t\\t\\tentries","","\\t\\tThe dictionary for each sign contains the following entries:","\\t\\t\\tgroup\\tsign group. Set to \'\' for the global group.","\\t\\t\\tid\\tidentifier of the sign","\\t\\t\\tlnum\\tline number where the sign is placed","\\t\\t\\tname\\tname of the defined sign","\\t\\t\\tpriority\\tsign priority","","\\t\\tThe returned signs in a buffer are ordered by their line","\\t\\tnumber and priority.","","\\t\\tReturns an empty list on failure or if there are no placed","\\t\\tsigns.","","\\t\\tExamples: >","\\t\\t\\t\\" Get a List of signs placed in eval.c in the","\\t\\t\\t\\" global group","\\t\\t\\techo sign_getplaced(\\"eval.c\\")","","\\t\\t\\t\\" Get a List of signs in group \'g1\' placed in eval.c","\\t\\t\\techo sign_getplaced(\\"eval.c\\", {\'group\' : \'g1\'})","","\\t\\t\\t\\" Get a List of signs placed at line 10 in eval.c","\\t\\t\\techo sign_getplaced(\\"eval.c\\", {\'lnum\' : 10})","","\\t\\t\\t\\" Get sign with identifier 10 placed in a.py","\\t\\t\\techo sign_getplaced(\\"a.py\\", {\'id\' : 10})","","\\t\\t\\t\\" Get sign with id 20 in group \'g1\' placed in a.py","\\t\\t\\techo sign_getplaced(\\"a.py\\", {\'group\' : \'g1\',","\\t\\t\\t\\t\\t\\t\\t\\\\ \'id\' : 20})","","\\t\\t\\t\\" Get a List of all the placed signs","\\t\\t\\techo sign_getplaced()","<"],"sign_jump":["\\t\\tOpen the buffer {expr} or jump to the window that contains","\\t\\t{expr} and position the cursor at sign {id} in group {group}.","\\t\\tThis is similar to the |:sign-jump| command.","","\\t\\tFor the use of {expr}, see |bufname()|.","","\\t\\tReturns the line number of the sign. Returns -1 if the","\\t\\targuments are invalid.","","\\t\\tExample: >","\\t\\t\\t\\" Jump to sign 10 in the current buffer","\\t\\t\\tcall sign_jump(10, \'\', \'\')","<"],"sign_place":["\\t\\tPlace the sign defined as {name} at line {lnum} in file {expr}","\\t\\tand assign {id} and {group} to sign. This is similar to the","\\t\\t|:sign-place| command.","","\\t\\tIf the sign identifier {id} is zero, then a new identifier is","\\t\\tallocated. Otherwise the specified number is used. {group} is","\\t\\tthe sign group name. To use the global sign group, use an","\\t\\tempty string. {group} functions as a namespace for {id}, thus","\\t\\ttwo groups can use the same IDs. Refer to |sign-identifier|","\\t\\tfor more information.","\\t\\t","\\t\\t{name} refers to a defined sign.","\\t\\t{expr} refers to a buffer name or number. For the accepted","\\t\\tvalues, see |bufname()|.","","\\t\\tThe optional {dict} argument supports the following entries:","\\t\\t\\tlnum\\t\\tline number in the buffer {expr} where","\\t\\t\\t\\t\\tthe sign is to be placed. For the","\\t\\t\\t\\t\\taccepted values, see |line()|.","\\t\\t\\tpriority\\tpriority of the sign. See","\\t\\t\\t\\t\\t|sign-priority| for more information.","","\\t\\tIf the optional {dict} is not specified, then it modifies the","\\t\\tplaced sign {id} in group {group} to use the defined sign","\\t\\t{name}.","","\\t\\tReturns the sign identifier on success and -1 on failure.","","\\t\\tExamples: >","\\t\\t\\t\\" Place a sign named sign1 with id 5 at line 20 in","\\t\\t\\t\\" buffer json.c","\\t\\t\\tcall sign_place(5, \'\', \'sign1\', \'json.c\',","\\t\\t\\t\\t\\t\\t\\t\\\\ {\'lnum\' : 20})","","\\t\\t\\t\\" Updates sign 5 in buffer json.c to use sign2","\\t\\t\\tcall sign_place(5, \'\', \'sign2\', \'json.c\')","","\\t\\t\\t\\" Place a sign named sign3 at line 30 in","\\t\\t\\t\\" buffer json.c with a new identifier","\\t\\t\\tlet id = sign_place(0, \'\', \'sign3\', \'json.c\',","\\t\\t\\t\\t\\t\\t\\t\\\\ {\'lnum\' : 30})","","\\t\\t\\t\\" Place a sign named sign4 with id 10 in group \'g3\'","\\t\\t\\t\\" at line 40 in buffer json.c with priority 90","\\t\\t\\tcall sign_place(10, \'g3\', \'sign4\', \'json.c\',","\\t\\t\\t\\t\\t\\\\ {\'lnum\' : 40, \'priority\' : 90})"],"sign_undefine":["\\t\\tDeletes a previously defined sign {name}. This is similar to","\\t\\tthe |:sign-undefine| command. If {name} is not supplied, then","\\t\\tdeletes all the defined signs.","","\\t\\tReturns 0 on success and -1 on failure.","","\\t\\tExamples: >","\\t\\t\\t\\" Delete a sign named mySign","\\t\\t\\tcall sign_undefine(\\"mySign\\")","","\\t\\t\\t\\" Delete all the signs","\\t\\t\\tcall sign_undefine()"],"sign_unplace":["\\t\\tRemove a previously placed sign in one or more buffers. This","\\t\\tis similar to the |:sign-unplace| command.","","\\t\\t{group} is the sign group name. To use the global sign group,","\\t\\tuse an empty string. If {group} is set to \'*\', then all the","\\t\\tgroups including the global group are used.","\\t\\tThe signs in {group} are selected based on the entries in","\\t\\t{dict}. The following optional entries in {dict} are","\\t\\tsupported:","\\t\\t\\tbuffer\\tbuffer name or number. See |bufname()|.","\\t\\t\\tid\\tsign identifier","\\t\\tIf {dict} is not supplied, then all the signs in {group} are","\\t\\tremoved.","","\\t\\tReturns 0 on success and -1 on failure.","","\\t\\tExamples: >","\\t\\t\\t\\" Remove sign 10 from buffer a.vim","\\t\\t\\tcall sign_unplace(\'\', {\'buffer\' : \\"a.vim\\", \'id\' : 10})","","\\t\\t\\t\\" Remove sign 20 in group \'g1\' from buffer 3","\\t\\t\\tcall sign_unplace(\'g1\', {\'buffer\' : 3, \'id\' : 20})","","\\t\\t\\t\\" Remove all the signs in group \'g2\' from buffer 10","\\t\\t\\tcall sign_unplace(\'g2\', {\'buffer\' : 10})","","\\t\\t\\t\\" Remove sign 30 in group \'g3\' from all the buffers","\\t\\t\\tcall sign_unplace(\'g3\', {\'id\' : 30})","","\\t\\t\\t\\" Remove all the signs placed in buffer 5","\\t\\t\\tcall sign_unplace(\'*\', {\'buffer\' : 5})","","\\t\\t\\t\\" Remove the signs in group \'g4\' from all the buffers","\\t\\t\\tcall sign_unplace(\'g4\')","","\\t\\t\\t\\" Remove sign 40 from all the buffers","\\t\\t\\tcall sign_unplace(\'*\', {\'id\' : 40})","","\\t\\t\\t\\" Remove all the placed signs from all the buffers","\\t\\t\\tcall sign_unplace(\'*\')"],"simplify":["\\t\\tSimplify the file name as much as possible without changing","\\t\\tthe meaning. Shortcuts (on MS-Windows) or symbolic links (on","\\t\\tUnix) are not resolved. If the first path component in","\\t\\t{filename} designates the current directory, this will be","\\t\\tvalid for the result as well. A trailing path separator is","\\t\\tnot removed either.","\\t\\tExample: >","\\t\\t\\tsimplify(\\"./dir/.././/file/\\") == \\"./file/\\"","<\\t\\tNote: The combination \\"dir/..\\" is only removed if \\"dir\\" is","\\t\\ta searchable directory or does not exist. On Unix, it is also","\\t\\tremoved when \\"dir\\" is a symbolic link within the same","\\t\\tdirectory. In order to resolve all the involved symbolic","\\t\\tlinks before simplifying the path name, use |resolve()|.",""],"sin":["\\t\\tReturn the sine of {expr}, measured in radians, as a |Float|.","\\t\\t{expr} must evaluate to a |Float| or a |Number|.","\\t\\tExamples: >","\\t\\t\\t:echo sin(100)","<\\t\\t\\t-0.506366 >","\\t\\t\\t:echo sin(-4.01)","<\\t\\t\\t0.763301",""],"sinh":["\\t\\tReturn the hyperbolic sine of {expr} as a |Float| in the range","\\t\\t[-inf, inf].","\\t\\t{expr} must evaluate to a |Float| or a |Number|.","\\t\\tExamples: >","\\t\\t\\t:echo sinh(0.5)","<\\t\\t\\t0.521095 >","\\t\\t\\t:echo sinh(-0.9)","<\\t\\t\\t-1.026517"],"sockconnect":["\\t\\tConnect a socket to an address. If {mode} is \\"pipe\\" then","\\t\\t{address} should be the path of a named pipe. If {mode} is","\\t\\t\\"tcp\\" then {address} should be of the form \\"host:port\\" where","\\t\\tthe host should be an ip adderess or host name, and port the","\\t\\tport number.","","\\t\\tReturns a |channel| ID. Close the socket with |chanclose()|.","\\t\\tUse |chansend()| to send data over a bytes socket, and","\\t\\t|rpcrequest()| and |rpcnotify()| to communicate with a RPC","\\t\\tsocket.","","\\t\\t{opts} is a dictionary with these keys:","\\t\\t |on_data| : callback invoked when data was read from socket","\\t\\t data_buffered : read socket data in |channel-buffered| mode.","\\t\\t rpc : If set, |msgpack-rpc| will be used to communicate","\\t\\t\\t over the socket.","\\t\\tReturns:","\\t\\t - The channel ID on success (greater than zero)","\\t\\t - 0 on invalid arguments or connection failure."],"sort":["\\t\\tSort the items in {list} in-place. Returns {list}.","","\\t\\tIf you want a list to remain unmodified make a copy first: >","\\t\\t\\t:let sortedlist = sort(copy(mylist))","","<\\t\\tWhen {func} is omitted, is empty or zero, then sort() uses the","\\t\\tstring representation of each item to sort on. Numbers sort","\\t\\tafter Strings, |Lists| after Numbers. For sorting text in the","\\t\\tcurrent buffer use |:sort|.","","\\t\\tWhen {func} is given and it is \'1\' or \'i\' then case is","\\t\\tignored.","","\\t\\tWhen {func} is given and it is \'n\' then all items will be","\\t\\tsorted numerical (Implementation detail: This uses the","\\t\\tstrtod() function to parse numbers, Strings, Lists, Dicts and","\\t\\tFuncrefs will be considered as being 0).","","\\t\\tWhen {func} is given and it is \'N\' then all items will be","\\t\\tsorted numerical. This is like \'n\' but a string containing","\\t\\tdigits will be used as the number they represent.","","\\t\\tWhen {func} is given and it is \'f\' then all items will be","\\t\\tsorted numerical. All values must be a Number or a Float.","","\\t\\tWhen {func} is a |Funcref| or a function name, this function","\\t\\tis called to compare items. The function is invoked with two","\\t\\titems as argument and must return zero if they are equal, 1 or","\\t\\tbigger if the first one sorts after the second one, -1 or","\\t\\tsmaller if the first one sorts before the second one.","","\\t\\t{dict} is for functions with the \\"dict\\" attribute. It will be","\\t\\tused to set the local variable \\"self\\". |Dictionary-function|","","\\t\\tThe sort is stable, items which compare equal (as number or as","\\t\\tstring) will keep their relative position. E.g., when sorting","\\t\\ton numbers, text strings will sort next to each other, in the","\\t\\tsame order as they were originally.","","\\t\\tAlso see |uniq()|.","","\\t\\tExample: >","\\t\\t\\tfunc MyCompare(i1, i2)","\\t\\t\\t return a:i1 == a:i2 ? 0 : a:i1 > a:i2 ? 1 : -1","\\t\\t\\tendfunc","\\t\\t\\tlet sortedlist = sort(mylist, \\"MyCompare\\")","<\\t\\tA shorter compare version for this specific simple case, which","\\t\\tignores overflow: >","\\t\\t\\tfunc MyCompare(i1, i2)","\\t\\t\\t return a:i1 - a:i2","\\t\\t\\tendfunc","<"],"soundfold":["\\t\\tReturn the sound-folded equivalent of {word}. Uses the first","\\t\\tlanguage in \'spelllang\' for the current window that supports","\\t\\tsoundfolding. \'spell\' must be set. When no sound folding is","\\t\\tpossible the {word} is returned unmodified.","\\t\\tThis can be used for making spelling suggestions. Note that","\\t\\tthe method can be quite slow.",""],"spellbadword":["\\t\\tWithout argument: The result is the badly spelled word under","\\t\\tor after the cursor. The cursor is moved to the start of the","\\t\\tbad word. When no bad word is found in the cursor line the","\\t\\tresult is an empty string and the cursor doesn\'t move.","","\\t\\tWith argument: The result is the first word in {sentence} that","\\t\\tis badly spelled. If there are no spelling mistakes the","\\t\\tresult is an empty string.","","\\t\\tThe return value is a list with two items:","\\t\\t- The badly spelled word or an empty string.","\\t\\t- The type of the spelling error:","\\t\\t\\t\\"bad\\"\\t\\tspelling mistake","\\t\\t\\t\\"rare\\"\\t\\trare word","\\t\\t\\t\\"local\\"\\t\\tword only valid in another region","\\t\\t\\t\\"caps\\"\\t\\tword should start with Capital","\\t\\tExample: >","\\t\\t\\techo spellbadword(\\"the quik brown fox\\")","<\\t\\t\\t[\'quik\', \'bad\'] ~","","\\t\\tThe spelling information for the current window is used. The","\\t\\t\'spell\' option must be set and the value of \'spelllang\' is","\\t\\tused.",""],"spellsuggest":["\\t\\tReturn a |List| with spelling suggestions to replace {word}.","\\t\\tWhen {max} is given up to this number of suggestions are","\\t\\treturned. Otherwise up to 25 suggestions are returned.","","\\t\\tWhen the {capital} argument is given and it\'s non-zero only","\\t\\tsuggestions with a leading capital will be given. Use this","\\t\\tafter a match with \'spellcapcheck\'.","","\\t\\t{word} can be a badly spelled word followed by other text.","\\t\\tThis allows for joining two words that were split. The","\\t\\tsuggestions also include the following text, thus you can","\\t\\treplace a line.","","\\t\\t{word} may also be a good word. Similar words will then be","\\t\\treturned. {word} itself is not included in the suggestions,","\\t\\talthough it may appear capitalized.","","\\t\\tThe spelling information for the current window is used. The","\\t\\t\'spell\' option must be set and the values of \'spelllang\' and","\\t\\t\'spellsuggest\' are used.",""],"split":["\\t\\tMake a |List| out of {expr}. When {pattern} is omitted or","\\t\\tempty each white-separated sequence of characters becomes an","\\t\\titem.","\\t\\tOtherwise the string is split where {pattern} matches,","\\t\\tremoving the matched characters. \'ignorecase\' is not used","\\t\\there, add \\\\c to ignore case. |/\\\\c|","\\t\\tWhen the first or last item is empty it is omitted, unless the","\\t\\t{keepempty} argument is given and it\'s non-zero.","\\t\\tOther empty items are kept when {pattern} matches at least one","\\t\\tcharacter or when {keepempty} is non-zero.","\\t\\tExample: >","\\t\\t\\t:let words = split(getline(\'.\'), \'\\\\W\\\\+\')","<\\t\\tTo split a string in individual characters: >","\\t\\t\\t:for c in split(mystring, \'\\\\zs\')","<\\t\\tIf you want to keep the separator you can also use \'\\\\zs\' at","\\t\\tthe end of the pattern: >","\\t\\t\\t:echo split(\'abc:def:ghi\', \':\\\\zs\')","<\\t\\t\\t[\'abc:\', \'def:\', \'ghi\'] ~","\\t\\tSplitting a table where the first element can be empty: >","\\t\\t\\t:let items = split(line, \':\', 1)","<\\t\\tThe opposite function is |join()|.",""],"sqrt":["\\t\\tReturn the non-negative square root of Float {expr} as a","\\t\\t|Float|.","\\t\\t{expr} must evaluate to a |Float| or a |Number|. When {expr}","\\t\\tis negative the result is NaN (Not a Number).","\\t\\tExamples: >","\\t\\t\\t:echo sqrt(100)","<\\t\\t\\t10.0 >","\\t\\t\\t:echo sqrt(-4.01)","<\\t\\t\\tnan","\\t\\t\\"nan\\" may be different, it depends on system libraries.",""],"stdioopen":["\\t\\tIn a nvim launched with the |--headless| option, this opens","\\t\\tstdin and stdout as a |channel|. This function can only be","\\t\\tinvoked once per instance. See |channel-stdio| for more","\\t\\tinformation and examples. Note that stderr is not handled by","\\t\\tthis function, see |v:stderr|.","","\\t\\tReturns a |channel| ID. Close the stdio descriptors with |chanclose()|.","\\t\\tUse |chansend()| to send data to stdout, and","\\t\\t|rpcrequest()| and |rpcnotify()| to communicate over RPC.","","\\t\\t{opts} is a dictionary with these keys:","\\t\\t |on_stdin| : callback invoked when stdin is written to.","\\t\\t stdin_buffered : read stdin in |channel-buffered| mode.","\\t\\t rpc : If set, |msgpack-rpc| will be used to communicate","\\t\\t\\t over stdio","\\t\\tReturns:","\\t\\t - The channel ID on success (this is always 1)","\\t\\t - 0 on invalid arguments",""],"stdpath":["\\t\\tReturns |standard-path| locations of various default files and","\\t\\tdirectories.","","\\t\\t{what} Type Description ~","\\t\\tcache String Cache directory. Arbitrary temporary","\\t\\t storage for plugins, etc.","\\t\\tconfig String User configuration directory. The","\\t\\t |init.vim| is stored here.","\\t\\tconfig_dirs List Additional configuration directories.","\\t\\tdata String User data directory. The |shada-file|","\\t\\t is stored here.","\\t\\tdata_dirs List Additional data directories.","","\\t\\tExample: >","\\t\\t\\t:echo stdpath(\\"config\\")",""],"str2float":["\\t\\tConvert String {expr} to a Float. This mostly works the same","\\t\\tas when using a floating point number in an expression, see","\\t\\t|floating-point-format|. But it\'s a bit more permissive.","\\t\\tE.g., \\"1e40\\" is accepted, while in an expression you need to","\\t\\twrite \\"1.0e40\\". The hexadecimal form \\"0x123\\" is also","\\t\\taccepted, but not others, like binary or octal.","\\t\\tText after the number is silently ignored.","\\t\\tThe decimal point is always \'.\', no matter what the locale is","\\t\\tset to. A comma ends the number: \\"12,345.67\\" is converted to","\\t\\t12.0. You can strip out thousands separators with","\\t\\t|substitute()|: >","\\t\\t\\tlet f = str2float(substitute(text, \',\', \'\', \'g\'))"],"str2list":["\\t\\tReturn a list containing the number values which represent","\\t\\teach character in String {expr}. Examples: >","\\t\\t\\tstr2list(\\" \\")\\t\\treturns [32]","\\t\\t\\tstr2list(\\"ABC\\")\\t\\treturns [65, 66, 67]","<\\t\\t|list2str()| does the opposite.","","\\t\\tWhen {utf8} is omitted or zero, the current \'encoding\' is used.","\\t\\tWith {utf8} set to 1, always treat the String as utf-8","\\t\\tcharacters. With utf-8 composing characters are handled","\\t\\tproperly: >","\\t\\t\\tstr2list(\\"á\\")\\t\\treturns [97, 769]"],"str2nr":["\\t\\tConvert string {expr} to a number.","\\t\\t{base} is the conversion base, it can be 2, 8, 10 or 16.","\\t\\tWhen {base} is omitted base 10 is used. This also means that","\\t\\ta leading zero doesn\'t cause octal conversion to be used, as","\\t\\twith the default String to Number conversion.","\\t\\tWhen {base} is 16 a leading \\"0x\\" or \\"0X\\" is ignored. With a","\\t\\tdifferent base the result will be zero. Similarly, when {base}","\\t\\tis 8 a leading \\"0\\" is ignored, and when {base} is 2 a leading","\\t\\t\\"0b\\" or \\"0B\\" is ignored.","\\t\\tText after the number is silently ignored.",""],"strchars":["\\t\\tThe result is a Number, which is the number of characters","\\t\\tin String {expr}.","\\t\\tWhen {skipcc} is omitted or zero, composing characters are","\\t\\tcounted separately.","\\t\\tWhen {skipcc} set to 1, Composing characters are ignored.","\\t\\tAlso see |strlen()|, |strdisplaywidth()| and |strwidth()|.","","\\t\\t{skipcc} is only available after 7.4.755. For backward","\\t\\tcompatibility, you can define a wrapper function: >","\\t\\t if has(\\"patch-7.4.755\\")","\\t\\t function s:strchars(str, skipcc)","\\t\\t\\treturn strchars(a:str, a:skipcc)","\\t\\t endfunction","\\t\\t else","\\t\\t function s:strchars(str, skipcc)","\\t\\t\\tif a:skipcc","\\t\\t\\t return strlen(substitute(a:str, \\".\\", \\"x\\", \\"g\\"))","\\t\\t\\telse","\\t\\t\\t return strchars(a:str)","\\t\\t\\tendif","\\t\\t endfunction","\\t\\t endif"],"strcharpart":["\\t\\tLike |strpart()| but using character index and length instead","\\t\\tof byte index and length.","\\t\\tWhen a character index is used where a character does not","\\t\\texist it is assumed to be one character. For example: >","\\t\\t\\tstrcharpart(\'abc\', -1, 2)","<\\t\\tresults in \'a\'."],"strdisplaywidth":["\\t\\tThe result is a Number, which is the number of display cells","\\t\\tString {expr} occupies on the screen when it starts at {col}","\\t\\t(first column is zero). When {col} is omitted zero is used.","\\t\\tOtherwise it is the screen column where to start. This","\\t\\tmatters for Tab characters.","\\t\\tThe option settings of the current window are used. This","\\t\\tmatters for anything that\'s displayed differently, such as","\\t\\t\'tabstop\' and \'display\'.","\\t\\tWhen {expr} contains characters with East Asian Width Class","\\t\\tAmbiguous, this function\'s return value depends on \'ambiwidth\'.","\\t\\tAlso see |strlen()|, |strwidth()| and |strchars()|."],"strftime":["\\t\\tThe result is a String, which is a formatted date and time, as","\\t\\tspecified by the {format} string. The given {time} is used,","\\t\\tor the current time if no time is given. The accepted","\\t\\t{format} depends on your system, thus this is not portable!","\\t\\tSee the manual page of the C function strftime() for the","\\t\\tformat. The maximum length of the result is 80 characters.","\\t\\tSee also |localtime()| and |getftime()|.","\\t\\tThe language can be changed with the |:language| command.","\\t\\tExamples: >","\\t\\t :echo strftime(\\"%c\\")\\t\\t Sun Apr 27 11:49:23 1997","\\t\\t :echo strftime(\\"%Y %b %d %X\\")\\t 1997 Apr 27 11:53:25","\\t\\t :echo strftime(\\"%y%m%d %T\\")\\t 970427 11:53:55","\\t\\t :echo strftime(\\"%H:%M\\")\\t 11:55","\\t\\t :echo strftime(\\"%c\\", getftime(\\"file.c\\"))","\\t\\t\\t\\t\\t\\t Show mod time of file.c.","<\\t\\tNot available on all systems. To check use: >","\\t\\t\\t:if exists(\\"*strftime\\")"],"strgetchar":["\\t\\tGet character {index} from {str}. This uses a character","\\t\\tindex, not a byte index. Composing characters are considered","\\t\\tseparate characters here.","\\t\\tAlso see |strcharpart()| and |strchars()|."],"stridx":["\\t\\tThe result is a Number, which gives the byte index in","\\t\\t{haystack} of the first occurrence of the String {needle}.","\\t\\tIf {start} is specified, the search starts at index {start}.","\\t\\tThis can be used to find a second match: >","\\t\\t\\t:let colon1 = stridx(line, \\":\\")","\\t\\t\\t:let colon2 = stridx(line, \\":\\", colon1 + 1)","<\\t\\tThe search is done case-sensitive.","\\t\\tFor pattern searches use |match()|.","\\t\\t-1 is returned if the {needle} does not occur in {haystack}.","\\t\\tSee also |strridx()|.","\\t\\tExamples: >","\\t\\t :echo stridx(\\"An Example\\", \\"Example\\")\\t 3","\\t\\t :echo stridx(\\"Starting point\\", \\"Start\\") 0","\\t\\t :echo stridx(\\"Starting point\\", \\"start\\") -1","<\\t\\t\\t\\t\\t\\t*strstr()* *strchr()*","\\t\\tstridx() works similar to the C function strstr(). When used","\\t\\twith a single character it works similar to strchr().",""],"string":["\\t\\tFloat, String or a composition of them, then the result can be","\\t\\tparsed back with |eval()|.","\\t\\t\\t{expr} type\\tresult ~","\\t\\t\\tString\\t\\t\'string\'","\\t\\t\\tNumber\\t\\t123","\\t\\t\\tFloat\\t\\t123.123456 or 1.123456e8 or","\\t\\t\\t\\t\\t`str2float(\'inf\')`","\\t\\t\\tFuncref\\t\\t`function(\'name\')`","\\t\\t\\tList\\t\\t[item, item]","\\t\\t\\tDictionary\\t{key: value, key: value}","\\t\\tNote that in String values the \' character is doubled.","\\t\\tAlso see |strtrans()|.","\\t\\tNote 2: Output format is mostly compatible with YAML, except","\\t\\tfor infinite and NaN floating-point values representations","\\t\\twhich use |str2float()|. Strings are also dumped literally,","\\t\\tonly single quote is escaped, which does not allow using YAML","\\t\\tfor parsing back binary strings. |eval()| should always work for","\\t\\tstrings and floats though and this is the only official","\\t\\tmethod, use |msgpackdump()| or |json_encode()| if you need to","\\t\\tshare data with other application.",""],"strlen":["\\t\\t{expr} in bytes.","\\t\\tIf the argument is a Number it is first converted to a String.","\\t\\tFor other types an error is given.","\\t\\tIf you want to count the number of multi-byte characters use","\\t\\t|strchars()|.","\\t\\tAlso see |len()|, |strdisplaywidth()| and |strwidth()|."],"strpart":["\\t\\tThe result is a String, which is part of {src}, starting from","\\t\\tbyte {start}, with the byte length {len}.","\\t\\tTo count characters instead of bytes use |strcharpart()|.","","\\t\\tWhen bytes are selected which do not exist, this doesn\'t","\\t\\tresult in an error, the bytes are simply omitted.","\\t\\tIf {len} is missing, the copy continues from {start} till the","\\t\\tend of the {src}. >","\\t\\t\\tstrpart(\\"abcdefg\\", 3, 2) == \\"de\\"","\\t\\t\\tstrpart(\\"abcdefg\\", -2, 4) == \\"ab\\"","\\t\\t\\tstrpart(\\"abcdefg\\", 5, 4) == \\"fg\\"","\\t\\t\\tstrpart(\\"abcdefg\\", 3)\\t == \\"defg\\"","","<\\t\\tNote: To get the first character, {start} must be 0. For","\\t\\texample, to get three bytes under and after the cursor: >","\\t\\t\\tstrpart(getline(\\".\\"), col(\\".\\") - 1, 3)"],"strridx":["\\t\\tThe result is a Number, which gives the byte index in","\\t\\t{haystack} of the last occurrence of the String {needle}.","\\t\\tWhen {start} is specified, matches beyond this index are","\\t\\tignored. This can be used to find a match before a previous","\\t\\tmatch: >","\\t\\t\\t:let lastcomma = strridx(line, \\",\\")","\\t\\t\\t:let comma2 = strridx(line, \\",\\", lastcomma - 1)","<\\t\\tThe search is done case-sensitive.","\\t\\tFor pattern searches use |match()|.","\\t\\t-1 is returned if the {needle} does not occur in {haystack}.","\\t\\tIf the {needle} is empty the length of {haystack} is returned.","\\t\\tSee also |stridx()|. Examples: >","\\t\\t :echo strridx(\\"an angry armadillo\\", \\"an\\")\\t 3","<\\t\\t\\t\\t\\t\\t\\t*strrchr()*","\\t\\tWhen used with a single character it works similar to the C","\\t\\tfunction strrchr()."],"strtrans":["\\t\\tThe result is a String, which is {expr} with all unprintable","\\t\\tcharacters translated into printable characters |\'isprint\'|.","\\t\\tLike they are shown in a window. Example: >","\\t\\t\\techo strtrans(@a)","<\\t\\tThis displays a newline in register a as \\"^@\\" instead of","\\t\\tstarting a new line."],"strwidth":["\\t\\tThe result is a Number, which is the number of display cells","\\t\\tString {expr} occupies. A Tab character is counted as one","\\t\\tcell, alternatively use |strdisplaywidth()|.","\\t\\tWhen {expr} contains characters with East Asian Width Class","\\t\\tAmbiguous, this function\'s return value depends on \'ambiwidth\'.","\\t\\tAlso see |strlen()|, |strdisplaywidth()| and |strchars()|."],"submatch":["\\t\\tOnly for an expression in a |:substitute| command or","\\t\\tsubstitute() function.","\\t\\tReturns the {nr}\'th submatch of the matched text. When {nr}","\\t\\tis 0 the whole matched text is returned.","\\t\\tNote that a NL in the string can stand for a line break of a","\\t\\tmulti-line match or a NUL character in the text.","\\t\\tAlso see |sub-replace-expression|.","","\\t\\tIf {list} is present and non-zero then submatch() returns","\\t\\ta list of strings, similar to |getline()| with two arguments.","\\t\\tNL characters in the text represent NUL characters in the","\\t\\ttext.","\\t\\tOnly returns more than one item for |:substitute|, inside","\\t\\t|substitute()| this list will always contain one or zero","\\t\\titems, since there are no real line breaks.","","\\t\\tWhen substitute() is used recursively only the submatches in","\\t\\tthe current (deepest) call can be obtained.","","\\t\\tExamples: >","\\t\\t\\t:s/\\\\d\\\\+/\\\\=submatch(0) + 1/","\\t\\t\\t:echo substitute(text, \'\\\\d\\\\+\', \'\\\\=submatch(0) + 1\', \'\')","<\\t\\tThis finds the first number in the line and adds one to it.","\\t\\tA line break is included as a newline character."],"substitute":["\\t\\tThe result is a String, which is a copy of {expr}, in which","\\t\\tthe first match of {pat} is replaced with {sub}.","\\t\\tWhen {flags} is \\"g\\", all matches of {pat} in {expr} are","\\t\\treplaced. Otherwise {flags} should be \\"\\".","","\\t\\tThis works like the \\":substitute\\" command (without any flags).","\\t\\tBut the matching with {pat} is always done like the \'magic\'","\\t\\toption is set and \'cpoptions\' is empty (to make scripts","\\t\\tportable). \'ignorecase\' is still relevant, use |/\\\\c| or |/\\\\C|","\\t\\tif you want to ignore or match case and ignore \'ignorecase\'.","\\t\\t\'smartcase\' is not used. See |string-match| for how {pat} is","\\t\\tused.","","\\t\\tA \\"~\\" in {sub} is not replaced with the previous {sub}.","\\t\\tNote that some codes in {sub} have a special meaning","\\t\\t|sub-replace-special|. For example, to replace something with","\\t\\t\\"\\\\n\\" (two characters), use \\"\\\\\\\\\\\\\\\\n\\" or \'\\\\\\\\n\'.","","\\t\\tWhen {pat} does not match in {expr}, {expr} is returned","\\t\\tunmodified.","","\\t\\tExample: >","\\t\\t\\t:let &path = substitute(&path, \\",\\\\\\\\=[^,]*$\\", \\"\\", \\"\\")","<\\t\\tThis removes the last component of the \'path\' option. >","\\t\\t\\t:echo substitute(\\"testing\\", \\".*\\", \\"\\\\\\\\U\\\\\\\\0\\", \\"\\")","<\\t\\tresults in \\"TESTING\\".","","\\t\\tWhen {sub} starts with \\"\\\\=\\", the remainder is interpreted as","\\t\\tan expression. See |sub-replace-expression|. Example: >","\\t\\t\\t:echo substitute(s, \'%\\\\(\\\\x\\\\x\\\\)\',","\\t\\t\\t \\\\ \'\\\\=nr2char(\\"0x\\" . submatch(1))\', \'g\')","","<\\t\\tWhen {sub} is a Funcref that function is called, with one","\\t\\toptional argument. Example: >","\\t\\t :echo substitute(s, \'%\\\\(\\\\x\\\\x\\\\)\', SubNr, \'g\')","<\\t\\tThe optional argument is a list which contains the whole","\\t\\tmatched string and up to nine submatches, like what","\\t\\t|submatch()| returns. Example: >","\\t\\t :echo substitute(s, \'%\\\\(\\\\x\\\\x\\\\)\', {m -> \'0x\' . m[1]}, \'g\')"],"swapinfo":["\\t\\tThe result is a dictionary, which holds information about the","\\t\\tswapfile {fname}. The available fields are:","\\t\\t\\tversion VIM version","\\t\\t\\tuser\\tuser name","\\t\\t\\thost\\thost name","\\t\\t\\tfname\\toriginal file name","\\t\\t\\tpid\\tPID of the VIM process that created the swap","\\t\\t\\t\\tfile","\\t\\t\\tmtime\\tlast modification time in seconds","\\t\\t\\tinode\\tOptional: INODE number of the file","\\t\\t\\tdirty\\t1 if file was modified, 0 if not","\\t\\tIn case of failure an \\"error\\" item is added with the reason:","\\t\\t\\tCannot open file: file not found or in accessible","\\t\\t\\tCannot read file: cannot read first block","\\t\\t\\tNot a swap file: does not contain correct block ID","\\t\\t\\tMagic number mismatch: Info in first block is invalid"],"swapname":["\\t\\tThe result is the swap file path of the buffer {expr}.","\\t\\tFor the use of {expr}, see |bufname()| above.","\\t\\tIf buffer {expr} is the current buffer, the result is equal to","\\t\\t|:swapname| (unless no swap file).","\\t\\tIf buffer {expr} has no swap file, returns an empty string."],"synID":["\\t\\tThe result is a Number, which is the syntax ID at the position","\\t\\t{lnum} and {col} in the current window.","\\t\\tThe syntax ID can be used with |synIDattr()| and","\\t\\t|synIDtrans()| to obtain syntax information about text.","","\\t\\t{col} is 1 for the leftmost column, {lnum} is 1 for the first","\\t\\tline. \'synmaxcol\' applies, in a longer line zero is returned.","\\t\\tNote that when the position is after the last character,","\\t\\tthat\'s where the cursor can be in Insert mode, synID() returns","\\t\\tzero.","","\\t\\tWhen {trans} is |TRUE|, transparent items are reduced to the","\\t\\titem that they reveal. This is useful when wanting to know","\\t\\tthe effective color. When {trans} is |FALSE|, the transparent","\\t\\titem is returned. This is useful when wanting to know which","\\t\\tsyntax item is effective (e.g. inside parens).","\\t\\tWarning: This function can be very slow. Best speed is","\\t\\tobtained by going through the file in forward direction.","","\\t\\tExample (echoes the name of the syntax item under the cursor): >","\\t\\t\\t:echo synIDattr(synID(line(\\".\\"), col(\\".\\"), 1), \\"name\\")","<"],"synIDattr":["\\t\\tThe result is a String, which is the {what} attribute of","\\t\\tsyntax ID {synID}. This can be used to obtain information","\\t\\tabout a syntax item.","\\t\\t{mode} can be \\"gui\\", \\"cterm\\" or \\"term\\", to get the attributes","\\t\\tfor that mode. When {mode} is omitted, or an invalid value is","\\t\\tused, the attributes for the currently active highlighting are","\\t\\tused (GUI, cterm or term).","\\t\\tUse synIDtrans() to follow linked highlight groups.","\\t\\t{what}\\t\\tresult","\\t\\t\\"name\\"\\t\\tthe name of the syntax item","\\t\\t\\"fg\\"\\t\\tforeground color (GUI: color name used to set","\\t\\t\\t\\tthe color, cterm: color number as a string,","\\t\\t\\t\\tterm: empty string)","\\t\\t\\"bg\\"\\t\\tbackground color (as with \\"fg\\")","\\t\\t\\"font\\"\\t\\tfont name (only available in the GUI)","\\t\\t\\t\\t|highlight-font|","\\t\\t\\"sp\\"\\t\\tspecial color (as with \\"fg\\") |highlight-guisp|","\\t\\t\\"fg#\\"\\t\\tlike \\"fg\\", but for the GUI and the GUI is","\\t\\t\\t\\trunning the name in \\"#RRGGBB\\" form","\\t\\t\\"bg#\\"\\t\\tlike \\"fg#\\" for \\"bg\\"","\\t\\t\\"sp#\\"\\t\\tlike \\"fg#\\" for \\"sp\\"","\\t\\t\\"bold\\"\\t\\t\\"1\\" if bold","\\t\\t\\"italic\\"\\t\\"1\\" if italic","\\t\\t\\"reverse\\"\\t\\"1\\" if reverse","\\t\\t\\"inverse\\"\\t\\"1\\" if inverse (= reverse)","\\t\\t\\"standout\\"\\t\\"1\\" if standout","\\t\\t\\"underline\\"\\t\\"1\\" if underlined","\\t\\t\\"undercurl\\"\\t\\"1\\" if undercurled","\\t\\t\\"strikethrough\\"\\t\\"1\\" if struckthrough","","\\t\\tExample (echoes the color of the syntax item under the","\\t\\tcursor): >","\\t:echo synIDattr(synIDtrans(synID(line(\\".\\"), col(\\".\\"), 1)), \\"fg\\")"],"synIDtrans":["\\t\\tThe result is a Number, which is the translated syntax ID of","\\t\\t{synID}. This is the syntax group ID of what is being used to","\\t\\thighlight the character. Highlight links given with","\\t\\t\\":highlight link\\" are followed."],"synconcealed":["\\t\\tThe result is a List with currently three items:","\\t\\t1. The first item in the list is 0 if the character at the","\\t\\t position {lnum} and {col} is not part of a concealable","\\t\\t region, 1 if it is.","\\t\\t2. The second item in the list is a string. If the first item","\\t\\t is 1, the second item contains the text which will be","\\t\\t displayed in place of the concealed text, depending on the","\\t\\t current setting of \'conceallevel\' and \'listchars\'.","\\t\\t3. The third and final item in the list is a number","\\t\\t representing the specific syntax region matched in the","\\t\\t line. When the character is not concealed the value is","\\t\\t zero. This allows detection of the beginning of a new","\\t\\t concealable region if there are two consecutive regions","\\t\\t with the same replacement character. For an example, if","\\t\\t the text is \\"123456\\" and both \\"23\\" and \\"45\\" are concealed","\\t\\t and replaced by the character \\"X\\", then:","\\t\\t\\tcall\\t\\t\\treturns ~","\\t\\t \\tsynconcealed(lnum, 1) [0, \'\', 0]","\\t\\t \\tsynconcealed(lnum, 2) [1, \'X\', 1]","\\t\\t \\tsynconcealed(lnum, 3) [1, \'X\', 1]","\\t\\t \\tsynconcealed(lnum, 4) [1, \'X\', 2]","\\t\\t \\tsynconcealed(lnum, 5) [1, \'X\', 2]","\\t\\t \\tsynconcealed(lnum, 6) [0, \'\', 0]",""],"synstack":["\\t\\tReturn a |List|, which is the stack of syntax items at the","\\t\\tposition {lnum} and {col} in the current window. Each item in","\\t\\tthe List is an ID like what |synID()| returns.","\\t\\tThe first item in the List is the outer region, following are","\\t\\titems contained in that one. The last one is what |synID()|","\\t\\treturns, unless not the whole item is highlighted or it is a","\\t\\ttransparent item.","\\t\\tThis function is useful for debugging a syntax file.","\\t\\tExample that shows the syntax stack under the cursor: >","\\t\\t\\tfor id in synstack(line(\\".\\"), col(\\".\\"))","\\t\\t\\t echo synIDattr(id, \\"name\\")","\\t\\t\\tendfor","<\\t\\tWhen the position specified with {lnum} and {col} is invalid","\\t\\tnothing is returned. The position just after the last","\\t\\tcharacter in a line and the first column in an empty line are","\\t\\tvalid positions."],"system":["\\t\\tGet the output of {cmd} as a |string| (use |systemlist()| to","\\t\\tget a |List|). {cmd} is treated exactly as in |jobstart()|.","\\t\\tNot to be used for interactive commands.","","\\t\\tIf {input} is a string it is written to a pipe and passed as","\\t\\tstdin to the command. The string is written as-is, line","\\t\\tseparators are not changed.","\\t\\tIf {input} is a |List| it is written to the pipe as","\\t\\t|writefile()| does with {binary} set to \\"b\\" (i.e. with","\\t\\ta newline between each list item, and newlines inside list","\\t\\titems converted to NULs).","\\t\\tWhen {input} is given and is a valid buffer id, the content of","\\t\\tthe buffer is written to the file line by line, each line","\\t\\tterminated by NL (and NUL where the text has NL).","\\t\\t\\t\\t\\t\\t\\t\\t*E5677*","\\t\\tNote: system() cannot write to or read from backgrounded (\\"&\\")","\\t\\tshell commands, e.g.: >","\\t\\t :echo system(\\"cat - &\\", \\"foo\\"))","<\\t\\twhich is equivalent to: >","\\t\\t $ echo foo | bash -c \'cat - &\'","<\\t\\tThe pipes are disconnected (unless overridden by shell","\\t\\tredirection syntax) before input can reach it. Use","\\t\\t|jobstart()| instead.","","\\t\\tNote: Use |shellescape()| or |::S| with |expand()| or","\\t\\t|fnamemodify()| to escape special characters in a command","\\t\\targument. Newlines in {cmd} may cause the command to fail. ","\\t\\tThe characters in \'shellquote\' and \'shellxquote\' may also","\\t\\tcause trouble.","","\\t\\tResult is a String. Example: >","\\t\\t :let files = system(\\"ls \\" . shellescape(expand(\'%:h\')))","\\t\\t :let files = system(\'ls \' . expand(\'%:h:S\'))","","<\\t\\tTo make the result more system-independent, the shell output","\\t\\tis filtered to replace <CR> with <NL> for Macintosh, and","\\t\\t<CR><NL> with <NL> for DOS-like systems.","\\t\\tTo avoid the string being truncated at a NUL, all NUL","\\t\\tcharacters are replaced with SOH (0x01).","","\\t\\tThe command executed is constructed using several options when","\\t\\t{cmd} is a string: \'shell\' \'shellcmdflag\' {cmd}","","\\t\\tThe resulting error code can be found in |v:shell_error|.","\\t\\tThis function will fail in |restricted-mode|.","","\\t\\tNote that any wrong value in the options mentioned above may","\\t\\tmake the function fail. It has also been reported to fail","\\t\\twhen using a security agent application.","\\t\\tUnlike \\":!cmd\\" there is no automatic check for changed files.","\\t\\tUse |:checktime| to force a check.",""],"systemlist":["\\t\\tSame as |system()|, but returns a |List| with lines (parts of","\\t\\toutput separated by NL) with NULs transformed into NLs. Output","\\t\\tis the same as |readfile()| will output with {binary} argument","\\t\\tset to \\"b\\", except that a final newline is not preserved,","\\t\\tunless {keepempty} is non-zero.","\\t\\tNote that on MS-Windows you may get trailing CR characters.","","\\t\\tReturns an empty string on error.",""],"tabpagebuflist":["\\t\\tThe result is a |List|, where each item is the number of the","\\t\\tbuffer associated with each window in the current tab page.","\\t\\t{arg} specifies the number of the tab page to be used. When","\\t\\tomitted the current tab page is used.","\\t\\tWhen {arg} is invalid the number zero is returned.","\\t\\tTo get a list of all buffers in all tabs use this: >","\\t\\t\\tlet buflist = []","\\t\\t\\tfor i in range(tabpagenr(\'$\'))","\\t\\t\\t call extend(buflist, tabpagebuflist(i + 1))","\\t\\t\\tendfor","<\\t\\tNote that a buffer may appear in more than one window.",""],"tabpagenr":["\\t\\tThe result is a Number, which is the number of the current","\\t\\ttab page. The first tab page has number 1.","\\t\\tThe optional argument {arg} supports the following values:","\\t\\t\\t$\\tthe number of the last tab page (the tab page","\\t\\t\\t\\tcount).","\\t\\t\\t#\\tthe number of the last accessed tab page (where","\\t\\t\\t\\t|g<Tab>| goes to). If there is no previous","\\t\\t\\t\\ttab page, 0 is returned.","\\t\\tThe number can be used with the |:tab| command.",""],"tabpagewinnr":["\\t\\tLike |winnr()| but for tab page {tabarg}.","\\t\\t{tabarg} specifies the number of tab page to be used.","\\t\\t{arg} is used like with |winnr()|:","\\t\\t- When omitted the current window number is returned. This is","\\t\\t the window which will be used when going to this tab page.","\\t\\t- When \\"$\\" the number of windows is returned.","\\t\\t- When \\"#\\" the previous window nr is returned.","\\t\\tUseful examples: >","\\t\\t tabpagewinnr(1)\\t \\" current window of tab page 1","\\t\\t tabpagewinnr(4, \'$\') \\" number of windows in tab page 4","<\\t\\tWhen {tabarg} is invalid zero is returned.",""],"tagfiles":["\\t\\tfor the current buffer. This is the \'tags\' option expanded.",""],"taglist":["\\t\\tReturns a list of tags matching the regular expression {expr}.","","\\t\\tIf {filename} is passed it is used to prioritize the results","\\t\\tin the same way that |:tselect| does. See |tag-priority|.","\\t\\t{filename} should be the full path of the file.","","\\t\\tEach list item is a dictionary with at least the following","\\t\\tentries:","\\t\\t\\tname\\t\\tName of the tag.","\\t\\t\\tfilename\\tName of the file where the tag is","\\t\\t\\t\\t\\tdefined. It is either relative to the","\\t\\t\\t\\t\\tcurrent directory or a full path.","\\t\\t\\tcmd\\t\\tEx command used to locate the tag in","\\t\\t\\t\\t\\tthe file.","\\t\\t\\tkind\\t\\tType of the tag. The value for this","\\t\\t\\t\\t\\tentry depends on the language specific","\\t\\t\\t\\t\\tkind values. Only available when","\\t\\t\\t\\t\\tusing a tags file generated by","\\t\\t\\t\\t\\tExuberant ctags or hdrtag.","\\t\\t\\tstatic\\t\\tA file specific tag. Refer to","\\t\\t\\t\\t\\t|static-tag| for more information.","\\t\\tMore entries may be present, depending on the content of the","\\t\\ttags file: access, implementation, inherits and signature.","\\t\\tRefer to the ctags documentation for information about these","\\t\\tfields. For C code the fields \\"struct\\", \\"class\\" and \\"enum\\"","\\t\\tmay appear, they give the name of the entity the tag is","\\t\\tcontained in.","","\\t\\tThe ex-command \\"cmd\\" can be either an ex search pattern, a","\\t\\tline number or a line number followed by a byte number.","","\\t\\tIf there are no matching tags, then an empty list is returned.","","\\t\\tTo get an exact tag match, the anchors \'^\' and \'$\' should be","\\t\\tused in {expr}. This also make the function work faster.","\\t\\tRefer to |tag-regexp| for more information about the tag","\\t\\tsearch regular expression pattern.","","\\t\\tRefer to |\'tags\'| for information about how the tags file is","\\t\\tlocated by Vim. Refer to |tags-file-format| for the format of","\\t\\tthe tags file generated by the different ctags tools."],"tempname":["\\t\\tThe result is a String, which is the name of a file that","\\t\\tdoesn\'t exist. It can be used for a temporary file. Example: >","\\t\\t\\t:let tmpfile = tempname()","\\t\\t\\t:exe \\"redir > \\" . tmpfile","<\\t\\tFor Unix, the file will be in a private directory |tempfile|.","\\t\\tFor MS-Windows forward slashes are used when the \'shellslash\'","\\t\\toption is set or when \'shellcmdflag\' starts with \'-\'."],"termopen":["\\t\\tSpawns {cmd} in a new pseudo-terminal session connected","\\t\\tto the current buffer. {cmd} is the same as the one passed to","\\t\\t|jobstart()|. This function fails if the current buffer is","\\t\\tmodified (all buffer contents are destroyed).","","\\t\\tThe {opts} dict is similar to the one passed to |jobstart()|,","\\t\\tbut the `pty`, `width`, `height`, and `TERM` fields are","\\t\\tignored: `height`/`width` are taken from the current window","\\t\\tand `$TERM` is set to \\"xterm-256color\\".","\\t\\tReturns the same values as |jobstart()|.","","\\t\\tSee |terminal| for more information."],"test_garbagecollect_now":["\\t\\tLike |garbagecollect()|, but executed right away. This must","\\t\\tonly be called directly to avoid any structure to exist","\\t\\tinternally, and |v:testing| must have been set before calling","\\t\\tany function."],"tan":["\\t\\tReturn the tangent of {expr}, measured in radians, as a |Float|","\\t\\tin the range [-inf, inf].","\\t\\t{expr} must evaluate to a |Float| or a |Number|.","\\t\\tExamples: >","\\t\\t\\t:echo tan(10)","<\\t\\t\\t0.648361 >","\\t\\t\\t:echo tan(-4.01)","<\\t\\t\\t-1.181502",""],"tanh":["\\t\\tReturn the hyperbolic tangent of {expr} as a |Float| in the","\\t\\trange [-1, 1].","\\t\\t{expr} must evaluate to a |Float| or a |Number|.","\\t\\tExamples: >","\\t\\t\\t:echo tanh(0.5)","<\\t\\t\\t0.462117 >","\\t\\t\\t:echo tanh(-1)","<\\t\\t\\t-0.761594","",""],"timer_info":["\\t\\tReturn a list with information about timers.","\\t\\tWhen {id} is given only information about this timer is","\\t\\treturned. When timer {id} does not exist an empty list is","\\t\\treturned.","\\t\\tWhen {id} is omitted information about all timers is returned.","","\\t\\tFor each timer the information is stored in a Dictionary with","\\t\\tthese items:","\\t\\t \\"id\\"\\t the timer ID","\\t\\t \\"time\\"\\t time the timer was started with","\\t\\t \\"repeat\\"\\t number of times the timer will still fire;","\\t\\t\\t\\t -1 means forever","\\t\\t \\"callback\\"\\t the callback"],"timer_pause":["\\t\\tPause or unpause a timer. A paused timer does not invoke its","\\t\\tcallback when its time expires. Unpausing a timer may cause","\\t\\tthe callback to be invoked almost immediately if enough time","\\t\\thas passed.","","\\t\\tPausing a timer is useful to avoid the callback to be called","\\t\\tfor a short time.","","\\t\\tIf {paused} evaluates to a non-zero Number or a non-empty","\\t\\tString, then the timer is paused, otherwise it is unpaused.","\\t\\tSee |non-zero-arg|.",""],"timer_start":["\\t\\tCreate a timer and return the timer ID.","","\\t\\t{time} is the waiting time in milliseconds. This is the","\\t\\tminimum time before invoking the callback. When the system is","\\t\\tbusy or Vim is not waiting for input the time will be longer.","","\\t\\t{callback} is the function to call. It can be the name of a","\\t\\tfunction or a |Funcref|. It is called with one argument, which","\\t\\tis the timer ID. The callback is only invoked when Vim is","\\t\\twaiting for input.","","\\t\\t{options} is a dictionary. Supported entries:","\\t\\t \\"repeat\\"\\tNumber of times to repeat the callback.","\\t\\t\\t\\t-1 means forever. Default is 1.","\\t\\t\\t\\tIf the timer causes an error three times in a","\\t\\t\\t\\trow the repeat is cancelled.","","\\t\\tExample: >","\\t\\t\\tfunc MyHandler(timer)","\\t\\t\\t echo \'Handler called\'","\\t\\t\\tendfunc","\\t\\t\\tlet timer = timer_start(500, \'MyHandler\',","\\t\\t\\t\\t\\\\ {\'repeat\': 3})","<\\t\\tThis invokes MyHandler() three times at 500 msec intervals."],"timer_stop":["\\t\\tStop a timer. The timer callback will no longer be invoked.","\\t\\t{timer} is an ID returned by timer_start(), thus it must be a","\\t\\tNumber. If {timer} does not exist there is no error."],"timer_stopall":["\\t\\tStop all timers. The timer callbacks will no longer be","\\t\\tinvoked. Useful if some timers is misbehaving. If there are","\\t\\tno timers there is no error."],"tolower":["\\t\\tThe result is a copy of the String given, with all uppercase","\\t\\tcharacters turned into lowercase (just like applying |gu| to","\\t\\tthe string)."],"toupper":["\\t\\tThe result is a copy of the String given, with all lowercase","\\t\\tcharacters turned into uppercase (just like applying |gU| to","\\t\\tthe string)."],"tr":["\\t\\tThe result is a copy of the {src} string with all characters","\\t\\twhich appear in {fromstr} replaced by the character in that","\\t\\tposition in the {tostr} string. Thus the first character in","\\t\\t{fromstr} is translated into the first character in {tostr}","\\t\\tand so on. Exactly like the unix \\"tr\\" command.","\\t\\tThis code also deals with multibyte characters properly.","","\\t\\tExamples: >","\\t\\t\\techo tr(\\"hello there\\", \\"ht\\", \\"HT\\")","<\\t\\treturns \\"Hello THere\\" >","\\t\\t\\techo tr(\\"<blob>\\", \\"<>\\", \\"{}\\")","<\\t\\treturns \\"{blob}\\""],"trim":["\\t\\tReturn {text} as a String where any character in {mask} is","\\t\\tremoved from the beginning and end of {text}.","\\t\\tIf {mask} is not given, {mask} is all characters up to 0x20,","\\t\\twhich includes Tab, space, NL and CR, plus the non-breaking","\\t\\tspace character 0xa0.","\\t\\tThis code deals with multibyte characters properly.","","\\t\\tExamples: >","\\t\\t\\techo trim(\\" some text \\")","<\\t\\treturns \\"some text\\" >","\\t\\t\\techo trim(\\" \\\\r\\\\t\\\\t\\\\r RESERVE \\\\t\\\\n\\\\x0B\\\\xA0\\") . \\"_TAIL\\"","<\\t\\treturns \\"RESERVE_TAIL\\" >","\\t\\t\\techo trim(\\"rm<Xrm<>X>rrm\\", \\"rm<>\\")","<\\t\\treturns \\"Xrm<>X\\" (characters in the middle are not removed)"],"trunc":["\\t\\tReturn the largest integral value with magnitude less than or","\\t\\tequal to {expr} as a |Float| (truncate towards zero).","\\t\\t{expr} must evaluate to a |Float| or a |Number|.","\\t\\tExamples: >","\\t\\t\\techo trunc(1.456)","<\\t\\t\\t1.0 >","\\t\\t\\techo trunc(-5.456)","<\\t\\t\\t-5.0 >","\\t\\t\\techo trunc(4.0)","<\\t\\t\\t4.0"],"type":["\\t\\tThe result is a Number representing the type of {expr}.","\\t\\tInstead of using the number directly, it is better to use the","\\t\\tv:t_ variable that has the value:","\\t\\t Number: 0 (|v:t_number|)","\\t\\t\\tString: 1 (|v:t_string|)","\\t\\t\\tFuncref: 2 (|v:t_func|)","\\t\\t\\tList: 3 (|v:t_list|)","\\t\\t\\tDictionary: 4 (|v:t_dict|)","\\t\\t\\tFloat: 5 (|v:t_float|)","\\t\\t\\tBoolean: 6 (|v:true| and |v:false|)","\\t\\t\\tNull: 7 (|v:null|)","\\t\\tFor backward compatibility, this method can be used: >","\\t\\t\\t:if type(myvar) == type(0)","\\t\\t\\t:if type(myvar) == type(\\"\\")","\\t\\t\\t:if type(myvar) == type(function(\\"tr\\"))","\\t\\t\\t:if type(myvar) == type([])","\\t\\t\\t:if type(myvar) == type({})","\\t\\t\\t:if type(myvar) == type(0.0)","\\t\\t\\t:if type(myvar) == type(v:true)","<\\t\\tIn place of checking for |v:null| type it is better to check","\\t\\tfor |v:null| directly as it is the only value of this type: >","\\t\\t\\t:if myvar is v:null","< To check if the v:t_ variables exist use this: >"," :if exists(\'v:t_number\')"],"undofile":["\\t\\tReturn the name of the undo file that would be used for a file","\\t\\twith name {name} when writing. This uses the \'undodir\'","\\t\\toption, finding directories that exist. It does not check if","\\t\\tthe undo file exists.","\\t\\t{name} is always expanded to the full path, since that is what","\\t\\tis used internally.","\\t\\tIf {name} is empty undofile() returns an empty string, since a","\\t\\tbuffer without a file name will not write an undo file.","\\t\\tUseful in combination with |:wundo| and |:rundo|.","\\t\\tWhen compiled without the |+persistent_undo| option this always","\\t\\treturns an empty string."],"undotree":["\\t\\tReturn the current state of the undo tree in a dictionary with","\\t\\tthe following items:","\\t\\t \\"seq_last\\"\\tThe highest undo sequence number used.","\\t\\t \\"seq_cur\\"\\tThe sequence number of the current position in","\\t\\t\\t\\tthe undo tree. This differs from \\"seq_last\\"","\\t\\t\\t\\twhen some changes were undone.","\\t\\t \\"time_cur\\"\\tTime last used for |:earlier| and related","\\t\\t\\t\\tcommands. Use |strftime()| to convert to","\\t\\t\\t\\tsomething readable.","\\t\\t \\"save_last\\"\\tNumber of the last file write. Zero when no","\\t\\t\\t\\twrite yet.","\\t\\t \\"save_cur\\"\\tNumber of the current position in the undo","\\t\\t\\t\\ttree.","\\t\\t \\"synced\\"\\tNon-zero when the last undo block was synced.","\\t\\t\\t\\tThis happens when waiting from input from the","\\t\\t\\t\\tuser. See |undo-blocks|.","\\t\\t \\"entries\\"\\tA list of dictionaries with information about","\\t\\t\\t\\tundo blocks.","","\\t\\tThe first item in the \\"entries\\" list is the oldest undo item.","\\t\\tEach List item is a Dictionary with these items:","\\t\\t \\"seq\\"\\t\\tUndo sequence number. Same as what appears in","\\t\\t\\t\\t|:undolist|.","\\t\\t \\"time\\"\\tTimestamp when the change happened. Use","\\t\\t\\t\\t|strftime()| to convert to something readable.","\\t\\t \\"newhead\\"\\tOnly appears in the item that is the last one","\\t\\t\\t\\tthat was added. This marks the last change","\\t\\t\\t\\tand where further changes will be added.","\\t\\t \\"curhead\\"\\tOnly appears in the item that is the last one","\\t\\t\\t\\tthat was undone. This marks the current","\\t\\t\\t\\tposition in the undo tree, the block that will","\\t\\t\\t\\tbe used by a redo command. When nothing was","\\t\\t\\t\\tundone after the last change this item will","\\t\\t\\t\\tnot appear anywhere.","\\t\\t \\"save\\"\\tOnly appears on the last block before a file","\\t\\t\\t\\twrite. The number is the write count. The","\\t\\t\\t\\tfirst write has number 1, the last one the","\\t\\t\\t\\t\\"save_last\\" mentioned above.","\\t\\t \\"alt\\"\\t\\tAlternate entry. This is again a List of undo","\\t\\t\\t\\tblocks. Each item may again have an \\"alt\\"","\\t\\t\\t\\titem."],"uniq":["\\t\\tRemove second and succeeding copies of repeated adjacent","\\t\\t{list} items in-place. Returns {list}. If you want a list","\\t\\tto remain unmodified make a copy first: >","\\t\\t\\t:let newlist = uniq(copy(mylist))","<\\t\\tThe default compare function uses the string representation of","\\t\\teach item. For the use of {func} and {dict} see |sort()|."],"values":["\\t\\tReturn a |List| with all the values of {dict}. The |List| is","\\t\\tin arbitrary order.",""],"virtcol":["\\t\\tThe result is a Number, which is the screen column of the file","\\t\\tposition given with {expr}. That is, the last screen position","\\t\\toccupied by the character at that position, when the screen","\\t\\twould be of unlimited width. When there is a <Tab> at the","\\t\\tposition, the returned Number will be the column at the end of","\\t\\tthe <Tab>. For example, for a <Tab> in column 1, with \'ts\'","\\t\\tset to 8, it returns 8. |conceal| is ignored.","\\t\\tFor the byte position use |col()|.","\\t\\tFor the use of {expr} see |col()|.","\\t\\tWhen \'virtualedit\' is used {expr} can be [lnum, col, off], where","\\t\\t\\"off\\" is the offset in screen columns from the start of the","\\t\\tcharacter. E.g., a position within a <Tab> or after the last","\\t\\tcharacter. When \\"off\\" is omitted zero is used.","\\t\\tWhen Virtual editing is active in the current mode, a position","\\t\\tbeyond the end of the line can be returned. |\'virtualedit\'|","\\t\\tThe accepted positions are:","\\t\\t .\\t the cursor position","\\t\\t $\\t the end of the cursor line (the result is the","\\t\\t\\t number of displayed characters in the cursor line","\\t\\t\\t plus one)","\\t\\t \'x\\t position of mark x (if the mark is not set, 0 is","\\t\\t\\t returned)","\\t\\t v In Visual mode: the start of the Visual area (the","\\t\\t\\t cursor is the end). When not in Visual mode","\\t\\t\\t returns the cursor position. Differs from |\'<| in","\\t\\t\\t that it\'s updated right away.","\\t\\tNote that only marks in the current file can be used.","\\t\\tExamples: >"," virtcol(\\".\\")\\t with text \\"foo^Lbar\\", with cursor on the \\"^L\\", returns 5"," virtcol(\\"$\\")\\t with text \\"foo^Lbar\\", returns 9"," virtcol(\\"\'t\\") with text \\"\\t there\\", with \'t at \'h\', returns 6","<\\t\\tThe first column is 1. 0 is returned for an error.","\\t\\tA more advanced example that echoes the maximum length of","\\t\\tall lines: >","\\t\\t echo max(map(range(1, line(\'$\')), \\"virtcol([v:val, \'$\'])\\"))",""],"visualmode":["\\t\\tThe result is a String, which describes the last Visual mode","\\t\\tused in the current buffer. Initially it returns an empty","\\t\\tstring, but once Visual mode has been used, it returns \\"v\\",","\\t\\t\\"V\\", or \\"<CTRL-V>\\" (a single CTRL-V character) for","\\t\\tcharacter-wise, line-wise, or block-wise Visual mode","\\t\\trespectively.","\\t\\tExample: >","\\t\\t\\t:exe \\"normal \\" . visualmode()","<\\t\\tThis enters the same Visual mode as before. It is also useful","\\t\\tin scripts if you wish to act differently depending on the","\\t\\tVisual mode that was used.","\\t\\tIf Visual mode is active, use |mode()| to get the Visual mode","\\t\\t(e.g., in a |:vmap|).","\\t\\tIf [expr] is supplied and it evaluates to a non-zero Number or","\\t\\ta non-empty String, then the Visual mode will be cleared and","\\t\\tthe old value is returned. See |non-zero-arg|."],"wait":["\\t\\tWaits until {condition} evaluates to |TRUE|, where {condition}","\\t\\tis a |Funcref| or |string| containing an expression.","","\\t\\t{timeout} is the maximum waiting time in milliseconds, -1","\\t\\tmeans forever.","","\\t\\tCondition is evaluated on user events, internal events, and","\\t\\tevery {interval} milliseconds (default: 200).","","\\t\\tReturns a status integer:","\\t\\t\\t0 if the condition was satisfied before timeout","\\t\\t\\t-1 if the timeout was exceeded","\\t\\t\\t-2 if the function was interrupted (by |CTRL-C|)","\\t\\t\\t-3 if an error occurred"],"wildmenumode":["\\t\\tReturns |TRUE| when the wildmenu is active and |FALSE|","\\t\\totherwise. See \'wildmenu\' and \'wildmode\'.","\\t\\tThis can be used in mappings to handle the \'wildcharm\' option","\\t\\tgracefully. (Makes only sense with |mapmode-c| mappings).","","\\t\\tFor example to make <c-j> work like <down> in wildmode, use: >"," :cnoremap <expr> <C-j> wildmenumode() ? \\"\\\\<Down>\\\\<Tab>\\" : \\"\\\\<c-j>\\"","<","\\t\\t(Note, this needs the \'wildcharm\' option set appropriately).",""],"win_findbuf":["\\t\\tReturns a list with |window-ID|s for windows that contain","\\t\\tbuffer {bufnr}. When there is none the list is empty."],"win_getid":["\\t\\tGet the |window-ID| for the specified window.","\\t\\tWhen {win} is missing use the current window.","\\t\\tWith {win} this is the window number. The top window has","\\t\\tnumber 1.","\\t\\tWithout {tab} use the current tab, otherwise the tab with","\\t\\tnumber {tab}. The first tab has number one.","\\t\\tReturn zero if the window cannot be found."],"win_gotoid":["\\t\\tGo to window with ID {expr}. This may also change the current","\\t\\ttabpage.","\\t\\tReturn 1 if successful, 0 if the window cannot be found."],"win_id2tabwin":["\\t\\tReturn a list with the tab number and window number of window","\\t\\twith ID {expr}: [tabnr, winnr].","\\t\\tReturn [0, 0] if the window cannot be found."],"win_id2win":["\\t\\tReturn the window number of window with ID {expr}.","\\t\\tReturn 0 if the window cannot be found in the current tabpage."],"win_screenpos":["\\t\\tReturn the screen position of window {nr} as a list with two","\\t\\tnumbers: [row, col]. The first window always has position","\\t\\t[1, 1], unless there is a tabline, then it is [2, 1].","\\t\\t{nr} can be the window number or the |window-ID|.","\\t\\tReturn [0, 0] if the window cannot be found in the current","\\t\\ttabpage.",""],"winbufnr":["\\t\\tassociated with window {nr}. {nr} can be the window number or","\\t\\tthe |window-ID|.","\\t\\tWhen {nr} is zero, the number of the buffer in the current","\\t\\twindow is returned.","\\t\\tWhen window {nr} doesn\'t exist, -1 is returned.","\\t\\tExample: >"," :echo \\"The file in the current window is \\" . bufname(winbufnr(0))","<"],"wincol":["\\t\\tcursor in the window. This is counting screen cells from the","\\t\\tleft side of the window. The leftmost column is one."],"winheight":["\\t\\tThe result is a Number, which is the height of window {nr}.","\\t\\t{nr} can be the window number or the |window-ID|.","\\t\\tWhen {nr} is zero, the height of the current window is","\\t\\treturned. When window {nr} doesn\'t exist, -1 is returned.","\\t\\tAn existing window always has a height of zero or more.","\\t\\tThis excludes any window toolbar line.","\\t\\tExamples: >"," :echo \\"The current window has \\" . winheight(0) . \\" lines.\\""],"winlayout":["\\t\\tThe result is a nested List containing the layout of windows","\\t\\tin a tabpage.","","\\t\\tWithout {tabnr} use the current tabpage, otherwise the tabpage","\\t\\twith number {tabnr}. If the tabpage {tabnr} is not found,","\\t\\treturns an empty list.","","\\t\\tFor a leaf window, it returns:","\\t\\t\\t[\'leaf\', {winid}]","\\t\\tFor horizontally split windows, which form a column, it","\\t\\treturns:","\\t\\t\\t[\'col\', [{nested list of windows}]]","\\t\\tFor vertically split windows, which form a row, it returns:","\\t\\t\\t[\'row\', [{nested list of windows}]]","","\\t\\tExample: >","\\t\\t\\t\\" Only one window in the tab page","\\t\\t\\t:echo winlayout()","\\t\\t\\t[\'leaf\', 1000]","\\t\\t\\t\\" Two horizontally split windows","\\t\\t\\t:echo winlayout()","\\t\\t\\t[\'col\', [[\'leaf\', 1000], [\'leaf\', 1001]]]","\\t\\t\\t\\" Three horizontally split windows, with two","\\t\\t\\t\\" vertically split windows in the middle window","\\t\\t\\t:echo winlayout(2)","\\t\\t\\t[\'col\', [[\'leaf\', 1002], [\'row\', [\'leaf\', 1003],","\\t\\t\\t\\t\\t [\'leaf\', 1001]]], [\'leaf\', 1000]]","<"],"winline":["\\t\\tin the window. This is counting screen lines from the top of","\\t\\tthe window. The first line is one.","\\t\\tIf the cursor was moved the view on the file will be updated","\\t\\tfirst, this may cause a scroll.",""],"winnr":["\\t\\twindow. The top window has number 1.","","\\t\\tThe optional argument {arg} supports the following values:","\\t\\t\\t$\\tthe number of the last window (the window","\\t\\t\\t\\tcount).","\\t\\t\\t#\\tthe number of the last accessed window (where","\\t\\t\\t\\t|CTRL-W_p| goes to). If there is no previous","\\t\\t\\t\\twindow or it is in another tab page 0 is","\\t\\t\\t\\treturned.","\\t\\t\\t{N}j\\tthe number of the Nth window below the","\\t\\t\\t\\tcurrent window (where |CTRL-W_j| goes to).","\\t\\t\\t{N}k\\tthe number of the Nth window above the current","\\t\\t\\t\\twindow (where |CTRL-W_k| goes to).","\\t\\t\\t{N}h\\tthe number of the Nth window left of the","\\t\\t\\t\\tcurrent window (where |CTRL-W_h| goes to).","\\t\\t\\t{N}l\\tthe number of the Nth window right of the","\\t\\t\\t\\tcurrent window (where |CTRL-W_l| goes to).","\\t\\tThe number can be used with |CTRL-W_w| and \\":wincmd w\\"","\\t\\t|:wincmd|.","\\t\\tAlso see |tabpagewinnr()| and |win_getid()|.","\\t\\tExamples: >","\\t\\t\\tlet window_count = winnr(\'$\')","\\t\\t\\tlet prev_window = winnr(\'#\')","\\t\\t\\tlet wnum = winnr(\'3k\')","<"],"winrestcmd":["\\t\\tthe current window sizes. Only works properly when no windows","\\t\\tare opened or closed and the current window and tab page is","\\t\\tunchanged.","\\t\\tExample: >","\\t\\t\\t:let cmd = winrestcmd()","\\t\\t\\t:call MessWithWindowSizes()","\\t\\t\\t:exe cmd","<"],"winrestview":["\\t\\tUses the |Dictionary| returned by |winsaveview()| to restore","\\t\\tthe view of the current window.","\\t\\tNote: The {dict} does not have to contain all values, that are","\\t\\treturned by |winsaveview()|. If values are missing, those","\\t\\tsettings won\'t be restored. So you can use: >","\\t\\t :call winrestview({\'curswant\': 4})","<","\\t\\tThis will only set the curswant value (the column the cursor","\\t\\twants to move on vertical movements) of the cursor to column 5","\\t\\t(yes, that is 5), while all other settings will remain the","\\t\\tsame. This is useful, if you set the cursor position manually.","","\\t\\tIf you have changed the values the result is unpredictable.","\\t\\tIf the window size changed the result won\'t be the same.",""],"winsaveview":["\\t\\tthe view of the current window. Use |winrestview()| to","\\t\\trestore the view.","\\t\\tThis is useful if you have a mapping that jumps around in the","\\t\\tbuffer and you want to go back to the original view.","\\t\\tThis does not save fold information. Use the \'foldenable\'","\\t\\toption to temporarily switch off folding, so that folds are","\\t\\tnot opened when moving around. This may have side effects.","\\t\\tThe return value includes:","\\t\\t\\tlnum\\t\\tcursor line number","\\t\\t\\tcol\\t\\tcursor column (Note: the first column","\\t\\t\\t\\t\\tzero, as opposed to what getpos()","\\t\\t\\t\\t\\treturns)","\\t\\t\\tcoladd\\t\\tcursor column offset for \'virtualedit\'","\\t\\t\\tcurswant\\tcolumn for vertical movement","\\t\\t\\ttopline\\t\\tfirst line in the window","\\t\\t\\ttopfill\\t\\tfiller lines, only in diff mode","\\t\\t\\tleftcol\\t\\tfirst column displayed","\\t\\t\\tskipcol\\t\\tcolumns skipped","\\t\\tNote that no option values are saved.",""],"winwidth":["\\t\\tThe result is a Number, which is the width of window {nr}.","\\t\\t{nr} can be the window number or the |window-ID|.","\\t\\tWhen {nr} is zero, the width of the current window is","\\t\\treturned. When window {nr} doesn\'t exist, -1 is returned.","\\t\\tAn existing window always has a width of zero or more.","\\t\\tExamples: >"," :echo \\"The current window has \\" . winwidth(0) . \\" columns.\\""," :if winwidth(0) <= 50"," : 50 wincmd |"," :endif","<\\t\\tFor getting the terminal or screen size, see the \'columns\'","\\t\\toption.",""],"wordcount":["\\t\\tThe result is a dictionary of byte/chars/word statistics for","\\t\\tthe current buffer. This is the same info as provided by","\\t\\t|g_CTRL-G|","\\t\\tThe return value includes:","\\t\\t\\tbytes\\t\\tNumber of bytes in the buffer","\\t\\t\\tchars\\t\\tNumber of chars in the buffer","\\t\\t\\twords\\t\\tNumber of words in the buffer","\\t\\t\\tcursor_bytes Number of bytes before cursor position","\\t\\t\\t\\t\\t(not in Visual mode)","\\t\\t\\tcursor_chars Number of chars before cursor position","\\t\\t\\t\\t\\t(not in Visual mode)","\\t\\t\\tcursor_words Number of words before cursor position","\\t\\t\\t\\t\\t(not in Visual mode)","\\t\\t\\tvisual_bytes Number of bytes visually selected","\\t\\t\\t\\t\\t(only in Visual mode)","\\t\\t\\tvisual_chars Number of chars visually selected","\\t\\t\\t\\t\\t(only in Visual mode)","\\t\\t\\tvisual_words Number of chars visually selected","\\t\\t\\t\\t\\t(only in Visual mode)","",""],"writefile":["\\t\\tWrite |List| {list} to file {fname}. Each list item is","\\t\\tseparated with a NL. Each list item must be a String or","\\t\\tNumber.","\\t\\tWhen {flags} contains \\"b\\" then binary mode is used: There will","\\t\\tnot be a NL after the last list item. An empty item at the","\\t\\tend does cause the last line in the file to end in a NL.","","\\t\\tWhen {flags} contains \\"a\\" then append mode is used, lines are","\\t\\tappended to the file: >","\\t\\t\\t:call writefile([\\"foo\\"], \\"event.log\\", \\"a\\")","\\t\\t\\t:call writefile([\\"bar\\"], \\"event.log\\", \\"a\\")","<","\\t\\tWhen {flags} contains \\"S\\" fsync() call is not used, with \\"s\\"","\\t\\tit is used, \'fsync\' option applies by default. No fsync()","\\t\\tmeans that writefile() will finish faster, but writes may be","\\t\\tleft in OS buffers and not yet written to disk. Such changes","\\t\\twill disappear if system crashes before OS does writing.","","\\t\\tAll NL characters are replaced with a NUL character.","\\t\\tInserting CR characters needs to be done before passing {list}","\\t\\tto writefile().","\\t\\tAn existing file is overwritten, if possible.","\\t\\tWhen the write fails -1 is returned, otherwise 0. There is an","\\t\\terror message if the file can\'t be created or when writing","\\t\\tfails.","\\t\\tAlso see |readfile()|.","\\t\\tTo copy a file byte for byte: >","\\t\\t\\t:let fl = readfile(\\"foo\\", \\"b\\")","\\t\\t\\t:call writefile(fl, \\"foocopy\\", \\"b\\")",""],"xor":["\\t\\tBitwise XOR on the two arguments. The arguments are converted","\\t\\tto a number. A List, Dict or Float argument causes an error.","\\t\\tExample: >","\\t\\t\\t:let bits = xor(bits, 0x80)","<",""],"nvim__id":[" Returns object given as argument.",""," This API function is used for testing. One should not rely on"," its presence in plugins.",""," Parameters: ~"," {obj} Object to return.",""," Return: ~"," its argument."],"nvim__id_array":[" Returns array given as argument.",""," This API function is used for testing. One should not rely on"," its presence in plugins.",""," Parameters: ~"," {arr} Array to return.",""," Return: ~"," its argument."],"nvim__id_dictionary":[" Returns dictionary given as argument.",""," This API function is used for testing. One should not rely on"," its presence in plugins.",""," Parameters: ~"," {dct} Dictionary to return.",""," Return: ~"," its argument."],"nvim__id_float":[" Returns floating-point value given as argument.",""," This API function is used for testing. One should not rely on"," its presence in plugins.",""," Parameters: ~"," {flt} Value to return.",""," Return: ~"," its argument."],"nvim__inspect_cell":[" TODO: Documentation"],"nvim__put_attr":[" Set attrs in nvim__buf_set_lua_hl callbacks",""," TODO(bfredl): This is rather pedestrian. The final interface"," should probably be derived from a reformed bufhl/virttext"," interface with full support for multi-line ranges etc"],"nvim__stats":[" Gets internal stats.",""," Return: ~"," Map of various internal stats."],"nvim_call_atomic":[" Calls many API methods atomically.",""," This has two main usages:"," 1. To perform several requests from an async context"," atomically, i.e. without interleaving redraws, RPC requests"," from other clients, or user interactions (however API"," methods may trigger autocommands or event processing which"," have such side-effects, e.g. |:sleep| may wake timers)."," 2. To minimize RPC overhead (roundtrips) of a sequence of many"," requests.",""," Parameters: ~"," {calls} an array of calls, where each call is described"," by an array with two elements: the request name,"," and an array of arguments.",""," Return: ~"," Array of two elements. The first is an array of return"," values. The second is NIL if all calls succeeded. If a"," call resulted in an error, it is a three-element array"," with the zero-based index of the call which resulted in an"," error, the error type and the error message. If an error"," occurred, the values from all preceding calls will still"," be returned.",""],"nvim_call_dict_function":[" Calls a VimL |Dictionary-function| with the given arguments.",""," On execution error: fails with VimL error, does not update"," v:errmsg.",""," Parameters: ~"," {dict} Dictionary, or String evaluating to a VimL |self|"," dict"," {fn} Name of the function defined on the VimL dict"," {args} Function arguments packed in an Array",""," Return: ~"," Result of the function call"],"nvim_call_function":[" Calls a VimL function with the given arguments.",""," On execution error: fails with VimL error, does not update"," v:errmsg.",""," Parameters: ~"," {fn} Function to call"," {args} Function arguments packed in an Array",""," Return: ~"," Result of the function call"],"nvim_command":[" Executes an ex-command.",""," On execution error: fails with VimL error, does not update"," v:errmsg.",""," Parameters: ~"," {command} Ex-command string",""," See also: ~"," |nvim_exec()|"],"nvim_create_buf":[" Creates a new, empty, unnamed buffer.",""," Parameters: ~"," {listed} Sets \'buflisted\'"," {scratch} Creates a \\"throwaway\\" |scratch-buffer| for"," temporary work (always \'nomodified\')",""," Return: ~"," Buffer handle, or 0 on error",""," See also: ~"," buf_open_scratch"],"nvim_create_namespace":[" Creates a new namespace, or gets an existing one.",""," Namespaces are used for buffer highlights and virtual text,"," see |nvim_buf_add_highlight()| and"," |nvim_buf_set_virtual_text()|.",""," Namespaces can be named or anonymous. If `name` matches an"," existing namespace, the associated id is returned. If `name`"," is an empty string a new, anonymous namespace is created.",""," Parameters: ~"," {name} Namespace name or empty string",""," Return: ~"," Namespace id"],"nvim_del_current_line":[" Deletes the current line."],"nvim_del_keymap":[" Unmaps a global |mapping| for the given mode.",""," To unmap a buffer-local mapping, use |nvim_buf_del_keymap()|.",""," See also: ~"," |nvim_set_keymap()|"],"nvim_del_var":[" Removes a global (g:) variable.",""," Parameters: ~"," {name} Variable name"],"nvim_err_write":[" Writes a message to the Vim error buffer. Does not append"," \\"\\\\n\\", the message is buffered (won\'t display) until a linefeed"," is written.",""," Parameters: ~"," {str} Message"],"nvim_err_writeln":[" Writes a message to the Vim error buffer. Appends \\"\\\\n\\", so the"," buffer is flushed (and displayed).",""," Parameters: ~"," {str} Message",""," See also: ~"," nvim_err_write()"],"nvim_eval":[" Evaluates a VimL |expression|. Dictionaries and Lists are"," recursively expanded.",""," On execution error: fails with VimL error, does not update"," v:errmsg.",""," Parameters: ~"," {expr} VimL expression string",""," Return: ~"," Evaluation result or expanded object"],"nvim_exec":[" Executes Vimscript (multiline block of Ex-commands), like"," anonymous |:source|.",""," Unlike |nvim_command()| this function supports heredocs,"," script-scope (s:), etc.",""," On execution error: fails with VimL error, does not update"," v:errmsg.",""," Parameters: ~"," {src} Vimscript code"," {output} Capture and return all (non-error, non-shell"," |:!|) output",""," Return: ~"," Output (non-error, non-shell |:!|) if `output` is true,"," else empty string.",""," See also: ~"," |execute()|"," |nvim_command()|"],"nvim_exec_lua":[" Execute Lua code. Parameters (if any) are available as `...`"," inside the chunk. The chunk can return a value.",""," Only statements are executed. To evaluate an expression,"," prefix it with `return` : return my_function(...)",""," Parameters: ~"," {code} Lua code to execute"," {args} Arguments to the code",""," Return: ~"," Return value of Lua code if present or NIL."],"nvim_feedkeys":[" Sends input-keys to Nvim, subject to various quirks controlled"," by `mode` flags. This is a blocking call, unlike"," |nvim_input()|.",""," On execution error: does not fail, but updates v:errmsg.",""," Parameters: ~"," {keys} to be typed"," {mode} behavior flags, see |feedkeys()|"," {escape_csi} If true, escape K_SPECIAL/CSI bytes in"," `keys`",""," See also: ~"," feedkeys()"," vim_strsave_escape_csi"],"nvim_get_api_info":[" Returns a 2-tuple (Array), where item 0 is the current channel"," id and item 1 is the |api-metadata| map (Dictionary).",""," Return: ~"," 2-tuple [{channel-id}, {api-metadata}]",""," Attributes: ~"," {fast}"],"nvim_get_chan_info":[" Get information about a channel.",""," Return: ~"," Dictionary describing a channel, with these keys:"," • \\"stream\\" the stream underlying the channel"," • \\"stdio\\" stdin and stdout of this Nvim instance"," • \\"stderr\\" stderr of this Nvim instance"," • \\"socket\\" TCP/IP socket or named pipe"," • \\"job\\" job with communication over its stdio",""," • \\"mode\\" how data received on the channel is interpreted"," • \\"bytes\\" send and receive raw bytes"," • \\"terminal\\" a |terminal| instance interprets ASCII"," sequences"," • \\"rpc\\" |RPC| communication on the channel is active",""," • \\"pty\\" Name of pseudoterminal, if one is used (optional)."," On a POSIX system, this will be a device path like"," /dev/pts/1. Even if the name is unknown, the key will"," still be present to indicate a pty is used. This is"," currently the case when using winpty on windows."," • \\"buffer\\" buffer with connected |terminal| instance"," (optional)"," • \\"client\\" information about the client on the other end"," of the RPC channel, if it has added it using"," |nvim_set_client_info()|. (optional)"],"nvim_get_color_by_name":[" Returns the 24-bit RGB value of a |nvim_get_color_map()| color"," name or \\"#rrggbb\\" hexadecimal string.",""," Example: >"," :echo nvim_get_color_by_name(\\"Pink\\")"," :echo nvim_get_color_by_name(\\"#cbcbcb\\")","<",""," Parameters: ~"," {name} Color name or \\"#rrggbb\\" string",""," Return: ~"," 24-bit RGB value, or -1 for invalid argument."],"nvim_get_color_map":[" Returns a map of color names and RGB values.",""," Keys are color names (e.g. \\"Aqua\\") and values are 24-bit RGB"," color values (e.g. 65535).",""," Return: ~"," Map of color names and RGB values."],"nvim_get_commands":[" Gets a map of global (non-buffer-local) Ex commands.",""," Currently only |user-commands| are supported, not builtin Ex"," commands.",""," Parameters: ~"," {opts} Optional parameters. Currently only supports"," {\\"builtin\\":false}",""," Return: ~"," Map of maps describing commands."],"nvim_get_context":[" Gets a map of the current editor state.",""," Parameters: ~"," {opts} Optional parameters."," • types: List of |context-types| (\\"regs\\", \\"jumps\\","," \\"bufs\\", \\"gvars\\", …) to gather, or empty for"," \\"all\\".",""," Return: ~"," map of global |context|."],"nvim_get_current_buf":[" Gets the current buffer.",""," Return: ~"," Buffer handle"],"nvim_get_current_line":[" Gets the current line.",""," Return: ~"," Current line string"],"nvim_get_current_tabpage":[" Gets the current tabpage.",""," Return: ~"," Tabpage handle"],"nvim_get_current_win":[" Gets the current window.",""," Return: ~"," Window handle"],"nvim_get_hl_by_id":[" Gets a highlight definition by id. |hlID()|",""," Parameters: ~"," {hl_id} Highlight id as returned by |hlID()|"," {rgb} Export RGB colors",""," Return: ~"," Highlight definition map",""," See also: ~"," nvim_get_hl_by_name"],"nvim_get_hl_by_name":[" Gets a highlight definition by name.",""," Parameters: ~"," {name} Highlight group name"," {rgb} Export RGB colors",""," Return: ~"," Highlight definition map",""," See also: ~"," nvim_get_hl_by_id"],"nvim_get_hl_id_by_name":[" Gets a highlight group by name",""," similar to |hlID()|, but allocates a new ID if not present."],"nvim_get_keymap":[" Gets a list of global (non-buffer-local) |mapping|"," definitions.",""," Parameters: ~"," {mode} Mode short-name (\\"n\\", \\"i\\", \\"v\\", ...)",""," Return: ~"," Array of maparg()-like dictionaries describing mappings."," The \\"buffer\\" key is always zero."],"nvim_get_mode":[" Gets the current mode. |mode()| \\"blocking\\" is true if Nvim is"," waiting for input.",""," Return: ~"," Dictionary { \\"mode\\": String, \\"blocking\\": Boolean }",""," Attributes: ~"," {fast}"],"nvim_get_namespaces":[" Gets existing, non-anonymous namespaces.",""," Return: ~"," dict that maps from names to namespace ids."],"nvim_get_option":[" Gets an option value string.",""," Parameters: ~"," {name} Option name",""," Return: ~"," Option value (global)"],"nvim_get_proc":[" Gets info describing process `pid` .",""," Return: ~"," Map of process properties, or NIL if process not found."],"nvim_get_proc_children":[" Gets the immediate children of process `pid` .",""," Return: ~"," Array of child process ids, empty if process not found."],"nvim_get_var":[" Gets a global (g:) variable.",""," Parameters: ~"," {name} Variable name",""," Return: ~"," Variable value"],"nvim_get_vvar":[" Gets a v: variable.",""," Parameters: ~"," {name} Variable name",""," Return: ~"," Variable value"],"nvim_input":[" Queues raw user-input. Unlike |nvim_feedkeys()|, this uses a"," low-level input buffer and the call is non-blocking (input is"," processed asynchronously by the eventloop).",""," On execution error: does not fail, but updates v:errmsg.",""," Note:"," |keycodes| like <CR> are translated, so \\"<\\" is special. To"," input a literal \\"<\\", send <LT>."," Note:"," For mouse events use |nvim_input_mouse()|. The pseudokey"," form \\"<LeftMouse><col,row>\\" is deprecated since"," |api-level| 6.",""," Attributes: ~"," {fast}",""," Parameters: ~"," {keys} to be typed",""," Return: ~"," Number of bytes actually written (can be fewer than"," requested if the buffer becomes full).",""],"nvim_input_mouse":[" Send mouse event from GUI.",""," Non-blocking: does not wait on any result, but queues the"," event to be processed soon by the event loop.",""," Note:"," Currently this doesn\'t support \\"scripting\\" multiple mouse"," events by calling it multiple times in a loop: the"," intermediate mouse positions will be ignored. It should be"," used to implement real-time mouse input in a GUI. The"," deprecated pseudokey form (\\"<LeftMouse><col,row>\\") of"," |nvim_input()| has the same limitiation.",""," Attributes: ~"," {fast}",""," Parameters: ~"," {button} Mouse button: one of \\"left\\", \\"right\\","," \\"middle\\", \\"wheel\\"."," {action} For ordinary buttons, one of \\"press\\", \\"drag\\","," \\"release\\". For the wheel, one of \\"up\\", \\"down\\","," \\"left\\", \\"right\\"."," {modifier} String of modifiers each represented by a"," single char. The same specifiers are used as"," for a key press, except that the \\"-\\" separator"," is optional, so \\"C-A-\\", \\"c-a\\" and \\"CA\\" can all"," be used to specify Ctrl+Alt+click."," {grid} Grid number if the client uses |ui-multigrid|,"," else 0."," {row} Mouse row-position (zero-based, like redraw"," events)"," {col} Mouse column-position (zero-based, like redraw"," events)"],"nvim_list_bufs":[" Gets the current list of buffer handles",""," Includes unlisted (unloaded/deleted) buffers, like `:ls!` ."," Use |nvim_buf_is_loaded()| to check if a buffer is loaded.",""," Return: ~"," List of buffer handles"],"nvim_list_chans":[" Get information about all open channels.",""," Return: ~"," Array of Dictionaries, each describing a channel with the"," format specified at |nvim_get_chan_info()|."],"nvim_list_runtime_paths":[" Gets the paths contained in \'runtimepath\'.",""," Return: ~"," List of paths"],"nvim_list_tabpages":[" Gets the current list of tabpage handles.",""," Return: ~"," List of tabpage handles"],"nvim_list_uis":[" Gets a list of dictionaries representing attached UIs.",""," Return: ~"," Array of UI dictionaries, each with these keys:"," • \\"height\\" Requested height of the UI"," • \\"width\\" Requested width of the UI"," • \\"rgb\\" true if the UI uses RGB colors (false implies"," |cterm-colors|)"," • \\"ext_...\\" Requested UI extensions, see |ui-option|"," • \\"chan\\" Channel id of remote UI (not present for TUI)"],"nvim_list_wins":[" Gets the current list of window handles.",""," Return: ~"," List of window handles"],"nvim_load_context":[" Sets the current editor state from the given |context| map.",""," Parameters: ~"," {dict} |Context| map."],"nvim_open_win":[" Open a new window.",""," Currently this is used to open floating and external windows."," Floats are windows that are drawn above the split layout, at"," some anchor position in some other window. Floats can be drawn"," internally or by external GUI with the |ui-multigrid|"," extension. External windows are only supported with multigrid"," GUIs, and are displayed as separate top-level windows.",""," For a general overview of floats, see |api-floatwin|.",""," Exactly one of `external` and `relative` must be specified."," The `width` and `height` of the new window must be specified.",""," With relative=editor (row=0,col=0) refers to the top-left"," corner of the screen-grid and (row=Lines-1,col=Columns-1)"," refers to the bottom-right corner. Fractional values are"," allowed, but the builtin implementation (used by non-multigrid"," UIs) will always round down to nearest integer.",""," Out-of-bounds values, and configurations that make the float"," not fit inside the main editor, are allowed. The builtin"," implementation truncates values so floats are fully within the"," main screen grid. External GUIs could let floats hover outside"," of the main window like a tooltip, but this should not be used"," to specify arbitrary WM screen positions.",""," Example (Lua): window-relative float >"," vim.api.nvim_open_win(0, false,"," {relative=\'win\', row=3, col=3, width=12, height=3})","<",""," Example (Lua): buffer-relative float (travels as buffer is"," scrolled) >"," vim.api.nvim_open_win(0, false,"," {relative=\'win\', width=12, height=3, bufpos={100,10}})","<",""," Parameters: ~"," {buffer} Buffer to display, or 0 for current buffer"," {enter} Enter the window (make it the current window)"," {config} Map defining the window configuration. Keys:"," • `relative`: Sets the window layout to \\"floating\\", placed"," at (row,col) coordinates relative to:"," • \\"editor\\" The global editor grid"," • \\"win\\" Window given by the `win` field, or"," current window."," • \\"cursor\\" Cursor position in current window.",""," • `win` : |window-ID| for relative=\\"win\\"."," • `anchor`: Decides which corner of the float to place"," at (row,col):"," • \\"NW\\" northwest (default)"," • \\"NE\\" northeast"," • \\"SW\\" southwest"," • \\"SE\\" southeast",""," • `width` : Window width (in character cells)."," Minimum of 1."," • `height` : Window height (in character cells)."," Minimum of 1."," • `bufpos` : Places float relative to buffer"," text (only when relative=\\"win\\"). Takes a tuple"," of zero-indexed [line, column]. `row` and"," `col` if given are applied relative to this"," position, else they default to `row=1` and"," `col=0` (thus like a tooltip near the buffer"," text)."," • `row` : Row position in units of \\"screen cell"," height\\", may be fractional."," • `col` : Column position in units of \\"screen"," cell width\\", may be fractional."," • `focusable` : Enable focus by user actions"," (wincmds, mouse events). Defaults to true."," Non-focusable windows can be entered by"," |nvim_set_current_win()|."," • `external` : GUI should display the window as"," an external top-level window. Currently"," accepts no other positioning configuration"," together with this."," • `style`: Configure the appearance of the window."," Currently only takes one non-empty value:"," • \\"minimal\\" Nvim will display the window with"," many UI options disabled. This is useful"," when displaying a temporary float where the"," text should not be edited. Disables"," \'number\', \'relativenumber\', \'cursorline\',"," \'cursorcolumn\', \'foldcolumn\', \'spell\' and"," \'list\' options. \'signcolumn\' is changed to"," `auto` and \'colorcolumn\' is cleared. The"," end-of-buffer region is hidden by setting"," `eob` flag of \'fillchars\' to a space char,"," and clearing the |EndOfBuffer| region in"," \'winhighlight\'.",""," Return: ~"," Window handle, or 0 on error"],"nvim_out_write":[" Writes a message to the Vim output buffer. Does not append"," \\"\\\\n\\", the message is buffered (won\'t display) until a linefeed"," is written.",""," Parameters: ~"," {str} Message",""],"nvim_parse_expression":[" Parse a VimL expression.",""," Attributes: ~"," {fast}",""," Parameters: ~"," {expr} Expression to parse. Always treated as a"," single line."," {flags} Flags:"," • \\"m\\" if multiple expressions in a row are"," allowed (only the first one will be"," parsed),"," • \\"E\\" if EOC tokens are not allowed"," (determines whether they will stop parsing"," process or be recognized as an"," operator/space, though also yielding an"," error)."," • \\"l\\" when needing to start parsing with"," lvalues for \\":let\\" or \\":for\\". Common flag"," sets:"," • \\"m\\" to parse like for \\":echo\\"."," • \\"E\\" to parse like for \\"<C-r>=\\"."," • empty string for \\":call\\"."," • \\"lm\\" to parse for \\":let\\"."," {highlight} If true, return value will also include"," \\"highlight\\" key containing array of 4-tuples"," (arrays) (Integer, Integer, Integer, String),"," where first three numbers define the"," highlighted region and represent line,"," starting column and ending column (latter"," exclusive: one should highlight region"," [start_col, end_col)).",""," Return: ~",""," • AST: top-level dictionary with these keys:"," • \\"error\\": Dictionary with error, present only if parser"," saw some error. Contains the following keys:"," • \\"message\\": String, error message in printf format,"," translated. Must contain exactly one \\"%.*s\\"."," • \\"arg\\": String, error message argument.",""," • \\"len\\": Amount of bytes successfully parsed. With flags"," equal to \\"\\" that should be equal to the length of expr"," string. (“Sucessfully parsed” here means “participated"," in AST creation”, not “till the first error”.)"," • \\"ast\\": AST, either nil or a dictionary with these"," keys:"," • \\"type\\": node type, one of the value names from"," ExprASTNodeType stringified without \\"kExprNode\\""," prefix."," • \\"start\\": a pair [line, column] describing where node"," is \\"started\\" where \\"line\\" is always 0 (will not be 0"," if you will be using nvim_parse_viml() on e.g."," \\":let\\", but that is not present yet). Both elements"," are Integers."," • \\"len\\": “length” of the node. This and \\"start\\" are"," there for debugging purposes primary (debugging"," parser and providing debug information)."," • \\"children\\": a list of nodes described in top/\\"ast\\"."," There always is zero, one or two children, key will"," not be present if node has no children. Maximum"," number of children may be found in node_maxchildren"," array.",""," • Local values (present only for certain nodes):"," • \\"scope\\": a single Integer, specifies scope for"," \\"Option\\" and \\"PlainIdentifier\\" nodes. For \\"Option\\" it"," is one of ExprOptScope values, for \\"PlainIdentifier\\""," it is one of ExprVarScope values."," • \\"ident\\": identifier (without scope, if any), present"," for \\"Option\\", \\"PlainIdentifier\\", \\"PlainKey\\" and"," \\"Environment\\" nodes."," • \\"name\\": Integer, register name (one character) or -1."," Only present for \\"Register\\" nodes."," • \\"cmp_type\\": String, comparison type, one of the value"," names from ExprComparisonType, stringified without"," \\"kExprCmp\\" prefix. Only present for \\"Comparison\\""," nodes."," • \\"ccs_strategy\\": String, case comparison strategy, one"," of the value names from ExprCaseCompareStrategy,"," stringified without \\"kCCStrategy\\" prefix. Only present"," for \\"Comparison\\" nodes."," • \\"augmentation\\": String, augmentation type for"," \\"Assignment\\" nodes. Is either an empty string, \\"Add\\","," \\"Subtract\\" or \\"Concat\\" for \\"=\\", \\"+=\\", \\"-=\\" or \\".=\\""," respectively."," • \\"invert\\": Boolean, true if result of comparison needs"," to be inverted. Only present for \\"Comparison\\" nodes."," • \\"ivalue\\": Integer, integer value for \\"Integer\\" nodes."," • \\"fvalue\\": Float, floating-point value for \\"Float\\""," nodes."," • \\"svalue\\": String, value for \\"SingleQuotedString\\" and"," \\"DoubleQuotedString\\" nodes."],"nvim_paste":[" Pastes at cursor, in any mode.",""," Invokes the `vim.paste` handler, which handles each mode"," appropriately. Sets redo/undo. Faster than |nvim_input()|."," Lines break at LF (\\"\\\\n\\").",""," Errors (\'nomodifiable\', `vim.paste()` failure, …) are"," reflected in `err` but do not affect the return value (which"," is strictly decided by `vim.paste()` ). On error, subsequent"," calls are ignored (\\"drained\\") until the next paste is"," initiated (phase 1 or -1).",""," Parameters: ~"," {data} Multiline input. May be binary (containing NUL"," bytes)."," {crlf} Also break lines at CR and CRLF."," {phase} -1: paste in a single call (i.e. without"," streaming). To \\"stream\\" a paste, call `nvim_paste` sequentially with these `phase` values:"," • 1: starts the paste (exactly once)"," • 2: continues the paste (zero or more times)"," • 3: ends the paste (exactly once)",""," Return: ~",""," • true: Client may continue pasting."," • false: Client must cancel the paste."],"nvim_put":[" Puts text at cursor, in any mode.",""," Compare |:put| and |p| which are always linewise.",""," Parameters: ~"," {lines} |readfile()|-style list of lines."," |channel-lines|"," {type} Edit behavior: any |getregtype()| result, or:"," • \\"b\\" |blockwise-visual| mode (may include"," width, e.g. \\"b3\\")"," • \\"c\\" |charwise| mode"," • \\"l\\" |linewise| mode"," • \\"\\" guess by contents, see |setreg()|"," {after} Insert after cursor (like |p|), or before (like"," |P|)."," {follow} Place cursor at end of inserted text.",""],"nvim_replace_termcodes":[" Replaces terminal codes and |keycodes| (<CR>, <Esc>, ...) in a"," string with the internal representation.",""," Parameters: ~"," {str} String to be converted."," {from_part} Legacy Vim parameter. Usually true."," {do_lt} Also translate <lt>. Ignored if `special` is"," false."," {special} Replace |keycodes|, e.g. <CR> becomes a \\"\\\\n\\""," char.",""," See also: ~"," replace_termcodes"," cpoptions",""],"nvim_select_popupmenu_item":[" Selects an item in the completion popupmenu.",""," If |ins-completion| is not active this API call is silently"," ignored. Useful for an external UI using |ui-popupmenu| to"," control the popupmenu with the mouse. Can also be used in a"," mapping; use <cmd> |:map-cmd| to ensure the mapping doesn\'t"," end completion mode.",""," Parameters: ~"," {item} Index (zero-based) of the item to select. Value"," of -1 selects nothing and restores the original"," text."," {insert} Whether the selection should be inserted in the"," buffer."," {finish} Finish the completion and dismiss the popupmenu."," Implies `insert` ."," {opts} Optional parameters. Reserved for future use.",""],"nvim_set_client_info":[" Self-identifies the client.",""," The client/plugin/application should call this after"," connecting, to provide hints about its identity and purpose,"," for debugging and orchestration.",""," Can be called more than once; the caller should merge old info"," if appropriate. Example: library first identifies the channel,"," then a plugin using that library later identifies itself.",""," Note:"," \\"Something is better than nothing\\". You don\'t need to"," include all the fields.",""," Parameters: ~"," {name} Short name for the connected client"," {version} Dictionary describing the version, with"," these (optional) keys:"," • \\"major\\" major version (defaults to 0 if"," not set, for no release yet)"," • \\"minor\\" minor version"," • \\"patch\\" patch number"," • \\"prerelease\\" string describing a"," prerelease, like \\"dev\\" or \\"beta1\\""," • \\"commit\\" hash or similar identifier of"," commit"," {type} Must be one of the following values. Client"," libraries should default to \\"remote\\" unless"," overridden by the user."," • \\"remote\\" remote client connected to Nvim."," • \\"ui\\" gui frontend"," • \\"embedder\\" application using Nvim as a"," component (for example, IDE/editor"," implementing a vim mode)."," • \\"host\\" plugin host, typically started by"," nvim"," • \\"plugin\\" single plugin, started by nvim"," {methods} Builtin methods in the client. For a host,"," this does not include plugin methods which"," will be discovered later. The key should be"," the method name, the values are dicts with"," these (optional) keys (more keys may be"," added in future versions of Nvim, thus"," unknown keys are ignored. Clients must only"," use keys defined in this or later versions"," of Nvim):"," • \\"async\\" if true, send as a notification."," If false or unspecified, use a blocking"," request"," • \\"nargs\\" Number of arguments. Could be a"," single integer or an array of two"," integers, minimum and maximum inclusive."," {attributes} Arbitrary string:string map of informal"," client properties. Suggested keys:"," • \\"website\\": Client homepage URL (e.g."," GitHub repository)"," • \\"license\\": License description (\\"Apache"," 2\\", \\"GPLv3\\", \\"MIT\\", …)"," • \\"logo\\": URI or path to image, preferably"," small logo or icon. .png or .svg format is"," preferred."],"nvim_set_current_buf":[" Sets the current buffer.",""," Parameters: ~"," {buffer} Buffer handle"],"nvim_set_current_dir":[" Changes the global working directory.",""," Parameters: ~"," {dir} Directory path"],"nvim_set_current_line":[" Sets the current line.",""," Parameters: ~"," {line} Line contents"],"nvim_set_current_tabpage":[" Sets the current tabpage.",""," Parameters: ~"," {tabpage} Tabpage handle"],"nvim_set_current_win":[" Sets the current window.",""," Parameters: ~"," {window} Window handle"],"nvim_set_keymap":[" Sets a global |mapping| for the given mode.",""," To set a buffer-local mapping, use |nvim_buf_set_keymap()|.",""," Unlike |:map|, leading/trailing whitespace is accepted as part"," of the {lhs} or {rhs}. Empty {rhs} is |<Nop>|. |keycodes| are"," replaced as usual.",""," Example: >"," call nvim_set_keymap(\'n\', \' <NL>\', \'\', {\'nowait\': v:true})","<",""," is equivalent to: >"," nmap <nowait> <Space><NL> <Nop>","<",""," Parameters: ~"," {mode} Mode short-name (map command prefix: \\"n\\", \\"i\\","," \\"v\\", \\"x\\", …) or \\"!\\" for |:map!|, or empty string"," for |:map|."," {lhs} Left-hand-side |{lhs}| of the mapping."," {rhs} Right-hand-side |{rhs}| of the mapping."," {opts} Optional parameters map. Accepts all"," |:map-arguments| as keys excluding |<buffer>| but"," including |noremap|. Values are Booleans. Unknown"," key is an error."],"nvim_set_option":[" Sets an option value.",""," Parameters: ~"," {name} Option name"," {value} New option value"],"nvim_set_var":[" Sets a global (g:) variable.",""," Parameters: ~"," {name} Variable name"," {value} Variable value"],"nvim_set_vvar":[" Sets a v: variable, if it is not readonly.",""," Parameters: ~"," {name} Variable name"," {value} Variable value"],"nvim_strwidth":[" Calculates the number of display cells occupied by `text` ."," <Tab> counts as one cell.",""," Parameters: ~"," {text} Some text",""," Return: ~"," Number of cells"],"nvim_subscribe":[" Subscribes to event broadcasts.",""," Parameters: ~"," {event} Event type string"],"nvim_unsubscribe":[" Unsubscribes to event broadcasts.",""," Parameters: ~"," {event} Event type string",""],"nvim__buf_redraw_range":[" TODO: Documentation"],"nvim__buf_set_luahl":[" Unstabilized interface for defining syntax hl in lua.",""," This is not yet safe for general use, lua callbacks will need"," to be restricted, like textlock and probably other stuff.",""," The API on_line/nvim__put_attr is quite raw and not intended"," to be the final shape. Ideally this should operate on chunks"," larger than a single line to reduce interpreter overhead, and"," generate annotation objects (bufhl/virttext) on the fly but"," using the same representation."],"nvim__buf_stats":[" TODO: Documentation",""],"nvim_buf_add_highlight":[" Adds a highlight to buffer.",""," Useful for plugins that dynamically generate highlights to a"," buffer (like a semantic highlighter or linter). The function"," adds a single highlight to a buffer. Unlike |matchaddpos()|"," highlights follow changes to line numbering (as lines are"," inserted/removed above the highlighted line), like signs and"," marks do.",""," Namespaces are used for batch deletion/updating of a set of"," highlights. To create a namespace, use |nvim_create_namespace|"," which returns a namespace id. Pass it in to this function as"," `ns_id` to add highlights to the namespace. All highlights in"," the same namespace can then be cleared with single call to"," |nvim_buf_clear_namespace|. If the highlight never will be"," deleted by an API call, pass `ns_id = -1` .",""," As a shorthand, `ns_id = 0` can be used to create a new"," namespace for the highlight, the allocated id is then"," returned. If `hl_group` is the empty string no highlight is"," added, but a new `ns_id` is still returned. This is supported"," for backwards compatibility, new code should use"," |nvim_create_namespace| to create a new empty namespace.",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer"," {ns_id} namespace to use or -1 for ungrouped"," highlight"," {hl_group} Name of the highlight group to use"," {line} Line to highlight (zero-indexed)"," {col_start} Start of (byte-indexed) column range to"," highlight"," {col_end} End of (byte-indexed) column range to"," highlight, or -1 to highlight to end of line",""," Return: ~"," The ns_id that was used"],"nvim_buf_attach":[" Activates buffer-update events on a channel, or as Lua"," callbacks.",""," Example (Lua): capture buffer updates in a global `events` variable (use \\"print(vim.inspect(events))\\" to see its"," contents): >"," events = {}"," vim.api.nvim_buf_attach(0, false, {"," on_lines=function(...) table.insert(events, {...}) end})","<",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer"," {send_buffer} True if the initial notification should"," contain the whole buffer: first"," notification will be `nvim_buf_lines_event`"," . Else the first notification will be"," `nvim_buf_changedtick_event` . Not for Lua"," callbacks."," {opts} Optional parameters."," • on_lines: Lua callback invoked on change."," Return`true`to detach. Args:"," • buffer handle"," • b:changedtick"," • first line that changed (zero-indexed)"," • last line that was changed"," • last line in the updated range"," • byte count of previous contents"," • deleted_codepoints (if `utf_sizes` is"," true)"," • deleted_codeunits (if `utf_sizes` is"," true)",""," • on_changedtick: Lua callback invoked on"," changedtick increment without text"," change. Args:"," • buffer handle"," • b:changedtick",""," • on_detach: Lua callback invoked on"," detach. Args:"," • buffer handle",""," • utf_sizes: include UTF-32 and UTF-16 size"," of the replaced region, as args to"," `on_lines` .",""," Return: ~"," False if attach failed (invalid parameter, or buffer isn\'t"," loaded); otherwise True. TODO: LUA_API_NO_EVAL",""," See also: ~"," |nvim_buf_detach()|"," |api-buffer-updates-lua|",""],"nvim_buf_clear_namespace":[" Clears namespaced objects (highlights, extmarks, virtual text)"," from a region.",""," Lines are 0-indexed. |api-indexing| To clear the namespace in"," the entire buffer, specify line_start=0 and line_end=-1.",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer"," {ns_id} Namespace to clear, or -1 to clear all"," namespaces."," {line_start} Start of range of lines to clear"," {line_end} End of range of lines to clear (exclusive)"," or -1 to clear to end of buffer."],"nvim_buf_del_extmark":[" Removes an extmark.",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer"," {ns_id} Namespace id from |nvim_create_namespace()|"," {id} Extmark id",""," Return: ~"," true if the extmark was found, else false"],"nvim_buf_del_keymap":[" Unmaps a buffer-local |mapping| for the given mode.",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer",""," See also: ~"," |nvim_del_keymap()|"],"nvim_buf_del_var":[" Removes a buffer-scoped (b:) variable",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer"," {name} Variable name"],"nvim_buf_detach":[" Deactivates buffer-update events on the channel.",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer",""," Return: ~"," False if detach failed (because the buffer isn\'t loaded);"," otherwise True.",""," See also: ~"," |nvim_buf_attach()|"," |api-lua-detach| for detaching Lua callbacks"],"nvim_buf_get_changedtick":[" Gets a changed tick of a buffer",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer",""," Return: ~"," `b:changedtick` value."],"nvim_buf_get_commands":[" Gets a map of buffer-local |user-commands|.",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer"," {opts} Optional parameters. Currently not used.",""," Return: ~"," Map of maps describing commands.",""],"nvim_buf_get_extmark_by_id":[" Returns position for a given extmark id",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer"," {ns_id} Namespace id from |nvim_create_namespace()|"," {id} Extmark id",""," Return: ~"," (row, col) tuple or empty list () if extmark id was absent",""],"nvim_buf_get_extmarks":[" Gets extmarks in \\"traversal order\\" from a |charwise| region"," defined by buffer positions (inclusive, 0-indexed"," |api-indexing|).",""," Region can be given as (row,col) tuples, or valid extmark ids"," (whose positions define the bounds). 0 and -1 are understood"," as (0,0) and (-1,-1) respectively, thus the following are"," equivalent:",">"," nvim_buf_get_extmarks(0, my_ns, 0, -1, {})"," nvim_buf_get_extmarks(0, my_ns, [0,0], [-1,-1], {})","<",""," If `end` is less than `start` , traversal works backwards."," (Useful with `limit` , to get the first marks prior to a given"," position.)",""," Example:",">"," local a = vim.api"," local pos = a.nvim_win_get_cursor(0)"," local ns = a.nvim_create_namespace(\'my-plugin\')"," -- Create new extmark at line 1, column 1."," local m1 = a.nvim_buf_set_extmark(0, ns, 0, 0, 0, {})"," -- Create new extmark at line 3, column 1."," local m2 = a.nvim_buf_set_extmark(0, ns, 0, 2, 0, {})"," -- Get extmarks only from line 3."," local ms = a.nvim_buf_get_extmarks(0, ns, {2,0}, {2,0}, {})"," -- Get all marks in this buffer + namespace."," local all = a.nvim_buf_get_extmarks(0, ns, 0, -1, {})"," print(vim.inspect(ms))","<",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer"," {ns_id} Namespace id from |nvim_create_namespace()|"," {start} Start of range, given as (row, col) or valid"," extmark id (whose position defines the bound)"," {end} End of range, given as (row, col) or valid"," extmark id (whose position defines the bound)"," {opts} Optional parameters. Keys:"," • limit: Maximum number of marks to return",""," Return: ~"," List of [extmark_id, row, col] tuples in \\"traversal"," order\\"."],"nvim_buf_get_keymap":[" Gets a list of buffer-local |mapping| definitions.",""," Parameters: ~"," {mode} Mode short-name (\\"n\\", \\"i\\", \\"v\\", ...)"," {buffer} Buffer handle, or 0 for current buffer",""," Return: ~"," Array of maparg()-like dictionaries describing mappings."," The \\"buffer\\" key holds the associated buffer handle.",""],"nvim_buf_get_lines":[" Gets a line-range from the buffer.",""," Indexing is zero-based, end-exclusive. Negative indices are"," interpreted as length+1+index: -1 refers to the index past the"," end. So to get the last element use start=-2 and end=-1.",""," Out-of-bounds indices are clamped to the nearest valid value,"," unless `strict_indexing` is set.",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer"," {start} First line index"," {end} Last line index (exclusive)"," {strict_indexing} Whether out-of-bounds should be an"," error.",""," Return: ~"," Array of lines, or empty array for unloaded buffer."],"nvim_buf_get_mark":[" Return a tuple (row,col) representing the position of the"," named mark.",""," Marks are (1,0)-indexed. |api-indexing|",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer"," {name} Mark name",""," Return: ~"," (row, col) tuple"],"nvim_buf_get_name":[" Gets the full file name for the buffer",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer",""," Return: ~"," Buffer name"],"nvim_buf_get_offset":[" Returns the byte offset of a line (0-indexed). |api-indexing|",""," Line 1 (index=0) has offset 0. UTF-8 bytes are counted. EOL is"," one byte. \'fileformat\' and \'fileencoding\' are ignored. The"," line index just after the last line gives the total byte-count"," of the buffer. A final EOL byte is counted if it would be"," written, see \'eol\'.",""," Unlike |line2byte()|, throws error for out-of-bounds indexing."," Returns -1 for unloaded buffer.",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer"," {index} Line index",""," Return: ~"," Integer byte offset, or -1 for unloaded buffer."],"nvim_buf_get_option":[" Gets a buffer option value",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer"," {name} Option name",""," Return: ~"," Option value"],"nvim_buf_get_var":[" Gets a buffer-scoped (b:) variable.",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer"," {name} Variable name",""," Return: ~"," Variable value",""],"nvim_buf_get_virtual_text":[" Get the virtual text (annotation) for a buffer line.",""," The virtual text is returned as list of lists, whereas the"," inner lists have either one or two elements. The first element"," is the actual text, the optional second element is the"," highlight group.",""," The format is exactly the same as given to"," nvim_buf_set_virtual_text().",""," If there is no virtual text associated with the given line, an"," empty list is returned.",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer"," {line} Line to get the virtual text from (zero-indexed)",""," Return: ~"," List of virtual text chunks"],"nvim_buf_is_loaded":[" Checks if a buffer is valid and loaded. See |api-buffer| for"," more info about unloaded buffers.",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer",""," Return: ~"," true if the buffer is valid and loaded, false otherwise."],"nvim_buf_is_valid":[" Checks if a buffer is valid.",""," Note:"," Even if a buffer is valid it may have been unloaded. See"," |api-buffer| for more info about unloaded buffers.",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer",""," Return: ~"," true if the buffer is valid, false otherwise."],"nvim_buf_line_count":[" Gets the buffer line count",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer",""," Return: ~"," Line count, or 0 for unloaded buffer. |api-buffer|",""],"nvim_buf_set_extmark":[" Creates or updates an extmark.",""," To create a new extmark, pass id=0. The extmark id will be"," returned. It is also allowed to create a new mark by passing"," in a previously unused id, but the caller must then keep track"," of existing and unused ids itself. (Useful over RPC, to avoid"," waiting for the return value.)",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer"," {ns_id} Namespace id from |nvim_create_namespace()|"," {id} Extmark id, or 0 to create new"," {line} Line number where to place the mark"," {col} Column where to place the mark"," {opts} Optional parameters. Currently not used.",""," Return: ~"," Id of the created/updated extmark",""],"nvim_buf_set_keymap":[" Sets a buffer-local |mapping| for the given mode.",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer",""," See also: ~"," |nvim_set_keymap()|",""],"nvim_buf_set_lines":[" Sets (replaces) a line-range in the buffer.",""," Indexing is zero-based, end-exclusive. Negative indices are"," interpreted as length+1+index: -1 refers to the index past the"," end. So to change or delete the last element use start=-2 and"," end=-1.",""," To insert lines at a given index, set `start` and `end` to the"," same index. To delete a range of lines, set `replacement` to"," an empty array.",""," Out-of-bounds indices are clamped to the nearest valid value,"," unless `strict_indexing` is set.",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer"," {start} First line index"," {end} Last line index (exclusive)"," {strict_indexing} Whether out-of-bounds should be an"," error."," {replacement} Array of lines to use as replacement"],"nvim_buf_set_name":[" Sets the full file name for a buffer",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer"," {name} Buffer name"],"nvim_buf_set_option":[" Sets a buffer option value. Passing \'nil\' as value deletes the"," option (only works if there\'s a global fallback)",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer"," {name} Option name"," {value} Option value"],"nvim_buf_set_var":[" Sets a buffer-scoped (b:) variable",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer"," {name} Variable name"," {value} Variable value",""],"nvim_buf_set_virtual_text":[" Set the virtual text (annotation) for a buffer line.",""," By default (and currently the only option) the text will be"," placed after the buffer text. Virtual text will never cause"," reflow, rather virtual text will be truncated at the end of"," the screen line. The virtual text will begin one cell"," (|lcs-eol| or space) after the ordinary text.",""," Namespaces are used to support batch deletion/updating of"," virtual text. To create a namespace, use"," |nvim_create_namespace|. Virtual text is cleared using"," |nvim_buf_clear_namespace|. The same `ns_id` can be used for"," both virtual text and highlights added by"," |nvim_buf_add_highlight|, both can then be cleared with a"," single call to |nvim_buf_clear_namespace|. If the virtual text"," never will be cleared by an API call, pass `ns_id = -1` .",""," As a shorthand, `ns_id = 0` can be used to create a new"," namespace for the virtual text, the allocated id is then"," returned.",""," Parameters: ~"," {buffer} Buffer handle, or 0 for current buffer"," {ns_id} Namespace to use or 0 to create a namespace, or"," -1 for a ungrouped annotation"," {line} Line to annotate with virtual text"," (zero-indexed)"," {chunks} A list of [text, hl_group] arrays, each"," representing a text chunk with specified"," highlight. `hl_group` element can be omitted for"," no highlight."," {opts} Optional parameters. Currently not used.",""," Return: ~"," The ns_id that was used",""],"nvim_win_close":[" Closes the window (like |:close| with a |window-ID|).",""," Parameters: ~"," {window} Window handle, or 0 for current window"," {force} Behave like `:close!` The last window of a"," buffer with unwritten changes can be closed. The"," buffer will become hidden, even if \'hidden\' is"," not set."],"nvim_win_del_var":[" Removes a window-scoped (w:) variable",""," Parameters: ~"," {window} Window handle, or 0 for current window"," {name} Variable name"],"nvim_win_get_buf":[" Gets the current buffer in a window",""," Parameters: ~"," {window} Window handle, or 0 for current window",""," Return: ~"," Buffer handle"],"nvim_win_get_config":[" Gets window configuration.",""," The returned value may be given to |nvim_open_win()|.",""," `relative` is empty for normal windows.",""," Parameters: ~"," {window} Window handle, or 0 for current window",""," Return: ~"," Map defining the window configuration, see"," |nvim_open_win()|"],"nvim_win_get_cursor":[" Gets the (1,0)-indexed cursor position in the window."," |api-indexing|",""," Parameters: ~"," {window} Window handle, or 0 for current window",""," Return: ~"," (row, col) tuple"],"nvim_win_get_height":[" Gets the window height",""," Parameters: ~"," {window} Window handle, or 0 for current window",""," Return: ~"," Height as a count of rows"],"nvim_win_get_number":[" Gets the window number",""," Parameters: ~"," {window} Window handle, or 0 for current window",""," Return: ~"," Window number"],"nvim_win_get_option":[" Gets a window option value",""," Parameters: ~"," {window} Window handle, or 0 for current window"," {name} Option name",""," Return: ~"," Option value"],"nvim_win_get_position":[" Gets the window position in display cells. First position is"," zero.",""," Parameters: ~"," {window} Window handle, or 0 for current window",""," Return: ~"," (row, col) tuple with the window position"],"nvim_win_get_tabpage":[" Gets the window tabpage",""," Parameters: ~"," {window} Window handle, or 0 for current window",""," Return: ~"," Tabpage that contains the window"],"nvim_win_get_var":[" Gets a window-scoped (w:) variable",""," Parameters: ~"," {window} Window handle, or 0 for current window"," {name} Variable name",""," Return: ~"," Variable value"],"nvim_win_get_width":[" Gets the window width",""," Parameters: ~"," {window} Window handle, or 0 for current window",""," Return: ~"," Width as a count of columns"],"nvim_win_is_valid":[" Checks if a window is valid",""," Parameters: ~"," {window} Window handle, or 0 for current window",""," Return: ~"," true if the window is valid, false otherwise"],"nvim_win_set_buf":[" Sets the current buffer in a window, without side-effects",""," Parameters: ~"," {window} Window handle, or 0 for current window"," {buffer} Buffer handle"],"nvim_win_set_config":[" Configures window layout. Currently only for floating and"," external windows (including changing a split window to those"," layouts).",""," When reconfiguring a floating window, absent option keys will"," not be changed. `row` / `col` and `relative` must be"," reconfigured together.",""," Parameters: ~"," {window} Window handle, or 0 for current window"," {config} Map defining the window configuration, see"," |nvim_open_win()|",""," See also: ~"," |nvim_open_win()|"],"nvim_win_set_cursor":[" Sets the (1,0)-indexed cursor position in the window."," |api-indexing|",""," Parameters: ~"," {window} Window handle, or 0 for current window"," {pos} (row, col) tuple representing the new position"],"nvim_win_set_height":[" Sets the window height. This will only succeed if the screen"," is split horizontally.",""," Parameters: ~"," {window} Window handle, or 0 for current window"," {height} Height as a count of rows"],"nvim_win_set_option":[" Sets a window option value. Passing \'nil\' as value deletes the"," option(only works if there\'s a global fallback)",""," Parameters: ~"," {window} Window handle, or 0 for current window"," {name} Option name"," {value} Option value"],"nvim_win_set_var":[" Sets a window-scoped (w:) variable",""," Parameters: ~"," {window} Window handle, or 0 for current window"," {name} Variable name"," {value} Variable value"],"nvim_win_set_width":[" Sets the window width. This will only succeed if the screen is"," split vertically.",""," Parameters: ~"," {window} Window handle, or 0 for current window"," {width} Width as a count of columns",""],"nvim_tabpage_del_var":[" Removes a tab-scoped (t:) variable",""," Parameters: ~"," {tabpage} Tabpage handle, or 0 for current tabpage"," {name} Variable name"],"nvim_tabpage_get_number":[" Gets the tabpage number",""," Parameters: ~"," {tabpage} Tabpage handle, or 0 for current tabpage",""," Return: ~"," Tabpage number"],"nvim_tabpage_get_var":[" Gets a tab-scoped (t:) variable",""," Parameters: ~"," {tabpage} Tabpage handle, or 0 for current tabpage"," {name} Variable name",""," Return: ~"," Variable value"],"nvim_tabpage_get_win":[" Gets the current window in a tabpage",""," Parameters: ~"," {tabpage} Tabpage handle, or 0 for current tabpage",""," Return: ~"," Window handle"],"nvim_tabpage_is_valid":[" Checks if a tabpage is valid",""," Parameters: ~"," {tabpage} Tabpage handle, or 0 for current tabpage",""," Return: ~"," true if the tabpage is valid, false otherwise"],"nvim_tabpage_list_wins":[" Gets the windows in a tabpage",""," Parameters: ~"," {tabpage} Tabpage handle, or 0 for current tabpage",""," Return: ~"," List of windows in `tabpage`",""],"nvim_tabpage_set_var":[" Sets a tab-scoped (t:) variable",""," Parameters: ~"," {tabpage} Tabpage handle, or 0 for current tabpage"," {name} Variable name"," {value} Variable value",""],"nvim_ui_attach":[" Activates UI events on the channel.",""," Entry point of all UI clients. Allows |--embed| to continue"," startup. Implies that the client is ready to show the UI. Adds"," the client to the list of UIs. |nvim_list_uis()|",""," Note:"," If multiple UI clients are attached, the global screen"," dimensions degrade to the smallest client. E.g. if client"," A requests 80x40 but client B requests 200x100, the global"," screen has size 80x40.",""," Parameters: ~"," {width} Requested screen columns"," {height} Requested screen rows"," {options} |ui-option| map"],"nvim_ui_detach":[" Deactivates UI events on the channel.",""," Removes the client from the list of UIs. |nvim_list_uis()|"],"nvim_ui_pum_set_height":[" Tells Nvim the number of elements displaying in the popumenu,"," to decide <PageUp> and <PageDown> movement.",""," Parameters: ~"," {height} Popupmenu height, must be greater than zero."],"nvim_ui_set_option":[" TODO: Documentation"],"nvim_ui_try_resize":[" TODO: Documentation",""],"nvim_ui_try_resize_grid":[" Tell Nvim to resize a grid. Triggers a grid_resize event with"," the requested grid size or the maximum size if it exceeds size"," limits.",""," On invalid grid handle, fails with error.",""," Parameters: ~"," {grid} The handle of the grid to be changed."," {width} The new requested width."," {height} The new requested height."],"balloon_gettext":["\\t\\tReturn the current text in the balloon. Only for the string,","\\t\\tnot used for the List."],"balloon_show":["\\t\\tShow {expr} inside the balloon. For the GUI {expr} is used as","\\t\\ta string. For a terminal {expr} can be a list, which contains","\\t\\tthe lines of the balloon. If {expr} is not a list it will be","\\t\\tsplit with |balloon_split()|.","\\t\\tIf {expr} is an empty string any existing balloon is removed.","","\\t\\tExample: >","\\t\\t\\tfunc GetBalloonContent()","\\t\\t\\t \\" ... initiate getting the content","\\t\\t\\t return \'\'","\\t\\t\\tendfunc","\\t\\t\\tset balloonexpr=GetBalloonContent()","","\\t\\t\\tfunc BalloonCallback(result)","\\t\\t\\t call balloon_show(a:result)","\\t\\t\\tendfunc","<\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetText()->balloon_show()","<","\\t\\tThe intended use is that fetching the content of the balloon","\\t\\tis initiated from \'balloonexpr\'. It will invoke an","\\t\\tasynchronous method, in which a callback invokes","\\t\\tballoon_show(). The \'balloonexpr\' itself can return an","\\t\\tempty string or a placeholder.","","\\t\\tWhen showing a balloon is not possible nothing happens, no","\\t\\terror message.","\\t\\t{only available when compiled with the |+balloon_eval| or","\\t\\t|+balloon_eval_term| feature}"],"balloon_split":["\\t\\tSplit {msg} into lines to be displayed in a balloon. The","\\t\\tsplits are made for the current window size and optimize to","\\t\\tshow debugger output.","\\t\\tReturns a |List| with the split lines.","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetText()->balloon_split()->balloon_show()","","<\\t\\t{only available when compiled with the |+balloon_eval_term|","\\t\\tfeature}",""],"ch_canread":["\\t\\tReturn non-zero when there is something to read from {handle}.","\\t\\t{handle} can be a Channel or a Job that has a Channel.","","\\t\\tThis is useful to read from a channel at a convenient time,","\\t\\te.g. from a timer.","","\\t\\tNote that messages are dropped when the channel does not have","\\t\\ta callback. Add a close callback to avoid that.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetChannel()->ch_canread()"],"ch_close":["\\t\\tClose {handle}. See |channel-close|.","\\t\\t{handle} can be a Channel or a Job that has a Channel.","\\t\\tA close callback is not invoked.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetChannel()->ch_close()"],"ch_close_in":["\\t\\tClose the \\"in\\" part of {handle}. See |channel-close-in|.","\\t\\t{handle} can be a Channel or a Job that has a Channel.","\\t\\tA close callback is not invoked.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetChannel()->ch_close_in()",""],"ch_evalexpr":["\\t\\tSend {expr} over {handle}. The {expr} is encoded","\\t\\taccording to the type of channel. The function cannot be used","\\t\\twith a raw channel. See |channel-use|.","\\t\\t{handle} can be a Channel or a Job that has a Channel.","\\t\\t\\t\\t\\t\\t\\t\\t*E917*","\\t\\t{options} must be a Dictionary. It must not have a \\"callback\\"","\\t\\tentry. It can have a \\"timeout\\" entry to specify the timeout","\\t\\tfor this specific request.","","\\t\\tch_evalexpr() waits for a response and returns the decoded","\\t\\texpression. When there is an error or timeout it returns an","\\t\\tempty string.","","\\t\\tNote that while waiting for the response, Vim handles other","\\t\\tmessages. You need to make sure this doesn\'t cause trouble.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetChannel()->ch_evalexpr(expr)",""],"ch_evalraw":["\\t\\tSend {string} over {handle}.","\\t\\t{handle} can be a Channel or a Job that has a Channel.","","\\t\\tWorks like |ch_evalexpr()|, but does not encode the request or","\\t\\tdecode the response. The caller is responsible for the","\\t\\tcorrect contents. Also does not add a newline for a channel","\\t\\tin NL mode, the caller must do that. The NL in the response","\\t\\tis removed.","\\t\\tNote that Vim does not know when the text received on a raw","\\t\\tchannel is complete, it may only return the first part and you","\\t\\tneed to use |ch_readraw()| to fetch the rest.","\\t\\tSee |channel-use|.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetChannel()->ch_evalraw(rawstring)"],"ch_getbufnr":["\\t\\tGet the buffer number that {handle} is using for {what}.","\\t\\t{handle} can be a Channel or a Job that has a Channel.","\\t\\t{what} can be \\"err\\" for stderr, \\"out\\" for stdout or empty for","\\t\\tsocket output.","\\t\\tReturns -1 when there is no buffer.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetChannel()->ch_getbufnr(what)"],"ch_getjob":["\\t\\tGet the Job associated with {channel}.","\\t\\tIf there is no job calling |job_status()| on the returned Job","\\t\\twill result in \\"fail\\".","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetChannel()->ch_getjob()",""],"ch_info":["\\t\\tReturns a Dictionary with information about {handle}. The","\\t\\titems are:","\\t\\t \\"id\\"\\t\\t number of the channel","\\t\\t \\"status\\"\\t \\"open\\", \\"buffered\\" or \\"closed\\", like","\\t\\t\\t\\t ch_status()","\\t\\tWhen opened with ch_open():","\\t\\t \\"hostname\\"\\t the hostname of the address","\\t\\t \\"port\\"\\t the port of the address","\\t\\t \\"sock_status\\" \\"open\\" or \\"closed\\"","\\t\\t \\"sock_mode\\"\\t \\"NL\\", \\"RAW\\", \\"JSON\\" or \\"JS\\"","\\t\\t \\"sock_io\\"\\t \\"socket\\"","\\t\\t \\"sock_timeout\\" timeout in msec","\\t\\tWhen opened with job_start():","\\t\\t \\"out_status\\"\\t \\"open\\", \\"buffered\\" or \\"closed\\"","\\t\\t \\"out_mode\\"\\t \\"NL\\", \\"RAW\\", \\"JSON\\" or \\"JS\\"","\\t\\t \\"out_io\\"\\t \\"null\\", \\"pipe\\", \\"file\\" or \\"buffer\\"","\\t\\t \\"out_timeout\\" timeout in msec","\\t\\t \\"err_status\\"\\t \\"open\\", \\"buffered\\" or \\"closed\\"","\\t\\t \\"err_mode\\"\\t \\"NL\\", \\"RAW\\", \\"JSON\\" or \\"JS\\"","\\t\\t \\"err_io\\"\\t \\"out\\", \\"null\\", \\"pipe\\", \\"file\\" or \\"buffer\\"","\\t\\t \\"err_timeout\\" timeout in msec","\\t\\t \\"in_status\\"\\t \\"open\\" or \\"closed\\"","\\t\\t \\"in_mode\\"\\t \\"NL\\", \\"RAW\\", \\"JSON\\" or \\"JS\\"","\\t\\t \\"in_io\\"\\t \\"null\\", \\"pipe\\", \\"file\\" or \\"buffer\\"","\\t\\t \\"in_timeout\\"\\t timeout in msec","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetChannel()->ch_info()",""],"ch_log":["\\t\\tWrite {msg} in the channel log file, if it was opened with","\\t\\t|ch_logfile()|.","\\t\\tWhen {handle} is passed the channel number is used for the","\\t\\tmessage.","\\t\\t{handle} can be a Channel or a Job that has a Channel. The","\\t\\tChannel must be open for the channel number to be used.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\t\'did something\'->ch_log()",""],"ch_logfile":["\\t\\tStart logging channel activity to {fname}.","\\t\\tWhen {fname} is an empty string: stop logging.","","\\t\\tWhen {mode} is omitted or \\"a\\" append to the file.","\\t\\tWhen {mode} is \\"w\\" start with an empty file.","","\\t\\tUse |ch_log()| to write log messages. The file is flushed","\\t\\tafter every message, on Unix you can use \\"tail -f\\" to see what","\\t\\tis going on in real time.","","\\t\\tThis function is not available in the |sandbox|.","\\t\\tNOTE: the channel communication is stored in the file, be","\\t\\taware that this may contain confidential and privacy sensitive","\\t\\tinformation, e.g. a password you type in a terminal window.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\t\'logfile\'->ch_logfile(\'w\')",""],"ch_open":["\\t\\tOpen a channel to {address}. See |channel|.","\\t\\tReturns a Channel. Use |ch_status()| to check for failure.","","\\t\\t{address} has the form \\"hostname:port\\", e.g.,","\\t\\t\\"localhost:8765\\".","","\\t\\tIf {options} is given it must be a |Dictionary|.","\\t\\tSee |channel-open-options|.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetAddress()->ch_open()",""],"ch_read":["\\t\\tRead from {handle} and return the received message.","\\t\\t{handle} can be a Channel or a Job that has a Channel.","\\t\\tFor a NL channel this waits for a NL to arrive, except when","\\t\\tthere is nothing more to read (channel was closed).","\\t\\tSee |channel-more|.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetChannel()->ch_read()",""],"ch_readblob":["\\t\\tLike ch_read() but reads binary data and returns a |Blob|.","\\t\\tSee |channel-more|.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetChannel()->ch_readblob()",""],"ch_readraw":["\\t\\tLike ch_read() but for a JS and JSON channel does not decode","\\t\\tthe message. For a NL channel it does not block waiting for","\\t\\tthe NL to arrive, but otherwise works like ch_read().","\\t\\tSee |channel-more|.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetChannel()->ch_readraw()",""],"ch_sendexpr":["\\t\\tSend {expr} over {handle}. The {expr} is encoded","\\t\\taccording to the type of channel. The function cannot be used","\\t\\twith a raw channel.","\\t\\tSee |channel-use|.\\t\\t\\t\\t*E912*","\\t\\t{handle} can be a Channel or a Job that has a Channel.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetChannel()->ch_sendexpr(expr)",""],"ch_sendraw":["\\t\\tSend |String| or |Blob| {expr} over {handle}.","\\t\\tWorks like |ch_sendexpr()|, but does not encode the request or","\\t\\tdecode the response. The caller is responsible for the","\\t\\tcorrect contents. Also does not add a newline for a channel","\\t\\tin NL mode, the caller must do that. The NL in the response","\\t\\tis removed.","\\t\\tSee |channel-use|.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetChannel()->ch_sendraw(rawexpr)",""],"ch_setoptions":["\\t\\tSet options on {handle}:","\\t\\t\\t\\"callback\\"\\tthe channel callback","\\t\\t\\t\\"timeout\\"\\tdefault read timeout in msec","\\t\\t\\t\\"mode\\"\\t\\tmode for the whole channel","\\t\\tSee |ch_open()| for more explanation.","\\t\\t{handle} can be a Channel or a Job that has a Channel.","","\\t\\tNote that changing the mode may cause queued messages to be","\\t\\tlost.","","\\t\\tThese options cannot be changed:","\\t\\t\\t\\"waittime\\"\\tonly applies to |ch_open()|","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetChannel()->ch_setoptions(options)",""],"ch_status":["\\t\\tReturn the status of {handle}:","\\t\\t\\t\\"fail\\"\\t\\tfailed to open the channel","\\t\\t\\t\\"open\\"\\t\\tchannel can be used","\\t\\t\\t\\"buffered\\"\\tchannel can be read, not written to","\\t\\t\\t\\"closed\\"\\tchannel can not be used","\\t\\t{handle} can be a Channel or a Job that has a Channel.","\\t\\t\\"buffered\\" is used when the channel was closed but there is","\\t\\tstill data that can be obtained with |ch_read()|.","","\\t\\tIf {options} is given it can contain a \\"part\\" entry to specify","\\t\\tthe part of the channel to return the status for: \\"out\\" or","\\t\\t\\"err\\". For example, to get the error status: >","\\t\\t\\tch_status(job, {\\"part\\": \\"err\\"})","<","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetChannel()->ch_status()"],"chdir":["\\t\\tChange the current working directory to {dir}. The scope of","\\t\\tthe directory change depends on the directory of the current","\\t\\twindow:","\\t\\t\\t- If the current window has a window-local directory","\\t\\t\\t (|:lcd|), then changes the window local directory.","\\t\\t\\t- Otherwise, if the current tabpage has a local","\\t\\t\\t directory (|:tcd|) then changes the tabpage local","\\t\\t\\t directory.","\\t\\t\\t- Otherwise, changes the global directory.","\\t\\tIf successful, returns the previous working directory. Pass","\\t\\tthis to another chdir() to restore the directory.","\\t\\tOn failure, returns an empty string.","","\\t\\tExample: >","\\t\\t\\tlet save_dir = chdir(newdir)","\\t\\t\\tif save_dir != \\"\\"","\\t\\t\\t \\" ... do some work","\\t\\t\\t call chdir(save_dir)","\\t\\t\\tendif","","<\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetDir()->chdir()"],"getimstatus":["\\t\\tThe result is a Number, which is |TRUE| when the IME status is","\\t\\tactive.","\\t\\tSee \'imstatusfunc\'."],"getmousepos":["\\t\\tReturns a Dictionary with the last known position of the","\\t\\tmouse. This can be used in a mapping for a mouse click or in","\\t\\ta filter of a popup window. The items are:","\\t\\t\\tscreenrow\\tscreen row","\\t\\t\\tscreencol\\tscreen column","\\t\\t\\twinid\\t\\tWindow ID of the click","\\t\\t\\twinrow\\t\\trow inside \\"winid\\"","\\t\\t\\twincol\\t\\tcolumn inside \\"winid\\"","\\t\\t\\tline\\t\\ttext line inside \\"winid\\"","\\t\\t\\tcolumn\\t\\ttext column inside \\"winid\\"","\\t\\tAll numbers are 1-based.","","\\t\\tIf not over a window, e.g. when in the command line, then only","\\t\\t\\"screenrow\\" and \\"screencol\\" are valid, the others are zero.","","\\t\\tWhen on the status line below a window or the vertical","\\t\\tseparater right of a window, the \\"line\\" and \\"column\\" values","\\t\\tare zero.","","\\t\\tWhen the position is after the text then \\"column\\" is the","\\t\\tlength of the text in bytes.","","\\t\\tIf the mouse is over a popup window then that window is used.","","","\\t\\tWhen using |getchar()| the Vim variables |v:mouse_lnum|,","\\t\\t|v:mouse_col| and |v:mouse_winid| also provide these values.",""],"inputdialog":["\\t\\tLike |input()|, but when the GUI is running and text dialogs","\\t\\tare supported, a dialog window pops up to input the text.","\\t\\tExample: >","\\t\\t :let n = inputdialog(\\"value for shiftwidth\\", shiftwidth())","\\t\\t :if n != \\"\\"","\\t\\t : let &sw = n","\\t\\t :endif","<\\t\\tWhen the dialog is cancelled {cancelreturn} is returned. When","\\t\\tomitted an empty string is returned.","\\t\\tHitting <Enter> works like pressing the OK button. Hitting","\\t\\t<Esc> works like pressing the Cancel button.","\\t\\tNOTE: Command-line completion is not supported.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetPrompt()->inputdialog()"],"interrupt":["\\t\\tInterrupt script execution. It works more or less like the","\\t\\tuser typing CTRL-C, most commands won\'t execute and control","\\t\\treturns to the user. This is useful to abort execution","\\t\\tfrom lower down, e.g. in an autocommand. Example: >","\\t\\t:function s:check_typoname(file)","\\t\\t: if fnamemodify(a:file, \':t\') == \'[\'","\\t\\t: echomsg \'Maybe typo\'","\\t\\t: call interrupt()","\\t\\t: endif","\\t\\t:endfunction","\\t\\t:au BufWritePre * call s:check_typoname(expand(\'<amatch>\'))"],"job_getchannel":["\\t\\tGet the channel handle that {job} is using.","\\t\\tTo check if the job has no channel: >","\\t\\t\\tif string(job_getchannel()) == \'channel fail\'","<","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetJob()->job_getchannel()"],"job_info":["\\t\\tReturns a Dictionary with information about {job}:","\\t\\t \\"status\\"\\twhat |job_status()| returns","\\t\\t \\"channel\\"\\twhat |job_getchannel()| returns","\\t\\t \\"cmd\\"\\tList of command arguments used to start the job","\\t\\t \\"process\\"\\tprocess ID","\\t\\t \\"tty_in\\"\\tterminal input name, empty when none","\\t\\t \\"tty_out\\"\\tterminal output name, empty when none","\\t\\t \\"exitval\\"\\tonly valid when \\"status\\" is \\"dead\\"","\\t\\t \\"exit_cb\\"\\tfunction to be called on exit","\\t\\t \\"stoponexit\\"\\t|job-stoponexit|","","\\t\\t Only in Unix:","\\t\\t \\"termsig\\"\\tthe signal which terminated the process","\\t\\t\\t\\t(See |job_stop()| for the values)","\\t\\t\\t\\tonly valid when \\"status\\" is \\"dead\\"","","\\t\\t Only in MS-Windows:","\\t\\t \\"tty_type\\"\\tType of virtual console in use.","\\t\\t\\t\\tValues are \\"winpty\\" or \\"conpty\\".","\\t\\t\\t\\tSee \'termwintype\'.","","\\t\\tWithout any arguments, returns a List with all Job objects.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetJob()->job_info()",""],"job_setoptions":["\\t\\tChange options for {job}. Supported are:","\\t\\t \\"stoponexit\\"\\t|job-stoponexit|","\\t\\t \\"exit_cb\\"\\t|job-exit_cb|","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetJob()->job_setoptions(options)",""],"job_start":["\\t\\tStart a job and return a Job object. Unlike |system()| and","\\t\\t|:!cmd| this does not wait for the job to finish.","\\t\\tTo start a job in a terminal window see |term_start()|.","","\\t\\tIf the job fails to start then |job_status()| on the returned","\\t\\tJob object results in \\"fail\\" and none of the callbacks will be","\\t\\tinvoked.","","\\t\\t{command} can be a String. This works best on MS-Windows. On","\\t\\tUnix it is split up in white-separated parts to be passed to","\\t\\texecvp(). Arguments in double quotes can contain white space.","","\\t\\t{command} can be a List, where the first item is the executable","\\t\\tand further items are the arguments. All items are converted","\\t\\tto String. This works best on Unix.","","\\t\\tOn MS-Windows, job_start() makes a GUI application hidden. If","\\t\\twant to show it, Use |:!start| instead.","","\\t\\tThe command is executed directly, not through a shell, the","\\t\\t\'shell\' option is not used. To use the shell: >","\\tlet job = job_start([\\"/bin/sh\\", \\"-c\\", \\"echo hello\\"])","<\\t\\tOr: >","\\tlet job = job_start(\'/bin/sh -c \\"echo hello\\"\')","<\\t\\tNote that this will start two processes, the shell and the","\\t\\tcommand it executes. If you don\'t want this use the \\"exec\\"","\\t\\tshell command.","","\\t\\tOn Unix $PATH is used to search for the executable only when","\\t\\tthe command does not contain a slash.","","\\t\\tThe job will use the same terminal as Vim. If it reads from","\\t\\tstdin the job and Vim will be fighting over input, that","\\t\\tdoesn\'t work. Redirect stdin and stdout to avoid problems: >","\\tlet job = job_start([\'sh\', \'-c\', \\"myserver </dev/null >/dev/null\\"])","<","\\t\\tThe returned Job object can be used to get the status with","\\t\\t|job_status()| and stop the job with |job_stop()|.","","\\t\\tNote that the job object will be deleted if there are no","\\t\\treferences to it. This closes the stdin and stderr, which may","\\t\\tcause the job to fail with an error. To avoid this keep a","\\t\\treference to the job. Thus instead of: >","\\tcall job_start(\'my-command\')","<\\t\\tuse: >","\\tlet myjob = job_start(\'my-command\')","<\\t\\tand unlet \\"myjob\\" once the job is not needed or is past the","\\t\\tpoint where it would fail (e.g. when it prints a message on","\\t\\tstartup). Keep in mind that variables local to a function","\\t\\twill cease to exist if the function returns. Use a","\\t\\tscript-local variable if needed: >","\\tlet s:myjob = job_start(\'my-command\')","<","\\t\\t{options} must be a Dictionary. It can contain many optional","\\t\\titems, see |job-options|.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tBuildCommand()->job_start()",""],"job_status":["\\t\\tReturns a String with the status of {job}:","\\t\\t\\t\\"run\\"\\tjob is running","\\t\\t\\t\\"fail\\"\\tjob failed to start","\\t\\t\\t\\"dead\\"\\tjob died or was stopped after running","","\\t\\tOn Unix a non-existing command results in \\"dead\\" instead of","\\t\\t\\"fail\\", because a fork happens before the failure can be","\\t\\tdetected.","","\\t\\tIf an exit callback was set with the \\"exit_cb\\" option and the","\\t\\tjob is now detected to be \\"dead\\" the callback will be invoked.","","\\t\\tFor more information see |job_info()|.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetJob()->job_status()",""],"job_stop":["\\t\\tStop the {job}. This can also be used to signal the job.","","\\t\\tWhen {how} is omitted or is \\"term\\" the job will be terminated.","\\t\\tFor Unix SIGTERM is sent. On MS-Windows the job will be","\\t\\tterminated forcedly (there is no \\"gentle\\" way).","\\t\\tThis goes to the process group, thus children may also be","\\t\\taffected.","","\\t\\tEffect for Unix:","\\t\\t\\t\\"term\\"\\t SIGTERM (default)","\\t\\t\\t\\"hup\\"\\t SIGHUP","\\t\\t\\t\\"quit\\"\\t SIGQUIT","\\t\\t\\t\\"int\\"\\t SIGINT","\\t\\t\\t\\"kill\\"\\t SIGKILL (strongest way to stop)","\\t\\t\\tnumber\\t signal with that number","","\\t\\tEffect for MS-Windows:","\\t\\t\\t\\"term\\"\\t terminate process forcedly (default)","\\t\\t\\t\\"hup\\"\\t CTRL_BREAK","\\t\\t\\t\\"quit\\"\\t CTRL_BREAK","\\t\\t\\t\\"int\\"\\t CTRL_C","\\t\\t\\t\\"kill\\"\\t terminate process forcedly","\\t\\t\\tOthers\\t CTRL_BREAK","","\\t\\tOn Unix the signal is sent to the process group. This means","\\t\\tthat when the job is \\"sh -c command\\" it affects both the shell","\\t\\tand the command.","","\\t\\tThe result is a Number: 1 if the operation could be executed,","\\t\\t0 if \\"how\\" is not supported on the system.","\\t\\tNote that even when the operation was executed, whether the","\\t\\tjob was actually stopped needs to be checked with","\\t\\t|job_status()|.","","\\t\\tIf the status of the job is \\"dead\\", the signal will not be","\\t\\tsent. This is to avoid to stop the wrong job (esp. on Unix,","\\t\\twhere process numbers are recycled).","","\\t\\tWhen using \\"kill\\" Vim will assume the job will die and close","\\t\\tthe channel.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetJob()->job_stop()",""],"js_decode":["\\t\\tThis is similar to |json_decode()| with these differences:","\\t\\t- Object key names do not have to be in quotes.","\\t\\t- Strings can be in single quotes.","\\t\\t- Empty items in an array (between two commas) are allowed and","\\t\\t result in v:none items.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tReadObject()->js_decode()"],"js_encode":["\\t\\tThis is similar to |json_encode()| with these differences:","\\t\\t- Object key names are not in quotes.","\\t\\t- v:none items in an array result in an empty item between","\\t\\t commas.","\\t\\tFor example, the Vim object:","\\t\\t\\t[1,v:none,{\\"one\\":1},v:none] ~","\\t\\tWill be encoded as:","\\t\\t\\t[1,,{one:1},,] ~","\\t\\tWhile json_encode() would produce:","\\t\\t\\t[1,null,{\\"one\\":1},null] ~","\\t\\tThis encoding is valid for JavaScript. It is more efficient","\\t\\tthan JSON, especially when using an array with optional items.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetObject()->js_encode()"],"listener_add":["\\t\\tAdd a callback function that will be invoked when changes have","\\t\\tbeen made to buffer {buf}.","\\t\\t{buf} refers to a buffer name or number. For the accepted","\\t\\tvalues, see |bufname()|. When {buf} is omitted the current","\\t\\tbuffer is used.","\\t\\tReturns a unique ID that can be passed to |listener_remove()|.","","\\t\\tThe {callback} is invoked with five arguments:","\\t\\t a:bufnr\\tthe buffer that was changed","\\t\\t a:start\\tfirst changed line number","\\t\\t a:end\\tfirst line number below the change","\\t\\t a:added\\tnumber of lines added, negative if lines were","\\t\\t\\t\\tdeleted","\\t\\t a:changes\\ta List of items with details about the changes","","\\t\\tExample: >","\\t func Listener(bufnr, start, end, added, changes)","\\t echo \'lines \' .. a:start .. \' until \' .. a:end .. \' changed\'","\\t endfunc","\\t call listener_add(\'Listener\', bufnr)","","<\\t\\tThe List cannot be changed. Each item in a:changes is a","\\t\\tdictionary with these entries:","\\t\\t lnum\\tthe first line number of the change","\\t\\t end\\t\\tthe first line below the change","\\t\\t added\\tnumber of lines added; negative if lines were","\\t\\t\\t\\tdeleted","\\t\\t col\\t\\tfirst column in \\"lnum\\" that was affected by","\\t\\t\\t\\tthe change; one if unknown or the whole line","\\t\\t\\t\\twas affected; this is a byte index, first","\\t\\t\\t\\tcharacter has a value of one.","\\t\\tWhen lines are inserted the values are:","\\t\\t lnum\\tline above which the new line is added","\\t\\t end\\t\\tequal to \\"lnum\\"","\\t\\t added\\tnumber of lines inserted","\\t\\t col\\t\\t1","\\t\\tWhen lines are deleted the values are:","\\t\\t lnum\\tthe first deleted line","\\t\\t end\\t\\tthe line below the first deleted line, before","\\t\\t\\t\\tthe deletion was done","\\t\\t added\\tnegative, number of lines deleted","\\t\\t col\\t\\t1","\\t\\tWhen lines are changed:","\\t\\t lnum\\tthe first changed line","\\t\\t end\\t\\tthe line below the last changed line","\\t\\t added\\t0","\\t\\t col\\t\\tfirst column with a change or 1","","\\t\\tThe entries are in the order the changes were made, thus the","\\t\\tmost recent change is at the end. The line numbers are valid","\\t\\twhen the callback is invoked, but later changes may make them","\\t\\tinvalid, thus keeping a copy for later might not work.","","\\t\\tThe {callback} is invoked just before the screen is updated,","\\t\\twhen |listener_flush()| is called or when a change is being","\\t\\tmade that changes the line count in a way it causes a line","\\t\\tnumber in the list of changes to become invalid.","","\\t\\tThe {callback} is invoked with the text locked, see","\\t\\t|textlock|. If you do need to make changes to the buffer, use","\\t\\ta timer to do this later |timer_start()|.","","\\t\\tThe {callback} is not invoked when the buffer is first loaded.","\\t\\tUse the |BufReadPost| autocmd event to handle the initial text","\\t\\tof a buffer.","\\t\\tThe {callback} is also not invoked when the buffer is","\\t\\tunloaded, use the |BufUnload| autocmd event for that.","","\\t\\tCan also be used as a |method|, the base is passed as the","\\t\\tsecond argument: >","\\t\\t\\tGetBuffer()->listener_add(callback)"],"listener_flush":["\\t\\tInvoke listener callbacks for buffer {buf}. If there are no","\\t\\tpending changes then no callbacks are invoked.","","\\t\\t{buf} refers to a buffer name or number. For the accepted","\\t\\tvalues, see |bufname()|. When {buf} is omitted the current","\\t\\tbuffer is used.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetBuffer()->listener_flush()"],"listener_remove":["\\t\\tRemove a listener previously added with listener_add().","\\t\\tReturns zero when {id} could not be found, one when {id} was","\\t\\tremoved.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetListenerId()->listener_remove()"],"mzeval":["\\t\\tEvaluate MzScheme expression {expr} and return its result","\\t\\tconverted to Vim data structures.","\\t\\tNumbers and strings are returned as they are.","\\t\\tPairs (including lists and improper lists) and vectors are","\\t\\treturned as Vim |Lists|.","\\t\\tHash tables are represented as Vim |Dictionary| type with keys","\\t\\tconverted to strings.","\\t\\tAll other types are converted to string with display function.","\\t\\tExamples: >","\\t\\t :mz (define l (list 1 2 3))","\\t\\t :mz (define h (make-hash)) (hash-set! h \\"list\\" l)","\\t\\t :echo mzeval(\\"l\\")","\\t\\t :echo mzeval(\\"h\\")","<","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetExpr()->mzeval()","<","\\t\\t{only available when compiled with the |+mzscheme| feature}"],"perleval":["\\t\\tEvaluate Perl expression {expr} in scalar context and return","\\t\\tits result converted to Vim data structures. If value can\'t be","\\t\\tconverted, it is returned as a string Perl representation.","\\t\\tNote: If you want an array or hash, {expr} must return a","\\t\\treference to it.","\\t\\tExample: >","\\t\\t\\t:echo perleval(\'[1 .. 4]\')","<\\t\\t\\t[1, 2, 3, 4]","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetExpr()->perleval()","","<\\t\\t{only available when compiled with the |+perl| feature}","","","popup_ functions are documented here: |popup-functions|.",""],"popup_atcursor":["\\t\\tShow the {what} above the cursor, and close it when the cursor","\\t\\tmoves. This works like: >","\\t\\t\\tcall popup_create({what}, #{","\\t\\t\\t\\t\\\\ pos: \'botleft\',","\\t\\t\\t\\t\\\\ line: \'cursor-1\',","\\t\\t\\t\\t\\\\ col: \'cursor\',","\\t\\t\\t\\t\\\\ moved: \'WORD\',","\\t\\t\\t\\t\\\\ })","<\\t\\tUse {options} to change the properties.","\\t\\tIf \\"pos\\" is passed as \\"topleft\\" then the default for \\"line\\"","\\t\\tbecomes \\"cursor+1\\".","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetText()->popup_atcursor({})",""],"popup_beval":["\\t\\tShow the {what} above the position from \'ballooneval\' and","\\t\\tclose it when the mouse moves. This works like: >","\\t\\t let pos = screenpos(v:beval_winnr, v:beval_lnum, v:beval_col)","\\t\\t call popup_create({what}, #{","\\t\\t\\t\\\\ pos: \'botleft\',","\\t\\t\\t\\\\ line: pos.row - 1,","\\t\\t\\t\\\\ col: pos.col,","\\t\\t\\t\\\\ mousemoved: \'WORD\',","\\t\\t\\t\\\\ })","<\\t\\tUse {options} to change the properties.","\\t\\tSee |popup_beval_example| for an example.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetText()->popup_beval({})","<"],"popup_clear":["\\t\\twindows for the current tab and global popups.",""],"popup_close":["\\t\\tClose popup {id}. The window and the associated buffer will","\\t\\tbe deleted.","","\\t\\tIf the popup has a callback it will be called just before the","\\t\\tpopup window is deleted. If the optional {result} is present","\\t\\tit will be passed as the second argument of the callback.","\\t\\tOtherwise zero is passed to the callback.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetPopup()->popup_close()"],"popup_create":["\\t\\tOpen a popup window showing {what}, which is either:","\\t\\t- a buffer number","\\t\\t- a string","\\t\\t- a list of strings","\\t\\t- a list of text lines with text properties","\\t\\tWhen {what} is not a buffer number, a buffer is created with","\\t\\t\'buftype\' set to \\"popup\\". That buffer will be wiped out once","\\t\\tthe popup closes.","","\\t\\t{options} is a dictionary with many possible entries.","\\t\\tSee |popup_create-arguments| for details.","","\\t\\tReturns a window-ID, which can be used with other popup","\\t\\tfunctions. Use `winbufnr()` to get the number of the buffer","\\t\\tin the window: >","\\t\\t\\tlet winid = popup_create(\'hello\', {})","\\t\\t\\tlet bufnr = winbufnr(winid)","\\t\\t\\tcall setbufline(bufnr, 2, \'second line\')","<\\t\\tIn case of failure zero is returned.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetText()->popup_create({})"],"popup_dialog":["\\t\\tJust like |popup_create()| but with these default options: >","\\t\\t\\tcall popup_create({what}, #{","\\t\\t\\t\\t\\\\ pos: \'center\',","\\t\\t\\t\\t\\\\ zindex: 200,","\\t\\t\\t\\t\\\\ drag: 1,","\\t\\t\\t\\t\\\\ border: [],","\\t\\t\\t\\t\\\\ padding: [],","\\t\\t\\t\\t\\\\ mapping: 0,","\\t\\t\\t\\t\\\\})","<\\t\\tUse {options} to change the properties. E.g. add a \'filter\'","\\t\\toption with value \'popup_filter_yesno\'. Example: >","\\t\\t\\tcall popup_create(\'do you want to quit (Yes/no)?\', #{","\\t\\t\\t\\t\\\\ filter: \'popup_filter_yesno\',","\\t\\t\\t\\t\\\\ callback: \'QuitCallback\',","\\t\\t\\t\\t\\\\ })","","<\\t\\tBy default the dialog can be dragged, so that text below it","\\t\\tcan be read if needed.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetText()->popup_dialog({})"],"popup_filter_menu":["\\t\\tFilter that can be used for a popup. These keys can be used:","\\t\\t j <Down>\\t\\tselect item below","\\t\\t k <Up>\\t\\tselect item above","\\t\\t <Space> <Enter>\\taccept current selection","\\t\\t x Esc CTRL-C\\tcancel the menu","\\t\\tOther keys are ignored.","","\\t\\tA match is set on that line to highlight it, see","\\t\\t|popup_menu()|.","","\\t\\tWhen the current selection is accepted the \\"callback\\" of the","\\t\\tpopup menu is invoked with the index of the selected line as","\\t\\tthe second argument. The first entry has index one.","\\t\\tCancelling the menu invokes the callback with -1.","","\\t\\tTo add shortcut keys, see the example here:","\\t\\t|popup_menu-shortcut-example|",""],"popup_filter_yesno":["\\t\\tFilter that can be used for a popup. It handles only the keys","\\t\\t\'y\', \'Y\' and \'n\' or \'N\'. Invokes the \\"callback\\" of the","\\t\\tpopup menu with the 1 for \'y\' or \'Y\' and zero for \'n\' or \'N\'","\\t\\tas the second argument. Pressing Esc and \'x\' works like","\\t\\tpressing \'n\'. CTRL-C invokes the callback with -1. Other","\\t\\tkeys are ignored.","\\t\\tSee the example here: |popup_dialog-example|",""],"popup_findinfo":["\\t\\tGet the |window-ID| for the popup info window, as it used by","\\t\\tthe popup menu. See |complete-popup|. The info popup is","\\t\\thidden when not used, it can be deleted with |popup_clear()|","\\t\\tand |popup_close()|. Use |popup_show()| to reposition it to","\\t\\tthe item in the popup menu.","\\t\\tReturns zero if there is none.",""],"popup_findpreview":["\\t\\tGet the |window-ID| for the popup preview window.","\\t\\tReturn zero if there is none.",""],"popup_getoptions":["\\t\\tReturn the {options} for popup {id} in a Dict.","\\t\\tA zero value means the option was not set. For \\"zindex\\" the","\\t\\tdefault value is returned, not zero.","","\\t\\tThe \\"moved\\" entry is a list with line number, minimum and","\\t\\tmaximum column, [0, 0, 0] when not set.","","\\t\\tThe \\"mousemoved\\" entry is a list with screen row, minimum and","\\t\\tmaximum screen column, [0, 0, 0] when not set.","","\\t\\t\\"firstline\\" is the property set on the popup, unlike the","\\t\\t\\"firstline\\" obtained with |popup_getpos()| which is the actual","\\t\\tbuffer line at the top of the popup window.","","\\t\\t\\"border\\" and \\"padding\\" are not included when all values are","\\t\\tzero. When all values are one then an empty list is included.","","\\t\\t\\"borderhighlight\\" is not included when all values are empty.","\\t\\t\\"scrollbarhighlight\\" and \\"thumbhighlight\\" are only included","\\t\\twhen set.","","\\t\\t\\"tabpage\\" will be -1 for a global popup, zero for a popup on","\\t\\tthe current tabpage and a positive number for a popup on","\\t\\tanother tabpage.","","\\t\\t\\"textprop\\", \\"textpropid\\" and \\"textpropwin\\" are only present","\\t\\twhen \\"textprop\\" was set.","","\\t\\tIf popup window {id} is not found an empty Dict is returned.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetPopup()->popup_getoptions()"],"popup_getpos":["\\t\\tReturn the position and size of popup {id}. Returns a Dict","\\t\\twith these entries:","\\t\\t col\\t\\tscreen column of the popup, one-based","\\t\\t line\\tscreen line of the popup, one-based","\\t\\t width\\twidth of the whole popup in screen cells","\\t\\t height\\theight of the whole popup in screen cells","\\t\\t core_col\\tscreen column of the text box","\\t\\t core_line\\tscreen line of the text box","\\t\\t core_width\\twidth of the text box in screen cells","\\t\\t core_height\\theight of the text box in screen cells","\\t\\t firstline\\tline of the buffer at top (1 unless scrolled)","\\t\\t\\t\\t(not the value of the \\"firstline\\" property)","\\t\\t lastline\\tline of the buffer at the bottom (updated when","\\t\\t\\t\\tthe popup is redrawn)","\\t\\t scrollbar\\tnon-zero if a scrollbar is displayed","\\t\\t visible\\tone if the popup is displayed, zero if hidden","\\t\\tNote that these are the actual screen positions. They differ","\\t\\tfrom the values in `popup_getoptions()` for the sizing and","\\t\\tpositioning mechanism applied.","","\\t\\tThe \\"core_\\" values exclude the padding and border.","","\\t\\tIf popup window {id} is not found an empty Dict is returned.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetPopup()->popup_getpos()"],"popup_hide":["\\t\\tIf {id} is a displayed popup, hide it now. If the popup has a","\\t\\tfilter it will not be invoked for so long as the popup is","\\t\\thidden.","\\t\\tIf window {id} does not exist nothing happens. If window {id}","\\t\\texists but is not a popup window an error is given. *E993*","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetPopup()->popup_hide()"],"popup_menu":["\\t\\tShow the {what} near the cursor, handle selecting one of the","\\t\\titems with cursorkeys, and close it an item is selected with","\\t\\tSpace or Enter. {what} should have multiple lines to make this","\\t\\tuseful. This works like: >","\\t\\t\\tcall popup_create({what}, #{","\\t\\t\\t\\t\\\\ pos: \'center\',","\\t\\t\\t\\t\\\\ zindex: 200,","\\t\\t\\t\\t\\\\ drag: 1,","\\t\\t\\t\\t\\\\ wrap: 0,","\\t\\t\\t\\t\\\\ border: [],","\\t\\t\\t\\t\\\\ cursorline: 1,","\\t\\t\\t\\t\\\\ padding: [0,1,0,1],","\\t\\t\\t\\t\\\\ filter: \'popup_filter_menu\',","\\t\\t\\t\\t\\\\ mapping: 0,","\\t\\t\\t\\t\\\\ })","<\\t\\tThe current line is highlighted with a match using","\\t\\t\\"PopupSelected\\", or \\"PmenuSel\\" if that is not defined.","","\\t\\tUse {options} to change the properties. Should at least set","\\t\\t\\"callback\\" to a function that handles the selected item.","\\t\\tExample: >","\\t\\t\\tfunc ColorSelected(id, result)","\\t\\t\\t \\" use a:result","\\t\\t\\tendfunc","\\t\\t\\tcall popup_menu([\'red\', \'green\', \'blue\'], #{","\\t\\t\\t\\t\\\\ callback: \'ColorSelected\',","\\t\\t\\t\\t\\\\ })","","<\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetChoices()->popup_menu({})"],"popup_move":["\\t\\tMove popup {id} to the position specified with {options}.","\\t\\t{options} may contain the items from |popup_create()| that","\\t\\tspecify the popup position:","\\t\\t\\tline","\\t\\t\\tcol","\\t\\t\\tpos","\\t\\t\\tmaxheight","\\t\\t\\tminheight","\\t\\t\\tmaxwidth","\\t\\t\\tminwidth","\\t\\t\\tfixed","\\t\\tFor {id} see `popup_hide()`.","\\t\\tFor other options see |popup_setoptions()|.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetPopup()->popup_move(options)"],"popup_notification":["\\t\\tShow the {what} for 3 seconds at the top of the Vim window.","\\t\\tThis works like: >","\\t\\t\\tcall popup_create({what}, #{","\\t\\t\\t\\t\\\\ line: 1,","\\t\\t\\t\\t\\\\ col: 10,","\\t\\t\\t\\t\\\\ minwidth: 20,","\\t\\t\\t\\t\\\\ time: 3000,","\\t\\t\\t\\t\\\\ tabpage: -1,","\\t\\t\\t\\t\\\\ zindex: 300,","\\t\\t\\t\\t\\\\ drag: 1,","\\t\\t\\t\\t\\\\ highlight: \'WarningMsg\',","\\t\\t\\t\\t\\\\ border: [],","\\t\\t\\t\\t\\\\ close: \'click\',","\\t\\t\\t\\t\\\\ padding: [0,1,0,1],","\\t\\t\\t\\t\\\\ })","<\\t\\tThe PopupNotification highlight group is used instead of","\\t\\tWarningMsg if it is defined.","","\\t\\tWithout the |+timers| feature the popup will not disappear","\\t\\tautomatically, the user has to click in it.","","\\t\\tThe position will be adjusted to avoid overlap with other","\\t\\tnotifications.","\\t\\tUse {options} to change the properties.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetText()->popup_notification({})"],"popup_show":["\\t\\tIf {id} is a hidden popup, show it now.","\\t\\tFor {id} see `popup_hide()`.","\\t\\tIf {id} is the info popup it will be positioned next to the","\\t\\tcurrent popup menu item.",""],"popup_setoptions":["\\t\\tOverride options in popup {id} with entries in {options}.","\\t\\tThese options can be set:","\\t\\t\\tborder","\\t\\t\\tborderchars","\\t\\t\\tborderhighlight","\\t\\t\\tcallback","\\t\\t\\tclose","\\t\\t\\tcursorline","\\t\\t\\tdrag","\\t\\t\\tfilter","\\t\\t\\tfirstline","\\t\\t\\tflip","\\t\\t\\thighlight","\\t\\t\\tmapping","\\t\\t\\tmask","\\t\\t\\tmoved","\\t\\t\\tpadding","\\t\\t\\tresize","\\t\\t\\tscrollbar","\\t\\t\\tscrollbarhighlight","\\t\\t\\tthumbhighlight","\\t\\t\\ttime","\\t\\t\\ttitle","\\t\\t\\twrap","\\t\\t\\tzindex","\\t\\tThe options from |popup_move()| can also be used.","\\t\\tFor \\"hidden\\" use |popup_hide()| and |popup_show()|.","\\t\\t\\"tabpage\\" cannot be changed.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetPopup()->popup_setoptions(options)"],"popup_settext":["\\t\\tSet the text of the buffer in popup win {id}. {text} is the","\\t\\tsame as supplied to |popup_create()|, except that a buffer","\\t\\tnumber is not allowed.","\\t\\tDoes not change the window size or position, other than caused","\\t\\tby the different text.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetPopup()->popup_settext(\'hello\')"],"prop_add":["\\t\\tAttach a text property at position {lnum}, {col}. {col} is","\\t\\tcounted in bytes, use one for the first column.","\\t\\tIf {lnum} is invalid an error is given. *E966*","\\t\\tIf {col} is invalid an error is given. *E964*","","\\t\\t{props} is a dictionary with these fields:","\\t\\t length\\tlength of text in bytes, can only be used","\\t\\t\\t\\tfor a property that does not continue in","\\t\\t\\t\\tanother line; can be zero","\\t\\t end_lnum\\tline number for the end of text","\\t\\t end_col\\tcolumn just after the text; not used when","\\t\\t\\t\\t\\"length\\" is present; when {col} and \\"end_col\\"","\\t\\t\\t\\tare equal, and \\"end_lnum\\" is omitted or equal","\\t\\t\\t\\tto {lnum}, this is a zero-width text property","\\t\\t bufnr\\tbuffer to add the property to; when omitted","\\t\\t\\t\\tthe current buffer is used","\\t\\t id\\t\\tuser defined ID for the property; when omitted","\\t\\t\\t\\tzero is used","\\t\\t type\\t\\tname of the text property type","\\t\\tAll fields except \\"type\\" are optional.","","\\t\\tIt is an error when both \\"length\\" and \\"end_lnum\\" or \\"end_col\\"","\\t\\tare given. Either use \\"length\\" or \\"end_col\\" for a property","\\t\\twithin one line, or use \\"end_lnum\\" and \\"end_col\\" for a","\\t\\tproperty that spans more than one line.","\\t\\tWhen neither \\"length\\" nor \\"end_col\\" are given the property","\\t\\twill be zero-width. That means it will not be highlighted but","\\t\\twill move with the text, as a kind of mark.","\\t\\tThe property can end exactly at the last character of the","\\t\\ttext, or just after it. In the last case, if text is appended","\\t\\tto the line, the text property size will increase, also when","\\t\\tthe property type does not have \\"end_incl\\" set.","","\\t\\t\\"type\\" will first be looked up in the buffer the property is","\\t\\tadded to. When not found, the global property types are used.","\\t\\tIf not found an error is given.","","\\t\\tSee |text-properties| for information about text properties.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetLnum()->prop_add(col, props)",""],"prop_clear":["\\t\\tRemove all text properties from line {lnum}.","\\t\\tWhen {lnum-end} is given, remove all text properties from line","\\t\\t{lnum} to {lnum-end} (inclusive).","","\\t\\tWhen {props} contains a \\"bufnr\\" item use this buffer,","\\t\\totherwise use the current buffer.","","\\t\\tSee |text-properties| for information about text properties.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetLnum()->prop_clear()","<"],"prop_find":["\\t\\t{not implemented yet}","\\t\\tSearch for a text property as specified with {props}:","\\t\\t id\\t\\tproperty with this ID","\\t\\t type\\t\\tproperty with this type name","\\t\\t bufnr\\tbuffer to search in; when present a","\\t\\t\\t\\tstart position with \\"lnum\\" and \\"col\\"","\\t\\t\\t\\tmust be given; when omitted the","\\t\\t\\t\\tcurrent buffer is used","\\t\\t lnum\\t\\tstart in this line (when omitted start","\\t\\t\\t\\tat the cursor)","\\t\\t col\\t\\tstart at this column (when omitted","\\t\\t\\t\\tand \\"lnum\\" is given: use column 1,","\\t\\t\\t\\totherwise start at the cursor)","\\t\\t skipstart\\tdo not look for a match at the start","\\t\\t\\t\\tposition","","\\t\\t{direction} can be \\"f\\" for forward and \\"b\\" for backward. When","\\t\\tomitted forward search is performed.","","\\t\\tIf a match is found then a Dict is returned with the entries","\\t\\tas with prop_list(), and additionally an \\"lnum\\" entry.","\\t\\tIf no match is found then an empty Dict is returned.","","\\t\\tSee |text-properties| for information about text properties.",""],"prop_list":["\\t\\tReturn a List with all text properties in line {lnum}.","","\\t\\tWhen {props} contains a \\"bufnr\\" item, use this buffer instead","\\t\\tof the current buffer.","","\\t\\tThe properties are ordered by starting column and priority.","\\t\\tEach property is a Dict with these entries:","\\t\\t col\\t\\tstarting column","\\t\\t length\\tlength in bytes, one more if line break is","\\t\\t\\t\\tincluded","\\t\\t id\\t\\tproperty ID","\\t\\t type\\t\\tname of the property type, omitted if","\\t\\t\\t\\tthe type was deleted","\\t\\t start\\twhen TRUE property starts in this line","\\t\\t end\\t\\twhen TRUE property ends in this line","","\\t\\tWhen \\"start\\" is zero the property started in a previous line,","\\t\\tthe current one is a continuation.","\\t\\tWhen \\"end\\" is zero the property continues in the next line.","\\t\\tThe line break after this line is included.","","\\t\\tSee |text-properties| for information about text properties.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetLnum()->prop_list()","<"],"prop_remove":["\\t\\tRemove a matching text property from line {lnum}. When","\\t\\t{lnum-end} is given, remove matching text properties from line","\\t\\t{lnum} to {lnum-end} (inclusive).","\\t\\tWhen {lnum} is omitted remove matching text properties from","\\t\\tall lines.","","\\t\\t{props} is a dictionary with these fields:","\\t\\t id\\t\\tremove text properties with this ID","\\t\\t type\\t\\tremove text properties with this type name","\\t\\t bufnr\\tuse this buffer instead of the current one","\\t\\t all\\t\\twhen TRUE remove all matching text properties,","\\t\\t\\t\\tnot just the first one","\\t\\tA property matches when either \\"id\\" or \\"type\\" matches.","\\t\\tIf buffer \\"bufnr\\" does not exist you get an error message.","\\t\\tIf buffer \\"bufnr\\" is not loaded then nothing happens.","","\\t\\tReturns the number of properties that were removed.","","\\t\\tSee |text-properties| for information about text properties.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetProps()->prop_remove()",""],"prop_type_add":["\\t\\tAdd a text property type {name}. If a property type with this","\\t\\tname already exists an error is given. Nothing is returned.","\\t\\t{props} is a dictionary with these optional fields:","\\t\\t bufnr\\tdefine the property only for this buffer; this","\\t\\t\\t\\tavoids name collisions and automatically","\\t\\t\\t\\tclears the property types when the buffer is","\\t\\t\\t\\tdeleted.","\\t\\t highlight\\tname of highlight group to use","\\t\\t priority\\twhen a character has multiple text","\\t\\t\\t\\tproperties the one with the highest priority","\\t\\t\\t\\twill be used; negative values can be used, the","\\t\\t\\t\\tdefault priority is zero","\\t\\t combine\\twhen TRUE combine the highlight with any","\\t\\t\\t\\tsyntax highlight; when omitted or FALSE syntax","\\t\\t\\t\\thighlight will not be used","\\t\\t start_incl\\twhen TRUE inserts at the start position will","\\t\\t\\t\\tbe included in the text property","\\t\\t end_incl\\twhen TRUE inserts at the end position will be","\\t\\t\\t\\tincluded in the text property","","\\t\\tSee |text-properties| for information about text properties.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetPropName()->prop_type_add(props)"],"prop_type_change":["\\t\\tChange properties of an existing text property type. If a","\\t\\tproperty with this name does not exist an error is given.","\\t\\tThe {props} argument is just like |prop_type_add()|.","","\\t\\tSee |text-properties| for information about text properties.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetPropName()->prop_type_change(props)"],"prop_type_delete":["\\t\\tRemove the text property type {name}. When text properties","\\t\\tusing the type {name} are still in place, they will not have","\\t\\tan effect and can no longer be removed by name.","","\\t\\t{props} can contain a \\"bufnr\\" item. When it is given, delete","\\t\\ta property type from this buffer instead of from the global","\\t\\tproperty types.","","\\t\\tWhen text property type {name} is not found there is no error.","","\\t\\tSee |text-properties| for information about text properties.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetPropName()->prop_type_delete()"],"prop_type_get":["\\t\\tReturns the properties of property type {name}. This is a","\\t\\tdictionary with the same fields as was given to","\\t\\tprop_type_add().","\\t\\tWhen the property type {name} does not exist, an empty","\\t\\tdictionary is returned.","","\\t\\t{props} can contain a \\"bufnr\\" item. When it is given, use","\\t\\tthis buffer instead of the global property types.","","\\t\\tSee |text-properties| for information about text properties.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetPropName()->prop_type_get()"],"prop_type_list":["\\t\\tReturns a list with all property type names.","","\\t\\t{props} can contain a \\"bufnr\\" item. When it is given, use","\\t\\tthis buffer instead of the global property types.","","\\t\\tSee |text-properties| for information about text properties.",""],"rand":["\\t\\tReturn a pseudo-random Number generated with an xoshiro128**","\\t\\talgorithm using seed {expr}. The returned number is 32 bits,","\\t\\talso on 64 bits systems, for consistency.","\\t\\t{expr} can be initialized by |srand()| and will be updated by","\\t\\trand(). If {expr} is omitted, an internal seed value is used","\\t\\tand updated.","","\\t\\tExamples: >","\\t\\t\\t:echo rand()","\\t\\t\\t:let seed = srand()","\\t\\t\\t:echo rand(seed)","\\t\\t\\t:echo rand(seed) % 16 \\" random number 0 - 15","<"],"rubyeval":["\\t\\tEvaluate Ruby expression {expr} and return its result","\\t\\tconverted to Vim data structures.","\\t\\tNumbers, floats and strings are returned as they are (strings","\\t\\tare copied though).","\\t\\tArrays are represented as Vim |List| type.","\\t\\tHashes are represented as Vim |Dictionary| type.","\\t\\tOther objects are represented as strings resulted from their","\\t\\t\\"Object#to_s\\" method.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetRubyExpr()->rubyeval()","","<\\t\\t{only available when compiled with the |+ruby| feature}"],"screenchars":["\\t\\tThe result is a List of Numbers. The first number is the same","\\t\\tas what |screenchar()| returns. Further numbers are","\\t\\tcomposing characters on top of the base character.","\\t\\tThis is mainly to be used for testing.","\\t\\tReturns an empty List when row or col is out of range.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetRow()->screenchars(col)"],"screenstring":["\\t\\tThe result is a String that contains the base character and","\\t\\tany composing characters at position [row, col] on the screen.","\\t\\tThis is like |screenchars()| but returning a String with the","\\t\\tcharacters.","\\t\\tThis is mainly to be used for testing.","\\t\\tReturns an empty String when row or col is out of range.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetRow()->screenstring(col)"],"sound_clear":["\\t\\tStop playing all sounds.","\\t\\t{only available when compiled with the |+sound| feature}",""],"sound_playevent":["\\t\\tPlay a sound identified by {name}. Which event names are","\\t\\tsupported depends on the system. Often the XDG sound names","\\t\\tare used. On Ubuntu they may be found in","\\t\\t/usr/share/sounds/freedesktop/stereo. Example: >","\\t\\t\\tcall sound_playevent(\'bell\')","<\\t\\tOn MS-Windows, {name} can be SystemAsterisk, SystemDefault,","\\t\\tSystemExclamation, SystemExit, SystemHand, SystemQuestion,","\\t\\tSystemStart, SystemWelcome, etc.","","\\t\\tWhen {callback} is specified it is invoked when the sound is","\\t\\tfinished. The first argument is the sound ID, the second","\\t\\targument is the status:","\\t\\t\\t0\\tsound was played to the end","\\t\\t\\t1\\tsound was interrupted","\\t\\t\\t2\\terror occurred after sound started","\\t\\tExample: >","\\t\\t func Callback(id, status)","\\t\\t echomsg \\"sound \\" .. a:id .. \\" finished with \\" .. a:status","\\t\\t endfunc","\\t\\t call sound_playevent(\'bell\', \'Callback\')","","<\\t\\tMS-Windows: {callback} doesn\'t work for this function.","","\\t\\tReturns the sound ID, which can be passed to `sound_stop()`.","\\t\\tReturns zero if the sound could not be played.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetSoundName()->sound_playevent()","","<\\t\\t{only available when compiled with the |+sound| feature}",""],"sound_playfile":["\\t\\tLike `sound_playevent()` but play sound file {path}. {path}","\\t\\tmust be a full path. On Ubuntu you may find files to play","\\t\\twith this command: >","\\t\\t :!find /usr/share/sounds -type f | grep -v index.theme","","<\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetSoundPath()->sound_playfile()","","<\\t\\t{only available when compiled with the |+sound| feature}",""],"sound_stop":["\\t\\tStop playing sound {id}. {id} must be previously returned by","\\t\\t`sound_playevent()` or `sound_playfile()`.","","\\t\\tOn MS-Windows, this does not work for event sound started by","\\t\\t`sound_playevent()`. To stop event sounds, use `sound_clear()`.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tsoundid->sound_stop()","","<\\t\\t{only available when compiled with the |+sound| feature}",""],"srand":["\\t\\tInitialize seed used by |rand()|:","\\t\\t- If {expr} is not given, seed values are initialized by","\\t\\t reading from /dev/urandom, if possible, or using time(NULL)","\\t\\t a.k.a. epoch time otherwise; this only has second accuracy.","\\t\\t- If {expr} is given it must be a Number. It is used to","\\t\\t initialize the seed values. This is useful for testing or","\\t\\t when a predictable sequence is intended.","","\\t\\tExamples: >","\\t\\t\\t:let seed = srand()","\\t\\t\\t:let seed = srand(userinput)","\\t\\t\\t:echo rand(seed)"],"state":["\\t\\tReturn a string which contains characters indicating the","\\t\\tcurrent state. Mostly useful in callbacks that want to do","\\t\\twork that may not always be safe. Roughly this works like:","\\t\\t- callback uses state() to check if work is safe to do.","\\t\\t Yes: then do it right away.","\\t\\t No: add to work queue and add a |SafeState| and/or","\\t\\t |SafeStateAgain| autocommand (|SafeState| triggers at","\\t\\t toplevel, |SafeStateAgain| triggers after handling","\\t\\t messages and callbacks).","\\t\\t- When SafeState or SafeStateAgain is triggered and executes","\\t\\t your autocommand, check with `state()` if the work can be","\\t\\t done now, and if yes remove it from the queue and execute.","\\t\\t Remove the autocommand if the queue is now empty.","\\t\\tAlso see |mode()|.","","\\t\\tWhen {what} is given only characters in this string will be","\\t\\tadded. E.g, this checks if the screen has scrolled: >","\\t\\t\\tif state(\'s\') == \'\'","\\t\\t\\t \\" screen has not scrolled","<","\\t\\tThese characters indicate the state, generally indicating that","\\t\\tsomething is busy:","\\t\\t m\\thalfway a mapping, :normal command, feedkeys() or","\\t\\t\\tstuffed command","\\t\\t o\\toperator pending or waiting for a command argument,","\\t\\t e.g. after |f|","\\t\\t a\\tInsert mode autocomplete active","\\t\\t x\\texecuting an autocommand","\\t\\t w\\tblocked on waiting, e.g. ch_evalexpr(), ch_read() and","\\t\\t\\tch_readraw() when reading json.","\\t\\t S\\tnot triggering SafeState or SafeStateAgain","\\t\\t c\\tcallback invoked, including timer (repeats for","\\t\\t\\trecursiveness up to \\"ccc\\")","\\t\\t s\\tscreen has scrolled for messages"],"strptime":["\\t\\tThe result is a Number, which is a unix timestamp representing","\\t\\tthe date and time in {timestring}, which is expected to match","\\t\\tthe format specified in {format}.","","\\t\\tThe accepted {format} depends on your system, thus this is not","\\t\\tportable! See the manual page of the C function strptime()","\\t\\tfor the format. Especially avoid \\"%c\\". The value of $TZ also","\\t\\tmatters.","","\\t\\tIf the {timestring} cannot be parsed with {format} zero is","\\t\\treturned. If you do not know the format of {timestring} you","\\t\\tcan try different {format} values until you get a non-zero","\\t\\tresult.","","\\t\\tSee also |strftime()|.","\\t\\tExamples: >","\\t\\t :echo strptime(\\"%Y %b %d %X\\", \\"1997 Apr 27 11:49:23\\")","<\\t\\t 862156163 >","\\t\\t :echo strftime(\\"%c\\", strptime(\\"%y%m%d %T\\", \\"970427 11:53:55\\"))","<\\t\\t Sun Apr 27 11:53:55 1997 >","\\t\\t :echo strftime(\\"%c\\", strptime(\\"%Y%m%d%H%M%S\\", \\"19970427115355\\") + 3600)","<\\t\\t Sun Apr 27 12:53:55 1997","","\\t\\tNot available on all systems. To check use: >","\\t\\t\\t:if exists(\\"*strptime\\")",""],"term_dumpdiff":["\\t\\tOpen a new window displaying the difference between the two","\\t\\tfiles. The files must have been created with","\\t\\t|term_dumpwrite()|.","\\t\\tReturns the buffer number or zero when the diff fails.","\\t\\tAlso see |terminal-diff|.","\\t\\tNOTE: this does not work with double-width characters yet.","","\\t\\tThe top part of the buffer contains the contents of the first","\\t\\tfile, the bottom part of the buffer contains the contents of","\\t\\tthe second file. The middle part shows the differences.","\\t\\tThe parts are separated by a line of equals.","","\\t\\tIf the {options} argument is present, it must be a Dict with","\\t\\tthese possible members:","\\t\\t \\"term_name\\"\\t name to use for the buffer name, instead","\\t\\t\\t\\t of the first file name.","\\t\\t \\"term_rows\\"\\t vertical size to use for the terminal,","\\t\\t\\t\\t instead of using \'termwinsize\'","\\t\\t \\"term_cols\\"\\t horizontal size to use for the terminal,","\\t\\t\\t\\t instead of using \'termwinsize\'","\\t\\t \\"vertical\\"\\t split the window vertically","\\t\\t \\"curwin\\"\\t use the current window, do not split the","\\t\\t\\t\\t window; fails if the current buffer","\\t\\t\\t\\t cannot be |abandon|ed","\\t\\t \\"bufnr\\"\\t do not create a new buffer, use the","\\t\\t\\t\\t existing buffer \\"bufnr\\". This buffer","\\t\\t\\t\\t must have been previously created with","\\t\\t\\t\\t term_dumpdiff() or term_dumpload() and","\\t\\t\\t\\t visible in a window.","\\t\\t \\"norestore\\"\\t do not add the terminal window to a","\\t\\t\\t\\t session file","","\\t\\tEach character in the middle part indicates a difference. If","\\t\\tthere are multiple differences only the first in this list is","\\t\\tused:","\\t\\t\\tX\\tdifferent character","\\t\\t\\tw\\tdifferent width","\\t\\t\\tf\\tdifferent foreground color","\\t\\t\\tb\\tdifferent background color","\\t\\t\\ta\\tdifferent attribute","\\t\\t\\t+\\tmissing position in first file","\\t\\t\\t-\\tmissing position in second file","","\\t\\tUsing the \\"s\\" key the top and bottom parts are swapped. This","\\t\\tmakes it easy to spot a difference.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetFilename()->term_dumpdiff(otherfile)","<"],"term_dumpload":["\\t\\tOpen a new window displaying the contents of {filename}","\\t\\tThe file must have been created with |term_dumpwrite()|.","\\t\\tReturns the buffer number or zero when it fails.","\\t\\tAlso see |terminal-diff|.","","\\t\\tFor {options} see |term_dumpdiff()|.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetFilename()->term_dumpload()","<"],"term_dumpwrite":["\\t\\tDump the contents of the terminal screen of {buf} in the file","\\t\\t{filename}. This uses a format that can be used with","\\t\\t|term_dumpload()| and |term_dumpdiff()|.","\\t\\tIf the job in the terminal already finished an error is given:","\\t\\t*E958*","\\t\\tIf {filename} already exists an error is given:\\t*E953*","\\t\\tAlso see |terminal-diff|.","","\\t\\t{options} is a dictionary with these optional entries:","\\t\\t\\t\\"rows\\"\\t\\tmaximum number of rows to dump","\\t\\t\\t\\"columns\\"\\tmaximum number of columns to dump","","\\t\\tCan also be used as a |method|, the base is used for the file","\\t\\tname: >","\\t\\t\\tGetFilename()->term_dumpwrite(bufnr)"],"term_getaltscreen":["\\t\\tReturns 1 if the terminal of {buf} is using the alternate","\\t\\tscreen.","\\t\\t{buf} is used as with |term_getsize()|.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetBufnr()->term_getaltscreen()",""],"term_getansicolors":["\\t\\tGet the ANSI color palette in use by terminal {buf}.","\\t\\tReturns a List of length 16 where each element is a String","\\t\\trepresenting a color in hexadecimal \\"#rrggbb\\" format.","\\t\\tAlso see |term_setansicolors()| and |g:terminal_ansi_colors|.","\\t\\tIf neither was used returns the default colors.","","\\t\\t{buf} is used as with |term_getsize()|. If the buffer does not","\\t\\texist or is not a terminal window, an empty list is returned.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetBufnr()->term_getansicolors()","","<\\t\\t{only available when compiled with GUI enabled and/or the","\\t\\t|+termguicolors| feature}"],"term_getattr":["\\t\\tGiven {attr}, a value returned by term_scrape() in the \\"attr\\"","\\t\\titem, return whether {what} is on. {what} can be one of:","\\t\\t\\tbold","\\t\\t\\titalic","\\t\\t\\tunderline","\\t\\t\\tstrike","\\t\\t\\treverse","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetAttr()->term_getattr()",""],"term_getcursor":["\\t\\tGet the cursor position of terminal {buf}. Returns a list with","\\t\\ttwo numbers and a dictionary: [row, col, dict].","","\\t\\t\\"row\\" and \\"col\\" are one based, the first screen cell is row","\\t\\t1, column 1. This is the cursor position of the terminal","\\t\\titself, not of the Vim window.","","\\t\\t\\"dict\\" can have these members:","\\t\\t \\"visible\\"\\tone when the cursor is visible, zero when it","\\t\\t\\t\\tis hidden.","\\t\\t \\"blink\\"\\tone when the cursor is blinking, zero when it","\\t\\t\\t\\tis not blinking.","\\t\\t \\"shape\\"\\t1 for a block cursor, 2 for underline and 3","\\t\\t\\t\\tfor a vertical bar.","\\t\\t \\"color\\"\\tcolor of the cursor, e.g. \\"green\\"","","\\t\\t{buf} must be the buffer number of a terminal window. If the","\\t\\tbuffer does not exist or is not a terminal window, an empty","\\t\\tlist is returned.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetBufnr()->term_getcursor()"],"term_getjob":["\\t\\tGet the Job associated with terminal window {buf}.","\\t\\t{buf} is used as with |term_getsize()|.","\\t\\tReturns |v:null| when there is no job.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetBufnr()->term_getjob()",""],"term_getline":["\\t\\tGet a line of text from the terminal window of {buf}.","\\t\\t{buf} is used as with |term_getsize()|.","","\\t\\tThe first line has {row} one. When {row} is \\".\\" the cursor","\\t\\tline is used. When {row} is invalid an empty string is","\\t\\treturned.","","\\t\\tTo get attributes of each character use |term_scrape()|.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetBufnr()->term_getline(row)",""],"term_getscrolled":["\\t\\tReturn the number of lines that scrolled to above the top of","\\t\\tterminal {buf}. This is the offset between the row number","\\t\\tused for |term_getline()| and |getline()|, so that: >","\\t\\t\\tterm_getline(buf, N)","<\\t\\tis equal to: >","\\t\\t\\tgetline(N + term_getscrolled(buf))","<\\t\\t(if that line exists).","","\\t\\t{buf} is used as with |term_getsize()|.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetBufnr()->term_getscrolled()",""],"term_getsize":["\\t\\tGet the size of terminal {buf}. Returns a list with two","\\t\\tnumbers: [rows, cols]. This is the size of the terminal, not","\\t\\tthe window containing the terminal.","","\\t\\t{buf} must be the buffer number of a terminal window. Use an","\\t\\tempty string for the current buffer. If the buffer does not","\\t\\texist or is not a terminal window, an empty list is returned.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetBufnr()->term_getsize()",""],"term_getstatus":["\\t\\tGet the status of terminal {buf}. This returns a comma","\\t\\tseparated list of these items:","\\t\\t\\trunning\\t\\tjob is running","\\t\\t\\tfinished\\tjob has finished","\\t\\t\\tnormal\\t\\tin Terminal-Normal mode","\\t\\tOne of \\"running\\" or \\"finished\\" is always present.","","\\t\\t{buf} must be the buffer number of a terminal window. If the","\\t\\tbuffer does not exist or is not a terminal window, an empty","\\t\\tstring is returned.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetBufnr()->term_getstatus()",""],"term_gettitle":["\\t\\tGet the title of terminal {buf}. This is the title that the","\\t\\tjob in the terminal has set.","","\\t\\t{buf} must be the buffer number of a terminal window. If the","\\t\\tbuffer does not exist or is not a terminal window, an empty","\\t\\tstring is returned.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetBufnr()->term_gettitle()",""],"term_gettty":["\\t\\tGet the name of the controlling terminal associated with","\\t\\tterminal window {buf}. {buf} is used as with |term_getsize()|.","","\\t\\tWhen {input} is omitted or 0, return the name for writing","\\t\\t(stdout). When {input} is 1 return the name for reading","\\t\\t(stdin). On UNIX, both return same name.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetBufnr()->term_gettty()",""],"term_list":["\\t\\tReturn a list with the buffer numbers of all buffers for","\\t\\tterminal windows.",""],"term_scrape":["\\t\\tGet the contents of {row} of terminal screen of {buf}.","\\t\\tFor {buf} see |term_getsize()|.","","\\t\\tThe first line has {row} one. When {row} is \\".\\" the cursor","\\t\\tline is used. When {row} is invalid an empty string is","\\t\\treturned.","","\\t\\tReturn a List containing a Dict for each screen cell:","\\t\\t \\"chars\\"\\tcharacter(s) at the cell","\\t\\t \\"fg\\"\\tforeground color as #rrggbb","\\t\\t \\"bg\\"\\tbackground color as #rrggbb","\\t\\t \\"attr\\"\\tattributes of the cell, use |term_getattr()|","\\t\\t\\t\\tto get the individual flags","\\t\\t \\"width\\"\\tcell width: 1 or 2","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetBufnr()->term_scrape(row)",""],"term_sendkeys":["\\t\\tSend keystrokes {keys} to terminal {buf}.","\\t\\t{buf} is used as with |term_getsize()|.","","\\t\\t{keys} are translated as key sequences. For example, \\"\\\\<c-x>\\"","\\t\\tmeans the character CTRL-X.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetBufnr()->term_sendkeys(keys)",""],"term_setapi":["\\t\\tSet the function name prefix to be used for the |terminal-api|","\\t\\tfunction in terminal {buf}. For example: >","\\t\\t :call term_setapi(buf, \\"Myapi_\\")","\\t\\t :call term_setapi(buf, \\"\\")","<","\\t\\tThe default is \\"Tapi_\\". When {expr} is an empty string then","\\t\\tno |terminal-api| function can be used for {buf}."],"term_setansicolors":["\\t\\tSet the ANSI color palette used by terminal {buf}.","\\t\\t{colors} must be a List of 16 valid color names or hexadecimal","\\t\\tcolor codes, like those accepted by |highlight-guifg|.","\\t\\tAlso see |term_getansicolors()| and |g:terminal_ansi_colors|.","","\\t\\tThe colors normally are:","\\t\\t\\t0 black","\\t\\t\\t1 dark red","\\t\\t\\t2 dark green","\\t\\t\\t3 brown","\\t\\t\\t4 dark blue","\\t\\t\\t5 dark magenta","\\t\\t\\t6 dark cyan","\\t\\t\\t7 light grey","\\t\\t\\t8 dark grey","\\t\\t\\t9 red","\\t\\t\\t10 green","\\t\\t\\t11 yellow","\\t\\t\\t12 blue","\\t\\t\\t13 magenta","\\t\\t\\t14 cyan","\\t\\t\\t15 white","","\\t\\tThese colors are used in the GUI and in the terminal when","\\t\\t\'termguicolors\' is set. When not using GUI colors (GUI mode","\\t\\tor \'termguicolors\'), the terminal window always uses the 16","\\t\\tANSI colors of the underlying terminal.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetBufnr()->term_setansicolors(colors)","","<\\t\\t{only available with GUI enabled and/or the |+termguicolors|","\\t\\tfeature}"],"term_setkill":["\\t\\tWhen exiting Vim or trying to close the terminal window in","\\t\\tanother way, {how} defines whether the job in the terminal can","\\t\\tbe stopped.","\\t\\tWhen {how} is empty (the default), the job will not be","\\t\\tstopped, trying to exit will result in |E947|.","\\t\\tOtherwise, {how} specifies what signal to send to the job.","\\t\\tSee |job_stop()| for the values.","","\\t\\tAfter sending the signal Vim will wait for up to a second to","\\t\\tcheck that the job actually stopped.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetBufnr()->term_setkill(how)",""],"term_setrestore":["\\t\\tSet the command to write in a session file to restore the job","\\t\\tin this terminal. The line written in the session file is: >","\\t\\t\\tterminal ++curwin ++cols=%d ++rows=%d {command}","<\\t\\tMake sure to escape the command properly.","","\\t\\tUse an empty {command} to run \'shell\'.","\\t\\tUse \\"NONE\\" to not restore this window.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetBufnr()->term_setrestore(command)",""],"term_setsize":["\\t\\tSet the size of terminal {buf}. The size of the window","\\t\\tcontaining the terminal will also be adjusted, if possible.","\\t\\tIf {rows} or {cols} is zero or negative, that dimension is not","\\t\\tchanged.","","\\t\\t{buf} must be the buffer number of a terminal window. Use an","\\t\\tempty string for the current buffer. If the buffer does not","\\t\\texist or is not a terminal window, an error is given.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetBufnr()->term_setsize(rows, cols)",""],"term_start":["\\t\\tOpen a terminal window and run {cmd} in it.","","\\t\\t{cmd} can be a string or a List, like with |job_start()|. The","\\t\\tstring \\"NONE\\" can be used to open a terminal window without","\\t\\tstarting a job, the pty of the terminal can be used by a","\\t\\tcommand like gdb.","","\\t\\tReturns the buffer number of the terminal window. If {cmd}","\\t\\tcannot be executed the window does open and shows an error","\\t\\tmessage.","\\t\\tIf opening the window fails zero is returned.","","\\t\\t{options} are similar to what is used for |job_start()|, see","\\t\\t|job-options|. However, not all options can be used. These","\\t\\tare supported:","\\t\\t all timeout options","\\t\\t \\"stoponexit\\", \\"cwd\\", \\"env\\"","\\t\\t \\"callback\\", \\"out_cb\\", \\"err_cb\\", \\"exit_cb\\", \\"close_cb\\"","\\t\\t \\"in_io\\", \\"in_top\\", \\"in_bot\\", \\"in_name\\", \\"in_buf\\"","\\t\\t \\"out_io\\", \\"out_name\\", \\"out_buf\\", \\"out_modifiable\\", \\"out_msg\\"","\\t\\t \\"err_io\\", \\"err_name\\", \\"err_buf\\", \\"err_modifiable\\", \\"err_msg\\"","\\t\\tHowever, at least one of stdin, stdout or stderr must be","\\t\\tconnected to the terminal. When I/O is connected to the","\\t\\tterminal then the callback function for that part is not used.","","\\t\\tThere are extra options:","\\t\\t \\"term_name\\"\\t name to use for the buffer name, instead","\\t\\t\\t\\t of the command name.","\\t\\t \\"term_rows\\"\\t vertical size to use for the terminal,","\\t\\t\\t\\t instead of using \'termwinsize\'","\\t\\t \\"term_cols\\"\\t horizontal size to use for the terminal,","\\t\\t\\t\\t instead of using \'termwinsize\'","\\t\\t \\"vertical\\"\\t split the window vertically; note that","\\t\\t\\t\\t other window position can be defined with","\\t\\t\\t\\t command modifiers, such as |:belowright|.","\\t\\t \\"curwin\\"\\t use the current window, do not split the","\\t\\t\\t\\t window; fails if the current buffer","\\t\\t\\t\\t cannot be |abandon|ed","\\t\\t \\"hidden\\"\\t do not open a window","\\t\\t \\"norestore\\"\\t do not add the terminal window to a","\\t\\t\\t\\t session file","\\t\\t \\"term_kill\\"\\t what to do when trying to close the","\\t\\t\\t\\t terminal window, see |term_setkill()|","\\t\\t \\"term_finish\\" What to do when the job is finished:","\\t\\t\\t\\t\\t\\"close\\": close any windows","\\t\\t\\t\\t\\t\\"open\\": open window if needed","\\t\\t\\t\\t Note that \\"open\\" can be interruptive.","\\t\\t\\t\\t See |term++close| and |term++open|.","\\t\\t \\"term_opencmd\\" command to use for opening the window when","\\t\\t\\t\\t \\"open\\" is used for \\"term_finish\\"; must","\\t\\t\\t\\t have \\"%d\\" where the buffer number goes,","\\t\\t\\t\\t e.g. \\"10split|buffer %d\\"; when not","\\t\\t\\t\\t specified \\"botright sbuf %d\\" is used","\\t\\t \\"eof_chars\\"\\t Text to send after all buffer lines were","\\t\\t\\t\\t written to the terminal. When not set","\\t\\t\\t\\t CTRL-D is used on MS-Windows. For Python","\\t\\t\\t\\t use CTRL-Z or \\"exit()\\". For a shell use","\\t\\t\\t\\t \\"exit\\". A CR is always added.","\\t\\t \\"ansi_colors\\" A list of 16 color names or hex codes","\\t\\t\\t\\t defining the ANSI palette used in GUI","\\t\\t\\t\\t color modes. See |g:terminal_ansi_colors|.","\\t\\t \\"tty_type\\"\\t (MS-Windows only): Specify which pty to","\\t\\t\\t\\t use. See \'termwintype\' for the values.","\\t\\t \\"term_api\\"\\t function name prefix for the","\\t\\t\\t\\t |terminal-api| function. See","\\t\\t\\t\\t |term_setapi()|.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetCommand()->term_start()",""],"term_wait":["\\t\\tWait for pending updates of {buf} to be handled.","\\t\\t{buf} is used as with |term_getsize()|.","\\t\\t{time} is how long to wait for updates to arrive in msec. If","\\t\\tnot set then 10 msec will be used.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetBufnr()->term_wait()"],"test_alloc_fail":["\\t\\tThis is for testing: If the memory allocation with {id} is","\\t\\tcalled, then decrement {countdown}, and when it reaches zero","\\t\\tlet memory allocation fail {repeat} times. When {repeat} is","\\t\\tsmaller than one it fails one time.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetAllocId()->test_alloc_fail()"],"test_autochdir":["\\t\\tSet a flag to enable the effect of \'autochdir\' before Vim","\\t\\tstartup has finished.",""],"test_feedinput":["\\t\\tCharacters in {string} are queued for processing as if they","\\t\\twere typed by the user. This uses a low level input buffer.","\\t\\tThis function works only when with |+unix| or GUI is running.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetText()->test_feedinput()"],"test_garbagecollect_soon":["\\t\\tSet the flag to call the garbagecollector as if in the main","\\t\\tloop. Only to be used in tests.",""],"test_getvalue":["\\t\\tGet the value of an internal variable. These values for","\\t\\t{name} are supported:","\\t\\t\\tneed_fileinfo","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetName()->test_getvalue()"],"test_ignore_error":["\\t\\tIgnore any error containing {expr}. A normal message is given","\\t\\tinstead.","\\t\\tThis is only meant to be used in tests, where catching the","\\t\\terror with try/catch cannot be used (because it skips over","\\t\\tfollowing code).","\\t\\t{expr} is used literally, not as a pattern.","\\t\\tWhen the {expr} is the string \\"RESET\\" then the list of ignored","\\t\\terrors is made empty.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetErrorText()->test_ignore_error()"],"test_null_blob":["\\t\\tReturn a |Blob| that is null. Only useful for testing.",""],"test_null_channel":["\\t\\tReturn a |Channel| that is null. Only useful for testing.","\\t\\t{only available when compiled with the +channel feature}",""],"test_null_dict":["\\t\\tReturn a |Dict| that is null. Only useful for testing.",""],"test_null_job":["\\t\\tReturn a |Job| that is null. Only useful for testing.","\\t\\t{only available when compiled with the +job feature}",""],"test_null_list":["\\t\\tReturn a |List| that is null. Only useful for testing.",""],"test_null_partial":["\\t\\tReturn a |Partial| that is null. Only useful for testing.",""],"test_null_string":["\\t\\tReturn a |String| that is null. Only useful for testing.",""],"test_option_not_set":["\\t\\tReset the flag that indicates option {name} was set. Thus it","\\t\\tlooks like it still has the default value. Use like this: >","\\t\\t\\tset ambiwidth=double","\\t\\t\\tcall test_option_not_set(\'ambiwidth\')","<\\t\\tNow the \'ambiwidth\' option behaves like it was never changed,","\\t\\teven though the value is \\"double\\".","\\t\\tOnly to be used for testing!","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetOptionName()->test_option_not_set()",""],"test_override":["\\t\\tOverrides certain parts of Vim\'s internal processing to be able","\\t\\tto run tests. Only to be used for testing Vim!","\\t\\tThe override is enabled when {val} is non-zero and removed","\\t\\twhen {val} is zero.","\\t\\tCurrent supported values for name are:","","\\t\\tname\\t effect when {val} is non-zero ~","\\t\\tredraw disable the redrawing() function","\\t\\tredraw_flag ignore the RedrawingDisabled flag","\\t\\tchar_avail disable the char_avail() function","\\t\\tstarting reset the \\"starting\\" variable, see below","\\t\\tnfa_fail makes the NFA regexp engine fail to force a","\\t\\t\\t fallback to the old engine","\\t\\tno_query_mouse do not query the mouse position for \\"dec\\"","\\t\\t\\t\\tterminals","\\t\\tno_wait_return\\tset the \\"no_wait_return\\" flag. Not restored","\\t\\t\\t\\twith \\"ALL\\".","\\t\\tALL\\t clear all overrides ({val} is not used)","","\\t\\t\\"starting\\" is to be used when a test should behave like","\\t\\tstartup was done. Since the tests are run by sourcing a","\\t\\tscript the \\"starting\\" variable is non-zero. This is usually a","\\t\\tgood thing (tests run faster), but sometimes changes behavior","\\t\\tin a way that the test doesn\'t work properly.","\\t\\tWhen using: >","\\t\\t\\tcall test_override(\'starting\', 1)","<\\t\\tThe value of \\"starting\\" is saved. It is restored by: >","\\t\\t\\tcall test_override(\'starting\', 0)","","<\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetOverrideVal()-> test_override(\'starting\')"],"test_refcount":["\\t\\tReturn the reference count of {expr}. When {expr} is of a","\\t\\ttype that does not have a reference count, returns -1. Only","\\t\\tto be used for testing.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetVarname()->test_refcount()",""],"test_scrollbar":["\\t\\tPretend using scrollbar {which} to move it to position","\\t\\t{value}. {which} can be:","\\t\\t\\tleft\\tLeft scrollbar of the current window","\\t\\t\\tright\\tRight scrollbar of the current window","\\t\\t\\thor\\tHorizontal scrollbar","","\\t\\tFor the vertical scrollbars {value} can be 1 to the","\\t\\tline-count of the buffer. For the horizontal scrollbar the","\\t\\t{value} can be between 1 and the maximum line length, assuming","\\t\\t\'wrap\' is not set.","","\\t\\tWhen {dragging} is non-zero it\'s like dragging the scrollbar,","\\t\\totherwise it\'s like clicking in the scrollbar.","\\t\\tOnly works when the {which} scrollbar actually exists,","\\t\\tobviously only when using the GUI.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetValue()->test_scrollbar(\'right\', 0)"],"test_setmouse":["\\t\\tSet the mouse position to be used for the next mouse action.","\\t\\t{row} and {col} are one based.","\\t\\tFor example: >","\\t\\t\\tcall test_setmouse(4, 20)","\\t\\t\\tcall feedkeys(\\"\\\\<LeftMouse>\\", \\"xt\\")",""],"test_settime":["\\t\\tSet the time Vim uses internally. Currently only used for","\\t\\ttimestamps in the history, as they are used in viminfo, and","\\t\\tfor undo.","\\t\\tUsing a value of 1 makes Vim not sleep after a warning or","\\t\\terror message.","\\t\\t{expr} must evaluate to a number. When the value is zero the","\\t\\tnormal behavior is restored.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetTime()->test_settime()"],"win_execute":["\\t\\tLike `execute()` but in the context of window {id}.","\\t\\tThe window will temporarily be made the current window,","\\t\\twithout triggering autocommands. When executing {command}","\\t\\tautocommands will be triggered, this may have unexpected side","\\t\\teffects. Use |:noautocmd| if needed.","\\t\\tExample: >","\\t\\t\\tcall win_execute(winid, \'set syntax=python\')","<\\t\\tDoing the same with `setwinvar()` would not trigger","\\t\\tautocommands and not actually show syntax highlighting.","\\t\\t\\t\\t\\t\\t\\t*E994*","\\t\\tNot all commands are allowed in popup windows.","\\t\\tWhen window {id} does not exist then no error is given.","","\\t\\tCan also be used as a |method|, the base is passed as the","\\t\\tsecond argument: >","\\t\\t\\tGetCommand()->win_execute(winid)"],"win_splitmove":["\\t Move the window {nr} to a new split of the window {target}.","\\t\\tThis is similar to moving to {target}, creating a new window","\\t\\tusing |:split| but having the same contents as window {nr}, and","\\t\\tthen closing {nr}.","","\\t\\tBoth {nr} and {target} can be window numbers or |window-ID|s.","","\\t\\tReturns zero for success, non-zero for failure.","","\\t\\t{options} is a Dictionary with the following optional entries:","\\t\\t \\"vertical\\"\\tWhen TRUE, the split is created vertically,","\\t\\t\\t\\tlike with |:vsplit|.","\\t\\t \\"rightbelow\\"\\tWhen TRUE, the split is made below or to the","\\t\\t\\t\\tright (if vertical). When FALSE, it is done","\\t\\t\\t\\tabove or to the left (if vertical). When not","\\t\\t\\t\\tpresent, the values of \'splitbelow\' and","\\t\\t\\t\\t\'splitright\' are used.","","\\t\\tCan also be used as a |method|: >","\\t\\t\\tGetWinid()->win_splitmove(target)","<"]},"variables":{"v:beval_col":["The number of the column, over which the mouse pointer is.","\\t\\tThis is the byte index in the |v:beval_lnum| line.","\\t\\tOnly valid while evaluating the \'balloonexpr\' option."],"v:beval_bufnr":["The number of the buffer, over which the mouse pointer is. Only","\\t\\tvalid while evaluating the \'balloonexpr\' option."],"v:beval_lnum":["The number of the line, over which the mouse pointer is. Only","\\t\\tvalid while evaluating the \'balloonexpr\' option."],"v:beval_text":["The text under or after the mouse pointer. Usually a word as","\\t\\tit is useful for debugging a C program. \'iskeyword\' applies,","\\t\\tbut a dot and \\"->\\" before the position is included. When on a","\\t\\t\']\' the text before it is used, including the matching \'[\' and","\\t\\tword before it. When on a Visual area within one line the","\\t\\thighlighted text is used. Also see |<cexpr>|.","\\t\\tOnly valid while evaluating the \'balloonexpr\' option."],"v:beval_winnr":["The number of the window, over which the mouse pointer is. Only","\\t\\tvalid while evaluating the \'balloonexpr\' option. The first","\\t\\twindow has number zero (unlike most other places where a","\\t\\twindow gets a number)."],"v:beval_winid":["The |window-ID| of the window, over which the mouse pointer","\\t\\tis. Otherwise like v:beval_winnr."],"v:char":["Argument for evaluating \'formatexpr\' and used for the typed","\\t\\tcharacter when using <expr> in an abbreviation |:map-<expr>|.","\\t\\tIt is also used by the |InsertCharPre| and |InsertEnter| events."],"v:cmdarg":["This variable is used for two purposes:","\\t\\t1. The extra arguments given to a file read/write command.","\\t\\t Currently these are \\"++enc=\\" and \\"++ff=\\". This variable is","\\t\\t set before an autocommand event for a file read/write","\\t\\t command is triggered. There is a leading space to make it","\\t\\t possible to append this variable directly after the","\\t\\t read/write command. Note: The \\"+cmd\\" argument isn\'t","\\t\\t included here, because it will be executed anyway.","\\t\\t2. When printing a PostScript file with \\":hardcopy\\" this is","\\t\\t the argument for the \\":hardcopy\\" command. This can be used","\\t\\t in \'printexpr\'."],"v:cmdbang":["Set like v:cmdarg for a file read/write command. When a \\"!\\"","\\t\\twas used the value is 1, otherwise it is 0. Note that this","\\t\\tcan only be used in autocommands. For user commands |<bang>|","\\t\\tcan be used."],"v:count":["The count given for the last Normal mode command. Can be used","\\t\\tto get the count before a mapping. Read-only. Example: >","\\t:map _x :<C-U>echo \\"the count is \\" . v:count<CR>","<\\t\\tNote: The <C-U> is required to remove the line range that you","\\t\\tget when typing \':\' after a count.","\\t\\tWhen there are two counts, as in \\"3d2w\\", they are multiplied,","\\t\\tjust like what happens in the command, \\"d6w\\" for the example.","\\t\\tAlso used for evaluating the \'formatexpr\' option."],"v:count1":["Just like \\"v:count\\", but defaults to one when no count is","\\t\\tused."],"v:ctype":["The current locale setting for characters of the runtime","\\t\\tenvironment. This allows Vim scripts to be aware of the","\\t\\tcurrent locale encoding. Technical: it\'s the value of","\\t\\tLC_CTYPE. When not using a locale the value is \\"C\\".","\\t\\tThis variable can not be set directly, use the |:language|","\\t\\tcommand.","\\t\\tSee |multi-lang|."],"v:dying":["Normally zero. When a deadly signal is caught it\'s set to","\\t\\tone. When multiple signals are caught the number increases.","\\t\\tCan be used in an autocommand to check if Vim didn\'t","\\t\\tterminate normally. {only works on Unix}","\\t\\tExample: >","\\t:au VimLeave * if v:dying | echo \\"\\\\nAAAAaaaarrrggghhhh!!!\\\\n\\" | endif","<\\t\\tNote: if another deadly signal is caught when v:dying is one,","\\t\\tVimLeave autocommands will not be executed."],"v:exiting":["Exit code, or |v:null| if not exiting. |VimLeave|"],"v:echospace":["Number of screen cells that can be used for an `:echo` message","\\t\\tin the last screen line before causing the |hit-enter-prompt|.","\\t\\tDepends on \'showcmd\', \'ruler\' and \'columns\'. You need to","\\t\\tcheck \'cmdheight\' for whether there are full-width lines","\\t\\tavailable above the last line."],"v:errmsg":["Last given error message.","\\t\\tModifiable (can be set).","\\t\\tExample: >","\\t:let v:errmsg = \\"\\"","\\t:silent! next","\\t:if v:errmsg != \\"\\"","\\t: ... handle error","<"],"v:errors":["Errors found by assert functions, such as |assert_true()|.","\\t\\tThis is a list of strings.","\\t\\tThe assert functions append an item when an assert fails.","\\t\\tThe return value indicates this: a one is returned if an item","\\t\\twas added to v:errors, otherwise zero is returned.","\\t\\tTo remove old results make it empty: >","\\t:let v:errors = []","<\\t\\tIf v:errors is set to anything but a list it is made an empty","\\t\\tlist by the assert function."],"v:event":["Dictionary of event data for the current |autocommand|. Valid","\\t\\tonly during the event lifetime; storing or passing v:event is","\\t\\tinvalid! Copy it instead: >","\\t\\t\\tau TextYankPost * let g:foo = deepcopy(v:event)","<\\t\\tKeys vary by event; see the documentation for the specific","\\t\\tevent, e.g. |DirChanged| or |TextYankPost|.","\\t\\t\\tKEY\\t\\tDESCRIPTION ~","\\t\\t\\tabort\\t\\tWhether the event triggered during","\\t\\t\\t\\t\\tan aborting condition (e.g. |c_Esc| or","\\t\\t\\t\\t\\t|c_CTRL-C| for |CmdlineLeave|).","\\t\\t\\tchan\\t\\t|channel-id| or 0 for \\"internal\\".","\\t\\t\\tcmdlevel\\tLevel of cmdline.","\\t\\t\\tcmdtype\\t\\tType of cmdline, |cmdline-char|.","\\t\\t\\tcwd\\t\\tCurrent working directory.","\\t\\t\\tinclusive\\tMotion is |inclusive|, else exclusive.","\\t\\t\\tscope\\t\\tEvent-specific scope name.","\\t\\t\\toperator\\tCurrent |operator|. Also set for Ex","\\t\\t\\t\\t\\tcommands (unlike |v:operator|). For","\\t\\t\\t\\t\\texample if |TextYankPost| is triggered","\\t\\t\\t\\t\\tby the |:yank| Ex command then","\\t\\t\\t\\t\\t`v:event.operator` is \\"y\\".","\\t\\t\\tregcontents\\tText stored in the register as a","\\t\\t\\t\\t\\t|readfile()|-style list of lines.","\\t\\t\\tregname\\t\\tRequested register (e.g \\"x\\" for \\"xyy)","\\t\\t\\t\\t\\tor the empty string for an unnamed","\\t\\t\\t\\t\\toperation.","\\t\\t\\tregtype\\t\\tType of register as returned by","\\t\\t\\t\\t\\t|getregtype()|.","\\t\\t\\tcompleted_item Current selected complete item on","\\t\\t\\t\\t\\t|CompleteChanged|, Is `{}` when no complete","\\t\\t\\t\\t\\titem selected.","\\t\\t\\theight \\t\\tHeight of popup menu on |CompleteChanged|","\\t\\t\\twidth \\twidth of popup menu on |CompleteChanged|","\\t\\t\\trow \\t \\tRow count of popup menu on |CompleteChanged|,","\\t\\t\\t\\t\\trelative to screen.","\\t\\t\\tcol \\t \\tCol count of popup menu on |CompleteChanged|,","\\t\\t\\t\\t\\trelative to screen.","\\t\\t\\tsize \\t\\tTotal number of completion items on","\\t\\t\\t\\t\\t|CompleteChanged|.","\\t\\t\\tscrollbar \\tIs |v:true| if popup menu have scrollbar, or","\\t\\t\\t\\t\\t|v:false| if not."],"v:exception":["The value of the exception most recently caught and not","\\t\\tfinished. See also |v:throwpoint| and |throw-variables|.","\\t\\tExample: >","\\t:try","\\t: throw \\"oops\\"","\\t:catch /.*/","\\t: echo \\"caught \\" .. v:exception","\\t:endtry","<\\t\\tOutput: \\"caught oops\\"."],"v:false":["Special value used to put \\"false\\" in JSON and msgpack. See","\\t\\t|json_encode()|. This value is converted to \\"v:false\\" when used","\\t\\tas a String (e.g. in |expr5| with string concatenation","\\t\\toperator) and to zero when used as a Number (e.g. in |expr5|","\\t\\tor |expr7| when used with numeric operators). Read-only."],"v:fcs_reason":["The reason why the |FileChangedShell| event was triggered.","\\t\\tCan be used in an autocommand to decide what to do and/or what","\\t\\tto set v:fcs_choice to. Possible values:","\\t\\t\\tdeleted\\t\\tfile no longer exists","\\t\\t\\tconflict\\tfile contents, mode or timestamp was","\\t\\t\\t\\t\\tchanged and buffer is modified","\\t\\t\\tchanged\\t\\tfile contents has changed","\\t\\t\\tmode\\t\\tmode of file changed","\\t\\t\\ttime\\t\\tonly file timestamp changed"],"v:fcs_choice":["What should happen after a |FileChangedShell| event was","\\t\\ttriggered. Can be used in an autocommand to tell Vim what to","\\t\\tdo with the affected buffer:","\\t\\t\\treload\\t\\tReload the buffer (does not work if","\\t\\t\\t\\t\\tthe file was deleted).","\\t\\t\\task\\t\\tAsk the user what to do, as if there","\\t\\t\\t\\t\\twas no autocommand. Except that when","\\t\\t\\t\\t\\tonly the timestamp changed nothing","\\t\\t\\t\\t\\twill happen.","\\t\\t\\t<empty>\\t\\tNothing, the autocommand should do","\\t\\t\\t\\t\\teverything that needs to be done.","\\t\\tThe default is empty. If another (invalid) value is used then","\\t\\tVim behaves like it is empty, there is no warning message."],"v:fname_in":["The name of the input file. Valid while evaluating:","\\t\\t\\toption\\t\\tused for ~","\\t\\t\\t\'charconvert\'\\tfile to be converted","\\t\\t\\t\'diffexpr\'\\toriginal file","\\t\\t\\t\'patchexpr\'\\toriginal file","\\t\\t\\t\'printexpr\'\\tfile to be printed","\\t\\tAnd set to the swap file name for |SwapExists|."],"v:fname_out":["The name of the output file. Only valid while","\\t\\tevaluating:","\\t\\t\\toption\\t\\tused for ~","\\t\\t\\t\'charconvert\'\\tresulting converted file (*)","\\t\\t\\t\'diffexpr\'\\toutput of diff","\\t\\t\\t\'patchexpr\'\\tresulting patched file","\\t\\t(*) When doing conversion for a write command (e.g., \\":w","\\t\\tfile\\") it will be equal to v:fname_in. When doing conversion","\\t\\tfor a read command (e.g., \\":e file\\") it will be a temporary","\\t\\tfile and different from v:fname_in."],"v:fname_new":["The name of the new version of the file. Only valid while","\\t\\tevaluating \'diffexpr\'."],"v:fname_diff":["The name of the diff (patch) file. Only valid while","\\t\\tevaluating \'patchexpr\'."],"v:folddashes":["Used for \'foldtext\': dashes representing foldlevel of a closed","\\t\\tfold.","\\t\\tRead-only in the |sandbox|. |fold-foldtext|"],"v:foldlevel":["Used for \'foldtext\': foldlevel of closed fold.","\\t\\tRead-only in the |sandbox|. |fold-foldtext|"],"v:foldend":["Used for \'foldtext\': last line of closed fold.","\\t\\tRead-only in the |sandbox|. |fold-foldtext|"],"v:foldstart":["Used for \'foldtext\': first line of closed fold.","\\t\\tRead-only in the |sandbox|. |fold-foldtext|"],"v:hlsearch":["Variable that indicates whether search highlighting is on.","\\t\\tSetting it makes sense only if \'hlsearch\' is enabled. Setting","\\t\\tthis variable to zero acts like the |:nohlsearch| command,","\\t\\tsetting it to one acts like >","\\t\\t\\tlet &hlsearch = &hlsearch","<\\t\\tNote that the value is restored when returning from a","\\t\\tfunction. |function-search-undo|."],"v:insertmode":["Used for the |InsertEnter| and |InsertChange| autocommand","\\t\\tevents. Values:","\\t\\t\\ti\\tInsert mode","\\t\\t\\tr\\tReplace mode","\\t\\t\\tv\\tVirtual Replace mode"],"v:key":["Key of the current item of a |Dictionary|. Only valid while","\\t\\tevaluating the expression used with |map()| and |filter()|.","\\t\\tRead-only."],"v:lang":["The current locale setting for messages of the runtime","\\t\\tenvironment. This allows Vim scripts to be aware of the","\\t\\tcurrent language. Technical: it\'s the value of LC_MESSAGES.","\\t\\tThe value is system dependent.","\\t\\tThis variable can not be set directly, use the |:language|","\\t\\tcommand.","\\t\\tIt can be different from |v:ctype| when messages are desired","\\t\\tin a different language than what is used for character","\\t\\tencoding. See |multi-lang|."],"v:lc_time":["The current locale setting for time messages of the runtime","\\t\\tenvironment. This allows Vim scripts to be aware of the","\\t\\tcurrent language. Technical: it\'s the value of LC_TIME.","\\t\\tThis variable can not be set directly, use the |:language|","\\t\\tcommand. See |multi-lang|."],"v:lnum":["Line number for the \'foldexpr\' |fold-expr|, \'formatexpr\' and","\\t\\t\'indentexpr\' expressions, tab page number for \'guitablabel\'","\\t\\tand \'guitabtooltip\'. Only valid while one of these","\\t\\texpressions is being evaluated. Read-only when in the","\\t\\t|sandbox|."],"v:lua":["Prefix for calling Lua functions from expressions.","\\t\\tSee |v:lua-call| for more information."],"v:mouse_win":["Window number for a mouse click obtained with |getchar()|.","\\t\\tFirst window has number 1, like with |winnr()|. The value is","\\t\\tzero when there was no mouse button click."],"v:mouse_winid":["|window-ID| for a mouse click obtained with |getchar()|.","\\t\\tThe value is zero when there was no mouse button click."],"v:mouse_lnum":["Line number for a mouse click obtained with |getchar()|.","\\t\\tThis is the text line number, not the screen line number. The","\\t\\tvalue is zero when there was no mouse button click."],"v:mouse_col":["Column number for a mouse click obtained with |getchar()|.","\\t\\tThis is the screen column number, like with |virtcol()|. The","\\t\\tvalue is zero when there was no mouse button click."],"v:msgpack_types":["Dictionary containing msgpack types used by |msgpackparse()|","\\t\\tand |msgpackdump()|. All types inside dictionary are fixed","\\t\\t(not editable) empty lists. To check whether some list is one","\\t\\tof msgpack types, use |is| operator."],"v:null":["Special value used to put \\"null\\" in JSON and NIL in msgpack. ","\\t\\tSee |json_encode()|. This value is converted to \\"v:null\\" when","\\t\\tused as a String (e.g. in |expr5| with string concatenation","\\t\\toperator) and to zero when used as a Number (e.g. in |expr5|","\\t\\tor |expr7| when used with numeric operators). Read-only."],"v:oldfiles":["List of file names that is loaded from the |shada| file on","\\t\\tstartup. These are the files that Vim remembers marks for.","\\t\\tThe length of the List is limited by the \' argument of the","\\t\\t\'shada\' option (default is 100).","\\t\\tWhen the |shada| file is not used the List is empty.","\\t\\tAlso see |:oldfiles| and |c_#<|.","\\t\\tThe List can be modified, but this has no effect on what is","\\t\\tstored in the |shada| file later. If you use values other","\\t\\tthan String this will cause trouble."],"v:option_new":["New value of the option. Valid while executing an |OptionSet|","\\t\\tautocommand."],"v:option_old":["Old value of the option. Valid while executing an |OptionSet|","\\t\\tautocommand."],"v:option_type":["Scope of the set command. Valid while executing an","\\t\\t|OptionSet| autocommand. Can be either \\"global\\" or \\"local\\""],"v:operator":["The last operator given in Normal mode. This is a single","\\t\\tcharacter except for commands starting with <g> or <z>,","\\t\\tin which case it is two characters. Best used alongside","\\t\\t|v:prevcount| and |v:register|. Useful if you want to cancel","\\t\\tOperator-pending mode and then use the operator, e.g.: >","\\t\\t\\t:omap O <Esc>:call MyMotion(v:operator)<CR>","<\\t\\tThe value remains set until another operator is entered, thus","\\t\\tdon\'t expect it to be empty.","\\t\\tv:operator is not set for |:delete|, |:yank| or other Ex","\\t\\tcommands.","\\t\\tRead-only."],"v:prevcount":["The count given for the last but one Normal mode command.","\\t\\tThis is the v:count value of the previous command. Useful if","\\t\\tyou want to cancel Visual or Operator-pending mode and then","\\t\\tuse the count, e.g.: >","\\t\\t\\t:vmap % <Esc>:call MyFilter(v:prevcount)<CR>","<\\t\\tRead-only."],"v:profiling":["Normally zero. Set to one after using \\":profile start\\".","\\t\\tSee |profiling|."],"v:progname":["The name by which Nvim was invoked (with path removed).","\\t\\tRead-only."],"v:progpath":["Absolute path to the current running Nvim.","\\t\\tRead-only."],"v:register":["The name of the register in effect for the current normal mode","\\t\\tcommand (regardless of whether that command actually used a","\\t\\tregister). Or for the currently executing normal mode mapping","\\t\\t(use this in custom commands that take a register).","\\t\\tIf none is supplied it is the default register \'\\"\', unless","\\t\\t\'clipboard\' contains \\"unnamed\\" or \\"unnamedplus\\", then it is","\\t\\t\'*\' or \'+\'.","\\t\\tAlso see |getreg()| and |setreg()|"],"v:scrollstart":["String describing the script or function that caused the","\\t\\tscreen to scroll up. It\'s only set when it is empty, thus the","\\t\\tfirst reason is remembered. It is set to \\"Unknown\\" for a","\\t\\ttyped command.","\\t\\tThis can be used to find out why your script causes the","\\t\\thit-enter prompt."],"v:servername":["Primary listen-address of the current Nvim instance, the first","\\t\\titem returned by |serverlist()|. Can be set by |--listen| or","\\t\\t|$NVIM_LISTEN_ADDRESS| at startup. |serverstart()| |serverstop()|","\\t\\tRead-only."],"v:searchforward":["*v:searchforward* *searchforward-variable*","\\t\\tSearch direction: 1 after a forward search, 0 after a","\\t\\tbackward search. It is reset to forward when directly setting","\\t\\tthe last search pattern, see |quote/|.","\\t\\tNote that the value is restored when returning from a","\\t\\tfunction. |function-search-undo|.","\\t\\tRead-write."],"v:shell_error":["Result of the last shell command. When non-zero, the last","\\t\\tshell command had an error. When zero, there was no problem.","\\t\\tThis only works when the shell returns the error code to Vim.","\\t\\tThe value -1 is often used when the command could not be","\\t\\texecuted. Read-only.","\\t\\tExample: >","\\t:!mv foo bar","\\t:if v:shell_error","\\t: echo \'could not rename \\"foo\\" to \\"bar\\"!\'","\\t:endif","<"],"v:statusmsg":["Last given status message.","\\t\\tModifiable (can be set)."],"v:stderr":["|channel-id| corresponding to stderr. The value is always 2;","\\t\\tuse this variable to make your code more descriptive.","\\t\\tUnlike stdin and stdout (see |stdioopen()|), stderr is always","\\t\\topen for writing. Example: >","\\t\\t\\t:call chansend(v:stderr, \\"error: toaster empty\\\\n\\")","<"],"v:swapname":["Only valid when executing |SwapExists| autocommands: Name of","\\t\\tthe swap file found. Read-only."],"v:swapchoice":["|SwapExists| autocommands can set this to the selected choice","\\t\\tfor handling an existing swap file:","\\t\\t\\t\'o\'\\tOpen read-only","\\t\\t\\t\'e\'\\tEdit anyway","\\t\\t\\t\'r\'\\tRecover","\\t\\t\\t\'d\'\\tDelete swapfile","\\t\\t\\t\'q\'\\tQuit","\\t\\t\\t\'a\'\\tAbort","\\t\\tThe value should be a single-character string. An empty value","\\t\\tresults in the user being asked, as would happen when there is","\\t\\tno SwapExists autocommand. The default is empty."],"v:swapcommand":["Normal mode command to be executed after a file has been","\\t\\topened. Can be used for a |SwapExists| autocommand to have","\\t\\tanother Vim open the file and jump to the right place. For","\\t\\texample, when jumping to a tag the value is \\":tag tagname\\\\r\\".","\\t\\tFor \\":edit +cmd file\\" the value is \\":cmd\\\\r\\"."],"v:t_bool":["Value of Boolean type. Read-only. See: |type()|"],"v:t_dict":["Value of Dictionary type. Read-only. See: |type()|"],"v:t_float":["Value of Float type. Read-only. See: |type()|"],"v:t_func":["Value of Funcref type. Read-only. See: |type()|"],"v:t_list":["Value of List type. Read-only. See: |type()|"],"v:t_number":["Value of Number type. Read-only. See: |type()|"],"v:t_string":["Value of String type. Read-only. See: |type()|"],"v:termresponse":["The escape sequence returned by the terminal for the DA","\\t\\t(request primary device attributes) control sequence. It is","\\t\\tset when Vim receives an escape sequence that starts with ESC","\\t\\t[ or CSI and ends in a \'c\', with only digits, \';\' and \'.\' in","\\t\\tbetween.","\\t\\tWhen this option is set, the TermResponse autocommand event is","\\t\\tfired, so that you can react to the response from the","\\t\\tterminal.","\\t\\tThe response from a new xterm is: \\"<Esc>[ Pp ; Pv ; Pc c\\". Pp","\\t\\tis the terminal type: 0 for vt100 and 1 for vt220. Pv is the","\\t\\tpatch level (since this was introduced in patch 95, it\'s","\\t\\talways 95 or bigger). Pc is always zero."],"v:testing":["Must be set before using `test_garbagecollect_now()`."],"v:this_session":["Full filename of the last loaded or saved session file.","\\t\\tEmpty when no session file has been saved. See |:mksession|.","\\t\\tModifiable (can be set)."],"v:throwpoint":["The point where the exception most recently caught and not","\\t\\tfinished was thrown. Not set when commands are typed. See","\\t\\talso |v:exception| and |throw-variables|.","\\t\\tExample: >","\\t:try","\\t: throw \\"oops\\"","\\t:catch /.*/","\\t: echo \\"Exception from\\" v:throwpoint","\\t:endtry","<\\t\\tOutput: \\"Exception from test.vim, line 2\\""],"v:true":["Special value used to put \\"true\\" in JSON and msgpack. See","\\t\\t|json_encode()|. This value is converted to \\"v:true\\" when used","\\t\\tas a String (e.g. in |expr5| with string concatenation","\\t\\toperator) and to one when used as a Number (e.g. in |expr5| or","\\t\\t|expr7| when used with numeric operators). Read-only."],"v:val":["Value of the current item of a |List| or |Dictionary|. Only","\\t\\tvalid while evaluating the expression used with |map()| and","\\t\\t|filter()|. Read-only."],"v:version":["Vim version number: major version times 100 plus minor","\\t\\tversion. Vim 5.0 is 500, Vim 5.1 is 501.","\\t\\tRead-only.","\\t\\tUse |has()| to check the Nvim (not Vim) version: >","\\t\\t\\t:if has(\\"nvim-0.2.1\\")","<"],"v:vim_did_enter":["0 during startup, 1 just before |VimEnter|.","\\t\\tRead-only."],"v:warningmsg":["Last given warning message.","\\t\\tModifiable (can be set)."],"v:windowid":["Application-specific window \\"handle\\" which may be set by any","\\t\\tattached UI. Defaults to zero.","\\t\\tNote: For Nvim |windows| use |winnr()| or |win_getid()|, see","\\t\\t|window-ID|."],"v:argv":["The command line arguments Vim was invoked with. This is a","\\t\\tlist of strings. The first item is the Vim command."],"v:none":["An empty String. Used to put an empty item in JSON. See","\\t\\t|json_encode()|.","\\t\\tWhen used as a number this evaluates to zero.","\\t\\tWhen used as a string this evaluates to \\"v:none\\". >","\\t\\t\\techo v:none","<\\t\\t\\tv:none ~","\\t\\tThat is so that eval() can parse the string back to the same","\\t\\tvalue. Read-only."],"v:t_channel":["Value of |Channel| type. Read-only. See: |type()|"],"v:t_job":["Value of |Job| type. Read-only. See: |type()|"],"v:t_none":["Value of |None| type. Read-only. See: |type()|"],"v:t_blob":["Value of |Blob| type. Read-only. See: |type()|"],"v:termblinkresp":["The escape sequence returned by the terminal for the |t_RC|","\\t\\ttermcap entry. This is used to find out whether the terminal","\\t\\tcursor is blinking. This is used by |term_getcursor()|."],"v:termstyleresp":["The escape sequence returned by the terminal for the |t_RS|","\\t\\ttermcap entry. This is used to find out what the shape of the","\\t\\tcursor is. This is used by |term_getcursor()|."],"v:termrbgresp":["The escape sequence returned by the terminal for the |t_RB|","\\t\\ttermcap entry. This is used to find out what the terminal","\\t\\tbackground color is, see \'background\'."],"v:termrfgresp":["The escape sequence returned by the terminal for the |t_RF|","\\t\\ttermcap entry. This is used to find out what the terminal","\\t\\tforeground color is."],"v:termu7resp":["The escape sequence returned by the terminal for the |t_u7|","\\t\\ttermcap entry. This is used to find out what the terminal","\\t\\tdoes with ambiguous width characters, see \'ambiwidth\'."],"v:versionlong":["Like v:version, but also including the patchlevel in the last","\\t\\tfour digits. Version 8.1 with patch 123 has value 8010123.","\\t\\tThis can be used like this: >","\\t\\t\\tif v:versionlong >= 8010123","<\\t\\tHowever, if there are gaps in the list of patches included","\\t\\tthis will not work well. This can happen if a recent patch","\\t\\twas included into an older version, e.g. for a security fix.","\\t\\tUse the has() function to make sure the patch is actually","\\t\\tincluded."]},"options":{"aleph":["number\\t(default 224)","\\t\\t\\tglobal","\\tThe ASCII code for the first letter of the Hebrew alphabet. The","\\troutine that maps the keyboard in Hebrew mode, both in Insert mode","\\t(when hkmap is set) and on the command-line (when hitting CTRL-_)","\\toutputs the Hebrew characters in the range [aleph..aleph+26].","\\taleph=128 applies to PC code, and aleph=224 applies to ISO 8859-8.","\\tSee |rileft.txt|."],"allowrevins":["boolean\\t(default off)","\\t\\t\\tglobal","\\tAllow CTRL-_ in Insert and Command-line mode. This is default off, to","\\tavoid that users that accidentally type CTRL-_ instead of SHIFT-_ get","\\tinto reverse Insert mode, and don\'t know how to get out. See","\\t\'revins\'."],"ambiwidth":["string (default: \\"single\\")","\\t\\t\\tglobal","\\tTells Vim what to do with characters with East Asian Width Class","\\tAmbiguous (such as Euro, Registered Sign, Copyright Sign, Greek","\\tletters, Cyrillic letters)."],"autochdir":["boolean (default off)","\\t\\t\\tglobal","\\tWhen on, Vim will change the current working directory whenever you","\\topen a file, switch buffers, delete a buffer or open/close a window.","\\tIt will change to the directory containing the file which was opened","\\tor selected.","\\tNote: When this option is on some plugins may not work."],"arabic":["boolean (default off)","\\t\\t\\tlocal to window","\\tThis option can be set to start editing Arabic text.","\\tSetting this option will:","\\t- Set the \'rightleft\' option, unless \'termbidi\' is set.","\\t- Set the \'arabicshape\' option, unless \'termbidi\' is set.","\\t- Set the \'keymap\' option to \\"arabic\\"; in Insert mode CTRL-^ toggles","\\t between typing English and Arabic key mapping.","\\t- Set the \'delcombine\' option"],"arabicshape":["boolean (default on)","\\t\\t\\tglobal","\\tWhen on and \'termbidi\' is off, the required visual character","\\tcorrections that need to take place for displaying the Arabic language","\\ttake effect. Shaping, in essence, gets enabled; the term is a broad","\\tone which encompasses:","\\t a) the changing/morphing of characters based on their location","\\t within a word (initial, medial, final and stand-alone).","\\t b) the enabling of the ability to compose characters","\\t c) the enabling of the required combining of some characters","\\tWhen disabled the display shows each character\'s true stand-alone","\\tform.","\\tArabic is a complex language which requires other settings, for","\\tfurther details see |arabic.txt|."],"autoindent":["boolean\\t(default on)","\\t\\t\\tlocal to buffer","\\tCopy indent from current line when starting a new line (typing <CR>","\\tin Insert mode or when using the \\"o\\" or \\"O\\" command). If you do not","\\ttype anything on the new line except <BS> or CTRL-D and then type","\\t<Esc>, CTRL-O or <CR>, the indent is deleted again. Moving the cursor","\\tto another line has the same effect, unless the \'I\' flag is included","\\tin \'cpoptions\'.","\\tWhen autoindent is on, formatting (with the \\"gq\\" command or when you","\\treach \'textwidth\' in Insert mode) uses the indentation of the first","\\tline.","\\tWhen \'smartindent\' or \'cindent\' is on the indent is changed in","\\ta different way.","\\tThe \'autoindent\' option is reset when the \'paste\' option is set and","\\trestored when \'paste\' is reset.","\\t{small difference from Vi: After the indent is deleted when typing","\\t<Esc> or <CR>, the cursor position when moving up or down is after the","\\tdeleted indent; Vi puts the cursor somewhere in the deleted indent}."],"autoread":["boolean\\t(default on)","\\t\\t\\tglobal or local to buffer |global-local|","\\tWhen a file has been detected to have been changed outside of Vim and","\\tit has not been changed inside of Vim, automatically read it again.","\\tWhen the file has been deleted this is not done, so you have the text","\\tfrom before it was deleted. When it appears again then it is read.","\\t|timestamp|","\\tIf this option has a local value, use this command to switch back to","\\tusing the global value: >","\\t\\t:set autoread<","<","\\t\\t\\t\\t *\'autowrite\'* *\'aw\'* *\'noautowrite\'* *\'noaw\'*"],"autowrite":["boolean\\t(default off)","\\t\\t\\tglobal","\\tWrite the contents of the file, if it has been modified, on each","\\t:next, :rewind, :last, :first, :previous, :stop, :suspend, :tag, :!,","\\t:make, CTRL-] and CTRL-^ command; and when a :buffer, CTRL-O, CTRL-I,","\\t\'{A-Z0-9}, or `{A-Z0-9} command takes one to another file.","\\tNote that for some commands the \'autowrite\' option is not used, see","\\t\'autowriteall\' for that.","\\tSome buffers will not be written, specifically when \'buftype\' is","\\t\\"nowrite\\", \\"nofile\\", \\"terminal\\" or \\"prompt\\"."],"autowriteall":["boolean\\t(default off)","\\t\\t\\tglobal","\\tLike \'autowrite\', but also used for commands \\":edit\\", \\":enew\\", \\":quit\\",","\\t\\":qall\\", \\":exit\\", \\":xit\\", \\":recover\\" and closing the Vim window.","\\tSetting this option also implies that Vim behaves like \'autowrite\' has","\\tbeen set."],"background":["string\\t(default \\"dark\\")","\\t\\t\\tglobal","\\tWhen set to \\"dark\\" or \\"light\\", adjusts the default color groups for","\\tthat background type. The |TUI| or other UI sets this on startup","\\t(triggering |OptionSet|) if it can detect the background color."],"backspace":["string\\t(default \\"indent,eol,start\\")","\\t\\t\\tglobal","\\tInfluences the working of <BS>, <Del>, CTRL-W and CTRL-U in Insert","\\tmode. This is a list of items, separated by commas. Each item allows","\\ta way to backspace over something:","\\tvalue\\teffect\\t~","\\tindent\\tallow backspacing over autoindent","\\teol\\tallow backspacing over line breaks (join lines)","\\tstart\\tallow backspacing over the start of insert; CTRL-W and CTRL-U","\\t\\tstop once at the start of insert."],"backup":["boolean\\t(default off)","\\t\\t\\tglobal","\\tMake a backup before overwriting a file. Leave it around after the","\\tfile has been successfully written. If you do not want to keep the","\\tbackup file, but you do want a backup while the file is being","\\twritten, reset this option and set the \'writebackup\' option (this is","\\tthe default). If you do not want a backup file at all reset both","\\toptions (use this if your file system is almost full). See the","\\t|backup-table| for more explanations.","\\tWhen the \'backupskip\' pattern matches, a backup is not made anyway.","\\tWhen \'patchmode\' is set, the backup may be renamed to become the","\\toldest version of a file."],"backupcopy":["string\\t(Vi default for Unix: \\"yes\\", otherwise: \\"auto\\")","\\t\\t\\tglobal or local to buffer |global-local|","\\tWhen writing a file and a backup is made, this option tells how it\'s","\\tdone. This is a comma separated list of words."],"backupdir":["string\\t(default \\".,$XDG_DATA_HOME/nvim/backup\\")","\\t\\t\\tglobal","\\tList of directories for the backup file, separated with commas.","\\t- The backup file will be created in the first directory in the list","\\t where this is possible. The directory must exist, Vim will not","\\t create it for you.","\\t- Empty means that no backup file will be created (\'patchmode\' is","\\t impossible!). Writing may fail because of this.","\\t- A directory \\".\\" means to put the backup file in the same directory","\\t as the edited file.","\\t- A directory starting with \\"./\\" (or \\".\\\\\\" for Windows) means to","\\t put the backup file relative to where the edited file is. The","\\t leading \\".\\" is replaced with the path name of the edited file.","\\t (\\".\\" inside a directory name has no special meaning).","\\t- Spaces after the comma are ignored, other spaces are considered part","\\t of the directory name. To have a space at the start of a directory","\\t name, precede it with a backslash.","\\t- To include a comma in a directory name precede it with a backslash.","\\t- A directory name may end in an \'/\'.","\\t- For Unix and Win32, if a directory ends in two path separators \\"//\\",","\\t the swap file name will be built from the complete path to the file","\\t with all path separators changed to percent \'%\' signs. This will","\\t ensure file name uniqueness in the backup directory.","\\t On Win32, it is also possible to end with \\"\\\\\\\\\\". However, When a","\\t separating comma is following, you must use \\"//\\", since \\"\\\\\\\\\\" will","\\t include the comma in the file name. Therefore it is recommended to","\\t use \'//\', instead of \'\\\\\\\\\'.","\\t- Environment variables are expanded |:set_env|.","\\t- Careful with \'\\\\\' characters, type one before a space, type two to","\\t get one in the option (see |option-backslash|), for example: >","\\t :set bdir=c:\\\\\\\\tmp,\\\\ dir\\\\\\\\,with\\\\\\\\,commas,\\\\\\\\\\\\ dir\\\\ with\\\\ spaces","<\\t- For backwards compatibility with Vim version 3.0 a \'>\' at the start","\\t of the option is removed.","\\tSee also \'backup\' and \'writebackup\' options.","\\tIf you want to hide your backup files on Unix, consider this value: >","\\t\\t:set backupdir=./.backup,~/.backup,.,/tmp","<\\tYou must create a \\".backup\\" directory in each directory and in your","\\thome directory for this to work properly.","\\tThe use of |:set+=| and |:set-=| is preferred when adding or removing","\\tdirectories from the list. This avoids problems when a future version","\\tuses another default.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"backupext":["string\\t(default \\"~\\")","\\t\\t\\tglobal","\\tString which is appended to a file name to make the name of the","\\tbackup file. The default is quite unusual, because this avoids","\\taccidentally overwriting existing files with a backup file. You might","\\tprefer using \\".bak\\", but make sure that you don\'t have files with","\\t\\".bak\\" that you want to keep.","\\tOnly normal file name characters can be used, \\"/\\\\*?[|<>\\" are illegal."],"backupskip":["string\\t(default: \\"$TMPDIR/*,$TMP/*,$TEMP/*\\"","\\t\\t\\t\\t Unix: \\"/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*\\"","\\t\\t\\t\\t Mac: \\"/private/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*\\")","\\t\\t\\tglobal","\\tA list of file patterns. When one of the patterns matches with the","\\tname of the file which is written, no backup file is created. Both","\\tthe specified file name and the full path name of the file are used.","\\tThe pattern is used like with |:autocmd|, see |autocmd-pattern|.","\\tWatch out for special characters, see |option-backslash|.","\\tWhen $TMPDIR, $TMP or $TEMP is not defined, it is not used for the","\\tdefault value. \\"/tmp/*\\" is only used for Unix."],"balloondelay":["Removed."],"ballooneval":["Removed."],"balloonexpr":["Removed."],"belloff":["string\\t(default \\"all\\")","\\t\\t\\tglobal","\\tSpecifies for which events the bell will not be rung. It is a comma","\\tseparated list of items. For each item that is present, the bell","\\twill be silenced. This is most useful to specify specific events in","\\tinsert mode to be silenced."],"binary":["boolean\\t(default off)","\\t\\t\\tlocal to buffer","\\tThis option should be set before editing a binary file. You can also","\\tuse the |-b| Vim argument. When this option is switched on a few","\\toptions will be changed (also when it already was on):","\\t\\t\'textwidth\' will be set to 0","\\t\\t\'wrapmargin\' will be set to 0","\\t\\t\'modeline\' will be off","\\t\\t\'expandtab\' will be off","\\tAlso, \'fileformat\' and \'fileformats\' options will not be used, the","\\tfile is read and written like \'fileformat\' was \\"unix\\" (a single <NL>","\\tseparates lines).","\\tThe \'fileencoding\' and \'fileencodings\' options will not be used, the","\\tfile is read without conversion.","\\tNOTE: When you start editing a(nother) file while the \'bin\' option is","\\ton, settings from autocommands may change the settings again (e.g.,","\\t\'textwidth\'), causing trouble when editing. You might want to set","\\t\'bin\' again when the file has been loaded.","\\tThe previous values of these options are remembered and restored when","\\t\'bin\' is switched from on to off. Each buffer has its own set of","\\tsaved option values.","\\tTo edit a file with \'binary\' set you can use the |++bin| argument.","\\tThis avoids you have to do \\":set bin\\", which would have effect for all","\\tfiles you edit.","\\tWhen writing a file the <EOL> for the last line is only written if","\\tthere was one in the original file (normally Vim appends an <EOL> to","\\tthe last line if there is none; this would make the file longer). See","\\tthe \'endofline\' option."],"bomb":["boolean\\t(default off)","\\t\\t\\tlocal to buffer","\\tWhen writing a file and the following conditions are met, a BOM (Byte","\\tOrder Mark) is prepended to the file:","\\t- this option is on","\\t- the \'binary\' option is off","\\t- \'fileencoding\' is \\"utf-8\\", \\"ucs-2\\", \\"ucs-4\\" or one of the little/big","\\t endian variants.","\\tSome applications use the BOM to recognize the encoding of the file.","\\tOften used for UCS-2 files on MS-Windows. For other applications it","\\tcauses trouble, for example: \\"cat file1 file2\\" makes the BOM of file2","\\tappear halfway through the resulting file. Gcc doesn\'t accept a BOM.","\\tWhen Vim reads a file and \'fileencodings\' starts with \\"ucs-bom\\", a","\\tcheck for the presence of the BOM is done and \'bomb\' set accordingly.","\\tUnless \'binary\' is set, it is removed from the first line, so that you","\\tdon\'t see it when editing. When you don\'t change the options, the BOM","\\twill be restored when writing the file."],"breakat":["string\\t(default \\" ^I!@*-+;:,./?\\")","\\t\\t\\tglobal","\\tThis option lets you choose which characters might cause a line","\\tbreak if \'linebreak\' is on. Only works for ASCII characters."],"breakindent":["boolean (default off)","\\t\\t\\tlocal to window","\\tEvery wrapped line will continue visually indented (same amount of","\\tspace as the beginning of that line), thus preserving horizontal blocks","\\tof text."],"breakindentopt":["string (default empty)","\\t\\t\\tlocal to window","\\tSettings for \'breakindent\'. It can consist of the following optional","\\titems and must be separated by a comma:","\\t\\tmin:{n}\\t Minimum text width that will be kept after","\\t\\t\\t applying \'breakindent\', even if the resulting","\\t\\t\\t text should normally be narrower. This prevents","\\t\\t\\t text indented almost to the right window border","\\t\\t\\t occupying lot of vertical space when broken.","\\t\\tshift:{n} After applying \'breakindent\', the wrapped line\'s","\\t\\t\\t beginning will be shifted by the given number of","\\t\\t\\t characters. It permits dynamic French paragraph","\\t\\t\\t indentation (negative) or emphasizing the line","\\t\\t\\t continuation (positive).","\\t\\tsbr\\t Display the \'showbreak\' value before applying the","\\t\\t\\t additional indent.","\\tThe default value for min is 20 and shift is 0."],"browsedir":["string\\t(default: \\"last\\")","\\t\\t\\tglobal","\\tWhich directory to use for the file browser:","\\t last\\t\\tUse same directory as with last file browser, where a","\\t\\t\\tfile was opened or saved.","\\t buffer\\tUse the directory of the related buffer.","\\t current\\tUse the current directory.","\\t {path}\\tUse the specified directory"],"bufhidden":["string (default: \\"\\")","\\t\\t\\tlocal to buffer","\\tThis option specifies what happens when a buffer is no longer","\\tdisplayed in a window:","\\t <empty>\\tfollow the global \'hidden\' option","\\t hide\\t\\thide the buffer (don\'t unload it), also when \'hidden\'","\\t\\t\\tis not set","\\t unload\\tunload the buffer, also when \'hidden\' is set or using","\\t\\t\\t|:hide|","\\t delete\\tdelete the buffer from the buffer list, also when","\\t\\t\\t\'hidden\' is set or using |:hide|, like using","\\t\\t\\t|:bdelete|","\\t wipe\\t\\twipe out the buffer from the buffer list, also when","\\t\\t\\t\'hidden\' is set or using |:hide|, like using","\\t\\t\\t|:bwipeout|"],"buflisted":["boolean (default: on)","\\t\\t\\tlocal to buffer","\\tWhen this option is set, the buffer shows up in the buffer list. If","\\tit is reset it is not used for \\":bnext\\", \\"ls\\", the Buffers menu, etc.","\\tThis option is reset by Vim for buffers that are only used to remember","\\ta file name or marks. Vim sets it when starting to edit a buffer.","\\tBut not when moving to a buffer with \\":buffer\\"."],"buftype":["string (default: \\"\\")","\\t\\t\\tlocal to buffer","\\tThe value of this option specifies the type of a buffer:","\\t <empty>\\tnormal buffer","\\t acwrite\\tbuffer will always be written with |BufWriteCmd|s","\\t help\\t\\thelp buffer (do not set this manually)","\\t nofile\\tbuffer is not related to a file, will not be written","\\t nowrite\\tbuffer will not be written","\\t quickfix\\tlist of errors |:cwindow| or locations |:lwindow|","\\t terminal\\t|terminal-emulator| buffer","\\t prompt\\tbuffer where only the last line can be edited, meant","\\t\\t\\tto be used by a plugin, see |prompt-buffer|"],"casemap":["string\\t(default: \\"internal,keepascii\\")","\\t\\t\\tglobal","\\tSpecifies details about changing the case of letters. It may contain","\\tthese words, separated by a comma:","\\tinternal\\tUse internal case mapping functions, the current","\\t\\t\\tlocale does not change the case mapping. When","\\t\\t\\t\\"internal\\" is omitted, the towupper() and towlower()","\\t\\t\\tsystem library functions are used when available.","\\tkeepascii\\tFor the ASCII characters (0x00 to 0x7f) use the US","\\t\\t\\tcase mapping, the current locale is not effective.","\\t\\t\\tThis probably only matters for Turkish."],"cdpath":["string\\t(default: equivalent to $CDPATH or \\",,\\")","\\t\\t\\tglobal","\\tThis is a list of directories which will be searched when using the","\\t|:cd| and |:lcd| commands, provided that the directory being searched","\\tfor has a relative path, not an absolute part starting with \\"/\\", \\"./\\"","\\tor \\"../\\", the \'cdpath\' option is not used then.","\\tThe \'cdpath\' option\'s value has the same form and semantics as","\\t|\'path\'|. Also see |file-searching|.","\\tThe default value is taken from $CDPATH, with a \\",\\" prepended to look","\\tin the current directory first.","\\tIf the default value taken from $CDPATH is not what you want, include","\\ta modified version of the following command in your vimrc file to","\\toverride it: >","\\t :let &cdpath = \',\' . substitute(substitute($CDPATH, \'[, ]\', \'\\\\\\\\\\\\0\', \'g\'), \':\', \',\', \'g\')","<\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons.","\\t(parts of \'cdpath\' can be passed to the shell to expand file names)."],"cedit":["string\\t(Vim default: CTRL-F, Vi default: \\"\\")","\\t\\t\\tglobal","\\tThe key used in Command-line Mode to open the command-line window.","\\tOnly non-printable keys are allowed.","\\tThe key can be specified as a single character, but it is difficult to","\\ttype. The preferred way is to use the <> notation. Examples: >","\\t\\t:exe \\"set cedit=\\\\<C-Y>\\"","\\t\\t:exe \\"set cedit=\\\\<Esc>\\"","<\\t|Nvi| also has this option, but it only uses the first character.","\\tSee |cmdwin|."],"channel":["number (default: 0)","\\t\\t\\tlocal to buffer","\\t|channel| connected to the buffer, or 0 if no channel is connected.","\\tIn a |:terminal| buffer this is the terminal channel.","\\tRead-only."],"charconvert":["string (default \\"\\")","\\t\\t\\tglobal","\\tAn expression that is used for character encoding conversion. It is","\\tevaluated when a file that is to be read or has been written has a","\\tdifferent encoding from what is desired.","\\t\'charconvert\' is not used when the internal iconv() function is","\\tsupported and is able to do the conversion. Using iconv() is","\\tpreferred, because it is much faster.","\\t\'charconvert\' is not used when reading stdin |--|, because there is no","\\tfile to convert from. You will have to save the text in a file first.","\\tThe expression must return zero or an empty string for success,","\\tnon-zero for failure.","\\tSee |encoding-names| for possible encoding names.","\\tAdditionally, names given in \'fileencodings\' and \'fileencoding\' are","\\tused.","\\tConversion between \\"latin1\\", \\"unicode\\", \\"ucs-2\\", \\"ucs-4\\" and \\"utf-8\\"","\\tis done internally by Vim, \'charconvert\' is not used for this.","\\tAlso used for Unicode conversion.","\\tExample: >","\\t\\tset charconvert=CharConvert()","\\t\\tfun CharConvert()","\\t\\t system(\\"recode \\"","\\t\\t\\t\\\\ . v:charconvert_from . \\"..\\" . v:charconvert_to","\\t\\t\\t\\\\ . \\" <\\" . v:fname_in . \\" >\\" v:fname_out)","\\t\\t return v:shell_error","\\t\\tendfun","<\\tThe related Vim variables are:","\\t\\tv:charconvert_from\\tname of the current encoding","\\t\\tv:charconvert_to\\tname of the desired encoding","\\t\\tv:fname_in\\t\\tname of the input file","\\t\\tv:fname_out\\t\\tname of the output file","\\tNote that v:fname_in and v:fname_out will never be the same.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"cindent":["boolean\\t(default off)","\\t\\t\\tlocal to buffer","\\tEnables automatic C program indenting. See \'cinkeys\' to set the keys","\\tthat trigger reindenting in insert mode and \'cinoptions\' to set your","\\tpreferred indent style.","\\tIf \'indentexpr\' is not empty, it overrules \'cindent\'.","\\tIf \'lisp\' is not on and both \'indentexpr\' and \'equalprg\' are empty,","\\tthe \\"=\\" operator indents using this algorithm rather than calling an","\\texternal program.","\\tSee |C-indenting|.","\\tWhen you don\'t like the way \'cindent\' works, try the \'smartindent\'","\\toption or \'indentexpr\'.","\\tThis option is not used when \'paste\' is set."],"cinkeys":["string\\t(default \\"0{,0},0),0],:,0#,!^F,o,O,e\\")","\\t\\t\\tlocal to buffer","\\tA list of keys that, when typed in Insert mode, cause reindenting of","\\tthe current line. Only used if \'cindent\' is on and \'indentexpr\' is","\\tempty.","\\tFor the format of this option see |cinkeys-format|.","\\tSee |C-indenting|."],"cinoptions":["string\\t(default \\"\\")","\\t\\t\\tlocal to buffer","\\tThe \'cinoptions\' affect the way \'cindent\' reindents lines in a C","\\tprogram. See |cinoptions-values| for the values of this option, and","\\t|C-indenting| for info on C indenting in general."],"cinwords":["string\\t(default \\"if,else,while,do,for,switch\\")","\\t\\t\\tlocal to buffer","\\tThese keywords start an extra indent in the next line when","\\t\'smartindent\' or \'cindent\' is set. For \'cindent\' this is only done at","\\tan appropriate place (inside {}).","\\tNote that \'ignorecase\' isn\'t used for \'cinwords\'. If case doesn\'t","\\tmatter, include the keyword both the uppercase and lowercase:","\\t\\"if,If,IF\\"."],"clipboard":["string\\t(default \\"\\")","\\t\\t\\tglobal","\\tThis option is a list of comma separated names.","\\tThese names are recognized:"],"cmdheight":["number\\t(default 1)","\\t\\t\\tglobal","\\tNumber of screen lines to use for the command-line. Helps avoiding","\\t|hit-enter| prompts.","\\tThe value of this option is stored with the tab page, so that each tab","\\tpage can have a different value."],"cmdwinheight":["number\\t(default 7)","\\t\\t\\tglobal","\\tNumber of screen lines to use for the command-line window. |cmdwin|"],"colorcolumn":["string\\t(default \\"\\")","\\t\\t\\tlocal to window","\\t\'colorcolumn\' is a comma separated list of screen columns that are","\\thighlighted with ColorColumn |hl-ColorColumn|. Useful to align","\\ttext. Will make screen redrawing slower.","\\tThe screen column can be an absolute number, or a number preceded with","\\t\'+\' or \'-\', which is added to or subtracted from \'textwidth\'. >"],"columns":["number\\t(default 80 or terminal width)","\\t\\t\\tglobal","\\tNumber of columns of the screen. Normally this is set by the terminal","\\tinitialization and does not have to be set by hand.","\\tWhen Vim is running in the GUI or in a resizable window, setting this","\\toption will cause the window size to be changed. When you only want","\\tto use the size for the GUI, put the command in your |ginit.vim| file.","\\tWhen you set this option and Vim is unable to change the physical","\\tnumber of columns of the display, the display may be messed up. For","\\tthe GUI it is always possible and Vim limits the number of columns to","\\twhat fits on the screen. You can use this command to get the widest","\\twindow possible: >","\\t\\t:set columns=9999","<\\tMinimum value is 12, maximum value is 10000."],"comments":["string\\t(default","\\t\\t\\t\\t\\"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-\\")","\\t\\t\\tlocal to buffer","\\tA comma separated list of strings that can start a comment line. See","\\t|format-comments|. See |option-backslash| about using backslashes to","\\tinsert a space."],"commentstring":["string\\t(default \\"/*%s*/\\")","\\t\\t\\tlocal to buffer","\\tA template for a comment. The \\"%s\\" in the value is replaced with the","\\tcomment text. Currently only used to add markers for folding, see","\\t|fold-marker|."],"complete":["string\\t(default: \\".,w,b,u,t\\")","\\t\\t\\tlocal to buffer","\\tThis option specifies how keyword completion |ins-completion| works","\\twhen CTRL-P or CTRL-N are used. It is also used for whole-line","\\tcompletion |i_CTRL-X_CTRL-L|. It indicates the type of completion","\\tand the places to scan. It is a comma separated list of flags:","\\t.\\tscan the current buffer (\'wrapscan\' is ignored)","\\tw\\tscan buffers from other windows","\\tb\\tscan other loaded buffers that are in the buffer list","\\tu\\tscan the unloaded buffers that are in the buffer list","\\tU\\tscan the buffers that are not in the buffer list","\\tk\\tscan the files given with the \'dictionary\' option","\\tkspell use the currently active spell checking |spell|","\\tk{dict}\\tscan the file {dict}. Several \\"k\\" flags can be given,","\\t\\tpatterns are valid too. For example: >","\\t\\t\\t:set cpt=k/usr/dict/*,k~/spanish","<\\ts\\tscan the files given with the \'thesaurus\' option","\\ts{tsr}\\tscan the file {tsr}. Several \\"s\\" flags can be given, patterns","\\t\\tare valid too.","\\ti\\tscan current and included files","\\td\\tscan current and included files for defined name or macro","\\t\\t|i_CTRL-X_CTRL-D|","\\t]\\ttag completion","\\tt\\tsame as \\"]\\""],"completefunc":["string\\t(default: empty)","\\t\\t\\tlocal to buffer","\\tThis option specifies a function to be used for Insert mode completion","\\twith CTRL-X CTRL-U. |i_CTRL-X_CTRL-U|","\\tSee |complete-functions| for an explanation of how the function is","\\tinvoked and what it should return.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"completeopt":["string\\t(default: \\"menu,preview\\")","\\t\\t\\tglobal","\\tA comma separated list of options for Insert mode completion","\\t|ins-completion|. The supported values are:"],"concealcursor":["string (default: \\"\\")","\\t\\t\\tlocal to window","\\tSets the modes in which text in the cursor line can also be concealed.","\\tWhen the current mode is listed then concealing happens just like in","\\tother lines.","\\t n\\t\\tNormal mode","\\t v\\t\\tVisual mode","\\t i\\t\\tInsert mode","\\t c\\t\\tCommand line editing, for \'incsearch\'"],"conceallevel":["number (default 0)","\\t\\t\\tlocal to window","\\tDetermine how text with the \\"conceal\\" syntax attribute |:syn-conceal|","\\tis shown:"],"confirm":["boolean (default off)","\\t\\t\\tglobal","\\tWhen \'confirm\' is on, certain operations that would normally","\\tfail because of unsaved changes to a buffer, e.g. \\":q\\" and \\":e\\",","\\tinstead raise a dialog asking if you wish to save the current","\\tfile(s). You can still use a ! to unconditionally |abandon| a buffer.","\\tIf \'confirm\' is off you can still activate confirmation for one","\\tcommand only (this is most useful in mappings) with the |:confirm|","\\tcommand.","\\tAlso see the |confirm()| function and the \'v\' flag in \'guioptions\'."],"copyindent":["boolean\\t(default off)","\\t\\t\\tlocal to buffer","\\tCopy the structure of the existing lines indent when autoindenting a","\\tnew line. Normally the new indent is reconstructed by a series of","\\ttabs followed by spaces as required (unless |\'expandtab\'| is enabled,","\\tin which case only spaces are used). Enabling this option makes the","\\tnew line copy whatever characters were used for indenting on the","\\texisting line. \'expandtab\' has no effect on these characters, a Tab","\\tremains a Tab. If the new indent is greater than on the existing","\\tline, the remaining space is filled in the normal manner.","\\tSee \'preserveindent\'."],"cpoptions":["string\\t(Vim default: \\"aABceFs_\\",","\\t\\t\\t\\t Vi default: all flags)","\\t\\t\\tglobal","\\tA sequence of single character flags. When a character is present","\\tthis indicates Vi-compatible behavior. This is used for things where","\\tnot being Vi-compatible is mostly or sometimes preferred.","\\t\'cpoptions\' stands for \\"compatible-options\\".","\\tCommas can be added for readability.","\\tTo avoid problems with flags that are added in the future, use the","\\t\\"+=\\" and \\"-=\\" feature of \\":set\\" |add-option-flags|."],"cscopepathcomp":["number\\t(default 0)","\\t\\t\\tglobal","\\tDetermines how many components of the path to show in a list of tags.","\\tSee |cscopepathcomp|."],"cscopeprg":["string\\t(default \\"cscope\\")","\\t\\t\\tglobal","\\tSpecifies the command to execute cscope. See |cscopeprg|.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"cscopequickfix":["string\\t(default \\"\\")","\\t\\t\\tglobal","\\tSpecifies whether to use quickfix window to show cscope results.","\\tSee |cscopequickfix|."],"cscoperelative":["boolean (default off)","\\t\\t\\tglobal","\\tIn the absence of a prefix (-P) for cscope. setting this option enables","\\tto use the basename of cscope.out path as the prefix.","\\tSee |cscoperelative|."],"cscopetag":["boolean (default off)","\\t\\t\\tglobal","\\tUse cscope for tag commands. See |cscope-options|."],"cscopetagorder":["number\\t(default 0)","\\t\\t\\tglobal","\\tDetermines the order in which \\":cstag\\" performs a search. See","\\t|cscopetagorder|."],"cursorbind":["boolean (default off)","\\t\\t\\tlocal to window","\\tWhen this option is set, as the cursor in the current","\\twindow moves other cursorbound windows (windows that also have","\\tthis option set) move their cursors to the corresponding line and","\\tcolumn. This option is useful for viewing the","\\tdifferences between two versions of a file (see \'diff\'); in diff mode,","\\tinserted and deleted lines (though not characters within a line) are","\\ttaken into account."],"cursorcolumn":["boolean\\t(default off)","\\t\\t\\tlocal to window","\\tHighlight the screen column of the cursor with CursorColumn","\\t|hl-CursorColumn|. Useful to align text. Will make screen redrawing","\\tslower.","\\tIf you only want the highlighting in the current window you can use","\\tthese autocommands: >","\\t\\tau WinLeave * set nocursorline nocursorcolumn","\\t\\tau WinEnter * set cursorline cursorcolumn","<"],"cursorline":["boolean\\t(default off)","\\t\\t\\tlocal to window","\\tHighlight the screen line of the cursor with CursorLine","\\t|hl-CursorLine|. Useful to easily spot the cursor. Will make screen","\\tredrawing slower.","\\tWhen Visual mode is active the highlighting isn\'t used to make it","\\teasier to see the selected text."],"debug":["string\\t(default \\"\\")","\\t\\t\\tglobal","\\tThese values can be used:","\\tmsg\\tError messages that would otherwise be omitted will be given","\\t\\tanyway.","\\tthrow\\tError messages that would otherwise be omitted will be given","\\t\\tanyway and also throw an exception and set |v:errmsg|.","\\tbeep\\tA message will be given when otherwise only a beep would be","\\t\\tproduced.","\\tThe values can be combined, separated by a comma.","\\t\\"msg\\" and \\"throw\\" are useful for debugging \'foldexpr\', \'formatexpr\' or","\\t\'indentexpr\'."],"define":["string\\t(default \\"^\\\\s*#\\\\s*define\\")","\\t\\t\\tglobal or local to buffer |global-local|","\\tPattern to be used to find a macro definition. It is a search","\\tpattern, just like for the \\"/\\" command. This option is used for the","\\tcommands like \\"[i\\" and \\"[d\\" |include-search|. The \'isident\' option is","\\tused to recognize the defined name after the match:","\\t\\t{match with \'define\'}{non-ID chars}{defined name}{non-ID char}","\\tSee |option-backslash| about inserting backslashes to include a space","\\tor backslash.","\\tThe default value is for C programs. For C++ this value would be","\\tuseful, to include const type declarations: >","\\t\\t^\\\\(#\\\\s*define\\\\|[a-z]*\\\\s*const\\\\s*[a-z]*\\\\)","<\\tYou can also use \\"\\\\ze\\" just before the name and continue the pattern","\\tto check what is following. E.g. for Javascript, if a function is","\\tdefined with \\"func_name = function(args)\\": >","\\t\\t^\\\\s*\\\\ze\\\\i\\\\+\\\\s*=\\\\s*function(","<\\tIf the function is defined with \\"func_name : function() {...\\": >","\\t ^\\\\s*\\\\ze\\\\i\\\\+\\\\s*[:]\\\\s*(*function\\\\s*(","<\\tWhen using the \\":set\\" command, you need to double the backslashes!","\\tTo avoid that use `:let` with a single quote string: >","\\t\\tlet &l:define = \'^\\\\s*\\\\ze\\\\k\\\\+\\\\s*=\\\\s*function(\'","<"],"delcombine":["boolean (default off)","\\t\\t\\tglobal","\\tIf editing Unicode and this option is set, backspace and Normal mode","\\t\\"x\\" delete each combining character on its own. When it is off (the","\\tdefault) the character along with its combining characters are","\\tdeleted.","\\tNote: When \'delcombine\' is set \\"xx\\" may work different from \\"2x\\"!"],"dictionary":["string\\t(default \\"\\")","\\t\\t\\tglobal or local to buffer |global-local|","\\tList of file names, separated by commas, that are used to lookup words","\\tfor keyword completion commands |i_CTRL-X_CTRL-K|. Each file should","\\tcontain a list of words. This can be one word per line, or several","\\twords per line, separated by non-keyword characters (white space is","\\tpreferred). Maximum line length is 510 bytes."],"diff":["boolean\\t(default off)","\\t\\t\\tlocal to window","\\tJoin the current window in the group of windows that shows differences","\\tbetween files. See |diff-mode|."],"diffexpr":["string\\t(default \\"\\")","\\t\\t\\tglobal","\\tExpression which is evaluated to obtain a diff file (either ed-style","\\tor unified-style) from two versions of a file. See |diff-diffexpr|.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"diffopt":["string\\t(default \\"internal,filler,closeoff\\")","\\t\\t\\tglobal","\\tOption settings for diff mode. It can consist of the following items.","\\tAll are optional. Items must be separated by a comma."],"digraph":["boolean\\t(default off)","\\t\\t\\tglobal","\\tEnable the entering of digraphs in Insert mode with {char1} <BS>","\\t{char2}. See |digraphs|."],"directory":["string\\t(default \\"$XDG_DATA_HOME/nvim/swap//\\")","\\t\\t\\tglobal","\\tList of directory names for the swap file, separated with commas.","\\t- The swap file will be created in the first directory where this is","\\t possible. If it is not possible in any directory, but last ","\\t directory listed in the option does not exist, it is created.","\\t- Empty means that no swap file will be used (recovery is","\\t impossible!) and no |E303| error will be given.","\\t- A directory \\".\\" means to put the swap file in the same directory as","\\t the edited file. On Unix, a dot is prepended to the file name, so","\\t it doesn\'t show in a directory listing. On MS-Windows the \\"hidden\\"","\\t attribute is set and a dot prepended if possible.","\\t- A directory starting with \\"./\\" (or \\".\\\\\\" for Windows) means to","\\t put the swap file relative to where the edited file is. The leading","\\t \\".\\" is replaced with the path name of the edited file.","\\t- For Unix and Win32, if a directory ends in two path separators \\"//\\",","\\t the swap file name will be built from the complete path to the file","\\t with all path separators substituted to percent \'%\' signs. This will","\\t ensure file name uniqueness in the preserve directory.","\\t On Win32, it is also possible to end with \\"\\\\\\\\\\". However, When a","\\t separating comma is following, you must use \\"//\\", since \\"\\\\\\\\\\" will","\\t include the comma in the file name. Therefore it is recommended to","\\t use \'//\', instead of \'\\\\\\\\\'.","\\t- Spaces after the comma are ignored, other spaces are considered part","\\t of the directory name. To have a space at the start of a directory","\\t name, precede it with a backslash.","\\t- To include a comma in a directory name precede it with a backslash.","\\t- A directory name may end in an \':\' or \'/\'.","\\t- Environment variables are expanded |:set_env|.","\\t- Careful with \'\\\\\' characters, type one before a space, type two to","\\t get one in the option (see |option-backslash|), for example: >","\\t :set dir=c:\\\\\\\\tmp,\\\\ dir\\\\\\\\,with\\\\\\\\,commas,\\\\\\\\\\\\ dir\\\\ with\\\\ spaces","<\\t- For backwards compatibility with Vim version 3.0 a \'>\' at the start","\\t of the option is removed.","\\tUsing \\".\\" first in the list is recommended. This means that editing","\\tthe same file twice will result in a warning. Using \\"/tmp\\" on Unix is","\\tdiscouraged: When the system crashes you lose the swap file.","\\t\\"/var/tmp\\" is often not cleared when rebooting, thus is a better","\\tchoice than \\"/tmp\\". But it can contain a lot of files, your swap","\\tfiles get lost in the crowd. That is why a \\"tmp\\" directory in your","\\thome directory is tried first.","\\tThe use of |:set+=| and |:set-=| is preferred when adding or removing","\\tdirectories from the list. This avoids problems when a future version","\\tuses another default.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"display":["string\\t(default \\"lastline,msgsep\\", Vi default: \\"\\")","\\t\\t\\tglobal","\\tChange the way text is displayed. This is comma separated list of","\\tflags:","\\tlastline\\tWhen included, as much as possible of the last line","\\t\\t\\tin a window will be displayed. \\"@@@\\" is put in the","\\t\\t\\tlast columns of the last screen line to indicate the","\\t\\t\\trest of the line is not displayed.","\\ttruncate\\tLike \\"lastline\\", but \\"@@@\\" is displayed in the first","\\t\\t\\tcolumn of the last screen line. Overrules \\"lastline\\".","\\tuhex\\t\\tShow unprintable characters hexadecimal as <xx>","\\t\\t\\tinstead of using ^C and ~C.","\\tmsgsep\\t\\tWhen showing messages longer than \'cmdheight\', only","\\t\\t\\tscroll the message lines, not the entire screen. The","\\t\\t\\tseparator line is decorated by |hl-MsgSeparator| and","\\t\\t\\tthe \\"msgsep\\" flag of \'fillchars\'."],"eadirection":["string\\t(default \\"both\\")","\\t\\t\\tglobal","\\tTells when the \'equalalways\' option applies:","\\t\\tver\\tvertically, width of windows is not affected","\\t\\thor\\thorizontally, height of windows is not affected","\\t\\tboth\\twidth and height of windows is affected"],"emoji":["boolean (default: on)","\\t\\t\\tglobal","\\tWhen on all Unicode emoji characters are considered to be full width."],"endofline":["boolean\\t(default on)","\\t\\t\\tlocal to buffer","\\tWhen writing a file and this option is off and the \'binary\' option","\\tis on, or \'fixeol\' option is off, no <EOL> will be written for the","\\tlast line in the file. This option is automatically set or reset when","\\tstarting to edit a new file, depending on whether file has an <EOL>","\\tfor the last line in the file. Normally you don\'t have to set or","\\treset this option.","\\tWhen \'binary\' is off and \'fixeol\' is on the value is not used when","\\twriting the file. When \'binary\' is on or \'fixeol\' is off it is used","\\tto remember the presence of a <EOL> for the last line in the file, so","\\tthat when you write the file the situation from the original file can","\\tbe kept. But you can change it if you want to."],"equalalways":["boolean\\t(default on)","\\t\\t\\tglobal","\\tWhen on, all the windows are automatically made the same size after","\\tsplitting or closing a window. This also happens the moment the","\\toption is switched on. When off, splitting a window will reduce the","\\tsize of the current window and leave the other windows the same. When","\\tclosing a window the extra lines are given to the window next to it","\\t(depending on \'splitbelow\' and \'splitright\').","\\tWhen mixing vertically and horizontally split windows, a minimal size","\\tis computed and some windows may be larger if there is room. The","\\t\'eadirection\' option tells in which direction the size is affected.","\\tChanging the height and width of a window can be avoided by setting","\\t\'winfixheight\' and \'winfixwidth\', respectively.","\\tIf a window size is specified when creating a new window sizes are","\\tcurrently not equalized (it\'s complicated, but may be implemented in","\\tthe future)."],"equalprg":["string\\t(default \\"\\")","\\t\\t\\tglobal or local to buffer |global-local|","\\tExternal program to use for \\"=\\" command. When this option is empty","\\tthe internal formatting functions are used; either \'lisp\', \'cindent\'","\\tor \'indentexpr\'. When Vim was compiled without internal formatting,","\\tthe \\"indent\\" program is used.","\\tEnvironment variables are expanded |:set_env|. See |option-backslash|","\\tabout including spaces and backslashes.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"errorbells":["boolean\\t(default off)","\\t\\t\\tglobal","\\tRing the bell (beep or screen flash) for error messages. This only","\\tmakes a difference for error messages, the bell will be used always","\\tfor a lot of errors without a message (e.g., hitting <Esc> in Normal","\\tmode). See \'visualbell\' to make the bell behave like a screen flash","\\tor do nothing. See \'belloff\' to finetune when to ring the bell."],"errorfile":["string\\t(default: \\"errors.err\\")","\\t\\t\\tglobal","\\tName of the errorfile for the QuickFix mode (see |:cf|).","\\tWhen the \\"-q\\" command-line argument is used, \'errorfile\' is set to the","\\tfollowing argument. See |-q|.","\\tNOT used for the \\":make\\" command. See \'makeef\' for that.","\\tEnvironment variables are expanded |:set_env|.","\\tSee |option-backslash| about including spaces and backslashes.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"errorformat":["string\\t(default is very long)","\\t\\t\\tglobal or local to buffer |global-local|","\\tScanf-like description of the format for the lines in the error file","\\t(see |errorformat|)."],"eventignore":["string\\t(default \\"\\")","\\t\\t\\tglobal","\\tA list of autocommand event names, which are to be ignored.","\\tWhen set to \\"all\\" or when \\"all\\" is one of the items, all autocommand","\\tevents are ignored, autocommands will not be executed.","\\tOtherwise this is a comma separated list of event names. Example: >","\\t :set ei=WinEnter,WinLeave","<","\\t\\t\\t\\t *\'expandtab\'* *\'et\'* *\'noexpandtab\'* *\'noet\'*"],"expandtab":["boolean\\t(default off)","\\t\\t\\tlocal to buffer","\\tIn Insert mode: Use the appropriate number of spaces to insert a","\\t<Tab>. Spaces are used in indents with the \'>\' and \'<\' commands and","\\twhen \'autoindent\' is on. To insert a real tab when \'expandtab\' is","\\ton, use CTRL-V<Tab>. See also |:retab| and |ins-expandtab|.","\\tThis option is reset when the \'paste\' option is set and restored when","\\tthe \'paste\' option is reset."],"fileencoding":["string (default: \\"\\")","\\t\\t\\tlocal to buffer","\\tFile-content encoding for the current buffer. Conversion is done with","\\ticonv() or as specified with \'charconvert\'."],"fileencodings":["string (default: \\"ucs-bom,utf-8,default,latin1\\")","\\t\\t\\tglobal","\\tThis is a list of character encodings considered when starting to edit","\\tan existing file. When a file is read, Vim tries to use the first","\\tmentioned character encoding. If an error is detected, the next one","\\tin the list is tried. When an encoding is found that works,","\\t\'fileencoding\' is set to it. If all fail, \'fileencoding\' is set to","\\tan empty string, which means that UTF-8 is used.","\\t\\tWARNING: Conversion can cause loss of information! You can use","\\t\\tthe |++bad| argument to specify what is done with characters","\\t\\tthat can\'t be converted.","\\tFor an empty file or a file with only ASCII characters most encodings","\\twill work and the first entry of \'fileencodings\' will be used (except","\\t\\"ucs-bom\\", which requires the BOM to be present). If you prefer","\\tanother encoding use an BufReadPost autocommand event to test if your","\\tpreferred encoding is to be used. Example: >","\\t\\tau BufReadPost * if search(\'\\\\S\', \'w\') == 0 |","\\t\\t\\t\\\\ set fenc=iso-2022-jp | endif","<\\tThis sets \'fileencoding\' to \\"iso-2022-jp\\" if the file does not contain","\\tnon-blank characters.","\\tWhen the |++enc| argument is used then the value of \'fileencodings\' is","\\tnot used.","\\tNote that \'fileencodings\' is not used for a new file, the global value","\\tof \'fileencoding\' is used instead. You can set it with: >","\\t\\t:setglobal fenc=iso-8859-2","<\\tThis means that a non-existing file may get a different encoding than","\\tan empty file.","\\tThe special value \\"ucs-bom\\" can be used to check for a Unicode BOM","\\t(Byte Order Mark) at the start of the file. It must not be preceded","\\tby \\"utf-8\\" or another Unicode encoding for this to work properly.","\\tAn entry for an 8-bit encoding (e.g., \\"latin1\\") should be the last,","\\tbecause Vim cannot detect an error, thus the encoding is always","\\taccepted.","\\tThe special value \\"default\\" can be used for the encoding from the","\\tenvironment. It is useful when your environment uses a non-latin1","\\tencoding, such as Russian.","\\tWhen a file contains an illegal UTF-8 byte sequence it won\'t be","\\trecognized as \\"utf-8\\". You can use the |8g8| command to find the","\\tillegal byte sequence.","\\tWRONG VALUES:\\t\\t\\tWHAT\'S WRONG:","\\t\\tlatin1,utf-8\\t\\t\\"latin1\\" will always be used","\\t\\tutf-8,ucs-bom,latin1\\tBOM won\'t be recognized in an utf-8","\\t\\t\\t\\t\\tfile","\\t\\tcp1250,latin1\\t\\t\\"cp1250\\" will always be used","\\tIf \'fileencodings\' is empty, \'fileencoding\' is not modified.","\\tSee \'fileencoding\' for the possible values.","\\tSetting this option does not have an effect until the next time a file","\\tis read."],"fileformat":["string (Windows default: \\"dos\\",","\\t\\t\\t\\tUnix default: \\"unix\\")","\\t\\t\\tlocal to buffer","\\tThis gives the <EOL> of the current buffer, which is used for","\\treading/writing the buffer from/to a file:","\\t dos\\t <CR> <NL>","\\t unix <NL>","\\t mac\\t <CR>","\\tWhen \\"dos\\" is used, CTRL-Z at the end of a file is ignored.","\\tSee |file-formats| and |file-read|.","\\tFor the character encoding of the file see \'fileencoding\'.","\\tWhen \'binary\' is set, the value of \'fileformat\' is ignored, file I/O","\\tworks like it was set to \\"unix\\".","\\tThis option is set automatically when starting to edit a file and","\\t\'fileformats\' is not empty and \'binary\' is off.","\\tWhen this option is set, after starting to edit a file, the \'modified\'","\\toption is set, because the file would be different when written.","\\tThis option cannot be changed when \'modifiable\' is off."],"fileformats":["string (default:","\\t\\t\\t\\tVim+Vi\\tWin32: \\"dos,unix\\",","\\t\\t\\t\\tVim\\tUnix: \\"unix,dos\\",","\\t\\t\\t\\tVi\\tothers: \\"\\")","\\t\\t\\tglobal","\\tThis gives the end-of-line (<EOL>) formats that will be tried when","\\tstarting to edit a new buffer and when reading a file into an existing","\\tbuffer:","\\t- When empty, the format defined with \'fileformat\' will be used","\\t always. It is not set automatically.","\\t- When set to one name, that format will be used whenever a new buffer","\\t is opened. \'fileformat\' is set accordingly for that buffer. The","\\t \'fileformats\' name will be used when a file is read into an existing","\\t buffer, no matter what \'fileformat\' for that buffer is set to.","\\t- When more than one name is present, separated by commas, automatic","\\t <EOL> detection will be done when reading a file. When starting to","\\t edit a file, a check is done for the <EOL>:","\\t 1. If all lines end in <CR><NL>, and \'fileformats\' includes \\"dos\\",","\\t \'fileformat\' is set to \\"dos\\".","\\t 2. If a <NL> is found and \'fileformats\' includes \\"unix\\", \'fileformat\'","\\t is set to \\"unix\\". Note that when a <NL> is found without a","\\t preceding <CR>, \\"unix\\" is preferred over \\"dos\\".","\\t 3. If \'fileformat\' has not yet been set, and if a <CR> is found, and","\\t if \'fileformats\' includes \\"mac\\", \'fileformat\' is set to \\"mac\\".","\\t This means that \\"mac\\" is only chosen when:","\\t \\"unix\\" is not present or no <NL> is found in the file, and","\\t \\"dos\\" is not present or no <CR><NL> is found in the file.","\\t Except: if \\"unix\\" was chosen, but there is a <CR> before","\\t the first <NL>, and there appear to be more <CR>s than <NL>s in","\\t the first few lines, \\"mac\\" is used.","\\t 4. If \'fileformat\' is still not set, the first name from","\\t \'fileformats\' is used.","\\t When reading a file into an existing buffer, the same is done, but","\\t this happens like \'fileformat\' has been set appropriately for that","\\t file only, the option is not changed.","\\tWhen \'binary\' is set, the value of \'fileformats\' is not used."],"fileignorecase":["boolean\\t(default on for systems where case in file","\\t\\t\\t\\t names is normally ignored)","\\t\\t\\tglobal","\\tWhen set case is ignored when using file names and directories.","\\tSee \'wildignorecase\' for only ignoring case when doing completion."],"filetype":["string (default: \\"\\")","\\t\\t\\tlocal to buffer","\\tWhen this option is set, the FileType autocommand event is triggered.","\\tAll autocommands that match with the value of this option will be","\\texecuted. Thus the value of \'filetype\' is used in place of the file","\\tname.","\\tOtherwise this option does not always reflect the current file type.","\\tThis option is normally set when the file type is detected. To enable","\\tthis use the \\":filetype on\\" command. |:filetype|","\\tSetting this option to a different value is most useful in a modeline,","\\tfor a file for which the file type is not automatically recognized.","\\tExample, for in an IDL file:","\\t\\t/* vim: set filetype=idl : */ ~","\\t|FileType| |filetypes|","\\tWhen a dot appears in the value then this separates two filetype","\\tnames. Example:","\\t\\t/* vim: set filetype=c.doxygen : */ ~","\\tThis will use the \\"c\\" filetype first, then the \\"doxygen\\" filetype.","\\tThis works both for filetype plugins and for syntax files. More than","\\tone dot may appear.","\\tThis option is not copied to another buffer, independent of the \'s\' or","\\t\'S\' flag in \'cpoptions\'.","\\tOnly normal file name characters can be used, \\"/\\\\*?[|<>\\" are illegal."],"fillchars":["string\\t(default \\"\\")","\\t\\t\\tglobal or local to window |global-local|","\\tCharacters to fill the statuslines and vertical separators.","\\tIt is a comma separated list of items:"],"fixendofline":["boolean\\t(default on)","\\t\\t\\tlocal to buffer","\\tWhen writing a file and this option is on, <EOL> at the end of file","\\twill be restored if missing. Turn this option off if you want to","\\tpreserve the situation from the original file.","\\tWhen the \'binary\' option is set the value of this option doesn\'t","\\tmatter.","\\tSee the \'endofline\' option."],"foldclose":["string (default \\"\\")","\\t\\t\\tglobal","\\tWhen set to \\"all\\", a fold is closed when the cursor isn\'t in it and","\\tits level is higher than \'foldlevel\'. Useful if you want folds to","\\tautomatically close when moving out of them."],"foldcolumn":["string (default \\"0\\")","\\t\\t\\tlocal to window","\\tWhen and how to draw the foldcolumn. Valid values are:","\\t \\"auto\\": resize to the maximum amount of folds to display.","\\t \\"auto:[1-9]\\": resize to accommodate multiple folds up to the","\\t\\t\\t selected level"," 0: to disable foldcolumn","\\t \\"[1-9]\\": to display a fixed number of columns","\\tSee |folding|."],"foldenable":["boolean (default on)","\\t\\t\\tlocal to window","\\tWhen off, all folds are open. This option can be used to quickly","\\tswitch between showing all text unfolded and viewing the text with","\\tfolds (including manually opened or closed folds). It can be toggled","\\twith the |zi| command. The \'foldcolumn\' will remain blank when","\\t\'foldenable\' is off.","\\tThis option is set by commands that create a new fold or close a fold.","\\tSee |folding|."],"foldexpr":["string (default: \\"0\\")","\\t\\t\\tlocal to window","\\tThe expression used for when \'foldmethod\' is \\"expr\\". It is evaluated","\\tfor each line to obtain its fold level. See |fold-expr|."],"foldignore":["string (default: \\"#\\")","\\t\\t\\tlocal to window","\\tUsed only when \'foldmethod\' is \\"indent\\". Lines starting with","\\tcharacters in \'foldignore\' will get their fold level from surrounding","\\tlines. White space is skipped before checking for this character.","\\tThe default \\"#\\" works well for C programs. See |fold-indent|."],"foldlevel":["number (default: 0)","\\t\\t\\tlocal to window","\\tSets the fold level: Folds with a higher level will be closed.","\\tSetting this option to zero will close all folds. Higher numbers will","\\tclose fewer folds.","\\tThis option is set by commands like |zm|, |zM| and |zR|.","\\tSee |fold-foldlevel|."],"foldlevelstart":["number (default: -1)","\\t\\t\\tglobal","\\tSets \'foldlevel\' when starting to edit another buffer in a window.","\\tUseful to always start editing with all folds closed (value zero),","\\tsome folds closed (one) or no folds closed (99).","\\tThis is done before reading any modeline, thus a setting in a modeline","\\toverrules this option. Starting to edit a file for |diff-mode| also","\\tignores this option and closes all folds.","\\tIt is also done before BufReadPre autocommands, to allow an autocmd to","\\toverrule the \'foldlevel\' value for specific files.","\\tWhen the value is negative, it is not used."],"foldmarker":["string (default: \\"{{{,}}}\\")","\\t\\t\\tlocal to window","\\tThe start and end marker used when \'foldmethod\' is \\"marker\\". There","\\tmust be one comma, which separates the start and end marker. The","\\tmarker is a literal string (a regular expression would be too slow).","\\tSee |fold-marker|."],"foldmethod":["string (default: \\"manual\\")","\\t\\t\\tlocal to window","\\tThe kind of folding used for the current window. Possible values:","\\t|fold-manual|\\tmanual\\t Folds are created manually.","\\t|fold-indent|\\tindent\\t Lines with equal indent form a fold.","\\t|fold-expr|\\texpr\\t \'foldexpr\' gives the fold level of a line.","\\t|fold-marker|\\tmarker\\t Markers are used to specify folds.","\\t|fold-syntax|\\tsyntax\\t Syntax highlighting items specify folds.","\\t|fold-diff|\\tdiff\\t Fold text that is not changed."],"foldminlines":["number (default: 1)","\\t\\t\\tlocal to window","\\tSets the number of screen lines above which a fold can be displayed","\\tclosed. Also for manually closed folds. With the default value of","\\tone a fold can only be closed if it takes up two or more screen lines.","\\tSet to zero to be able to close folds of just one screen line.","\\tNote that this only has an effect on what is displayed. After using","\\t\\"zc\\" to close a fold, which is displayed open because it\'s smaller","\\tthan \'foldminlines\', a following \\"zc\\" may close a containing fold."],"foldnestmax":["number (default: 20)","\\t\\t\\tlocal to window","\\tSets the maximum nesting of folds for the \\"indent\\" and \\"syntax\\"","\\tmethods. This avoids that too many folds will be created. Using more","\\tthan 20 doesn\'t work, because the internal limit is 20."],"foldopen":["string (default: \\"block,hor,mark,percent,quickfix,","\\t\\t\\t\\t\\t\\t\\t search,tag,undo\\")","\\t\\t\\tglobal","\\tSpecifies for which type of commands folds will be opened, if the","\\tcommand moves the cursor into a closed fold. It is a comma separated","\\tlist of items.","\\tNOTE: When the command is part of a mapping this option is not used.","\\tAdd the |zv| command to the mapping to get the same effect.","\\t(rationale: the mapping may want to control opening folds itself)"],"foldtext":["string (default: \\"foldtext()\\")","\\t\\t\\tlocal to window","\\tAn expression which is used to specify the text displayed for a closed","\\tfold. See |fold-foldtext|."],"formatexpr":["string (default \\"\\")","\\t\\t\\tlocal to buffer","\\tExpression which is evaluated to format a range of lines for the |gq|","\\toperator or automatic formatting (see \'formatoptions\'). When this","\\toption is empty \'formatprg\' is used."],"formatlistpat":["string (default: \\"^\\\\s*\\\\d\\\\+[\\\\]:.)}\\\\t ]\\\\s*\\")","\\t\\t\\tlocal to buffer","\\tA pattern that is used to recognize a list header. This is used for","\\tthe \\"n\\" flag in \'formatoptions\'.","\\tThe pattern must match exactly the text that will be the indent for","\\tthe line below it. You can use |/\\\\ze| to mark the end of the match","\\twhile still checking more characters. There must be a character","\\tfollowing the pattern, when it matches the whole line it is handled","\\tlike there is no match.","\\tThe default recognizes a number, followed by an optional punctuation","\\tcharacter and white space."],"formatoptions":["string (default: \\"tcqj\\", Vi default: \\"vt\\")","\\t\\t\\tlocal to buffer","\\tThis is a sequence of letters which describes how automatic","\\tformatting is to be done. See |fo-table|. When the \'paste\' option is","\\ton, no formatting is done (like \'formatoptions\' is empty). Commas can","\\tbe inserted for readability.","\\tTo avoid problems with flags that are added in the future, use the","\\t\\"+=\\" and \\"-=\\" feature of \\":set\\" |add-option-flags|."],"formatprg":["string (default \\"\\")","\\t\\t\\tglobal or local to buffer |global-local|","\\tThe name of an external program that will be used to format the lines","\\tselected with the |gq| operator. The program must take the input on","\\tstdin and produce the output on stdout. The Unix program \\"fmt\\" is","\\tsuch a program.","\\tIf the \'formatexpr\' option is not empty it will be used instead.","\\tOtherwise, if \'formatprg\' option is an empty string, the internal","\\tformat function will be used |C-indenting|.","\\tEnvironment variables are expanded |:set_env|. See |option-backslash|","\\tabout including spaces and backslashes.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"fsync":["boolean\\t(default off)","\\t\\t\\tglobal","\\tWhen on, the OS function fsync() will be called after saving a file","\\t(|:write|, |writefile()|, …), |swap-file| and |shada-file|. This","\\tflushes the file to disk, ensuring that it is safely written.","\\tSlow on some systems: writing buffers, quitting Nvim, and other","\\toperations may sometimes take a few seconds."],"gdefault":["boolean\\t(default off)","\\t\\t\\tglobal","\\tWhen on, the \\":substitute\\" flag \'g\' is default on. This means that","\\tall matches in a line are substituted instead of one. When a \'g\' flag","\\tis given to a \\":substitute\\" command, this will toggle the substitution","\\tof all or one match. See |complex-change|."],"grepformat":["string\\t(default \\"%f:%l:%m,%f:%l%m,%f %l%m\\")","\\t\\t\\tglobal","\\tFormat to recognize for the \\":grep\\" command output.","\\tThis is a scanf-like string that uses the same format as the","\\t\'errorformat\' option: see |errorformat|."],"grepprg":["string\\t(default \\"grep -n \\",","\\t\\t\\t\\t Unix: \\"grep -n $* /dev/null\\")","\\t\\t\\tglobal or local to buffer |global-local|","\\tProgram to use for the |:grep| command. This option may contain \'%\'","\\tand \'#\' characters, which are expanded like when used in a command-","\\tline. The placeholder \\"$*\\" is allowed to specify where the arguments","\\twill be included. Environment variables are expanded |:set_env|. See","\\t|option-backslash| about including spaces and backslashes.","\\tWhen your \\"grep\\" accepts the \\"-H\\" argument, use this to make \\":grep\\"","\\talso work well with a single file: >","\\t\\t:set grepprg=grep\\\\ -nH","<\\tSpecial value: When \'grepprg\' is set to \\"internal\\" the |:grep| command","\\tworks like |:vimgrep|, |:lgrep| like |:lvimgrep|, |:grepadd| like","\\t|:vimgrepadd| and |:lgrepadd| like |:lvimgrepadd|.","\\tSee also the section |:make_makeprg|, since most of the comments there","\\tapply equally to \'grepprg\'.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"guicursor":["string\\t(default \\"n-v-c-sm:block,i-ci-ve:ver25,r-cr-o:hor20\\")","\\t\\t\\tglobal","\\tConfigures the cursor style for each mode. Works in the GUI and many","\\tterminals. See |tui-cursor-shape|."],"guifont":["string\\t(default \\"\\")","\\t\\t\\tglobal","\\tThis is a list of fonts which will be used for the GUI version of Vim.","\\tIn its simplest form the value is just one font name. When","\\tthe font cannot be found you will get an error message. To try other","\\tfont names a list can be specified, font names separated with commas.","\\tThe first valid font is used."],"guifontset":["string\\t(default \\"\\")","\\t\\t\\tglobal","\\tWhen not empty, specifies two (or more) fonts to be used. The first","\\tone for normal English, the second one for your special language. See","\\t|xfontset|.","\\tSetting this option also means that all font names will be handled as","\\ta fontset name. Also the ones used for the \\"font\\" argument of the","\\t|:highlight| command.","\\tThe fonts must match with the current locale. If fonts for the","\\tcharacter sets that the current locale uses are not included, setting","\\t\'guifontset\' will fail.","\\tNote the difference between \'guifont\' and \'guifontset\': In \'guifont\'","\\tthe comma-separated names are alternative names, one of which will be","\\tused. In \'guifontset\' the whole string is one fontset name,","\\tincluding the commas. It is not possible to specify alternative","\\tfontset names.","\\tThis example works on many X11 systems: >","\\t\\t:set guifontset=-*-*-medium-r-normal--16-*-*-*-c-*-*-*","<","\\t\\t\\t\\t*\'guifontwide\'* *\'gfw\'* *E231* *E533* *E534*"],"guifontwide":["string\\t(default \\"\\")","\\t\\t\\tglobal","\\tWhen not empty, specifies a comma-separated list of fonts to be used","\\tfor double-width characters. The first font that can be loaded is","\\tused.","\\tNote: The size of these fonts must be exactly twice as wide as the one","\\tspecified with \'guifont\' and the same height."],"guioptions":["string\\t(default \\"egmrLT\\" (MS-Windows))","\\t\\t\\tglobal","\\tThis option only has an effect in the GUI version of Vim. It is a","\\tsequence of letters which describes what components and options of the","\\tGUI should be used.","\\tTo avoid problems with flags that are added in the future, use the","\\t\\"+=\\" and \\"-=\\" feature of \\":set\\" |add-option-flags|."],"guitablabel":["string\\t(default empty)","\\t\\t\\tglobal","\\tWhen nonempty describes the text to use in a label of the GUI tab","\\tpages line. When empty and when the result is empty Vim will use a","\\tdefault label. See |setting-guitablabel| for more info."],"guitabtooltip":["string\\t(default empty)","\\t\\t\\tglobal","\\tWhen nonempty describes the text to use in a tooltip for the GUI tab","\\tpages line. When empty Vim will use a default tooltip.","\\tThis option is otherwise just like \'guitablabel\' above.","\\tYou can include a line break. Simplest method is to use |:let|: >","\\t\\t:let &guitabtooltip = \\"line one\\\\nline two\\"","<"],"helpfile":["string\\t(default (MSDOS) \\"$VIMRUNTIME\\\\doc\\\\help.txt\\"","\\t\\t\\t\\t\\t (others) \\"$VIMRUNTIME/doc/help.txt\\")","\\t\\t\\tglobal","\\tName of the main help file. All distributed help files should be","\\tplaced together in one directory. Additionally, all \\"doc\\" directories","\\tin \'runtimepath\' will be used.","\\tEnvironment variables are expanded |:set_env|. For example:","\\t\\"$VIMRUNTIME/doc/help.txt\\". If $VIMRUNTIME is not set, $VIM is also","\\ttried. Also see |$VIMRUNTIME| and |option-backslash| about including","\\tspaces and backslashes.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"helpheight":["number\\t(default 20)","\\t\\t\\tglobal","\\tMinimal initial height of the help window when it is opened with the","\\t\\":help\\" command. The initial height of the help window is half of the","\\tcurrent window, or (when the \'ea\' option is on) the same as other","\\twindows. When the height is less than \'helpheight\', the height is","\\tset to \'helpheight\'. Set to zero to disable."],"helplang":["string\\t(default: messages language or empty)","\\t\\t\\tglobal","\\tComma separated list of languages. Vim will use the first language","\\tfor which the desired help can be found. The English help will always","\\tbe used as a last resort. You can add \\"en\\" to prefer English over","\\tanother language, but that will only find tags that exist in that","\\tlanguage and not in the English help.","\\tExample: >","\\t\\t:set helplang=de,it","<\\tThis will first search German, then Italian and finally English help","\\tfiles.","\\tWhen using |CTRL-]| and \\":help!\\" in a non-English help file Vim will","\\ttry to find the tag in the current language before using this option.","\\tSee |help-translated|."],"hidden":["boolean\\t(default off)","\\t\\t\\tglobal","\\tWhen off a buffer is unloaded when it is |abandon|ed. When on a","\\tbuffer becomes hidden when it is |abandon|ed. If the buffer is still","\\tdisplayed in another window, it does not become hidden, of course.","\\tThe commands that move through the buffer list sometimes make a buffer","\\thidden although the \'hidden\' option is off: When the buffer is","\\tmodified, \'autowrite\' is off or writing is not possible, and the \'!\'","\\tflag was used. See also |windows.txt|.","\\tTo only make one buffer hidden use the \'bufhidden\' option.","\\tThis option is set for one command with \\":hide {command}\\" |:hide|.","\\tWARNING: It\'s easy to forget that you have changes in hidden buffers.","\\tThink twice when using \\":q!\\" or \\":qa!\\"."],"history":["number\\t(Vim default: 10000, Vi default: 0)","\\t\\t\\tglobal","\\tA history of \\":\\" commands, and a history of previous search patterns","\\tis remembered. This option decides how many entries may be stored in","\\teach of these histories (see |cmdline-editing|).","\\tThe maximum value is 10000."],"hkmap":["boolean (default off)","\\t\\t\\tglobal","\\tWhen on, the keyboard is mapped for the Hebrew character set.","\\tNormally you would set \'allowrevins\' and use CTRL-_ in insert mode to","\\ttoggle this option. See |rileft.txt|."],"hkmapp":["boolean (default off)","\\t\\t\\tglobal","\\tWhen on, phonetic keyboard mapping is used. \'hkmap\' must also be on.","\\tThis is useful if you have a non-Hebrew keyboard.","\\tSee |rileft.txt|."],"hlsearch":["boolean\\t(default on)","\\t\\t\\tglobal","\\tWhen there is a previous search pattern, highlight all its matches.","\\tThe |hl-Search| highlight group determines the highlighting. Note that","\\tonly the matching text is highlighted, any offsets are not applied.","\\tSee also: \'incsearch\' and |:match|.","\\tWhen you get bored looking at the highlighted matches, you can turn it","\\toff with |:nohlsearch|. This does not change the option value, as","\\tsoon as you use a search command, the highlighting comes back.","\\t\'redrawtime\' specifies the maximum time spent on finding matches.","\\tWhen the search pattern can match an end-of-line, Vim will try to","\\thighlight all of the matched text. However, this depends on where the","\\tsearch starts. This will be the first line in the window or the first","\\tline below a closed fold. A match in a previous line which is not","\\tdrawn may not continue in a newly drawn line.","\\tYou can specify whether the highlight status is restored on startup","\\twith the \'h\' flag in \'shada\' |shada-h|."],"icon":["boolean\\t(default off, on when title can be restored)","\\t\\t\\tglobal","\\tWhen on, the icon text of the window will be set to the value of","\\t\'iconstring\' (if it is not empty), or to the name of the file","\\tcurrently being edited. Only the last part of the name is used.","\\tOverridden by the \'iconstring\' option.","\\tOnly works if the terminal supports setting window icons."],"iconstring":["string\\t(default \\"\\")","\\t\\t\\tglobal","\\tWhen this option is not empty, it will be used for the icon text of","\\tthe window. This happens only when the \'icon\' option is on.","\\tOnly works if the terminal supports setting window icon text","\\tWhen this option contains printf-style \'%\' items, they will be","\\texpanded according to the rules used for \'statusline\'. See","\\t\'titlestring\' for example settings.","\\tThis option cannot be set in a modeline when \'modelineexpr\' is off."],"ignorecase":["boolean\\t(default off)","\\t\\t\\tglobal","\\tIgnore case in search patterns. Also used when searching in the tags","\\tfile.","\\tAlso see \'smartcase\' and \'tagcase\'.","\\tCan be overruled by using \\"\\\\c\\" or \\"\\\\C\\" in the pattern, see","\\t|/ignorecase|."],"imcmdline":["boolean (default off)","\\t\\t\\tglobal","\\tWhen set the Input Method is always on when starting to edit a command","\\tline, unless entering a search pattern (see \'imsearch\' for that).","\\tSetting this option is useful when your input method allows entering","\\tEnglish characters directly, e.g., when it\'s used to type accented","\\tcharacters with dead keys."],"imdisable":["boolean (default off, on for some systems (SGI))","\\t\\t\\tglobal","\\tWhen set the Input Method is never used. This is useful to disable","\\tthe IM when it doesn\'t work properly.","\\tCurrently this option is on by default for SGI/IRIX machines. This","\\tmay change in later releases."],"iminsert":["number (default 0)","\\t\\t\\tlocal to buffer","\\tSpecifies whether :lmap or an Input Method (IM) is to be used in","\\tInsert mode. Valid values:","\\t\\t0\\t:lmap is off and IM is off","\\t\\t1\\t:lmap is ON and IM is off","\\t\\t2\\t:lmap is off and IM is ON","\\tTo always reset the option to zero when leaving Insert mode with <Esc>","\\tthis can be used: >","\\t\\t:inoremap <ESC> <ESC>:set iminsert=0<CR>","<\\tThis makes :lmap and IM turn off automatically when leaving Insert","\\tmode.","\\tNote that this option changes when using CTRL-^ in Insert mode","\\t|i_CTRL-^|.","\\tThe value is set to 1 when setting \'keymap\' to a valid keymap name.","\\tIt is also used for the argument of commands like \\"r\\" and \\"f\\"."],"imsearch":["number (default -1)","\\t\\t\\tlocal to buffer","\\tSpecifies whether :lmap or an Input Method (IM) is to be used when","\\tentering a search pattern. Valid values:","\\t\\t-1\\tthe value of \'iminsert\' is used, makes it look like","\\t\\t\\t\'iminsert\' is also used when typing a search pattern","\\t\\t0\\t:lmap is off and IM is off","\\t\\t1\\t:lmap is ON and IM is off","\\t\\t2\\t:lmap is off and IM is ON","\\tNote that this option changes when using CTRL-^ in Command-line mode","\\t|c_CTRL-^|.","\\tThe value is set to 1 when it is not -1 and setting the \'keymap\'","\\toption to a valid keymap name."],"inccommand":["string\\t(default \\"\\")","\\t\\t\\tglobal"],"include":["string\\t(default \\"^\\\\s*#\\\\s*include\\")","\\t\\t\\tglobal or local to buffer |global-local|","\\tPattern to be used to find an include command. It is a search","\\tpattern, just like for the \\"/\\" command (See |pattern|). The default","\\tvalue is for C programs. This option is used for the commands \\"[i\\",","\\t\\"]I\\", \\"[d\\", etc.","\\tNormally the \'isfname\' option is used to recognize the file name that","\\tcomes after the matched pattern. But if \\"\\\\zs\\" appears in the pattern","\\tthen the text matched from \\"\\\\zs\\" to the end, or until \\"\\\\ze\\" if it","\\tappears, is used as the file name. Use this to include characters","\\tthat are not in \'isfname\', such as a space. You can then use","\\t\'includeexpr\' to process the matched text.","\\tSee |option-backslash| about including spaces and backslashes."],"includeexpr":["string\\t(default \\"\\")","\\t\\t\\tlocal to buffer","\\tExpression to be used to transform the string found with the \'include\'","\\toption to a file name. Mostly useful to change \\".\\" to \\"/\\" for Java: >","\\t\\t:set includeexpr=substitute(v:fname,\'\\\\\\\\.\',\'/\',\'g\')","<\\tThe \\"v:fname\\" variable will be set to the file name that was detected."],"incsearch":["boolean\\t(default on)","\\t\\t\\tglobal","\\tWhile typing a search command, show where the pattern, as it was typed","\\tso far, matches. The matched string is highlighted. If the pattern","\\tis invalid or not found, nothing is shown. The screen will be updated","\\toften, this is only useful on fast terminals.","\\tNote that the match will be shown, but the cursor will return to its","\\toriginal position when no match is found and when pressing <Esc>. You","\\tstill need to finish the search command with <Enter> to move the","\\tcursor to the match.","\\tYou can use the CTRL-G and CTRL-T keys to move to the next and","\\tprevious match. |c_CTRL-G| |c_CTRL-T|","\\tVim only searches for about half a second. With a complicated","\\tpattern and/or a lot of text the match may not be found. This is to","\\tavoid that Vim hangs while you are typing the pattern.","\\tThe |hl-IncSearch| highlight group determines the highlighting.","\\tWhen \'hlsearch\' is on, all matched strings are highlighted too while","\\ttyping a search command. See also: \'hlsearch\'.","\\tIf you don\'t want to turn \'hlsearch\' on, but want to highlight all","\\tmatches while searching, you can turn on and off \'hlsearch\' with","\\tautocmd. Example: >","\\t\\taugroup vimrc-incsearch-highlight","\\t\\t autocmd!","\\t\\t autocmd CmdlineEnter /,\\\\? :set hlsearch","\\t\\t autocmd CmdlineLeave /,\\\\? :set nohlsearch","\\t\\taugroup END","<","\\tCTRL-L can be used to add one character from after the current match","\\tto the command line. If \'ignorecase\' and \'smartcase\' are set and the","\\tcommand line has no uppercase characters, the added character is","\\tconverted to lowercase.","\\tCTRL-R CTRL-W can be used to add the word at the end of the current","\\tmatch, excluding the characters that were already typed."],"indentexpr":["string\\t(default \\"\\")","\\t\\t\\tlocal to buffer","\\tExpression which is evaluated to obtain the proper indent for a line.","\\tIt is used when a new line is created, for the |=| operator and","\\tin Insert mode as specified with the \'indentkeys\' option.","\\tWhen this option is not empty, it overrules the \'cindent\' and","\\t\'smartindent\' indenting. When \'lisp\' is set, this option is","\\toverridden by the Lisp indentation algorithm.","\\tWhen \'paste\' is set this option is not used for indenting.","\\tThe expression is evaluated with |v:lnum| set to the line number for","\\twhich the indent is to be computed. The cursor is also in this line","\\twhen the expression is evaluated (but it may be moved around).","\\tThe expression must return the number of spaces worth of indent. It","\\tcan return \\"-1\\" to keep the current indent (this means \'autoindent\' is","\\tused for the indent).","\\tFunctions useful for computing the indent are |indent()|, |cindent()|","\\tand |lispindent()|.","\\tThe evaluation of the expression must not have side effects! It must","\\tnot change the text, jump to another window, etc. Afterwards the","\\tcursor position is always restored, thus the cursor may be moved.","\\tNormally this option would be set to call a function: >","\\t\\t:set indentexpr=GetMyIndent()","<\\tError messages will be suppressed, unless the \'debug\' option contains","\\t\\"msg\\".","\\tSee |indent-expression|."],"indentkeys":["string\\t(default \\"0{,0},0),0],:,0#,!^F,o,O,e\\")","\\t\\t\\tlocal to buffer","\\tA list of keys that, when typed in Insert mode, cause reindenting of","\\tthe current line. Only happens if \'indentexpr\' isn\'t empty.","\\tThe format is identical to \'cinkeys\', see |indentkeys-format|.","\\tSee |C-indenting| and |indent-expression|."],"infercase":["boolean\\t(default off)","\\t\\t\\tlocal to buffer","\\tWhen doing keyword completion in insert mode |ins-completion|, and","\\t\'ignorecase\' is also on, the case of the match is adjusted depending","\\ton the typed text. If the typed text contains a lowercase letter","\\twhere the match has an upper case letter, the completed part is made","\\tlowercase. If the typed text has no lowercase letters and the match","\\thas a lowercase letter where the typed text has an uppercase letter,","\\tand there is a letter before it, the completed part is made uppercase.","\\tWith \'noinfercase\' the match is used as-is."],"insertmode":["boolean\\t(default off)","\\t\\t\\tglobal","\\tMakes Vim work in a way that Insert mode is the default mode. Useful","\\tif you want to use Vim as a modeless editor.","\\tThese Insert mode commands will be useful:","\\t- Use the cursor keys to move around.","\\t- Use CTRL-O to execute one Normal mode command |i_CTRL-O|. When","\\t this is a mapping, it is executed as if \'insertmode\' was off.","\\t Normal mode remains active until the mapping is finished.","\\t- Use CTRL-L to execute a number of Normal mode commands, then use","\\t <Esc> to get back to Insert mode. Note that CTRL-L moves the cursor","\\t left, like <Esc> does when \'insertmode\' isn\'t set. |i_CTRL-L|"],"isfname":["string\\t(default for Windows:","\\t\\t\\t \\"@,48-57,/,\\\\,.,-,_,+,,,#,$,%,{,},[,],:,@-@,!,~,=\\"","\\t\\t\\t otherwise: \\"@,48-57,/,.,-,_,+,,,#,$,%,~,=\\")","\\t\\t\\tglobal","\\tThe characters specified by this option are included in file names and","\\tpath names. Filenames are used for commands like \\"gf\\", \\"[i\\" and in","\\tthe tags file. It is also used for \\"\\\\f\\" in a |pattern|.","\\tMulti-byte characters 256 and above are always included, only the","\\tcharacters up to 255 are specified with this option.","\\tFor UTF-8 the characters 0xa0 to 0xff are included as well.","\\tThink twice before adding white space to this option. Although a","\\tspace may appear inside a file name, the effect will be that Vim","\\tdoesn\'t know where a file name starts or ends when doing completion.","\\tIt most likely works better without a space in \'isfname\'."],"isident":["string\\t(default for Windows:","\\t\\t\\t\\t\\t \\"@,48-57,_,128-167,224-235\\"","\\t\\t\\t\\totherwise: \\"@,48-57,_,192-255\\")","\\t\\t\\tglobal","\\tThe characters given by this option are included in identifiers.","\\tIdentifiers are used in recognizing environment variables and after a","\\tmatch of the \'define\' option. It is also used for \\"\\\\i\\" in a","\\t|pattern|. See \'isfname\' for a description of the format of this","\\toption. For \'@\' only characters up to 255 are used.","\\tCareful: If you change this option, it might break expanding","\\tenvironment variables. E.g., when \'/\' is included and Vim tries to","\\texpand \\"$HOME/.local/share/nvim/shada/main.shada\\". Maybe you should ","\\tchange \'iskeyword\' instead."],"iskeyword":["string (default: @,48-57,_,192-255","\\t\\t\\t\\tVi default: @,48-57,_)","\\t\\t\\tlocal to buffer","\\tKeywords are used in searching and recognizing with many commands:","\\t\\"w\\", \\"*\\", \\"[i\\", etc. It is also used for \\"\\\\k\\" in a |pattern|. See","\\t\'isfname\' for a description of the format of this option. For \'@\'","\\tcharacters above 255 check the \\"word\\" character class.","\\tFor C programs you could use \\"a-z,A-Z,48-57,_,.,-,>\\".","\\tFor a help file it is set to all non-blank printable characters except","\\t\'*\', \'\\"\' and \'|\' (so that CTRL-] on a command finds the help for that","\\tcommand).","\\tWhen the \'lisp\' option is on the \'-\' character is always included.","\\tThis option also influences syntax highlighting, unless the syntax","\\tuses |:syn-iskeyword|."],"isprint":["string\\t(default: \\"@,161-255\\")","\\t\\t\\tglobal","\\tThe characters given by this option are displayed directly on the","\\tscreen. It is also used for \\"\\\\p\\" in a |pattern|. The characters from","\\tspace (ASCII 32) to \'~\' (ASCII 126) are always displayed directly,","\\teven when they are not included in \'isprint\' or excluded. See","\\t\'isfname\' for a description of the format of this option."],"jumpoptions":["string\\t(default \\"\\")","\\t\\t\\tglobal","\\tList of words that change the behavior of the |jumplist|.","\\t stack Make the jumplist behave like the tagstack or like a","\\t web browser. Relative location of entries in the","\\t\\t\\tjumplist is preserved at the cost of discarding","\\t\\t\\tsubsequent entries when navigating backwards in the","\\t\\t\\tjumplist and then jumping to a location.","\\t\\t\\t|jumplist-stack|"],"joinspaces":["boolean\\t(default on)","\\t\\t\\tglobal","\\tInsert two spaces after a \'.\', \'?\' and \'!\' with a join command.","\\tOtherwise only one space is inserted."],"keymap":["string\\t(default \\"\\")","\\t\\t\\tlocal to buffer","\\tName of a keyboard mapping. See |mbyte-keymap|.","\\tSetting this option to a valid keymap name has the side effect of","\\tsetting \'iminsert\' to one, so that the keymap becomes effective.","\\t\'imsearch\' is also set to one, unless it was -1","\\tOnly normal file name characters can be used, \\"/\\\\*?[|<>\\" are illegal."],"keymodel":["string\\t(default \\"\\")","\\t\\t\\tglobal","\\tList of comma separated words, which enable special things that keys","\\tcan do. These values can be used:","\\t startsel\\tUsing a shifted special key starts selection (either","\\t\\t\\tSelect mode or Visual mode, depending on \\"key\\" being","\\t\\t\\tpresent in \'selectmode\').","\\t stopsel\\tUsing a not-shifted special key stops selection.","\\tSpecial keys in this context are the cursor keys, <End>, <Home>,","\\t<PageUp> and <PageDown>.","\\tThe \'keymodel\' option is set by the |:behave| command."],"keywordprg":["string\\t(default \\":Man\\", Windows: \\":help\\")","\\t\\t\\tglobal or local to buffer |global-local|","\\tProgram to use for the |K| command. Environment variables are","\\texpanded |:set_env|. \\":help\\" may be used to access the Vim internal","\\thelp. (Note that previously setting the global option to the empty","\\tvalue did this, which is now deprecated.)","\\tWhen the first character is \\":\\", the command is invoked as a Vim","\\tcommand prefixed with [count].","\\tWhen \\"man\\" or \\"man -s\\" is used, Vim will automatically translate","\\ta [count] for the \\"K\\" command to a section number.","\\tSee |option-backslash| about including spaces and backslashes.","\\tExample: >","\\t\\t:set keywordprg=man\\\\ -s","\\t\\t:set keywordprg=:Man","<\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"langmap":["string\\t(default \\"\\")","\\t\\t\\tglobal","\\tThis option allows switching your keyboard into a special language","\\tmode. When you are typing text in Insert mode the characters are","\\tinserted directly. When in Normal mode the \'langmap\' option takes","\\tcare of translating these special characters to the original meaning","\\tof the key. This means you don\'t have to change the keyboard mode to","\\tbe able to execute Normal mode commands.","\\tThis is the opposite of the \'keymap\' option, where characters are","\\tmapped in Insert mode.","\\tAlso consider resetting \'langremap\' to avoid \'langmap\' applies to","\\tcharacters resulting from a mapping.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"langmenu":["string\\t(default \\"\\")","\\t\\t\\tglobal","\\tLanguage to use for menu translation. Tells which file is loaded","\\tfrom the \\"lang\\" directory in \'runtimepath\': >","\\t\\t\\"lang/menu_\\" . &langmenu . \\".vim\\"","<\\t(without the spaces). For example, to always use the Dutch menus, no","\\tmatter what $LANG is set to: >","\\t\\t:set langmenu=nl_NL.ISO_8859-1","<\\tWhen \'langmenu\' is empty, |v:lang| is used.","\\tOnly normal file name characters can be used, \\"/\\\\*?[|<>\\" are illegal.","\\tIf your $LANG is set to a non-English language but you do want to use","\\tthe English menus: >","\\t\\t:set langmenu=none","<\\tThis option must be set before loading menus, switching on filetype","\\tdetection or syntax highlighting. Once the menus are defined setting","\\tthis option has no effect. But you could do this: >","\\t\\t:source $VIMRUNTIME/delmenu.vim","\\t\\t:set langmenu=de_DE.ISO_8859-1","\\t\\t:source $VIMRUNTIME/menu.vim","<\\tWarning: This deletes all menus that you defined yourself!"],"langremap":["boolean (default off)","\\t\\t\\tglobal","\\tWhen off, setting \'langmap\' does not apply to characters resulting from","\\ta mapping. If setting \'langmap\' disables some of your mappings, make","\\tsure this option is off."],"laststatus":["number\\t(default 2)","\\t\\t\\tglobal","\\tThe value of this option influences when the last window will have a","\\tstatus line:","\\t\\t0: never","\\t\\t1: only if there are at least two windows","\\t\\t2: always","\\tThe screen looks nicer with a status line if you have several","\\twindows, but it takes another screen line. |status-line|"],"lazyredraw":["boolean\\t(default off)","\\t\\t\\tglobal","\\tWhen this option is set, the screen will not be redrawn while","\\texecuting macros, registers and other commands that have not been","\\ttyped. Also, updating the window title is postponed. To force an","\\tupdate use |:redraw|."],"linebreak":["boolean\\t(default off)","\\t\\t\\tlocal to window","\\tIf on, Vim will wrap long lines at a character in \'breakat\' rather","\\tthan at the last character that fits on the screen. Unlike","\\t\'wrapmargin\' and \'textwidth\', this does not insert <EOL>s in the file,","\\tit only affects the way the file is displayed, not its contents.","\\tIf \'breakindent\' is set, line is visually indented. Then, the value","\\tof \'showbreak\' is used to put in front of wrapped lines. This option","\\tis not used when the \'wrap\' option is off.","\\tNote that <Tab> characters after an <EOL> are mostly not displayed","\\twith the right amount of white space."],"lines":["number\\t(default 24 or terminal height)","\\t\\t\\tglobal","\\tNumber of lines of the Vim window.","\\tNormally you don\'t need to set this. It is done automatically by the","\\tterminal initialization code.","\\tWhen Vim is running in the GUI or in a resizable window, setting this","\\toption will cause the window size to be changed. When you only want","\\tto use the size for the GUI, put the command in your |gvimrc| file.","\\tVim limits the number of lines to what fits on the screen. You can","\\tuse this command to get the tallest window possible: >","\\t\\t:set lines=999","<\\tMinimum value is 2, maximum value is 1000."],"linespace":["number\\t(default 0)","\\t\\t\\tglobal","\\t\\t\\t{only in the GUI}","\\tNumber of pixel lines inserted between characters. Useful if the font","\\tuses the full character cell height, making lines touch each other.","\\tWhen non-zero there is room for underlining.","\\tWith some fonts there can be too much room between lines (to have","\\tspace for ascents and descents). Then it makes sense to set","\\t\'linespace\' to a negative value. This may cause display problems","\\tthough!"],"lisp":["boolean\\t(default off)","\\t\\t\\tlocal to buffer","\\tLisp mode: When <Enter> is typed in insert mode set the indent for","\\tthe next line to Lisp standards (well, sort of). Also happens with","\\t\\"cc\\" or \\"S\\". \'autoindent\' must also be on for this to work. The \'p\'","\\tflag in \'cpoptions\' changes the method of indenting: Vi compatible or","\\tbetter. Also see \'lispwords\'.","\\tThe \'-\' character is included in keyword characters. Redefines the","\\t\\"=\\" operator to use this same indentation algorithm rather than","\\tcalling an external program if \'equalprg\' is empty.","\\tThis option is not used when \'paste\' is set."],"lispwords":["string\\t(default is very long)","\\t\\t\\tglobal or local to buffer |global-local|","\\tComma separated list of words that influence the Lisp indenting.","\\t|\'lisp\'|"],"list":["boolean\\t(default off)","\\t\\t\\tlocal to window","\\tList mode: Show tabs as CTRL-I is displayed, display $ after end of","\\tline. Useful to see the difference between tabs and spaces and for","\\ttrailing blanks. Further changed by the \'listchars\' option."],"listchars":["string\\t(default: \\"tab:> ,trail:-,nbsp:+\\"","\\t\\t\\t\\t Vi default: \\"eol:$\\")","\\t\\t\\tglobal or local to window |global-local|","\\tStrings to use in \'list\' mode and for the |:list| command. It is a","\\tcomma separated list of string settings."],"loadplugins":["boolean\\t(default on)","\\t\\t\\tglobal","\\tWhen on the plugin scripts are loaded when starting up |load-plugins|.","\\tThis option can be reset in your |vimrc| file to disable the loading","\\tof plugins.","\\tNote that using the \\"-u NONE\\" and \\"--noplugin\\" command line arguments","\\treset this option. |-u| |--noplugin|"],"magic":["boolean\\t(default on)","\\t\\t\\tglobal","\\tChanges the special characters that can be used in search patterns.","\\tSee |pattern|.","\\tWARNING: Switching this option off most likely breaks plugins! That","\\tis because many patterns assume it\'s on and will fail when it\'s off.","\\tOnly switch it off when working with old Vi scripts. In any other","\\tsituation write patterns that work when \'magic\' is on. Include \\"\\\\M\\"","\\twhen you want to |/\\\\M|."],"makeef":["string\\t(default: \\"\\")","\\t\\t\\tglobal","\\tName of the errorfile for the |:make| command (see |:make_makeprg|)","\\tand the |:grep| command.","\\tWhen it is empty, an internally generated temp file will be used.","\\tWhen \\"##\\" is included, it is replaced by a number to make the name","\\tunique. This makes sure that the \\":make\\" command doesn\'t overwrite an","\\texisting file.","\\tNOT used for the \\":cf\\" command. See \'errorfile\' for that.","\\tEnvironment variables are expanded |:set_env|.","\\tSee |option-backslash| about including spaces and backslashes.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"makeencoding":["string\\t(default \\"\\")","\\t\\t\\tglobal or local to buffer |global-local|","\\tEncoding used for reading the output of external commands. When empty,","\\tencoding is not converted.","\\tThis is used for `:make`, `:lmake`, `:grep`, `:lgrep`, `:grepadd`,","\\t`:lgrepadd`, `:cfile`, `:cgetfile`, `:caddfile`, `:lfile`, `:lgetfile`,","\\tand `:laddfile`."],"makeprg":["string\\t(default \\"make\\")","\\t\\t\\tglobal or local to buffer |global-local|","\\tProgram to use for the \\":make\\" command. See |:make_makeprg|.","\\tThis option may contain \'%\' and \'#\' characters (see |:_%| and |:_#|),","\\twhich are expanded to the current and alternate file name. Use |::S|","\\tto escape file names in case they contain special characters.","\\tEnvironment variables are expanded |:set_env|. See |option-backslash|","\\tabout including spaces and backslashes.","\\tNote that a \'|\' must be escaped twice: once for \\":set\\" and once for","\\tthe interpretation of a command. When you use a filter called","\\t\\"myfilter\\" do it like this: >","\\t :set makeprg=gmake\\\\ \\\\\\\\\\\\|\\\\ myfilter","<\\tThe placeholder \\"$*\\" can be given (even multiple times) to specify","\\twhere the arguments will be included, for example: >","\\t :set makeprg=latex\\\\ \\\\\\\\\\\\\\\\nonstopmode\\\\ \\\\\\\\\\\\\\\\input\\\\\\\\{$*}","<\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"matchpairs":["string\\t(default \\"(:),{:},[:]\\")","\\t\\t\\tlocal to buffer","\\tCharacters that form pairs. The |%| command jumps from one to the","\\tother.","\\tOnly character pairs are allowed that are different, thus you cannot","\\tjump between two double quotes.","\\tThe characters must be separated by a colon.","\\tThe pairs must be separated by a comma. Example for including \'<\' and","\\t\'>\' (HTML): >","\\t\\t:set mps+=<:>"],"matchtime":["number\\t(default 5)","\\t\\t\\tglobal","\\tTenths of a second to show the matching paren, when \'showmatch\' is","\\tset. Note that this is not in milliseconds, like other options that","\\tset a time. This is to be compatible with Nvi."],"maxcombine":["Removed. |vim-differences|","\\tNvim always displays up to 6 combining characters. You can still edit"," text with more than 6 combining characters, you just can\'t see them."," Use |g8| or |ga|. See |mbyte-combining|."],"maxfuncdepth":["number\\t(default 100)","\\t\\t\\tglobal","\\tMaximum depth of function calls for user functions. This normally","\\tcatches endless recursion. When using a recursive function with","\\tmore depth, set \'maxfuncdepth\' to a bigger number. But this will use","\\tmore memory, there is the danger of failing when memory is exhausted.","\\tIncreasing this limit above 200 also changes the maximum for Ex","\\tcommand recursion, see |E169|.","\\tSee also |:function|."],"maxmapdepth":["number\\t(default 1000)","\\t\\t\\tglobal","\\tMaximum number of times a mapping is done without resulting in a","\\tcharacter to be used. This normally catches endless mappings, like","\\t\\":map x y\\" with \\":map y x\\". It still does not catch \\":map g wg\\",","\\tbecause the \'w\' is used before the next mapping is done. See also","\\t|key-mapping|."],"maxmempattern":["number\\t(default 1000)","\\t\\t\\tglobal","\\tMaximum amount of memory (in Kbyte) to use for pattern matching.","\\tThe maximum value is about 2000000. Use this to work without a limit.","\\t\\t\\t\\t\\t\\t\\t*E363*","\\tWhen Vim runs into the limit it gives an error message and mostly","\\tbehaves like CTRL-C was typed.","\\tRunning into the limit often means that the pattern is very","\\tinefficient or too complex. This may already happen with the pattern","\\t\\"\\\\(.\\\\)*\\" on a very long line. \\".*\\" works much better.","\\tMight also happen on redraw, when syntax rules try to match a complex","\\ttext structure.","\\tVim may run out of memory before hitting the \'maxmempattern\' limit, in","\\twhich case you get an \\"Out of memory\\" error instead."],"menuitems":["number\\t(default 25)","\\t\\t\\tglobal","\\tMaximum number of items to use in a menu. Used for menus that are","\\tgenerated from a list of items, e.g., the Buffers menu. Changing this","\\toption has no direct effect, the menu must be refreshed first."],"mkspellmem":["string\\t(default \\"460000,2000,500\\")","\\t\\t\\tglobal","\\tParameters for |:mkspell|. This tunes when to start compressing the","\\tword tree. Compression can be slow when there are many words, but","\\tit\'s needed to avoid running out of memory. The amount of memory used","\\tper word depends very much on how similar the words are, that\'s why","\\tthis tuning is complicated."],"modeline":["boolean\\t(Vim default: on (off for root),","\\t\\t\\t\\t Vi default: off)","\\t\\t\\tlocal to buffer","\\tIf \'modeline\' is on \'modelines\' gives the number of lines that is","\\tchecked for set commands. If \'modeline\' is off or \'modelines\' is zero","\\tno lines are checked. See |modeline|."],"modelineexpr":["boolean (default: off)","\\t\\t\\tglobal","\\tWhen on allow some options that are an expression to be set in the","\\tmodeline. Check the option for whether it is affected by","\\t\'modelineexpr\'. Also see |modeline|."],"modelines":["number\\t(default 5)","\\t\\t\\tglobal","\\tIf \'modeline\' is on \'modelines\' gives the number of lines that is","\\tchecked for set commands. If \'modeline\' is off or \'modelines\' is zero","\\tno lines are checked. See |modeline|."],"modifiable":["boolean\\t(default on)","\\t\\t\\tlocal to buffer","\\tWhen off the buffer contents cannot be changed. The \'fileformat\' and","\\t\'fileencoding\' options also can\'t be changed.","\\tCan be reset on startup with the |-M| command line argument."],"modified":["boolean\\t(default off)","\\t\\t\\tlocal to buffer","\\tWhen on, the buffer is considered to be modified. This option is set","\\twhen:","\\t1. A change was made to the text since it was last written. Using the","\\t |undo| command to go back to the original text will reset the","\\t option. But undoing changes that were made before writing the","\\t buffer will set the option again, since the text is different from","\\t when it was written.","\\t2. \'fileformat\' or \'fileencoding\' is different from its original","\\t value. The original value is set when the buffer is read or","\\t written. A \\":set nomodified\\" command also resets the original","\\t values to the current values and the \'modified\' option will be","\\t reset.","\\t Similarly for \'eol\' and \'bomb\'.","\\tThis option is not set when a change is made to the buffer as the","\\tresult of a BufNewFile, BufRead/BufReadPost, BufWritePost,","\\tFileAppendPost or VimLeave autocommand event. See |gzip-example| for","\\tan explanation.","\\tWhen \'buftype\' is \\"nowrite\\" or \\"nofile\\" this option may be set, but","\\twill be ignored.","\\tNote that the text may actually be the same, e.g. \'modified\' is set","\\twhen using \\"rA\\" on an \\"A\\"."],"more":["boolean\\t(Vim default: on, Vi default: off)","\\t\\t\\tglobal","\\tWhen on, listings pause when the whole screen is filled. You will get","\\tthe |more-prompt|. When this option is off there are no pauses, the","\\tlisting continues until finished."],"mouse":["string\\t(default \\"\\")","\\t\\t\\tglobal"],"mousefocus":["boolean\\t(default off)","\\t\\t\\tglobal","\\t\\t\\t{only works in the GUI}","\\tThe window that the mouse pointer is on is automatically activated.","\\tWhen changing the window layout or window focus in another way, the","\\tmouse pointer is moved to the window with keyboard focus. Off is the","\\tdefault because it makes using the pull down menus a little goofy, as","\\ta pointer transit may activate a window unintentionally."],"mousehide":["boolean\\t(default on)","\\t\\t\\tglobal","\\t\\t\\t{only works in the GUI}","\\tWhen on, the mouse pointer is hidden when characters are typed.","\\tThe mouse pointer is restored when the mouse is moved."],"mousemodel":["string\\t(default \\"extend\\")","\\t\\t\\tglobal","\\tSets the model to use for the mouse. The name mostly specifies what","\\tthe right mouse button is used for:","\\t extend\\tRight mouse button extends a selection. This works","\\t\\t\\tlike in an xterm.","\\t popup\\tRight mouse button pops up a menu. The shifted left","\\t\\t\\tmouse button extends a selection. This works like","\\t\\t\\twith Microsoft Windows.","\\t popup_setpos Like \\"popup\\", but the cursor will be moved to the","\\t\\t\\tposition where the mouse was clicked, and thus the","\\t\\t\\tselected operation will act upon the clicked object.","\\t\\t\\tIf clicking inside a selection, that selection will","\\t\\t\\tbe acted upon, i.e. no cursor move. This implies of","\\t\\t\\tcourse, that right clicking outside a selection will","\\t\\t\\tend Visual mode.","\\tOverview of what button does what for each model:","\\tmouse\\t\\t extend\\t\\tpopup(_setpos) ~","\\tleft click\\t place cursor\\tplace cursor","\\tleft drag\\t start selection\\tstart selection","\\tshift-left\\t search word\\t\\textend selection","\\tright click\\t extend selection\\tpopup menu (place cursor)","\\tright drag\\t extend selection\\t-","\\tmiddle click\\t paste\\t\\tpaste"],"mouseshape":["string\\t(default \\"i:beam,r:beam,s:updown,sd:cross,","\\t\\t\\t\\t\\tm:no,ml:up-arrow,v:rightup-arrow\\")","\\t\\t\\tglobal","\\tThis option tells Vim what the mouse pointer should look like in","\\tdifferent modes. The option is a comma separated list of parts, much","\\tlike used for \'guicursor\'. Each part consist of a mode/location-list","\\tand an argument-list:","\\t\\tmode-list:shape,mode-list:shape,..","\\tThe mode-list is a dash separated list of these modes/locations:","\\t\\t\\tIn a normal window: ~","\\t\\tn\\tNormal mode","\\t\\tv\\tVisual mode","\\t\\tve\\tVisual mode with \'selection\' \\"exclusive\\" (same as \'v\',","\\t\\t\\tif not specified)","\\t\\to\\tOperator-pending mode","\\t\\ti\\tInsert mode","\\t\\tr\\tReplace mode"],"mousetime":["number\\t(default 500)","\\t\\t\\tglobal","\\tDefines the maximum time in msec between two mouse clicks for the","\\tsecond click to be recognized as a multi click."],"nrformats":["string\\t(default \\"bin,hex\\")","\\t\\t\\tlocal to buffer","\\tThis defines what bases Vim will consider for numbers when using the","\\tCTRL-A and CTRL-X commands for adding to and subtracting from a number","\\trespectively; see |CTRL-A| for more info on these commands.","\\talpha\\tIf included, single alphabetical characters will be","\\t\\tincremented or decremented. This is useful for a list with a","\\t\\tletter index a), b), etc.\\t\\t*octal-nrformats*","\\toctal\\tIf included, numbers that start with a zero will be considered","\\t\\tto be octal. Example: Using CTRL-A on \\"007\\" results in \\"010\\".","\\thex\\tIf included, numbers starting with \\"0x\\" or \\"0X\\" will be","\\t\\tconsidered to be hexadecimal. Example: Using CTRL-X on","\\t\\t\\"0x100\\" results in \\"0x0ff\\".","\\tbin\\tIf included, numbers starting with \\"0b\\" or \\"0B\\" will be","\\t\\tconsidered to be binary. Example: Using CTRL-X on","\\t\\t\\"0b1000\\" subtracts one, resulting in \\"0b0111\\".","\\tNumbers which simply begin with a digit in the range 1-9 are always","\\tconsidered decimal. This also happens for numbers that are not","\\trecognized as octal or hex."],"number":["boolean\\t(default off)","\\t\\t\\tlocal to window","\\tPrint the line number in front of each line. When the \'n\' option is","\\texcluded from \'cpoptions\' a wrapped line will not use the column of","\\tline numbers.","\\tUse the \'numberwidth\' option to adjust the room for the line number.","\\tWhen a long, wrapped line doesn\'t start with the first character, \'-\'","\\tcharacters are put before the number.","\\tFor highlighting see |hl-LineNr|, |hl-CursorLineNr|, and the","\\t|:sign-define| \\"numhl\\" argument.","\\t\\t\\t\\t\\t\\t*number_relativenumber*","\\tThe \'relativenumber\' option changes the displayed number to be","\\trelative to the cursor. Together with \'number\' there are these","\\tfour combinations (cursor in line 3):"],"numberwidth":["number\\t(Vim default: 4 Vi default: 8)","\\t\\t\\tlocal to window","\\tMinimal number of columns to use for the line number. Only relevant","\\twhen the \'number\' or \'relativenumber\' option is set or printing lines","\\twith a line number. Since one space is always between the number and","\\tthe text, there is one less character for the number itself.","\\tThe value is the minimum width. A bigger width is used when needed to","\\tfit the highest line number in the buffer respectively the number of","\\trows in the window, depending on whether \'number\' or \'relativenumber\'","\\tis set. Thus with the Vim default of 4 there is room for a line number","\\tup to 999. When the buffer has 1000 lines five columns will be used.","\\tThe minimum value is 1, the maximum value is 20."],"omnifunc":["string\\t(default: empty)","\\t\\t\\tlocal to buffer","\\tThis option specifies a function to be used for Insert mode omni","\\tcompletion with CTRL-X CTRL-O. |i_CTRL-X_CTRL-O|","\\tSee |complete-functions| for an explanation of how the function is","\\tinvoked and what it should return.","\\tThis option is usually set by a filetype plugin:","\\t|:filetype-plugin-on|","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"opendevice":["boolean\\t(default off)","\\t\\t\\tglobal","\\t\\t\\t{only for Windows}","\\tEnable reading and writing from devices. This may get Vim stuck on a","\\tdevice that can be opened but doesn\'t actually do the I/O. Therefore","\\tit is off by default.","\\tNote that on Windows editing \\"aux.h\\", \\"lpt1.txt\\" and the like also","\\tresult in editing a device."],"operatorfunc":["string\\t(default: empty)","\\t\\t\\tglobal","\\tThis option specifies a function to be called by the |g@| operator.","\\tSee |:map-operator| for more info and an example."],"packpath":["string\\t(default: see \'runtimepath\')","\\tDirectories used to find packages. See |packages|."],"paragraphs":["string\\t(default \\"IPLPPPQPP TPHPLIPpLpItpplpipbp\\")","\\t\\t\\tglobal","\\tSpecifies the nroff macros that separate paragraphs. These are pairs","\\tof two letters (see |object-motions|)."],"paste":["boolean\\t(default off)","\\t\\t\\tglobal","\\tThis option is obsolete; |bracketed-paste-mode| is built-in."],"pastetoggle":["string\\t(default \\"\\")","\\t\\t\\tglobal","\\tWhen non-empty, specifies the key sequence that toggles the \'paste\'","\\toption. This is like specifying a mapping: >","\\t :map {keys} :set invpaste<CR>","<\\tWhere {keys} is the value of \'pastetoggle\'.","\\tThe difference is that it will work even when \'paste\' is set.","\\t\'pastetoggle\' works in Insert mode and Normal mode, but not in","\\tCommand-line mode.","\\tMappings are checked first, thus overrule \'pastetoggle\'. However,","\\twhen \'paste\' is on mappings are ignored in Insert mode, thus you can do","\\tthis: >","\\t :map <F10> :set paste<CR>","\\t :map <F11> :set nopaste<CR>","\\t :imap <F10> <C-O>:set paste<CR>","\\t :imap <F11> <nop>","\\t :set pastetoggle=<F11>","<\\tThis will make <F10> start paste mode and <F11> stop paste mode.","\\tNote that typing <F10> in paste mode inserts \\"<F10>\\", since in paste","\\tmode everything is inserted literally, except the \'pastetoggle\' key","\\tsequence.","\\tNo timeout is used, this means that a multi-key \'pastetoggle\' can not","\\tbe triggered manually."],"patchexpr":["string\\t(default \\"\\")","\\t\\t\\tglobal","\\tExpression which is evaluated to apply a patch to a file and generate","\\tthe resulting new version of the file. See |diff-patchexpr|."],"patchmode":["string\\t(default \\"\\")","\\t\\t\\tglobal","\\tWhen non-empty the oldest version of a file is kept. This can be used","\\tto keep the original version of a file if you are changing files in a","\\tsource distribution. Only the first time that a file is written a","\\tcopy of the original file will be kept. The name of the copy is the","\\tname of the original file with the string in the \'patchmode\' option","\\tappended. This option should start with a dot. Use a string like","\\t\\".orig\\" or \\".org\\". \'backupdir\' must not be empty for this to work","\\t(Detail: The backup file is renamed to the patchmode file after the","\\tnew file has been successfully written, that\'s why it must be possible","\\tto write a backup file). If there was no file to be backed up, an","\\tempty file is created.","\\tWhen the \'backupskip\' pattern matches, a patchmode file is not made.","\\tUsing \'patchmode\' for compressed files appends the extension at the","\\tend (e.g., \\"file.gz.orig\\"), thus the resulting name isn\'t always","\\trecognized as a compressed file.","\\tOnly normal file name characters can be used, \\"/\\\\*?[|<>\\" are illegal."],"path":["string\\t(default on Unix: \\".,/usr/include,,\\"","\\t\\t\\t\\t other systems: \\".,,\\")","\\t\\t\\tglobal or local to buffer |global-local|","\\tThis is a list of directories which will be searched when using the","\\t|gf|, [f, ]f, ^Wf, |:find|, |:sfind|, |:tabfind| and other commands,","\\tprovided that the file being searched for has a relative path (not","\\tstarting with \\"/\\", \\"./\\" or \\"../\\"). The directories in the \'path\'","\\toption may be relative or absolute.","\\t- Use commas to separate directory names: >","\\t\\t:set path=.,/usr/local/include,/usr/include","<\\t- Spaces can also be used to separate directory names (for backwards","\\t compatibility with version 3.0). To have a space in a directory","\\t name, precede it with an extra backslash, and escape the space: >","\\t\\t:set path=.,/dir/with\\\\\\\\\\\\ space","<\\t- To include a comma in a directory name precede it with an extra","\\t backslash: >","\\t\\t:set path=.,/dir/with\\\\\\\\,comma","<\\t- To search relative to the directory of the current file, use: >","\\t\\t:set path=.","<\\t- To search in the current directory use an empty string between two","\\t commas: >","\\t\\t:set path=,,","<\\t- A directory name may end in a \':\' or \'/\'.","\\t- Environment variables are expanded |:set_env|.","\\t- When using |netrw.vim| URLs can be used. For example, adding","\\t \\"http://www.vim.org\\" will make \\":find index.html\\" work.","\\t- Search upwards and downwards in a directory tree using \\"*\\", \\"**\\" and","\\t \\";\\". See |file-searching| for info and syntax.","\\t- Careful with \'\\\\\' characters, type two to get one in the option: >","\\t\\t:set path=.,c:\\\\\\\\include","<\\t Or just use \'/\' instead: >","\\t\\t:set path=.,c:/include","<\\tDon\'t forget \\".\\" or files won\'t even be found in the same directory as","\\tthe file!","\\tThe maximum length is limited. How much depends on the system, mostly","\\tit is something like 256 or 1024 characters.","\\tYou can check if all the include files are found, using the value of","\\t\'path\', see |:checkpath|.","\\tThe use of |:set+=| and |:set-=| is preferred when adding or removing","\\tdirectories from the list. This avoids problems when a future version","\\tuses another default. To remove the current directory use: >","\\t\\t:set path-=","<\\tTo add the current directory use: >","\\t\\t:set path+=","<\\tTo use an environment variable, you probably need to replace the","\\tseparator. Here is an example to append $INCL, in which directory","\\tnames are separated with a semi-colon: >","\\t\\t:let &path = &path . \\",\\" . substitute($INCL, \';\', \',\', \'g\')","<\\tReplace the \';\' with a \':\' or whatever separator is used. Note that","\\tthis doesn\'t work when $INCL contains a comma or white space."],"preserveindent":["boolean\\t(default off)","\\t\\t\\tlocal to buffer","\\tWhen changing the indent of the current line, preserve as much of the","\\tindent structure as possible. Normally the indent is replaced by a","\\tseries of tabs followed by spaces as required (unless |\'expandtab\'| is","\\tenabled, in which case only spaces are used). Enabling this option","\\tmeans the indent will preserve as many existing characters as possible","\\tfor indenting, and only add additional tabs or spaces as required.","\\t\'expandtab\' does not apply to the preserved white space, a Tab remains","\\ta Tab.","\\tNOTE: When using \\">>\\" multiple times the resulting indent is a mix of","\\ttabs and spaces. You might not like this.","\\tAlso see \'copyindent\'.","\\tUse |:retab| to clean up white space."],"previewheight":["number (default 12)","\\t\\t\\tglobal","\\tDefault height for a preview window. Used for |:ptag| and associated","\\tcommands. Used for |CTRL-W_}| when no count is given."],"previewwindow":["boolean (default off)","\\t\\t\\tlocal to window","\\tIdentifies the preview window. Only one window can have this option","\\tset. It\'s normally not set directly, but by using one of the commands","\\t|:ptag|, |:pedit|, etc."],"printdevice":["string\\t(default empty)","\\t\\t\\tglobal","\\tThe name of the printer to be used for |:hardcopy|.","\\tSee |pdev-option|.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"printencoding":["string\\t(default empty, except for some systems)","\\t\\t\\tglobal","\\tSets the character encoding used when printing.","\\tSee |penc-option|."],"printexpr":["string\\t(default: see below)","\\t\\t\\tglobal","\\tExpression used to print the PostScript produced with |:hardcopy|.","\\tSee |pexpr-option|.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"printfont":["string\\t(default \\"courier\\")","\\t\\t\\tglobal","\\tThe name of the font that will be used for |:hardcopy|.","\\tSee |pfn-option|."],"printheader":["string (default \\"%<%f%h%m%=Page %N\\")","\\t\\t\\tglobal","\\tThe format of the header produced in |:hardcopy| output.","\\tSee |pheader-option|."],"printmbcharset":["string (default \\"\\")","\\t\\t\\tglobal","\\tThe CJK character set to be used for CJK output from |:hardcopy|.","\\tSee |pmbcs-option|."],"printmbfont":["string (default \\"\\")","\\t\\t\\tglobal","\\tList of font names to be used for CJK output from |:hardcopy|.","\\tSee |pmbfn-option|."],"printoptions":["string (default \\"\\")","\\t\\t\\tglobal","\\tList of items that control the format of the output of |:hardcopy|.","\\tSee |popt-option|."],"prompt":["boolean\\t(default on)","\\t\\t\\tglobal","\\tWhen on a \\":\\" prompt is used in Ex mode."],"pumblend":["number\\t(default 0)","\\t\\t\\tglobal","\\tEnables pseudo-transparency for the |popup-menu|. Valid values are in","\\tthe range of 0 for fully opaque popupmenu (disabled) to 100 for fully","\\ttransparent background. Values between 0-30 are typically most useful."],"pumheight":["number\\t(default 0)","\\t\\t\\tglobal","\\tMaximum number of items to show in the popup menu","\\t(|ins-completion-menu|). Zero means \\"use available screen space\\"."],"pumwidth":["number\\t(default 15)","\\t\\t\\tglobal","\\tMinimum width for the popup menu (|ins-completion-menu|). If the","\\tcursor column + \'pumwidth\' exceeds screen width, the popup menu is","\\tnudged to fit on the screen."],"pyxversion":["number\\t(default depends on the build)","\\t\\t\\tglobal","\\tSpecifies the python version used for pyx* functions and commands","\\t|python_x|. The default value is as follows:"],"quoteescape":["string\\t(default \\"\\\\\\")","\\t\\t\\tlocal to buffer","\\tThe characters that are used to escape quotes in a string. Used for","\\tobjects like a\', a\\" and a` |a\'|.","\\tWhen one of the characters in this option is found inside a string,","\\tthe following character will be skipped. The default value makes the","\\ttext \\"foo\\\\\\"bar\\\\\\\\\\" considered to be one string."],"readonly":["boolean\\t(default off)","\\t\\t\\tlocal to buffer","\\tIf on, writes fail unless you use a \'!\'. Protects you from","\\taccidentally overwriting a file. Default on when Vim is started","\\tin read-only mode (\\"vim -R\\") or when the executable is called \\"view\\".","\\tWhen using \\":w!\\" the \'readonly\' option is reset for the current","\\tbuffer, unless the \'Z\' flag is in \'cpoptions\'.","\\tWhen using the \\":view\\" command the \'readonly\' option is","\\tset for the newly edited buffer.","\\tSee \'modifiable\' for disallowing changes to the buffer."],"redrawdebug":["string\\t(default \'\')","\\t\\t\\tglobal","\\tFlags to change the way redrawing works, for debugging purposes.","\\tMost useful with \'writedelay\' set to some reasonable value.","\\tSupports the following flags:","\\t compositor\\tIndicate what redraws come from the compositor","\\t\\t\\tby briefly flashing the redrawn regions in colors","\\t\\t\\tindicating the redraw type. These are the highlight","\\t\\t\\tgroups used (and their default colors):","\\t\\tRedrawDebugNormal gui=reverse normal redraw passed through","\\t\\tRedrawDebugClear guibg=Yellow clear event passed through","\\t\\tRedrawDebugComposed guibg=Green redraw event modified by the","\\t\\t\\t\\t\\t\\t compositor (due to","\\t\\t\\t\\t\\t\\t overlapping grids, etc)","\\t\\tRedrawDebugRecompose guibg=Red redraw generated by the","\\t\\t\\t\\t\\t\\t compositor itself, due to a","\\t\\t\\t\\t\\t\\t grid being moved or deleted.","\\t nothrottle\\tTurn off throttling of the message grid. This is an","\\t\\t\\toptimization that joins many small scrolls to one","\\t\\t\\tlarger scroll when drawing the message area (with","\\t\\t\\t\'display\' msgsep flag active).","\\t invalid\\tEnable stricter checking (abort) of inconsistencies","\\t\\t\\tof the internal screen state. This is mostly","\\t\\t\\tuseful when running nvim inside a debugger (and","\\t\\t\\tthe test suite).","\\t nodelta\\tSend all internally redrawn cells to the UI, even if","\\t they are unchanged from the already displayed state."],"redrawtime":["number\\t(default 2000)","\\t\\t\\tglobal","\\tTime in milliseconds for redrawing the display. Applies to","\\t\'hlsearch\', \'inccommand\', |:match| highlighting and syntax","\\thighlighting.","\\tWhen redrawing takes more than this many milliseconds no further","\\tmatches will be highlighted.","\\tFor syntax highlighting the time applies per window. When over the","\\tlimit syntax highlighting is disabled until |CTRL-L| is used.","\\tThis is used to avoid that Vim hangs when using a very complicated","\\tpattern."],"regexpengine":["number\\t(default 0)","\\t\\t\\tglobal","\\tThis selects the default regexp engine. |two-engines|","\\tThe possible values are:","\\t\\t0\\tautomatic selection","\\t\\t1\\told engine","\\t\\t2\\tNFA engine","\\tNote that when using the NFA engine and the pattern contains something","\\tthat is not supported the pattern will not match. This is only useful","\\tfor debugging the regexp engine.","\\tUsing automatic selection enables Vim to switch the engine, if the","\\tdefault engine becomes too costly. E.g., when the NFA engine uses too","\\tmany states. This should prevent Vim from hanging on a combination of","\\ta complex pattern with long text."],"relativenumber":["boolean\\t(default off)","\\t\\t\\tlocal to window","\\tShow the line number relative to the line with the cursor in front of","\\teach line. Relative line numbers help you use the |count| you can","\\tprecede some vertical motion commands (e.g. j k + -) with, without","\\thaving to calculate it yourself. Especially useful in combination with","\\tother commands (e.g. y d c < > gq gw =).","\\tWhen the \'n\' option is excluded from \'cpoptions\' a wrapped","\\tline will not use the column of line numbers.","\\tThe \'numberwidth\' option can be used to set the room used for the line","\\tnumber.","\\tWhen a long, wrapped line doesn\'t start with the first character, \'-\'","\\tcharacters are put before the number.","\\tSee |hl-LineNr| and |hl-CursorLineNr| for the highlighting used for","\\tthe number."],"remap":["boolean\\t(default on)","\\t\\t\\tglobal","\\tAllows for mappings to work recursively. If you do not want this for","\\ta single entry, use the :noremap[!] command.","\\tNOTE: To avoid portability problems with Vim scripts, always keep","\\tthis option at the default \\"on\\". Only switch it off when working with","\\told Vi scripts."],"report":["number\\t(default 2)","\\t\\t\\tglobal","\\tThreshold for reporting number of lines changed. When the number of","\\tchanged lines is more than \'report\' a message will be given for most","\\t\\":\\" commands. If you want it always, set \'report\' to 0.","\\tFor the \\":substitute\\" command the number of substitutions is used","\\tinstead of the number of lines."],"revins":["boolean\\t(default off)","\\t\\t\\tglobal","\\tInserting characters in Insert mode will work backwards. See \\"typing","\\tbackwards\\" |ins-reverse|. This option can be toggled with the CTRL-_","\\tcommand in Insert mode, when \'allowrevins\' is set.","\\tThis option is reset when \'paste\' is set and restored when \'paste\' is","\\treset."],"rightleft":["boolean\\t(default off)","\\t\\t\\tlocal to window","\\tWhen on, display orientation becomes right-to-left, i.e., characters","\\tthat are stored in the file appear from the right to the left.","\\tUsing this option, it is possible to edit files for languages that","\\tare written from the right to the left such as Hebrew and Arabic.","\\tThis option is per window, so it is possible to edit mixed files","\\tsimultaneously, or to view the same file in both ways (this is","\\tuseful whenever you have a mixed text file with both right-to-left","\\tand left-to-right strings so that both sets are displayed properly","\\tin different windows). Also see |rileft.txt|."],"rightleftcmd":["string\\t(default \\"search\\")","\\t\\t\\tlocal to window","\\tEach word in this option enables the command line editing to work in","\\tright-to-left mode for a group of commands:"],"ruler":["boolean\\t(default on)","\\t\\t\\tglobal","\\tShow the line and column number of the cursor position, separated by a","\\tcomma. When there is room, the relative position of the displayed","\\ttext in the file is shown on the far right:","\\t\\tTop\\tfirst line is visible","\\t\\tBot\\tlast line is visible","\\t\\tAll\\tfirst and last line are visible","\\t\\t45%\\trelative position in the file","\\tIf \'rulerformat\' is set, it will determine the contents of the ruler.","\\tEach window has its own ruler. If a window has a status line, the","\\truler is shown there. Otherwise it is shown in the last line of the","\\tscreen. If the statusline is given by \'statusline\' (i.e. not empty),","\\tthis option takes precedence over \'ruler\' and \'rulerformat\'","\\tIf the number of characters displayed is different from the number of","\\tbytes in the text (e.g., for a TAB or a multi-byte character), both","\\tthe text column (byte number) and the screen column are shown,","\\tseparated with a dash.","\\tFor an empty line \\"0-1\\" is shown.","\\tFor an empty buffer the line number will also be zero: \\"0,0-1\\".","\\tThis option is reset when \'paste\' is set and restored when \'paste\' is","\\treset.","\\tIf you don\'t want to see the ruler all the time but want to know where","\\tyou are, use \\"g CTRL-G\\" |g_CTRL-G|."],"rulerformat":["string\\t(default empty)","\\t\\t\\tglobal","\\tWhen this option is not empty, it determines the content of the ruler","\\tstring, as displayed for the \'ruler\' option.","\\tThe format of this option is like that of \'statusline\'.","\\tThis option cannot be set in a modeline when \'modelineexpr\' is off."],"runtimepath":["string\\t(default: \\"$XDG_CONFIG_HOME/nvim,","\\t\\t\\t\\t\\t $XDG_CONFIG_DIRS[1]/nvim,","\\t\\t\\t\\t\\t $XDG_CONFIG_DIRS[2]/nvim,","\\t\\t\\t\\t\\t …","\\t\\t\\t\\t\\t $XDG_DATA_HOME/nvim[-data]/site,","\\t\\t\\t\\t\\t $XDG_DATA_DIRS[1]/nvim/site,","\\t\\t\\t\\t\\t $XDG_DATA_DIRS[2]/nvim/site,","\\t\\t\\t\\t\\t …","\\t\\t\\t\\t\\t $VIMRUNTIME,","\\t\\t\\t\\t\\t …","\\t\\t\\t\\t\\t $XDG_DATA_DIRS[2]/nvim/site/after,","\\t\\t\\t\\t\\t $XDG_DATA_DIRS[1]/nvim/site/after,","\\t\\t\\t\\t\\t $XDG_DATA_HOME/nvim[-data]/site/after,","\\t\\t\\t\\t\\t …","\\t\\t\\t\\t\\t $XDG_CONFIG_DIRS[2]/nvim/after,","\\t\\t\\t\\t\\t $XDG_CONFIG_DIRS[1]/nvim/after,","\\t\\t\\t\\t\\t $XDG_CONFIG_HOME/nvim/after\\")","\\t\\t\\tglobal","\\tList of directories to be searched for these runtime files:","\\t filetype.vim\\tfiletypes by file name |new-filetype|","\\t scripts.vim\\tfiletypes by file contents |new-filetype-scripts|","\\t autoload/\\tautomatically loaded scripts |autoload-functions|","\\t colors/\\tcolor scheme files |:colorscheme|","\\t compiler/\\tcompiler files |:compiler|","\\t doc/\\t\\tdocumentation |write-local-help|","\\t ftplugin/\\tfiletype plugins |write-filetype-plugin|","\\t indent/\\tindent scripts |indent-expression|","\\t keymap/\\tkey mapping files |mbyte-keymap|","\\t lang/\\t\\tmenu translations |:menutrans|","\\t menu.vim\\tGUI menus |menu.vim|","\\t pack/\\t\\tpackages |:packadd|","\\t plugin/\\tplugin scripts |write-plugin|","\\t print/\\tfiles for printing |postscript-print-encoding|","\\t rplugin/\\t|remote-plugin| scripts","\\t spell/\\tspell checking files |spell|","\\t syntax/\\tsyntax files |mysyntaxfile|","\\t tutor/\\ttutorial files |:Tutor|"],"scroll":["number\\t(default: half the window height)","\\t\\t\\tlocal to window","\\tNumber of lines to scroll with CTRL-U and CTRL-D commands. Will be","\\tset to half the number of lines in the window when the window size","\\tchanges. If you give a count to the CTRL-U or CTRL-D command it will","\\tbe used as the new value for \'scroll\'. Reset to half the window","\\theight with \\":set scroll=0\\"."],"scrollback":["number\\t(default: 10000)","\\t\\t\\tlocal to buffer","\\tMaximum number of lines kept beyond the visible screen. Lines at the","\\ttop are deleted if new lines exceed this limit.","\\tMinimum is 1, maximum is 100000.","\\tOnly in |terminal| buffers."],"scrollbind":["boolean (default off)","\\t\\t\\tlocal to window","\\tSee also |scroll-binding|. When this option is set, the current","\\twindow scrolls as other scrollbind windows (windows that also have","\\tthis option set) scroll. This option is useful for viewing the","\\tdifferences between two versions of a file, see \'diff\'.","\\tSee |\'scrollopt\'| for options that determine how this option should be","\\tinterpreted.","\\tThis option is mostly reset when splitting a window to edit another","\\tfile. This means that \\":split | edit file\\" results in two windows","\\twith scroll-binding, but \\":split file\\" does not."],"scrolljump":["number\\t(default 1)","\\t\\t\\tglobal","\\tMinimal number of lines to scroll when the cursor gets off the","\\tscreen (e.g., with \\"j\\"). Not used for scroll commands (e.g., CTRL-E,","\\tCTRL-D). Useful if your terminal scrolls very slowly.","\\tWhen set to a negative number from -1 to -100 this is used as the","\\tpercentage of the window height. Thus -50 scrolls half the window","\\theight."],"scrolloff":["number\\t(default 0)","\\t\\t\\tglobal or local to window |global-local|","\\tMinimal number of screen lines to keep above and below the cursor.","\\tThis will make some context visible around where you are working. If","\\tyou set it to a very large value (999) the cursor line will always be","\\tin the middle of the window (except at the start or end of the file or","\\twhen long lines wrap).","\\tAfter using the local value, go back the global value with one of","\\tthese two: >","\\t\\tsetlocal scrolloff<","\\t\\tsetlocal scrolloff=-1","<\\tFor scrolling horizontally see \'sidescrolloff\'."],"scrollopt":["string\\t(default \\"ver,jump\\")","\\t\\t\\tglobal","\\tThis is a comma-separated list of words that specifies how","\\t\'scrollbind\' windows should behave. \'sbo\' stands for ScrollBind","\\tOptions.","\\tThe following words are available:","\\t ver\\t\\tBind vertical scrolling for \'scrollbind\' windows","\\t hor\\t\\tBind horizontal scrolling for \'scrollbind\' windows","\\t jump\\tApplies to the offset between two windows for vertical","\\t\\t\\tscrolling. This offset is the difference in the first","\\t\\t\\tdisplayed line of the bound windows. When moving","\\t\\t\\taround in a window, another \'scrollbind\' window may","\\t\\t\\treach a position before the start or after the end of","\\t\\t\\tthe buffer. The offset is not changed though, when","\\t\\t\\tmoving back the \'scrollbind\' window will try to scroll","\\t\\t\\tto the desired position when possible.","\\t\\t\\tWhen now making that window the current one, two","\\t\\t\\tthings can be done with the relative offset:","\\t\\t\\t1. When \\"jump\\" is not included, the relative offset is","\\t\\t\\t adjusted for the scroll position in the new current","\\t\\t\\t window. When going back to the other window, the","\\t\\t\\t new relative offset will be used.","\\t\\t\\t2. When \\"jump\\" is included, the other windows are","\\t\\t\\t scrolled to keep the same relative offset. When","\\t\\t\\t going back to the other window, it still uses the","\\t\\t\\t same relative offset.","\\tAlso see |scroll-binding|.","\\tWhen \'diff\' mode is active there always is vertical scroll binding,","\\teven when \\"ver\\" isn\'t there."],"sections":["string\\t(default \\"SHNHH HUnhsh\\")","\\t\\t\\tglobal","\\tSpecifies the nroff macros that separate sections. These are pairs of","\\ttwo letters (See |object-motions|). The default makes a section start","\\tat the nroff macros \\".SH\\", \\".NH\\", \\".H\\", \\".HU\\", \\".nh\\" and \\".sh\\"."],"secure":["boolean\\t(default off)","\\t\\t\\tglobal","\\tWhen on, \\":autocmd\\", shell and write commands are not allowed in","\\t\\".nvimrc\\" and \\".exrc\\" in the current directory and map commands are","\\tdisplayed. Switch it off only if you know that you will not run into","\\tproblems, or when the \'exrc\' option is off. On Unix this option is","\\tonly used if the \\".nvimrc\\" or \\".exrc\\" is not owned by you. This can be","\\tdangerous if the systems allows users to do a \\"chown\\". You better set","\\t\'secure\' at the end of your |init.vim| then.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"selection":["string\\t(default \\"inclusive\\")","\\t\\t\\tglobal","\\tThis option defines the behavior of the selection. It is only used","\\tin Visual and Select mode.","\\tPossible values:","\\t value\\tpast line inclusive ~","\\t old\\t\\t no\\t\\tyes","\\t inclusive\\t yes\\t\\tyes","\\t exclusive\\t yes\\t\\tno","\\t\\"past line\\" means that the cursor is allowed to be positioned one","\\tcharacter past the line.","\\t\\"inclusive\\" means that the last character of the selection is included","\\tin an operation. For example, when \\"x\\" is used to delete the","\\tselection.","\\tWhen \\"old\\" is used and \'virtualedit\' allows the cursor to move past","\\tthe end of line the line break still isn\'t included.","\\tNote that when \\"exclusive\\" is used and selecting from the end","\\tbackwards, you cannot include the last character of a line, when","\\tstarting in Normal mode and \'virtualedit\' empty."],"selectmode":["string\\t(default \\"\\")","\\t\\t\\tglobal","\\tThis is a comma separated list of words, which specifies when to start","\\tSelect mode instead of Visual mode, when a selection is started.","\\tPossible values:","\\t mouse\\twhen using the mouse","\\t key\\t\\twhen using shifted special keys","\\t cmd\\t\\twhen using \\"v\\", \\"V\\" or CTRL-V","\\tSee |Select-mode|.","\\tThe \'selectmode\' option is set by the |:behave| command."],"sessionoptions":["string\\t(default: \\"blank,buffers,curdir,folds,","\\t\\t\\t\\t\\t help,tabpages,winsize\\"","\\t\\t\\t\\t Vi default: \\"blank,buffers,curdir,folds,","\\t\\t\\t\\t\\t help,options,tabpages,winsize\\")","\\t\\t\\tglobal","\\tChanges the effect of the |:mksession| command. It is a comma","\\tseparated list of words. Each word enables saving and restoring","\\tsomething:","\\t word\\t\\tsave and restore ~","\\t blank\\tempty windows","\\t buffers\\thidden and unloaded buffers, not just those in windows","\\t curdir\\tthe current directory","\\t folds\\tmanually created folds, opened/closed folds and local","\\t\\t\\tfold options","\\t globals\\tglobal variables that start with an uppercase letter","\\t\\t\\tand contain at least one lowercase letter. Only","\\t\\t\\tString and Number types are stored.","\\t help\\t\\tthe help window","\\t localoptions\\toptions and mappings local to a window or buffer (not","\\t\\t\\tglobal values for local options)","\\t options\\tall options and mappings (also global values for local","\\t\\t\\toptions)","\\t resize\\tsize of the Vim window: \'lines\' and \'columns\'","\\t sesdir\\tthe directory in which the session file is located","\\t\\t\\twill become the current directory (useful with","\\t\\t\\tprojects accessed over a network from different","\\t\\t\\tsystems)","\\t slash\\tbackslashes in file names replaced with forward","\\t\\t\\tslashes","\\t tabpages\\tall tab pages; without this only the current tab page","\\t\\t\\tis restored, so that you can make a session for each","\\t\\t\\ttab page separately","\\t terminal\\tinclude terminal windows where the command can be","\\t\\t\\trestored","\\t unix\\t\\twith Unix end-of-line format (single <NL>), even when","\\t\\t\\ton Windows or DOS","\\t winpos\\tposition of the whole Vim window","\\t winsize\\twindow sizes"],"shada":["string\\t(Vim default for","\\t\\t\\t\\t Win32: !,\'100,<50,s10,h,rA:,rB:","\\t\\t\\t\\t others: !,\'100,<50,s10,h","\\t\\t\\t\\t Vi default: \\"\\")","\\t\\t\\tglobal","\\tWhen non-empty, the shada file is read upon startup and written","\\twhen exiting Vim (see |shada-file|). The string should be a comma","\\tseparated list of parameters, each consisting of a single character","\\tidentifying the particular parameter, followed by a number or string","\\twhich specifies the value of that parameter. If a particular","\\tcharacter is left out, then the default value is used for that","\\tparameter. The following is a list of the identifying characters and","\\tthe effect of their value.","\\tCHAR\\tVALUE\\t~","\\t\\t\\t\\t\\t\\t\\t*shada-!*","\\t!\\tWhen included, save and restore global variables that start","\\t\\twith an uppercase letter, and don\'t contain a lowercase","\\t\\tletter. Thus \\"KEEPTHIS and \\"K_L_M\\" are stored, but \\"KeepThis\\"","\\t\\tand \\"_K_L_M\\" are not. Nested List and Dict items may not be","\\t\\tread back correctly, you end up with an empty item.","\\t\\t\\t\\t\\t\\t\\t*shada-quote*","\\t\\"\\tMaximum number of lines saved for each register. Old name of","\\t\\tthe \'<\' item, with the disadvantage that you need to put a","\\t\\tbackslash before the \\", otherwise it will be recognized as the","\\t\\tstart of a comment!","\\t\\t\\t\\t\\t\\t\\t*shada-%*","\\t%\\tWhen included, save and restore the buffer list. If Vim is","\\t\\tstarted with a file name argument, the buffer list is not","\\t\\trestored. If Vim is started without a file name argument, the","\\t\\tbuffer list is restored from the shada file. Quickfix ","\\t\\t(\'buftype\'), unlisted (\'buflisted\'), unnamed and buffers on ","\\t\\tremovable media (|shada-r|) are not saved.","\\t\\tWhen followed by a number, the number specifies the maximum","\\t\\tnumber of buffers that are stored. Without a number all","\\t\\tbuffers are stored.","\\t\\t\\t\\t\\t\\t\\t*shada-\'*","\\t\'\\tMaximum number of previously edited files for which the marks","\\t\\tare remembered. This parameter must always be included when","\\t\\t\'shada\' is non-empty.","\\t\\tIncluding this item also means that the |jumplist| and the","\\t\\t|changelist| are stored in the shada file.","\\t\\t\\t\\t\\t\\t\\t*shada-/*","\\t/\\tMaximum number of items in the search pattern history to be","\\t\\tsaved. If non-zero, then the previous search and substitute","\\t\\tpatterns are also saved. When not included, the value of","\\t\\t\'history\' is used.","\\t\\t\\t\\t\\t\\t\\t*shada-:*","\\t:\\tMaximum number of items in the command-line history to be","\\t\\tsaved. When not included, the value of \'history\' is used.","\\t\\t\\t\\t\\t\\t\\t*shada-<*","\\t<\\tMaximum number of lines saved for each register. If zero then","\\t\\tregisters are not saved. When not included, all lines are","\\t\\tsaved. \'\\"\' is the old name for this item.","\\t\\tAlso see the \'s\' item below: limit specified in KiB.","\\t\\t\\t\\t\\t\\t\\t*shada-@*","\\t@\\tMaximum number of items in the input-line history to be","\\t\\tsaved. When not included, the value of \'history\' is used.","\\t\\t\\t\\t\\t\\t\\t*shada-c*","\\tc\\tDummy option, kept for compatibility reasons. Has no actual ","\\t\\teffect: ShaDa always uses UTF-8 and \'encoding\' value is fixed ","\\t\\tto UTF-8 as well.","\\t\\t\\t\\t\\t\\t\\t*shada-f*","\\tf\\tWhether file marks need to be stored. If zero, file marks (\'0","\\t\\tto \'9, \'A to \'Z) are not stored. When not present or when","\\t\\tnon-zero, they are all stored. \'0 is used for the current","\\t\\tcursor position (when exiting or when doing |:wshada|).","\\t\\t\\t\\t\\t\\t\\t*shada-h*","\\th\\tDisable the effect of \'hlsearch\' when loading the shada","\\t\\tfile. When not included, it depends on whether \\":nohlsearch\\"","\\t\\thas been used since the last search command.","\\t\\t\\t\\t\\t\\t\\t*shada-n*","\\tn\\tName of the shada file. The name must immediately follow","\\t\\tthe \'n\'. Must be at the end of the option! If the","\\t\\t\'shadafile\' option is set, that file name overrides the one","\\t\\tgiven here with \'shada\'. Environment variables are","\\t\\texpanded when opening the file, not when setting the option.","\\t\\t\\t\\t\\t\\t\\t*shada-r*","\\tr\\tRemovable media. The argument is a string (up to the next","\\t\\t\',\'). This parameter can be given several times. Each","\\t\\tspecifies the start of a path for which no marks will be","\\t\\tstored. This is to avoid removable media. For Windows you","\\t\\tcould use \\"ra:,rb:\\". You can also use it for temp files,","\\t\\te.g., for Unix: \\"r/tmp\\". Case is ignored.","\\t\\t\\t\\t\\t\\t\\t*shada-s*","\\ts\\tMaximum size of an item contents in KiB. If zero then nothing ","\\t\\tis saved. Unlike Vim this applies to all items, except for ","\\t\\tthe buffer list and header. Full item size is off by three ","\\t\\tunsigned integers: with `s10` maximum item size may be 1 byte ","\\t\\t(type: 7-bit integer) + 9 bytes (timestamp: up to 64-bit ","\\t\\tinteger) + 3 bytes (item size: up to 16-bit integer because ","\\t\\t2^8 < 10240 < 2^16) + 10240 bytes (requested maximum item ","\\t\\tcontents size) = 10253 bytes."],"shadafile":["string\\t(default: \\"\\")","\\t\\t\\tglobal","\\tWhen non-empty, overrides the file name used for |shada| (viminfo).","\\tWhen equal to \\"NONE\\" no shada file will be read or written.","\\tThis option can be set with the |-i| command line flag. The |--clean|","\\tcommand line flag sets it to \\"NONE\\".","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"shell":["string\\t(default $SHELL or \\"sh\\",","\\t\\t\\t\\t\\tWindows: \\"cmd.exe\\")","\\t\\t\\tglobal","\\tName of the shell to use for ! and :! commands. When changing the","\\tvalue also check these options: \'shellpipe\', \'shellslash\'","\\t\'shellredir\', \'shellquote\', \'shellxquote\' and \'shellcmdflag\'.","\\tIt is allowed to give an argument to the command, e.g. \\"csh -f\\".","\\tSee |option-backslash| about including spaces and backslashes.","\\tEnvironment variables are expanded |:set_env|.","\\tIf the name of the shell contains a space, you might need to enclose","\\tit in quotes. Example: >","\\t\\t:set shell=\\\\\\"c:\\\\program\\\\ files\\\\unix\\\\sh.exe\\\\\\"\\\\ -f","<\\tNote the backslash before each quote (to avoid starting a comment) and ","\\teach space (to avoid ending the option value), so better use |:let-&| ","\\tlike this: >","\\t\\t:let &shell=\'\\"C:\\\\Program Files\\\\unix\\\\sh.exe\\" -f\'","<\\tAlso note that the \\"-f\\" is not inside the quotes, because it is not ","\\tpart of the command name.","\\t\\t\\t\\t\\t\\t\\t*shell-unquoting*","\\tRules regarding quotes:","\\t1. Option is split on space and tab characters that are not inside ","\\t quotes: \\"abc def\\" runs shell named \\"abc\\" with additional argument ","\\t \\"def\\", \'\\"abc def\\"\' runs shell named \\"abc def\\" with no additional ","\\t arguments (here and below: additional means “additional to ","\\t \'shellcmdflag\'”).","\\t2. Quotes in option may be present in any position and any number: ","\\t \'\\"abc\\"\', \'\\"a\\"bc\', \'a\\"b\\"c\', \'ab\\"c\\"\' and \'\\"a\\"b\\"c\\"\' are all equivalent ","\\t to just \\"abc\\".","\\t3. Inside quotes backslash preceding backslash means one backslash. ","\\t Backslash preceding quote means one quote. Backslash preceding ","\\t anything else means backslash and next character literally: ","\\t \'\\"a\\\\\\\\b\\"\' is the same as \\"a\\\\b\\", \'\\"a\\\\\\\\\\"b\\"\' runs shell named literally ","\\t \'a\\"b\', \'\\"a\\\\b\\"\' is the same as \\"a\\\\b\\" again.","\\t4. Outside of quotes backslash always means itself, it cannot be used ","\\t to escape quote: \'a\\\\\\"b\\"\' is the same as \\"a\\\\b\\".","\\tNote that such processing is done after |:set| did its own round of ","\\tunescaping, so to keep yourself sane use |:let-&| like shown above.","\\t\\t\\t\\t\\t\\t\\t*shell-powershell*","\\tTo use powershell: >","\\t\\tlet &shell = has(\'win32\') ? \'powershell\' : \'pwsh\'","\\t\\tset shellquote= shellpipe=\\\\| shellxquote=","\\t\\tset shellcmdflag=-NoLogo\\\\ -NoProfile\\\\ -ExecutionPolicy\\\\ RemoteSigned\\\\ -Command","\\t\\tset shellredir=\\\\|\\\\ Out-File\\\\ -Encoding\\\\ UTF8"],"shellcmdflag":["string\\t(default: \\"-c\\"; Windows: \\"/s /c\\")","\\t\\t\\tglobal","\\tFlag passed to the shell to execute \\"!\\" and \\":!\\" commands; e.g.,","\\t`bash.exe -c ls` or `cmd.exe /s /c \\"dir\\"`. For Windows","\\tsystems, the default is set according to the value of \'shell\', to","\\treduce the need to set this option by the user.","\\tOn Unix it can have more than one flag. Each white space separated","\\tpart is passed as an argument to the shell command.","\\tSee |option-backslash| about including spaces and backslashes.","\\tSee |shell-unquoting| which talks about separating this option into ","\\tmultiple arguments.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"shellpipe":["string\\t(default \\">\\", \\"| tee\\", \\"|& tee\\" or \\"2>&1| tee\\")","\\t\\t\\tglobal","\\tString to be used to put the output of the \\":make\\" command in the","\\terror file. See also |:make_makeprg|. See |option-backslash| about","\\tincluding spaces and backslashes.","\\tThe name of the temporary file can be represented by \\"%s\\" if necessary","\\t(the file name is appended automatically if no %s appears in the value","\\tof this option).","\\tFor Windows the default is \\">\\". The output is directly saved in a file","\\tand not echoed to the screen.","\\tFor Unix the default it \\"| tee\\". The stdout of the compiler is saved","\\tin a file and echoed to the screen. If the \'shell\' option is \\"csh\\" or","\\t\\"tcsh\\" after initializations, the default becomes \\"|& tee\\". If the","\\t\'shell\' option is \\"sh\\", \\"ksh\\", \\"mksh\\", \\"pdksh\\", \\"zsh\\" or \\"bash\\" the","\\tdefault becomes \\"2>&1| tee\\". This means that stderr is also included.","\\tBefore using the \'shell\' option a path is removed, thus \\"/bin/sh\\" uses","\\t\\"sh\\".","\\tThe initialization of this option is done after reading the vimrc","\\tand the other initializations, so that when the \'shell\' option is set","\\tthere, the \'shellpipe\' option changes automatically, unless it was","\\texplicitly set before.","\\tWhen \'shellpipe\' is set to an empty string, no redirection of the","\\t\\":make\\" output will be done. This is useful if you use a \'makeprg\'","\\tthat writes to \'makeef\' by itself. If you want no piping, but do","\\twant to include the \'makeef\', set \'shellpipe\' to a single space.","\\tDon\'t forget to precede the space with a backslash: \\":set sp=\\\\ \\".","\\tIn the future pipes may be used for filtering and this option will","\\tbecome obsolete (at least for Unix).","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"shellquote":["string\\t(default: \\"\\"; Windows, when \'shell\'","\\t\\t\\t\\t\\tcontains \\"sh\\" somewhere: \\"\\\\\\"\\")","\\t\\t\\tglobal","\\tQuoting character(s), put around the command passed to the shell, for","\\tthe \\"!\\" and \\":!\\" commands. The redirection is kept outside of the","\\tquoting. See \'shellxquote\' to include the redirection. It\'s","\\tprobably not useful to set both options.","\\tThis is an empty string by default. Only known to be useful for","\\tthird-party shells on Windows systems, such as the MKS Korn Shell","\\tor bash, where it should be \\"\\\\\\"\\". The default is adjusted according","\\tthe value of \'shell\', to reduce the need to set this option by the","\\tuser.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"shellredir":["string\\t(default \\">\\", \\">&\\" or \\">%s 2>&1\\")","\\t\\t\\tglobal","\\tString to be used to put the output of a filter command in a temporary","\\tfile. See also |:!|. See |option-backslash| about including spaces","\\tand backslashes.","\\tThe name of the temporary file can be represented by \\"%s\\" if necessary","\\t(the file name is appended automatically if no %s appears in the value","\\tof this option).","\\tThe default is \\">\\". For Unix, if the \'shell\' option is \\"csh\\", \\"tcsh\\"","\\tor \\"zsh\\" during initializations, the default becomes \\">&\\". If the","\\t\'shell\' option is \\"sh\\", \\"ksh\\" or \\"bash\\" the default becomes","\\t\\">%s 2>&1\\". This means that stderr is also included.","\\tFor Win32, the Unix checks are done and additionally \\"cmd\\" is checked","\\tfor, which makes the default \\">%s 2>&1\\". Also, the same names with","\\t\\".exe\\" appended are checked for.","\\tThe initialization of this option is done after reading the vimrc","\\tand the other initializations, so that when the \'shell\' option is set","\\tthere, the \'shellredir\' option changes automatically unless it was","\\texplicitly set before.","\\tIn the future pipes may be used for filtering and this option will","\\tbecome obsolete (at least for Unix).","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"shellslash":["boolean\\t(default off)","\\t\\t\\tglobal","\\t\\t\\t{only for Windows}","\\tWhen set, a forward slash is used when expanding file names. This is","\\tuseful when a Unix-like shell is used instead of command.com or","\\tcmd.exe. Backward slashes can still be typed, but they are changed to","\\tforward slashes by Vim.","\\tNote that setting or resetting this option has no effect for some","\\texisting file names, thus this option needs to be set before opening","\\tany file for best results. This might change in the future.","\\t\'shellslash\' only works when a backslash can be used as a path","\\tseparator. To test if this is so use: >","\\t\\tif exists(\'+shellslash\')","<","\\t\\t\\t*\'shelltemp\'* *\'stmp\'* *\'noshelltemp\'* *\'nostmp\'*"],"shelltemp":["boolean\\t(Vim default on, Vi default off)","\\t\\t\\tglobal","\\tWhen on, use temp files for shell commands. When off use a pipe.","\\tWhen using a pipe is not possible temp files are used anyway.","\\tThe advantage of using a pipe is that nobody can read the temp file","\\tand the \'shell\' command does not need to support redirection.","\\tThe advantage of using a temp file is that the file type and encoding","\\tcan be detected.","\\tThe |FilterReadPre|, |FilterReadPost| and |FilterWritePre|,","\\t|FilterWritePost| autocommands event are not triggered when","\\t\'shelltemp\' is off.","\\t|system()| does not respect this option, it always uses pipes."],"shellxescape":["string\\t(default: \\"\\")","\\t\\t\\tglobal","\\tWhen \'shellxquote\' is set to \\"(\\" then the characters listed in this","\\toption will be escaped with a \'^\' character. This makes it possible","\\tto execute most external commands with cmd.exe."],"shellxquote":["string\\t(default: \\"\\", Windows: \\"\\\\\\"\\")","\\t\\t\\tglobal","\\tQuoting character(s), put around the command passed to the shell, for","\\tthe \\"!\\" and \\":!\\" commands. Includes the redirection. See","\\t\'shellquote\' to exclude the redirection. It\'s probably not useful","\\tto set both options.","\\tWhen the value is \'(\' then \')\' is appended. When the value is \'\\"(\'","\\tthen \')\\"\' is appended.","\\tWhen the value is \'(\' then also see \'shellxescape\'.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"shiftround":["boolean\\t(default off)","\\t\\t\\tglobal","\\tRound indent to multiple of \'shiftwidth\'. Applies to > and <","\\tcommands. CTRL-T and CTRL-D in Insert mode always round the indent to","\\ta multiple of \'shiftwidth\' (this is Vi compatible)."],"shiftwidth":["number\\t(default 8)","\\t\\t\\tlocal to buffer","\\tNumber of spaces to use for each step of (auto)indent. Used for","\\t|\'cindent\'|, |>>|, |<<|, etc.","\\tWhen zero the \'ts\' value will be used. Use the |shiftwidth()|","\\tfunction to get the effective shiftwidth value."],"shortmess":["string\\t(Vim default \\"filnxtToOF\\", Vi default: \\"S\\")","\\t\\t\\tglobal","\\tThis option helps to avoid all the |hit-enter| prompts caused by file","\\tmessages, for example with CTRL-G, and to avoid some other messages.","\\tIt is a list of flags:","\\t flag\\tmeaning when present\\t~","\\t f\\tuse \\"(3 of 5)\\" instead of \\"(file 3 of 5)\\"","\\t i\\tuse \\"[noeol]\\" instead of \\"[Incomplete last line]\\"","\\t l\\tuse \\"999L, 888C\\" instead of \\"999 lines, 888 characters\\"","\\t m\\tuse \\"[+]\\" instead of \\"[Modified]\\"","\\t n\\tuse \\"[New]\\" instead of \\"[New File]\\"","\\t r\\tuse \\"[RO]\\" instead of \\"[readonly]\\"","\\t w\\tuse \\"[w]\\" instead of \\"written\\" for file write message","\\t\\tand \\"[a]\\" instead of \\"appended\\" for \':w >> file\' command","\\t x\\tuse \\"[dos]\\" instead of \\"[dos format]\\", \\"[unix]\\" instead of","\\t\\t\\"[unix format]\\" and \\"[mac]\\" instead of \\"[mac format]\\".","\\t a\\tall of the above abbreviations"],"showbreak":["string\\t(default \\"\\")","\\t\\t\\tglobal","\\tString to put at the start of lines that have been wrapped. Useful","\\tvalues are \\"> \\" or \\"+++ \\": >","\\t\\t:set showbreak=>\\\\ ","<\\tNote the backslash to escape the trailing space. It\'s easier like","\\tthis: >","\\t\\t:let &showbreak = \'+++ \'","<\\tOnly printable single-cell characters are allowed, excluding <Tab> and","\\tcomma (in a future version the comma might be used to separate the","\\tpart that is shown at the end and at the start of a line).","\\tThe |hl-NonText| highlight group determines the highlighting.","\\tNote that tabs after the showbreak will be displayed differently.","\\tIf you want the \'showbreak\' to appear in between line numbers, add the","\\t\\"n\\" flag to \'cpoptions\'."],"showcmd":["boolean\\t(Vim default: on, Vi default: off)","\\t\\t\\tglobal","\\tShow (partial) command in the last line of the screen. Set this","\\toption off if your terminal is slow.","\\tIn Visual mode the size of the selected area is shown:","\\t- When selecting characters within a line, the number of characters.","\\t If the number of bytes is different it is also displayed: \\"2-6\\"","\\t means two characters and six bytes.","\\t- When selecting more than one line, the number of lines.","\\t- When selecting a block, the size in screen characters:","\\t {lines}x{columns}."],"showfulltag":["boolean (default off)","\\t\\t\\tglobal","\\tWhen completing a word in insert mode (see |ins-completion|) from the","\\ttags file, show both the tag name and a tidied-up form of the search","\\tpattern (if there is one) as possible matches. Thus, if you have","\\tmatched a C function, you can see a template for what arguments are","\\trequired (coding style permitting).","\\tNote that this doesn\'t work well together with having \\"longest\\" in","\\t\'completeopt\', because the completion from the search pattern may not","\\tmatch the typed text."],"showmatch":["boolean\\t(default off)","\\t\\t\\tglobal","\\tWhen a bracket is inserted, briefly jump to the matching one. The","\\tjump is only done if the match can be seen on the screen. The time to","\\tshow the match can be set with \'matchtime\'.","\\tA Beep is given if there is no match (no matter if the match can be","\\tseen or not).","\\tThis option is reset when \'paste\' is set and restored when \'paste\' is","\\treset.","\\tWhen the \'m\' flag is not included in \'cpoptions\', typing a character","\\twill immediately move the cursor back to where it belongs.","\\tSee the \\"sm\\" field in \'guicursor\' for setting the cursor shape and","\\tblinking when showing the match.","\\tThe \'matchpairs\' option can be used to specify the characters to show","\\tmatches for. \'rightleft\' and \'revins\' are used to look for opposite","\\tmatches.","\\tAlso see the matchparen plugin for highlighting the match when moving","\\taround |pi_paren.txt|.","\\tNote: Use of the short form is rated PG."],"showmode":["boolean\\t(Vim default: on, Vi default: off)","\\t\\t\\tglobal","\\tIf in Insert, Replace or Visual mode put a message on the last line.","\\tThe |hl-ModeMsg| highlight group determines the highlighting."],"showtabline":["number\\t(default 1)","\\t\\t\\tglobal","\\tThe value of this option specifies when the line with tab page labels","\\twill be displayed:","\\t\\t0: never","\\t\\t1: only if there are at least two tab pages","\\t\\t2: always","\\tThis is both for the GUI and non-GUI implementation of the tab pages","\\tline.","\\tSee |tab-page| for more information about tab pages."],"sidescroll":["number\\t(default 1)","\\t\\t\\tglobal","\\tThe minimal number of columns to scroll horizontally. Used only when","\\tthe \'wrap\' option is off and the cursor is moved off of the screen.","\\tWhen it is zero the cursor will be put in the middle of the screen.","\\tWhen using a slow terminal set it to a large number or 0. Not used","\\tfor \\"zh\\" and \\"zl\\" commands."],"sidescrolloff":["number (default 0)","\\t\\t\\tglobal or local to window |global-local|","\\tThe minimal number of screen columns to keep to the left and to the","\\tright of the cursor if \'nowrap\' is set. Setting this option to a","\\tvalue greater than 0 while having |\'sidescroll\'| also at a non-zero","\\tvalue makes some context visible in the line you are scrolling in","\\thorizontally (except at beginning of the line). Setting this option","\\tto a large value (like 999) has the effect of keeping the cursor","\\thorizontally centered in the window, as long as one does not come too","\\tclose to the beginning of the line.","\\tAfter using the local value, go back the global value with one of","\\tthese two: >","\\t\\tsetlocal sidescrolloff<","\\t\\tsetlocal sidescrolloff=-1","<","\\tExample: Try this together with \'sidescroll\' and \'listchars\' as","\\t\\t in the following example to never allow the cursor to move","\\t\\t onto the \\"extends\\" character: >"],"signcolumn":["string\\t(default \\"auto\\")","\\t\\t\\tlocal to window","\\tWhen and how to draw the signcolumn. Valid values are:","\\t \\"auto\\" \\tonly when there is a sign to display","\\t \\"auto:[1-9]\\" resize to accommodate multiple signs up to the","\\t given number (maximum 9), e.g. \\"auto:4\\"","\\t \\"no\\"\\t \\tnever","\\t \\"yes\\" \\talways","\\t \\"yes:[1-9]\\" always, with fixed space for signs up to the given","\\t number (maximum 9), e.g. \\"yes:3\\""],"smartcase":["boolean\\t(default off)","\\t\\t\\tglobal","\\tOverride the \'ignorecase\' option if the search pattern contains upper","\\tcase characters. Only used when the search pattern is typed and","\\t\'ignorecase\' option is on. Used for the commands \\"/\\", \\"?\\", \\"n\\", \\"N\\",","\\t\\":g\\" and \\":s\\". Not used for \\"*\\", \\"#\\", \\"gd\\", tag search, etc. After","\\t\\"*\\" and \\"#\\" you can make \'smartcase\' used by doing a \\"/\\" command,","\\trecalling the search pattern from history and hitting <Enter>."],"smartindent":["boolean\\t(default off)","\\t\\t\\tlocal to buffer","\\tDo smart autoindenting when starting a new line. Works for C-like","\\tprograms, but can also be used for other languages. \'cindent\' does","\\tsomething like this, works better in most cases, but is more strict,","\\tsee |C-indenting|. When \'cindent\' is on or \'indentexpr\' is set,","\\tsetting \'si\' has no effect. \'indentexpr\' is a more advanced","\\talternative.","\\tNormally \'autoindent\' should also be on when using \'smartindent\'.","\\tAn indent is automatically inserted:","\\t- After a line ending in \'{\'.","\\t- After a line starting with a keyword from \'cinwords\'.","\\t- Before a line starting with \'}\' (only with the \\"O\\" command).","\\tWhen typing \'}\' as the first character in a new line, that line is","\\tgiven the same indent as the matching \'{\'.","\\tWhen typing \'#\' as the first character in a new line, the indent for","\\tthat line is removed, the \'#\' is put in the first column. The indent","\\tis restored for the next line. If you don\'t want this, use this","\\tmapping: \\":inoremap # X^H#\\", where ^H is entered with CTRL-V CTRL-H.","\\tWhen using the \\">>\\" command, lines starting with \'#\' are not shifted","\\tright.","\\tThis option is reset when \'paste\' is set and restored when \'paste\' is","\\treset."],"smarttab":["boolean\\t(default on)","\\t\\t\\tglobal","\\tWhen on, a <Tab> in front of a line inserts blanks according to","\\t\'shiftwidth\'. \'tabstop\' or \'softtabstop\' is used in other places. A","\\t<BS> will delete a \'shiftwidth\' worth of space at the start of the","\\tline.","\\tWhen off, a <Tab> always inserts blanks according to \'tabstop\' or","\\t\'softtabstop\'. \'shiftwidth\' is only used for shifting text left or","\\tright |shift-left-right|.","\\tWhat gets inserted (a <Tab> or spaces) depends on the \'expandtab\'","\\toption. Also see |ins-expandtab|. When \'expandtab\' is not set, the","\\tnumber of spaces is minimized by using <Tab>s.","\\tThis option is reset when \'paste\' is set and restored when \'paste\' is","\\treset."],"softtabstop":["number\\t(default 0)","\\t\\t\\tlocal to buffer","\\tNumber of spaces that a <Tab> counts for while performing editing","\\toperations, like inserting a <Tab> or using <BS>. It \\"feels\\" like","\\t<Tab>s are being inserted, while in fact a mix of spaces and <Tab>s is","\\tused. This is useful to keep the \'ts\' setting at its standard value","\\tof 8, while being able to edit like it is set to \'sts\'. However,","\\tcommands like \\"x\\" still work on the actual characters.","\\tWhen \'sts\' is zero, this feature is off.","\\tWhen \'sts\' is negative, the value of \'shiftwidth\' is used.","\\t\'softtabstop\' is set to 0 when the \'paste\' option is set and restored","\\twhen \'paste\' is reset.","\\tSee also |ins-expandtab|. When \'expandtab\' is not set, the number of","\\tspaces is minimized by using <Tab>s.","\\tThe \'L\' flag in \'cpoptions\' changes how tabs are used when \'list\' is","\\tset."],"spell":["boolean\\t(default off)","\\t\\t\\tlocal to window","\\tWhen on spell checking will be done. See |spell|.","\\tThe languages are specified with \'spelllang\'."],"spellcapcheck":["string\\t(default \\"[.?!]\\\\_[\\\\])\'\\" \\\\t]\\\\+\\")","\\t\\t\\tlocal to buffer","\\tPattern to locate the end of a sentence. The following word will be","\\tchecked to start with a capital letter. If not then it is highlighted","\\twith SpellCap |hl-SpellCap| (unless the word is also badly spelled).","\\tWhen this check is not wanted make this option empty.","\\tOnly used when \'spell\' is set.","\\tBe careful with special characters, see |option-backslash| about","\\tincluding spaces and backslashes.","\\tTo set this option automatically depending on the language, see","\\t|set-spc-auto|."],"spellfile":["string\\t(default empty)","\\t\\t\\tlocal to buffer","\\tName of the word list file where words are added for the |zg| and |zw|","\\tcommands. It must end in \\".{encoding}.add\\". You need to include the","\\tpath, otherwise the file is placed in the current directory.","\\t\\t\\t\\t\\t\\t\\t\\t*E765*","\\tIt may also be a comma separated list of names. A count before the","\\t|zg| and |zw| commands can be used to access each. This allows using","\\ta personal word list file and a project word list file.","\\tWhen a word is added while this option is empty Vim will set it for","\\tyou: Using the first directory in \'runtimepath\' that is writable. If","\\tthere is no \\"spell\\" directory yet it will be created. For the file","\\tname the first language name that appears in \'spelllang\' is used,","\\tignoring the region.","\\tThe resulting \\".spl\\" file will be used for spell checking, it does not","\\thave to appear in \'spelllang\'.","\\tNormally one file is used for all regions, but you can add the region","\\tname if you want to. However, it will then only be used when","\\t\'spellfile\' is set to it, for entries in \'spelllang\' only files","\\twithout region name will be found.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"spelllang":["string\\t(default \\"en\\")","\\t\\t\\tlocal to buffer","\\tA comma separated list of word list names. When the \'spell\' option is","\\ton spellchecking will be done for these languages. Example: >","\\t\\tset spelllang=en_us,nl,medical","<\\tThis means US English, Dutch and medical words are recognized. Words","\\tthat are not recognized will be highlighted.","\\tThe word list name must consist of alphanumeric characters, a dash or","\\tan underscore. It should not include a comma or dot. Using a dash is","\\trecommended to separate the two letter language name from a","\\tspecification. Thus \\"en-rare\\" is used for rare English words.","\\tA region name must come last and have the form \\"_xx\\", where \\"xx\\" is","\\tthe two-letter, lower case region name. You can use more than one","\\tregion by listing them: \\"en_us,en_ca\\" supports both US and Canadian","\\tEnglish, but not words specific for Australia, New Zealand or Great","\\tBritain. (Note: currently en_au and en_nz dictionaries are older than","\\ten_ca, en_gb and en_us).","\\tIf the name \\"cjk\\" is included East Asian characters are excluded from","\\tspell checking. This is useful when editing text that also has Asian","\\twords.","\\t\\t\\t\\t\\t\\t\\t*E757*","\\tAs a special case the name of a .spl file can be given as-is. The","\\tfirst \\"_xx\\" in the name is removed and used as the region name","\\t(_xx is an underscore, two letters and followed by a non-letter).","\\tThis is mainly for testing purposes. You must make sure the correct","\\tencoding is used, Vim doesn\'t check it.","\\tHow the related spell files are found is explained here: |spell-load|."],"spellsuggest":["string\\t(default \\"best\\")","\\t\\t\\tglobal","\\tMethods used for spelling suggestions. Both for the |z=| command and","\\tthe |spellsuggest()| function. This is a comma-separated list of","\\titems:"],"splitbelow":["boolean\\t(default off)","\\t\\t\\tglobal","\\tWhen on, splitting a window will put the new window below the current","\\tone. |:split|"],"splitright":["boolean\\t(default off)","\\t\\t\\tglobal","\\tWhen on, splitting a window will put the new window right of the","\\tcurrent one. |:vsplit|"],"startofline":["boolean\\t(default off)","\\t\\t\\tglobal","\\tWhen \\"on\\" the commands listed below move the cursor to the first","\\tnon-blank of the line. When off the cursor is kept in the same column","\\t(if possible). This applies to the commands: CTRL-D, CTRL-U, CTRL-B,","\\tCTRL-F, \\"G\\", \\"H\\", \\"M\\", \\"L\\", gg, and to the commands \\"d\\", \\"<<\\" and \\">>\\"","\\twith a linewise operator, with \\"%\\" with a count and to buffer changing","\\tcommands (CTRL-^, :bnext, :bNext, etc.). Also for an Ex command that","\\tonly has a line number, e.g., \\":25\\" or \\":+\\".","\\tIn case of buffer changing commands the cursor is placed at the column","\\twhere it was the last time the buffer was edited."],"statusline":["string\\t(default empty)","\\t\\t\\tglobal or local to window |global-local|","\\tWhen nonempty, this option determines the content of the status line.","\\tAlso see |status-line|."],"suffixes":["string\\t(default \\".bak,~,.o,.h,.info,.swp,.obj\\")","\\t\\t\\tglobal","\\tFiles with these suffixes get a lower priority when multiple files","\\tmatch a wildcard. See |suffixes|. Commas can be used to separate the","\\tsuffixes. Spaces after the comma are ignored. A dot is also seen as","\\tthe start of a suffix. To avoid a dot or comma being recognized as a","\\tseparator, precede it with a backslash (see |option-backslash| about","\\tincluding spaces and backslashes).","\\tSee \'wildignore\' for completely ignoring files.","\\tThe use of |:set+=| and |:set-=| is preferred when adding or removing","\\tsuffixes from the list. This avoids problems when a future version","\\tuses another default."],"suffixesadd":["string\\t(default \\"\\")","\\t\\t\\tlocal to buffer","\\tComma separated list of suffixes, which are used when searching for a","\\tfile for the \\"gf\\", \\"[I\\", etc. commands. Example: >","\\t\\t:set suffixesadd=.java","<","\\t\\t\\t\\t*\'swapfile\'* *\'swf\'* *\'noswapfile\'* *\'noswf\'*"],"swapfile":["boolean (default on)","\\t\\t\\tlocal to buffer","\\tUse a swapfile for the buffer. This option can be reset when a","\\tswapfile is not wanted for a specific buffer. For example, with","\\tconfidential information that even root must not be able to access.","\\tCareful: All text will be in memory:","\\t\\t- Don\'t use this for big files.","\\t\\t- Recovery will be impossible!","\\tA swapfile will only be present when |\'updatecount\'| is non-zero and","\\t\'swapfile\' is set.","\\tWhen \'swapfile\' is reset, the swap file for the current buffer is","\\timmediately deleted. When \'swapfile\' is set, and \'updatecount\' is","\\tnon-zero, a swap file is immediately created.","\\tAlso see |swap-file|.","\\tIf you want to open a new buffer without creating a swap file for it,","\\tuse the |:noswapfile| modifier.","\\tSee \'directory\' for where the swap file is created."],"switchbuf":["string\\t(default \\"\\")","\\t\\t\\tglobal","\\tThis option controls the behavior when switching between buffers.","\\tPossible values (comma separated list):","\\t useopen\\tIf included, jump to the first open window that","\\t\\t\\tcontains the specified buffer (if there is one).","\\t\\t\\tOtherwise: Do not examine other windows.","\\t\\t\\tThis setting is checked with |quickfix| commands, when","\\t\\t\\tjumping to errors (\\":cc\\", \\":cn\\", \\"cp\\", etc.). It is","\\t\\t\\talso used in all buffer related split commands, for","\\t\\t\\texample \\":sbuffer\\", \\":sbnext\\", or \\":sbrewind\\".","\\t usetab\\tLike \\"useopen\\", but also consider windows in other tab","\\t\\t\\tpages.","\\t split\\tIf included, split the current window before loading","\\t\\t\\ta buffer for a |quickfix| command that display errors.","\\t\\t\\tOtherwise: do not split, use current window (when used","\\t\\t\\tin the quickfix window: the previously used window or","\\t\\t\\tsplit if there is no other window).","\\t vsplit\\tJust like \\"split\\" but split vertically.","\\t newtab\\tLike \\"split\\", but open a new tab page. Overrules","\\t\\t\\t\\"split\\" when both are present.","\\t uselast\\tIf included, jump to the previously used window when","\\t\\t\\tjumping to errors with |quickfix| commands."],"synmaxcol":["number\\t(default 3000)","\\t\\t\\tlocal to buffer","\\tMaximum column in which to search for syntax items. In long lines the","\\ttext after this column is not highlighted and following lines may not","\\tbe highlighted correctly, because the syntax state is cleared.","\\tThis helps to avoid very slow redrawing for an XML file that is one","\\tlong line.","\\tSet to zero to remove the limit."],"syntax":["string\\t(default empty)","\\t\\t\\tlocal to buffer","\\tWhen this option is set, the syntax with this name is loaded, unless","\\tsyntax highlighting has been switched off with \\":syntax off\\".","\\tOtherwise this option does not always reflect the current syntax (the","\\tb:current_syntax variable does).","\\tThis option is most useful in a modeline, for a file which syntax is","\\tnot automatically recognized. Example, in an IDL file:","\\t\\t/* vim: set syntax=idl : */ ~","\\tWhen a dot appears in the value then this separates two filetype","\\tnames. Example:","\\t\\t/* vim: set syntax=c.doxygen : */ ~","\\tThis will use the \\"c\\" syntax first, then the \\"doxygen\\" syntax.","\\tNote that the second one must be prepared to be loaded as an addition,","\\totherwise it will be skipped. More than one dot may appear.","\\tTo switch off syntax highlighting for the current file, use: >","\\t\\t:set syntax=OFF","<\\tTo switch syntax highlighting on according to the current value of the","\\t\'filetype\' option: >","\\t\\t:set syntax=ON","<\\tWhat actually happens when setting the \'syntax\' option is that the","\\tSyntax autocommand event is triggered with the value as argument.","\\tThis option is not copied to another buffer, independent of the \'s\' or","\\t\'S\' flag in \'cpoptions\'.","\\tOnly normal file name characters can be used, \\"/\\\\*?[|<>\\" are illegal."],"tabline":["string\\t(default empty)","\\t\\t\\tglobal","\\tWhen nonempty, this option determines the content of the tab pages","\\tline at the top of the Vim window. When empty Vim will use a default","\\ttab pages line. See |setting-tabline| for more info."],"tabpagemax":["number\\t(default 50)","\\t\\t\\tglobal","\\tMaximum number of tab pages to be opened by the |-p| command line","\\targument or the \\":tab all\\" command. |tabpage|"],"tabstop":["number\\t(default 8)","\\t\\t\\tlocal to buffer","\\tNumber of spaces that a <Tab> in the file counts for. Also see","\\t|:retab| command, and \'softtabstop\' option."],"tagbsearch":["boolean\\t(default on)","\\t\\t\\tglobal","\\tWhen searching for a tag (e.g., for the |:ta| command), Vim can either","\\tuse a binary search or a linear search in a tags file. Binary","\\tsearching makes searching for a tag a LOT faster, but a linear search","\\twill find more tags if the tags file wasn\'t properly sorted.","\\tVim normally assumes that your tags files are sorted, or indicate that","\\tthey are not sorted. Only when this is not the case does the","\\t\'tagbsearch\' option need to be switched off."],"tagcase":["string\\t(default \\"followic\\")","\\t\\t\\tglobal or local to buffer |global-local|","\\tThis option specifies how case is handled when searching the tags","\\tfile:","\\t followic\\tFollow the \'ignorecase\' option","\\t followscs Follow the \'smartcase\' and \'ignorecase\' options","\\t ignore\\tIgnore case","\\t match\\tMatch case","\\t smart\\tIgnore case unless an upper case letter is used"],"tagfunc":["string\\t(default: empty)","\\t\\t\\tlocal to buffer","\\tThis option specifies a function to be used to perform tag searches.","\\tThe function gets the tag pattern and should return a List of matching","\\ttags. See |tag-function| for an explanation of how to write the","\\tfunction and an example."],"taglength":["number\\t(default 0)","\\t\\t\\tglobal","\\tIf non-zero, tags are significant up to this number of characters."],"tagrelative":["boolean\\t(Vim default: on, Vi default: off)","\\t\\t\\tglobal","\\tIf on and using a tags file in another directory, file names in that","\\ttags file are relative to the directory where the tags file is."],"tags":["string\\t(default \\"./tags;,tags\\")","\\t\\t\\tglobal or local to buffer |global-local|","\\tFilenames for the tag command, separated by spaces or commas. To","\\tinclude a space or comma in a file name, precede it with a backslash","\\t(see |option-backslash| about including spaces and backslashes).","\\tWhen a file name starts with \\"./\\", the \'.\' is replaced with the path","\\tof the current file. But only when the \'d\' flag is not included in","\\t\'cpoptions\'. Environment variables are expanded |:set_env|. Also see","\\t|tags-option|.","\\t\\"*\\", \\"**\\" and other wildcards can be used to search for tags files in","\\ta directory tree. See |file-searching|. E.g., \\"/lib/**/tags\\" will","\\tfind all files named \\"tags\\" below \\"/lib\\". The filename itself cannot","\\tcontain wildcards, it is used as-is. E.g., \\"/lib/**/tags?\\" will find","\\tfiles called \\"tags?\\".","\\tThe |tagfiles()| function can be used to get a list of the file names","\\tactually used.","\\tThe use of |:set+=| and |:set-=| is preferred when adding or removing","\\tfile names from the list. This avoids problems when a future version","\\tuses another default."],"tagstack":["boolean\\t(default on)","\\t\\t\\tglobal","\\tWhen on, the |tagstack| is used normally. When off, a \\":tag\\" or","\\t\\":tselect\\" command with an argument will not push the tag onto the","\\ttagstack. A following \\":tag\\" without an argument, a \\":pop\\" command or","\\tany other command that uses the tagstack will use the unmodified","\\ttagstack, but does change the pointer to the active entry.","\\tResetting this option is useful when using a \\":tag\\" command in a","\\tmapping which should not change the tagstack."],"termbidi":["boolean (default off)","\\t\\t\\tglobal","\\tThe terminal is in charge of Bi-directionality of text (as specified","\\tby Unicode). The terminal is also expected to do the required shaping","\\tthat some languages (such as Arabic) require.","\\tSetting this option implies that \'rightleft\' will not be set when","\\t\'arabic\' is set and the value of \'arabicshape\' will be ignored.","\\tNote that setting \'termbidi\' has the immediate effect that","\\t\'arabicshape\' is ignored, but \'rightleft\' isn\'t changed automatically.","\\tFor further details see |arabic.txt|."],"termguicolors":["boolean (default off)","\\t\\t\\tglobal","\\tEnables 24-bit RGB color in the |TUI|. Uses \\"gui\\" |:highlight|","\\tattributes instead of \\"cterm\\" attributes. |highlight-guifg|","\\tRequires an ISO-8613-3 compatible terminal."],"terse":["boolean\\t(default off)","\\t\\t\\tglobal","\\tWhen set: Add \'s\' flag to \'shortmess\' option (this makes the message","\\tfor a search that hits the start or end of the file not being","\\tdisplayed). When reset: Remove \'s\' flag from \'shortmess\' option."],"textwidth":["number\\t(default 0)","\\t\\t\\tlocal to buffer","\\tMaximum width of text that is being inserted. A longer line will be","\\tbroken after white space to get this width. A zero value disables","\\tthis.","\\t\'textwidth\' is set to 0 when the \'paste\' option is set and restored","\\twhen \'paste\' is reset.","\\tWhen \'textwidth\' is zero, \'wrapmargin\' may be used. See also","\\t\'formatoptions\' and |ins-textwidth|.","\\tWhen \'formatexpr\' is set it will be used to break the line."],"thesaurus":["string\\t(default \\"\\")","\\t\\t\\tglobal or local to buffer |global-local|","\\tList of file names, separated by commas, that are used to lookup words","\\tfor thesaurus completion commands |i_CTRL-X_CTRL-T|."],"tildeop":["boolean\\t(default off)","\\t\\t\\tglobal","\\tWhen on: The tilde command \\"~\\" behaves like an operator."],"timeout":["boolean (default on)","\\t\\t\\tglobal","\\tThis option and \'timeoutlen\' determine the behavior when part of a","\\tmapped key sequence has been received. For example, if <c-f> is","\\tpressed and \'timeout\' is set, Nvim will wait \'timeoutlen\' milliseconds","\\tfor any key that can follow <c-f> in a mapping."],"ttimeout":["boolean (default on)","\\t\\t\\tglobal","\\tThis option and \'ttimeoutlen\' determine the behavior when part of a","\\tkey code sequence has been received by the |TUI|."],"timeoutlen":["number\\t(default 1000)","\\t\\t\\tglobal","\\tTime in milliseconds to wait for a mapped sequence to complete."],"ttimeoutlen":["number\\t(default 50)","\\t\\t\\tglobal","\\tTime in milliseconds to wait for a key code sequence to complete. Also","\\tused for CTRL-\\\\ CTRL-N and CTRL-\\\\ CTRL-G when part of a command has","\\tbeen typed."],"title":["boolean\\t(default off)","\\t\\t\\tglobal","\\tWhen on, the title of the window will be set to the value of","\\t\'titlestring\' (if it is not empty), or to:","\\t\\tfilename [+=-] (path) - NVIM","\\tWhere:","\\t\\tfilename\\tthe name of the file being edited","\\t\\t-\\t\\tindicates the file cannot be modified, \'ma\' off","\\t\\t+\\t\\tindicates the file was modified","\\t\\t=\\t\\tindicates the file is read-only","\\t\\t=+\\t\\tindicates the file is read-only and modified","\\t\\t(path)\\t\\tis the path of the file being edited","\\t\\t- NVIM\\t\\tthe server name |v:servername| or \\"NVIM\\""],"titlelen":["number\\t(default 85)","\\t\\t\\tglobal","\\tGives the percentage of \'columns\' to use for the length of the window","\\ttitle. When the title is longer, only the end of the path name is","\\tshown. A \'<\' character before the path name is used to indicate this.","\\tUsing a percentage makes this adapt to the width of the window. But","\\tit won\'t work perfectly, because the actual number of characters","\\tavailable also depends on the font used and other things in the title","\\tbar. When \'titlelen\' is zero the full path is used. Otherwise,","\\tvalues from 1 to 30000 percent can be used.","\\t\'titlelen\' is also used for the \'titlestring\' option."],"titleold":["string\\t(default \\"\\")","\\t\\t\\tglobal","\\tIf not empty, this option will be used to set the window title when","\\texiting. Only if \'title\' is enabled.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons.","\\t\\t\\t\\t\\t\\t*\'titlestring\'*"],"titlestring":["string\\t(default \\"\\")","\\t\\t\\tglobal","\\tWhen this option is not empty, it will be used for the title of the","\\twindow. This happens only when the \'title\' option is on."],"ttyfast":["Removed. |vim-differences|"],"undodir":["string\\t(default \\"$XDG_DATA_HOME/nvim/undo\\")","\\t\\t\\tglobal","\\tList of directory names for undo files, separated with commas.","\\tSee |\'backupdir\'| for details of the format.","\\t\\".\\" means using the directory of the file. The undo file name for","\\t\\"file.txt\\" is \\".file.txt.un~\\".","\\tFor other directories the file name is the full path of the edited","\\tfile, with path separators replaced with \\"%\\".","\\tWhen writing: The first directory that exists is used. \\".\\" always","\\tworks, no directories after \\".\\" will be used for writing. If none of ","\\tthe directories exist Neovim will attempt to create last directory in ","\\tthe list.","\\tWhen reading all entries are tried to find an undo file. The first","\\tundo file that exists is used. When it cannot be read an error is","\\tgiven, no further entry is used.","\\tSee |undo-persistence|.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"undofile":["boolean\\t(default off)","\\t\\t\\tlocal to buffer","\\tWhen on, Vim automatically saves undo history to an undo file when","\\twriting a buffer to a file, and restores undo history from the same","\\tfile on buffer read.","\\tThe directory where the undo file is stored is specified by \'undodir\'.","\\tFor more information about this feature see |undo-persistence|.","\\tThe undo file is not read when \'undoreload\' causes the buffer from","\\tbefore a reload to be saved for undo.","\\tWhen \'undofile\' is turned off the undo file is NOT deleted."],"undolevels":["number\\t(default 1000)","\\t\\t\\tglobal or local to buffer |global-local|","\\tMaximum number of changes that can be undone. Since undo information","\\tis kept in memory, higher numbers will cause more memory to be used","\\t(nevertheless, a single change can use an unlimited amount of memory).","\\tSet to 0 for Vi compatibility: One level of undo and \\"u\\" undoes","\\titself: >","\\t\\tset ul=0","<\\tBut you can also get Vi compatibility by including the \'u\' flag in","\\t\'cpoptions\', and still be able to use CTRL-R to repeat undo.","\\tAlso see |undo-two-ways|.","\\tSet to -1 for no undo at all. You might want to do this only for the","\\tcurrent buffer: >","\\t\\tsetlocal ul=-1","<\\tThis helps when you run out of memory for a single change."],"undoreload":["number\\t(default 10000)","\\t\\t\\tglobal","\\tSave the whole buffer for undo when reloading it. This applies to the","\\t\\":e!\\" command and reloading for when the buffer changed outside of","\\tVim. |FileChangedShell|","\\tThe save only happens when this option is negative or when the number","\\tof lines is smaller than the value of this option.","\\tSet this option to zero to disable undo for a reload."],"updatecount":["number\\t(default: 200)","\\t\\t\\tglobal","\\tAfter typing this many characters the swap file will be written to","\\tdisk. When zero, no swap file will be created at all (see chapter on","\\trecovery |crash-recovery|). \'updatecount\' is set to zero by starting","\\tVim with the \\"-n\\" option, see |startup|. When editing in readonly","\\tmode this option will be initialized to 10000.","\\tThe swapfile can be disabled per buffer with |\'swapfile\'|.","\\tWhen \'updatecount\' is set from zero to non-zero, swap files are","\\tcreated for all buffers that have \'swapfile\' set. When \'updatecount\'","\\tis set to zero, existing swap files are not deleted.","\\tThis option has no meaning in buffers where |\'buftype\'| is \\"nofile\\"","\\tor \\"nowrite\\"."],"updatetime":["number\\t(default 4000)","\\t\\t\\tglobal","\\tIf this many milliseconds nothing is typed the swap file will be","\\twritten to disk (see |crash-recovery|). Also used for the","\\t|CursorHold| autocommand event."],"verbose":["number\\t(default 0)","\\t\\t\\tglobal","\\tWhen bigger than zero, Vim will give messages about what it is doing.","\\tCurrently, these messages are given:","\\t>= 1\\tWhen the shada file is read or written.","\\t>= 2\\tWhen a file is \\":source\\"\'ed.","\\t>= 3\\tUI info, terminal capabilities","\\t>= 5\\tEvery searched tags file and include file.","\\t>= 8\\tFiles for which a group of autocommands is executed.","\\t>= 9\\tEvery executed autocommand.","\\t>= 12\\tEvery executed function.","\\t>= 13\\tWhen an exception is thrown, caught, finished, or discarded.","\\t>= 14\\tAnything pending in a \\":finally\\" clause.","\\t>= 15\\tEvery executed Ex command (truncated at 200 characters)."],"verbosefile":["string\\t(default empty)","\\t\\t\\tglobal","\\tWhen not empty all messages are written in a file with this name.","\\tWhen the file exists messages are appended.","\\tWriting to the file ends when Vim exits or when \'verbosefile\' is made","\\tempty. Writes are buffered, thus may not show up for some time.","\\tSetting \'verbosefile\' to a new value is like making it empty first.","\\tThe difference with |:redir| is that verbose messages are not","\\tdisplayed when \'verbosefile\' is set."],"viewdir":["string\\t(default: \\"$XDG_DATA_HOME/nvim/view\\")","\\t\\t\\tglobal","\\tName of the directory where to store files for |:mkview|.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"viewoptions":["string\\t(default: \\"folds,options,cursor,curdir\\")","\\t\\t\\tglobal","\\tChanges the effect of the |:mkview| command. It is a comma separated","\\tlist of words. Each word enables saving and restoring something:","\\t word\\t\\tsave and restore ~","\\t cursor\\tcursor position in file and in window","\\t curdir\\tlocal current directory, if set with |:lcd|","\\t folds\\tmanually created folds, opened/closed folds and local","\\t\\t\\tfold options","\\t options\\toptions and mappings local to a window or buffer (not","\\t\\t\\tglobal values for local options)","\\t localoptions same as \\"options\\"","\\t slash\\tbackslashes in file names replaced with forward","\\t\\t\\tslashes","\\t unix\\t\\twith Unix end-of-line format (single <NL>), even when","\\t\\t\\ton Windows or DOS"],"virtualedit":["string\\t(default \\"\\")","\\t\\t\\tglobal","\\tA comma separated list of these words:","\\t block\\tAllow virtual editing in Visual block mode.","\\t insert\\tAllow virtual editing in Insert mode.","\\t all\\t\\tAllow virtual editing in all modes.","\\t onemore\\tAllow the cursor to move just past the end of the line"],"visualbell":["boolean\\t(default off)","\\t\\t\\tglobal","\\tUse visual bell instead of beeping. Also see \'errorbells\'."],"warn":["boolean\\t(default on)","\\t\\t\\tglobal","\\tGive a warning message when a shell command is used while the buffer","\\thas been changed."],"whichwrap":["string\\t(Vim default: \\"b,s\\", Vi default: \\"\\")","\\t\\t\\tglobal","\\tAllow specified keys that move the cursor left/right to move to the","\\tprevious/next line when the cursor is on the first/last character in","\\tthe line. Concatenate characters to allow this for these keys:","\\t\\tchar key\\t mode\\t~","\\t\\t b <BS>\\t Normal and Visual","\\t\\t s <Space>\\t Normal and Visual","\\t\\t h \\"h\\"\\t Normal and Visual (not recommended)","\\t\\t l \\"l\\"\\t Normal and Visual (not recommended)","\\t\\t < <Left>\\t Normal and Visual","\\t\\t > <Right>\\t Normal and Visual","\\t\\t ~ \\"~\\"\\t Normal","\\t\\t [ <Left>\\t Insert and Replace","\\t\\t ] <Right>\\t Insert and Replace","\\tFor example: >","\\t\\t:set ww=<,>,[,]","<\\tallows wrap only when cursor keys are used.","\\tWhen the movement keys are used in combination with a delete or change","\\toperator, the <EOL> also counts for a character. This makes \\"3h\\"","\\tdifferent from \\"3dh\\" when the cursor crosses the end of a line. This","\\tis also true for \\"x\\" and \\"X\\", because they do the same as \\"dl\\" and","\\t\\"dh\\". If you use this, you may also want to use the mapping","\\t\\":map <BS> X\\" to make backspace delete the character in front of the","\\tcursor.","\\tWhen \'l\' is included and it is used after an operator at the end of a","\\tline then it will not move to the next line. This makes \\"dl\\", \\"cl\\",","\\t\\"yl\\" etc. work normally."],"wildchar":["number\\t(Vim default: <Tab>, Vi default: CTRL-E)","\\t\\t\\tglobal","\\tCharacter you have to type to start wildcard expansion in the","\\tcommand-line, as specified with \'wildmode\'.","\\tMore info here: |cmdline-completion|.","\\tThe character is not recognized when used inside a macro. See","\\t\'wildcharm\' for that.","\\tAlthough \'wc\' is a number option, you can set it to a special key: >","\\t\\t:set wc=<Esc>","<"],"wildcharm":["number\\t(default: none (0))","\\t\\t\\tglobal","\\t\'wildcharm\' works exactly like \'wildchar\', except that it is","\\trecognized when used inside a macro. You can find \\"spare\\" command-line","\\tkeys suitable for this option by looking at |ex-edit-index|. Normally","\\tyou\'ll never actually type \'wildcharm\', just use it in mappings that","\\tautomatically invoke completion mode, e.g.: >","\\t\\t:set wcm=<C-Z>","\\t\\t:cnoremap ss so $vim/sessions/*.vim<C-Z>","<\\tThen after typing :ss you can use CTRL-P & CTRL-N."],"wildignore":["string\\t(default \\"\\")","\\t\\t\\tglobal","\\tA list of file patterns. A file that matches with one of these","\\tpatterns is ignored when expanding |wildcards|, completing file or","\\tdirectory names, and influences the result of |expand()|, |glob()| and","\\t|globpath()| unless a flag is passed to disable this.","\\tThe pattern is used like with |:autocmd|, see |autocmd-pattern|.","\\tAlso see \'suffixes\'.","\\tExample: >","\\t\\t:set wildignore=*.o,*.obj","<\\tThe use of |:set+=| and |:set-=| is preferred when adding or removing","\\ta pattern from the list. This avoids problems when a future version","\\tuses another default."],"wildignorecase":["boolean\\t(default off)","\\t\\t\\tglobal","\\tWhen set case is ignored when completing file names and directories.","\\tHas no effect when \'fileignorecase\' is set.","\\tDoes not apply when the shell is used to expand wildcards, which","\\thappens when there are special characters."],"wildmenu":["boolean\\t(default on)","\\t\\t\\tglobal","\\tEnables \\"enhanced mode\\" of command-line completion. When user hits","\\t<Tab> (or \'wildchar\') to invoke completion, the possible matches are","\\tshown in a menu just above the command-line (see \'wildoptions\'), with","\\tthe first match highlighted (overwriting the statusline). Keys that","\\tshow the previous/next match (<Tab>/CTRL-P/CTRL-N) highlight the","\\tmatch.","\\t\'wildmode\' must specify \\"full\\": \\"longest\\" and \\"list\\" do not start","\\t\'wildmenu\' mode. You can check the current mode with |wildmenumode()|.","\\tThe menu is canceled when a key is hit that is not used for selecting","\\ta completion."],"wildmode":["string\\t(default: \\"full\\")","\\t\\t\\tglobal","\\tCompletion mode that is used for the character specified with","\\t\'wildchar\'. It is a comma separated list of up to four parts. Each","\\tpart specifies what to do for each consecutive use of \'wildchar\'. The","\\tfirst part specifies the behavior for the first use of \'wildchar\',","\\tThe second part for the second use, etc.","\\tThese are the possible values for each part:","\\t\\"\\"\\t\\tComplete only the first match.","\\t\\"full\\"\\t\\tComplete the next full match. After the last match,","\\t\\t\\tthe original string is used and then the first match","\\t\\t\\tagain.","\\t\\"longest\\"\\tComplete till longest common string. If this doesn\'t","\\t\\t\\tresult in a longer string, use the next part.","\\t\\"longest:full\\"\\tLike \\"longest\\", but also start \'wildmenu\' if it is","\\t\\t\\tenabled.","\\t\\"list\\"\\t\\tWhen more than one match, list all matches.","\\t\\"list:full\\"\\tWhen more than one match, list all matches and","\\t\\t\\tcomplete first match.","\\t\\"list:longest\\"\\tWhen more than one match, list all matches and","\\t\\t\\tcomplete till longest common string.","\\tWhen there is only a single match, it is fully completed in all cases."],"wildoptions":["string\\t(default \\"pum,tagfile\\")","\\t\\t\\tglobal","\\tList of words that change how |cmdline-completion| is done.","\\t pum\\t\\tDisplay the completion matches using the popupmenu","\\t\\t\\tin the same style as the |ins-completion-menu|.","\\t tagfile\\tWhen using CTRL-D to list matching tags, the kind of","\\t\\t\\ttag and the file of the tag is listed.\\tOnly one match","\\t\\t\\tis displayed per line. Often used tag kinds are:","\\t\\t\\t\\td\\t#define","\\t\\t\\t\\tf\\tfunction"],"winaltkeys":["string\\t(default \\"menu\\")","\\t\\t\\tglobal","\\t\\t\\t{only used in Win32}","\\tSome GUI versions allow the access to menu entries by using the ALT","\\tkey in combination with a character that appears underlined in the","\\tmenu. This conflicts with the use of the ALT key for mappings and","\\tentering special characters. This option tells what to do:","\\t no\\tDon\'t use ALT keys for menus. ALT key combinations can be","\\t\\tmapped, but there is no automatic handling.","\\t yes\\tALT key handling is done by the windowing system. ALT key","\\t\\tcombinations cannot be mapped.","\\t menu\\tUsing ALT in combination with a character that is a menu","\\t\\tshortcut key, will be handled by the windowing system. Other","\\t\\tkeys can be mapped.","\\tIf the menu is disabled by excluding \'m\' from \'guioptions\', the ALT","\\tkey is never used for the menu.","\\tThis option is not used for <F10>; on Win32."],"winblend":["number\\t(default 0)","\\t\\t\\tlocal to window","\\tEnables pseudo-transparency for a floating window. Valid values are in","\\tthe range of 0 for fully opaque window (disabled) to 100 for fully","\\ttransparent background. Values between 0-30 are typically most useful."],"window":["number (default screen height - 1)","\\t\\t\\tglobal","\\tWindow height. Do not confuse this with the height of the Vim window,","\\tuse \'lines\' for that.","\\tUsed for |CTRL-F| and |CTRL-B| when there is only one window and the","\\tvalue is smaller than \'lines\' minus one. The screen will scroll","\\t\'window\' minus two lines, with a minimum of one.","\\tWhen \'window\' is equal to \'lines\' minus one CTRL-F and CTRL-B scroll","\\tin a much smarter way, taking care of wrapping lines.","\\tWhen resizing the Vim window, the value is smaller than 1 or more than","\\tor equal to \'lines\' it will be set to \'lines\' minus 1."],"winheight":["number\\t(default 1)","\\t\\t\\tglobal","\\tMinimal number of lines for the current window. This is not a hard","\\tminimum, Vim will use fewer lines if there is not enough room. If the","\\tfocus goes to a window that is smaller, its size is increased, at the","\\tcost of the height of other windows.","\\tSet \'winheight\' to a small number for normal editing.","\\tSet it to 999 to make the current window fill most of the screen.","\\tOther windows will be only \'winminheight\' high. This has the drawback","\\tthat \\":all\\" will create only two windows. To avoid \\"vim -o 1 2 3 4\\"","\\tto create only two windows, set the option after startup is done,","\\tusing the |VimEnter| event: >","\\t\\tau VimEnter * set winheight=999","<\\tMinimum value is 1.","\\tThe height is not adjusted after one of the commands that change the","\\theight of the current window.","\\t\'winheight\' applies to the current window. Use \'winminheight\' to set","\\tthe minimal height for other windows."],"winhighlight":["string (default empty)","\\t\\t\\tlocal to window","\\tWindow-local highlights. Comma-delimited list of highlight","\\t|group-name| pairs \\"{hl-builtin}:{hl},...\\" where each {hl-builtin} is","\\ta built-in |highlight-groups| item to be overridden by {hl} group in","\\tthe window. Only built-in |highlight-groups| are supported, not","\\tsyntax highlighting (use |:ownsyntax| for that)."],"winfixheight":["boolean\\t(default off)","\\t\\t\\tlocal to window","\\tKeep the window height when windows are opened or closed and","\\t\'equalalways\' is set. Also for |CTRL-W_=|. Set by default for the","\\t|preview-window| and |quickfix-window|.","\\tThe height may be changed anyway when running out of room."],"winfixwidth":["boolean\\t(default off)","\\t\\t\\tlocal to window","\\tKeep the window width when windows are opened or closed and","\\t\'equalalways\' is set. Also for |CTRL-W_=|.","\\tThe width may be changed anyway when running out of room."],"winminheight":["number\\t(default 1)","\\t\\t\\tglobal","\\tThe minimal height of a window, when it\'s not the current window.","\\tThis is a hard minimum, windows will never become smaller.","\\tWhen set to zero, windows may be \\"squashed\\" to zero lines (i.e. just a","\\tstatus bar) if necessary. They will return to at least one line when","\\tthey become active (since the cursor has to have somewhere to go.)","\\tUse \'winheight\' to set the minimal height of the current window.","\\tThis option is only checked when making a window smaller. Don\'t use a","\\tlarge number, it will cause errors when opening more than a few","\\twindows. A value of 0 to 3 is reasonable."],"winminwidth":["number\\t(default 1)","\\t\\t\\tglobal","\\tThe minimal width of a window, when it\'s not the current window.","\\tThis is a hard minimum, windows will never become smaller.","\\tWhen set to zero, windows may be \\"squashed\\" to zero columns (i.e. just","\\ta vertical separator) if necessary. They will return to at least one","\\tline when they become active (since the cursor has to have somewhere","\\tto go.)","\\tUse \'winwidth\' to set the minimal width of the current window.","\\tThis option is only checked when making a window smaller. Don\'t use a","\\tlarge number, it will cause errors when opening more than a few","\\twindows. A value of 0 to 12 is reasonable."],"winwidth":["number\\t(default 20)","\\t\\t\\tglobal","\\tMinimal number of columns for the current window. This is not a hard","\\tminimum, Vim will use fewer columns if there is not enough room. If","\\tthe current window is smaller, its size is increased, at the cost of","\\tthe width of other windows. Set it to 999 to make the current window","\\talways fill the screen. Set it to a small number for normal editing.","\\tThe width is not adjusted after one of the commands to change the","\\twidth of the current window.","\\t\'winwidth\' applies to the current window. Use \'winminwidth\' to set","\\tthe minimal width for other windows."],"wrap":["boolean\\t(default on)","\\t\\t\\tlocal to window","\\tThis option changes how text is displayed. It doesn\'t change the text","\\tin the buffer, see \'textwidth\' for that.","\\tWhen on, lines longer than the width of the window will wrap and","\\tdisplaying continues on the next line. When off lines will not wrap","\\tand only part of long lines will be displayed. When the cursor is","\\tmoved to a part that is not shown, the screen will scroll","\\thorizontally.","\\tThe line will be broken in the middle of a word if necessary. See","\\t\'linebreak\' to get the break at a word boundary.","\\tTo make scrolling horizontally a bit more useful, try this: >","\\t\\t:set sidescroll=5","\\t\\t:set listchars+=precedes:<,extends:>","<\\tSee \'sidescroll\', \'listchars\' and |wrap-off|.","\\tThis option can\'t be set from a |modeline| when the \'diff\' option is","\\ton."],"wrapmargin":["number\\t(default 0)","\\t\\t\\tlocal to buffer","\\tNumber of characters from the right window border where wrapping","\\tstarts. When typing text beyond this limit, an <EOL> will be inserted","\\tand inserting continues on the next line.","\\tOptions that add a margin, such as \'number\' and \'foldcolumn\', cause","\\tthe text width to be further reduced. This is Vi compatible.","\\tWhen \'textwidth\' is non-zero, this option is not used.","\\tSee also \'formatoptions\' and |ins-textwidth|."],"wrapscan":["boolean\\t(default on)\\t\\t\\t*E384* *E385*","\\t\\t\\tglobal","\\tSearches wrap around the end of the file. Also applies to |]s| and","\\t|[s|, searching for spelling mistakes."],"write":["boolean\\t(default on)","\\t\\t\\tglobal","\\tAllows writing files. When not set, writing a file is not allowed.","\\tCan be used for a view-only mode, where modifications to the text are","\\tstill allowed. Can be reset with the |-m| or |-M| command line","\\targument. Filtering text is still possible, even though this requires","\\twriting a temporary file."],"writeany":["boolean\\t(default off)","\\t\\t\\tglobal","\\tAllows writing to any file with no need for \\"!\\" override."],"writebackup":["boolean\\t(default on with |+writebackup| feature, off","\\t\\t\\t\\t\\totherwise)","\\t\\t\\tglobal","\\tMake a backup before overwriting a file. The backup is removed after","\\tthe file was successfully written, unless the \'backup\' option is","\\talso on.","\\tWARNING: Switching this option off means that when Vim fails to write","\\tyour buffer correctly and then, for whatever reason, Vim exits, you","\\tlose both the original file and what you were writing. Only reset","\\tthis option if your file system is almost full and it makes the write","\\tfail (and make sure not to exit Vim until the write was successful).","\\tSee |backup-table| for another explanation.","\\tWhen the \'backupskip\' pattern matches, a backup is not made anyway."],"writedelay":["number\\t(default 0)","\\t\\t\\tglobal","\\tThe number of milliseconds to wait for each character sent to the","\\tscreen. When positive, characters are sent to the UI one by one.","\\tSee \'redrawdebug\' for more options. For debugging purposes."],"altkeymap":["boolean (default off)","\\t\\t\\tglobal","\\t\\t\\t{only available when compiled with the |+farsi|","\\t\\t\\tfeature}","\\tThis option was for using Farsi, which has been removed. See","\\t|farsi.txt|."],"antialias":["boolean (default: off)","\\t\\t\\tglobal","\\t\\t\\t{only available when compiled with GUI enabled","\\t\\t\\ton Mac OS X}","\\tThis option only has an effect in the GUI version of Vim on Mac OS X","\\tv10.2 or later. When on, Vim will use smooth (\\"antialiased\\") fonts,","\\twhich can be easier to read at certain sizes on certain displays.","\\tSetting this option can sometimes cause problems if \'guifont\' is set","\\tto its default (empty string).","\\tNOTE: This option is reset when \'compatible\' is set."],"balloonevalterm":["boolean\\t(default off)","\\t\\t\\tglobal","\\t\\t\\t{only available when compiled with the","\\t\\t\\t|+balloon_eval_term| feature}","\\tSwitch on the |balloon-eval| functionality for the terminal."],"bioskey":["boolean\\t(default on)","\\t\\t\\tglobal","\\t\\t\\t{only for MS-DOS}","\\tThis was for MS-DOS and is no longer supported."],"compatible":["boolean\\t(default on, off when a |vimrc| or |gvimrc|","\\t\\t\\t\\t\\tfile is found, reset in |defaults.vim|)","\\t\\t\\tglobal","\\tThis option has the effect of making Vim either more Vi-compatible, or","\\tmake Vim behave in a more useful way."],"completeslash":["string\\t(default: \\"\\")","\\t\\t\\tlocal to buffer","\\t\\t\\t{only for MS-Windows}","\\tWhen this option is set it overrules \'shellslash\' for completion:","\\t- When this option is set to \\"slash\\", a forward slash is used for path","\\t completion in insert mode. This is useful when editing HTML tag, or","\\t Makefile with \'noshellslash\' on Windows.","\\t- When this option is set to \\"backslash\\", backslash is used. This is","\\t useful when editing a batch file with \'shellslash\' set on Windows.","\\t- When this option is empty, same character is used as for","\\t \'shellslash\'.","\\tFor Insert mode completion the buffer-local value is used. For","\\tcommand line completion the global value is used."],"completepopup":["string (default empty)","\\t\\t\\tglobal","\\t\\t\\t{not available when compiled without the |+textprop|","\\t\\t\\tor |+quickfix| feature}","\\tWhen \'completeopt\' contains \\"popup\\" then this option is used for the","\\tproperties of the info popup when it is created. You can also use","\\t|popup_findinfo()| and then set properties for an existing info popup","\\twith |popup_setoptions()|. See |complete-popup|."],"conskey":["boolean\\t(default off)","\\t\\t\\tglobal","\\tThis was for MS-DOS and is no longer supported."],"cryptmethod":["string\\t(default \\"blowfish2\\")","\\t\\t\\tglobal or local to buffer |global-local|","\\tMethod used for encryption when the buffer is written to a file:","\\t\\t\\t\\t\\t\\t\\t*pkzip*","\\t zip\\t\\tPkZip compatible method. A weak kind of encryption.","\\t\\t\\tBackwards compatible with Vim 7.2 and older.","\\t\\t\\t\\t\\t\\t\\t*blowfish*","\\t blowfish\\tBlowfish method. Medium strong encryption but it has","\\t\\t\\tan implementation flaw. Requires Vim 7.3 or later,","\\t\\t\\tfiles can NOT be read by Vim 7.2 and older. This adds","\\t\\t\\ta \\"seed\\" to the file, every time you write the file","\\t\\t\\tthe encrypted bytes will be different.","\\t\\t\\t\\t\\t\\t\\t*blowfish2*","\\t blowfish2\\tBlowfish method. Medium strong encryption. Requires","\\t\\t\\tVim 7.4.401 or later, files can NOT be read by Vim 7.3","\\t\\t\\tand older. This adds a \\"seed\\" to the file, every time","\\t\\t\\tyou write the file the encrypted bytes will be","\\t\\t\\tdifferent. The whole undo file is encrypted, not just","\\t\\t\\tthe pieces of text."],"cscopeverbose":["boolean (default off)","\\t\\t\\tglobal","\\t\\t\\t{not available when compiled without the |+cscope|","\\t\\t\\tfeature}","\\tGive messages when adding a cscope database. See |cscopeverbose|.","\\tNOTE: This option is reset when \'compatible\' is set."],"cursorlineopt":["string (default: \\"number,line\\")","\\t\\t\\tlocal to window","\\t\\t\\t{not available when compiled without the |+syntax|","\\t\\t\\tfeature}","\\tComma separated list of settings for how \'cursorline\' is displayed.","\\tValid values:","\\t\\"line\\"\\t\\tHighlight the text line of the cursor with","\\t\\t\\tCursorLine |hl-CursorLine|.","\\t\\"screenline\\"\\tHighlight only the screen line of the cursor with","\\t\\t\\tCursorLine |hl-CursorLine|.","\\t\\"number\\"\\tHighlight the line number of the cursor with","\\t\\t\\tCursorLineNr |hl-CursorLineNr|."],"edcompatible":["boolean\\t(default off)","\\t\\t\\tglobal","\\tMakes the \'g\' and \'c\' flags of the \\":substitute\\" command to be","\\ttoggled each time the flag is given. See |complex-change|. See","\\talso \'gdefault\' option.","\\tSwitching this option on may break plugins!"],"encoding":["string (default: \\"latin1\\" or value from $LANG)","\\t\\t\\tglobal","\\tSets the character encoding used inside Vim. It applies to text in","\\tthe buffers, registers, Strings in expressions, text stored in the","\\tviminfo file, etc. It sets the kind of characters which Vim can work","\\twith. See |encoding-names| for the possible values."],"esckeys":["boolean\\t(Vim default: on, Vi default: off)","\\t\\t\\tglobal","\\tFunction keys that start with an <Esc> are recognized in Insert","\\tmode. When this option is off, the cursor and function keys cannot be","\\tused in Insert mode if they start with an <Esc>. The advantage of","\\tthis is that the single <Esc> is recognized immediately, instead of","\\tafter one second. Instead of resetting this option, you might want to","\\ttry changing the values for \'timeoutlen\' and \'ttimeoutlen\'. Note that","\\twhen \'esckeys\' is off, you can still map anything, but the cursor keys","\\twon\'t work by default.","\\tNOTE: This option is set to the Vi default value when \'compatible\' is","\\tset and to the Vim default value when \'compatible\' is reset.","\\tNOTE: when this option is off then the |modifyOtherKeys| functionality","\\tis disabled while in Insert mode to avoid ending Insert mode with any","\\tkey that has a modifier."],"exrc":["boolean (default off)","\\t\\t\\tglobal","\\tEnables the reading of .vimrc, .exrc and .gvimrc in the current","\\tdirectory."],"fkmap":["boolean (default off)\\t\\t\\t*E198*","\\t\\t\\tglobal","\\t\\t\\t{only available when compiled with the |+rightleft|","\\t\\t\\tfeature}","\\tThis option was for using Farsi, which has been removed. See","\\t|farsi.txt|."],"guiheadroom":["number\\t(default 50)","\\t\\t\\tglobal","\\t\\t\\t{only for GTK and X11 GUI}","\\tThe number of pixels subtracted from the screen height when fitting","\\tthe GUI window on the screen. Set this before the GUI is started,","\\te.g., in your |gvimrc| file. When zero, the whole screen height will","\\tbe used by the window. When positive, the specified number of pixel","\\tlines will be left for window decorations and other items on the","\\tscreen. Set it to a negative value to allow windows taller than the","\\tscreen."],"guipty":["boolean\\t(default on)","\\t\\t\\tglobal","\\t\\t\\t{only available when compiled with GUI enabled}","\\tOnly in the GUI: If on, an attempt is made to open a pseudo-tty for","\\tI/O to/from shell commands. See |gui-pty|."],"highlight":["string\\t(default (as a single string):","\\t\\t\\t\\t \\"8:SpecialKey,~:EndOfBuffer,@:NonText,","\\t\\t\\t\\t d:Directory,e:ErrorMsg,i:IncSearch,","\\t\\t\\t\\t l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,","\\t\\t\\t\\t a:LineNrAbove,b:LineNrBelow,","\\t\\t\\t\\t N:CursorLineNr,r:Question,s:StatusLine,","\\t\\t\\t\\t S:StatusLineNC,c:VertSplit,t:Title,","\\t\\t\\t\\t v:Visual,V:VisualNOS,w:WarningMsg,","\\t\\t\\t\\t W:WildMenu,f:Folded,F:FoldColumn,","\\t\\t\\t\\t A:DiffAdd,C:DiffChange,D:DiffDelete,","\\t\\t\\t\\t T:DiffText,>:SignColumn,-:Conceal,","\\t\\t\\t\\t B:SpellBad,P:SpellCap,R:SpellRare,","\\t\\t\\t\\t L:SpellLocal,+:Pmenu,=:PmenuSel,","\\t\\t\\t\\t x:PmenuSbar,X:PmenuThumb,*:TabLine,","\\t\\t\\t\\t #:TabLineSel,_:TabLineFill,!:CursorColumn,","\\t\\t\\t\\t .:CursorLine,o:ColorColumn,q:QuickFixLine,","\\t\\t\\t\\t z:StatusLineTerm,Z:StatusLineTermNC\\")","\\t\\t\\tglobal","\\tThis option can be used to set highlighting mode for various","\\toccasions. It is a comma separated list of character pairs. The","\\tfirst character in a pair gives the occasion, the second the mode to","\\tuse for that occasion. The occasions are:","\\t|hl-SpecialKey|\\t 8 Meta and special keys listed with \\":map\\"","\\t|hl-EndOfBuffer| ~ lines after the last line in the buffer","\\t|hl-NonText|\\t @ \'@\' at the end of the window and","\\t\\t\\t characters from \'showbreak\'","\\t|hl-Directory|\\t d directories in CTRL-D listing and other special","\\t\\t\\t things in listings","\\t|hl-ErrorMsg|\\t e error messages","\\t\\t\\t h (obsolete, ignored)","\\t|hl-IncSearch|\\t i \'incsearch\' highlighting","\\t|hl-Search|\\t l last search pattern highlighting (see \'hlsearch\')","\\t|hl-MoreMsg|\\t m |more-prompt|","\\t|hl-ModeMsg|\\t M Mode (e.g., \\"-- INSERT --\\")","\\t|hl-LineNr|\\t n line number for \\":number\\" and \\":#\\" commands, and","\\t\\t\\t when \'number\' or \'relativenumber\' option is set.","\\t|hl-LineNrAbove| a line number above the cursor for when the","\\t\\t\\t \'relativenumber\' option is set.","\\t|hl-LineNrBelow| b line number below the cursor for when the","\\t\\t\\t \'relativenumber\' option is set.","\\t|hl-CursorLineNr| N like n for when \'cursorline\' or \'relativenumber\' is","\\t\\t\\t set.","\\t|hl-Question|\\t r |hit-enter| prompt and yes/no questions","\\t|hl-StatusLine|\\t s status line of current window |status-line|","\\t|hl-StatusLineNC| S status lines of not-current windows","\\t|hl-Title|\\t t Titles for output from \\":set all\\", \\":autocmd\\" etc.","\\t|hl-VertSplit|\\t c column used to separate vertically split windows","\\t|hl-Visual|\\t v Visual mode","\\t|hl-VisualNOS|\\t V Visual mode when Vim does is \\"Not Owning the","\\t\\t\\t Selection\\" Only X11 Gui\'s |gui-x11| and","\\t\\t\\t |xterm-clipboard|.","\\t|hl-WarningMsg|\\t w warning messages","\\t|hl-WildMenu|\\t W wildcard matches displayed for \'wildmenu\'","\\t|hl-Folded|\\t f line used for closed folds","\\t|hl-FoldColumn|\\t F \'foldcolumn\'","\\t|hl-DiffAdd|\\t A added line in diff mode","\\t|hl-DiffChange|\\t C changed line in diff mode","\\t|hl-DiffDelete|\\t D deleted line in diff mode","\\t|hl-DiffText|\\t T inserted text in diff mode","\\t|hl-SignColumn|\\t > column used for |signs|","\\t|hl-Conceal|\\t - the placeholders used for concealed characters","\\t\\t\\t (see \'conceallevel\')","\\t|hl-SpellBad|\\t B misspelled word |spell|","\\t|hl-SpellCap|\\t P word that should start with capital |spell|","\\t|hl-SpellRare|\\t R rare word |spell|","\\t|hl-SpellLocal|\\t L word from other region |spell|","\\t|hl-Pmenu|\\t + popup menu normal line","\\t|hl-PmenuSel|\\t = popup menu selected line","\\t|hl-PmenuSbar|\\t x popup menu scrollbar","\\t|hl-PmenuThumb|\\t X popup menu scrollbar thumb"],"imactivatefunc":["string (default \\"\\")","\\t\\t\\tglobal","\\tThis option specifies a function that will be called to","\\tactivate or deactivate the Input Method.","\\tIt is not used in the GUI.","\\tThe expression will be evaluated in the |sandbox| when set from a","\\tmodeline, see |sandbox-option|."],"imactivatekey":["string (default \\"\\")","\\t\\t\\tglobal","\\t\\t\\t{only available when compiled with |+xim| and","\\t\\t\\t|+GUI_GTK|}\\t\\t\\t\\t*E599*","\\tSpecifies the key that your Input Method in X-Windows uses for","\\tactivation. When this is specified correctly, vim can fully control","\\tIM with \'imcmdline\', \'iminsert\' and \'imsearch\'.","\\tYou can\'t use this option to change the activation key, the option","\\ttells Vim what the key is.","\\tFormat:","\\t\\t[MODIFIER_FLAG-]KEY_STRING"],"imstatusfunc":["string (default \\"\\")","\\t\\t\\tglobal","\\tThis option specifies a function that is called to obtain the status","\\tof Input Method. It must return a positive number when IME is active.","\\tIt is not used in the GUI."],"imstyle":["number (default 1)","\\t\\t\\tglobal","\\t\\t\\t{only available when compiled with |+xim| and","\\t\\t\\t|+GUI_GTK|}","\\tThis option specifies the input style of Input Method:","\\t0 use on-the-spot style","\\t1 over-the-spot style","\\tSee: |xim-input-style|"],"key":["string\\t(default \\"\\")","\\t\\t\\tlocal to buffer","\\t\\t\\t{only available when compiled with the |+cryptv|","\\t\\t\\tfeature}","\\tThe key that is used for encrypting and decrypting the current buffer.","\\tSee |encryption| and \'cryptmethod\'.","\\tCareful: Do not set the key value by hand, someone might see the typed","\\tkey. Use the |:X| command. But you can make \'key\' empty: >","\\t\\t:set key=","<\\tIt is not possible to get the value of this option with \\":set key\\" or","\\t\\"echo &key\\". This is to avoid showing it to someone who shouldn\'t","\\tknow. It also means you cannot see it yourself once you have set it,","\\tbe careful not to make a typing error!","\\tYou can use \\"&key\\" in an expression to detect whether encryption is","\\tenabled. When \'key\' is set it returns \\"*****\\" (five stars)."],"langnoremap":["boolean (default off, set in |defaults.vim|)","\\t\\t\\tglobal","\\t\\t\\t{only available when compiled with the |+langmap|","\\t\\t\\tfeature}","\\tThis is just like \'langremap\' but with the value inverted. It only","\\texists for backwards compatibility. When setting \'langremap\' then","\\t\'langnoremap\' is set to the inverted value, and the other way around."],"luadll":["string\\t(default depends on the build)","\\t\\t\\tglobal","\\t\\t\\t{only available when compiled with the |+lua/dyn|","\\t\\t\\tfeature}","\\tSpecifies the name of the Lua shared library. The default is","\\tDYNAMIC_LUA_DLL, which was specified at compile time.","\\tEnvironment variables are expanded |:set_env|.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"macatsui":["boolean\\t(default on)","\\t\\t\\tglobal","\\t\\t\\t{only available in Mac GUI version}","\\tThis is a workaround for when drawing doesn\'t work properly. When set","\\tand compiled with multi-byte support ATSUI text drawing is used. When","\\tnot set ATSUI text drawing is not used. Switch this option off when","\\tyou experience drawing problems. In a future version the problems may","\\tbe solved and this option becomes obsolete. Therefore use this method","\\tto unset it: >","\\t\\tif exists(\'&macatsui\')","\\t\\t set nomacatsui","\\t\\tendif","<\\tAnother option to check if you have drawing problems is","\\t\'termencoding\'."],"maxmem":["number\\t(default between 256 to 5120 (system","\\t\\t\\t\\t dependent) or half the amount of memory","\\t\\t\\t\\t available)","\\t\\t\\tglobal","\\tMaximum amount of memory (in Kbyte) to use for one buffer. When this","\\tlimit is reached allocating extra memory for a buffer will cause","\\tother memory to be freed.","\\tThe maximum usable value is about 2000000. Use this to work without a","\\tlimit.","\\tThe value is ignored when \'swapfile\' is off.","\\tAlso see \'maxmemtot\'."],"maxmemtot":["number\\t(default between 2048 and 10240 (system","\\t\\t\\t\\t dependent) or half the amount of memory","\\t\\t\\t\\t available)","\\t\\t\\tglobal","\\tMaximum amount of memory in Kbyte to use for all buffers together.","\\tThe maximum usable value is about 2000000 (2 Gbyte). Use this to work","\\twithout a limit.","\\tOn 64 bit machines higher values might work. But hey, do you really","\\tneed more than 2 Gbyte for text editing? Keep in mind that text is","\\tstored in the swap file, one can edit files > 2 Gbyte anyway. We do","\\tneed the memory to store undo info.","\\tBuffers with \'swapfile\' off still count to the total amount of memory","\\tused.","\\tAlso see \'maxmem\'."],"mzschemedll":["string\\t(default depends on the build)","\\t\\t\\tglobal","\\t\\t\\t{only available when compiled with the |+mzscheme/dyn|","\\t\\t\\tfeature}","\\tSpecifies the name of the MzScheme shared library. The default is","\\tDYNAMIC_MZSCH_DLL which was specified at compile time.","\\tEnvironment variables are expanded |:set_env|.","\\tThe value must be set in the |vimrc| script or earlier. In the","\\tstartup, before the |load-plugins| step.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"mzschemegcdll":["string\\t(default depends on the build)","\\t\\t\\tglobal","\\t\\t\\t{only available when compiled with the |+mzscheme/dyn|","\\t\\t\\tfeature}","\\tSpecifies the name of the MzScheme GC shared library. The default is","\\tDYNAMIC_MZGC_DLL which was specified at compile time.","\\tThe value can be equal to \'mzschemedll\' if it includes the GC code.","\\tEnvironment variables are expanded |:set_env|.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"mzquantum":["number\\t(default 100)","\\t\\t\\tglobal","\\t\\t\\t{not available when compiled without the |+mzscheme|","\\t\\t\\tfeature}","\\tThe number of milliseconds between polls for MzScheme threads.","\\tNegative or zero value means no thread scheduling.","\\tNOTE: This option is set to the Vim default value when \'compatible\'","\\tis reset."],"osfiletype":["string (default: \\"\\")","\\t\\t\\tlocal to buffer","\\tThis option was supported on RISC OS, which has been removed."],"perldll":["string\\t(default depends on the build)","\\t\\t\\tglobal","\\t\\t\\t{only available when compiled with the |+perl/dyn|","\\t\\t\\tfeature}","\\tSpecifies the name of the Perl shared library. The default is","\\tDYNAMIC_PERL_DLL, which was specified at compile time.","\\tEnvironment variables are expanded |:set_env|.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"previewpopup":["string (default empty)","\\t\\t\\tglobal","\\t\\t\\t{not available when compiled without the |+textprop|","\\t\\t\\tor |+quickfix| feature}","\\tWhen not empty a popup window is used for commands that would open a","\\tpreview window. See |preview-popup|.","\\tNot used for the insert completion info, add \\"popup\\" to","\\t\'completeopt\' for that."],"pythondll":["string\\t(default depends on the build)","\\t\\t\\tglobal","\\t\\t\\t{only available when compiled with the |+python/dyn|","\\t\\t\\tfeature}","\\tSpecifies the name of the Python 2.x shared library. The default is","\\tDYNAMIC_PYTHON_DLL, which was specified at compile time.","\\tEnvironment variables are expanded |:set_env|.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"pythonhome":["string\\t(default \\"\\")","\\t\\t\\tglobal","\\t\\t\\t{only available when compiled with the |+python/dyn|","\\t\\t\\tfeature}","\\tSpecifies the name of the Python 2.x home directory. When \'pythonhome\'","\\tand the PYTHONHOME environment variable are not set, PYTHON_HOME,","\\twhich was specified at compile time, will be used for the Python 2.x","\\thome directory.","\\tEnvironment variables are expanded |:set_env|.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"renderoptions":["string (default: empty)","\\t\\t\\tglobal","\\t\\t\\t{only available when compiled with GUI and DIRECTX on","\\t\\t\\tMS-Windows}","\\tSelect a text renderer and set its options. The options depend on the","\\trenderer."],"restorescreen":["boolean\\t(default on)","\\t\\t\\tglobal","\\t\\t\\t{only in Windows 95/NT console version}","\\tWhen set, the screen contents is restored when exiting Vim. This also","\\thappens when executing external commands."],"rubydll":["string\\t(default: depends on the build)","\\t\\t\\tglobal","\\t\\t\\t{only available when compiled with the |+ruby/dyn|","\\t\\t\\tfeature}","\\tSpecifies the name of the Ruby shared library. The default is","\\tDYNAMIC_RUBY_DLL, which was specified at compile time.","\\tEnvironment variables are expanded |:set_env|.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"scrollfocus":["boolean (default off)","\\t\\t\\tglobal","\\t\\t\\t{only for MS-Windows GUI}","\\tWhen using the scroll wheel and this option is set, the window under","\\tthe mouse pointer is scrolled. With this option off the current","\\twindow is scrolled.","\\tSystems other than MS-Windows always behave like this option is on."],"shelltype":["number\\t(default 0)","\\t\\t\\tglobal","\\t\\t\\t{only for the Amiga}","\\tOn the Amiga this option influences the way how the commands work","\\twhich use a shell.","\\t0 and 1: always use the shell","\\t2 and 3: use the shell only to filter lines","\\t4 and 5: use shell only for \':sh\' command","\\tWhen not using the shell, the command is executed directly."],"shortname":["boolean\\t(default off)","\\t\\t\\tlocal to buffer","\\tFilenames are assumed to be 8 characters plus one extension of 3","\\tcharacters. Multiple dots in file names are not allowed. When this","\\toption is on, dots in file names are replaced with underscores when","\\tadding an extension (\\".~\\" or \\".swp\\"). This option is not available","\\tfor MS-DOS, because then it would always be on. This option is useful","\\twhen editing files on an MS-DOS compatible filesystem, e.g., messydos","\\tor crossdos. When running the Win32 GUI version under Win32s, this","\\toption is always on by default."],"swapsync":["string\\t(default \\"fsync\\")","\\t\\t\\tglobal","\\tWhen this option is not empty a swap file is synced to disk after","\\twriting to it. This takes some time, especially on busy unix systems.","\\tWhen this option is empty parts of the swap file may be in memory and","\\tnot written to disk. When the system crashes you may lose more work.","\\tOn Unix the system does a sync now and then without Vim asking for it,","\\tso the disadvantage of setting this option off is small. On some","\\tsystems the swap file will not be written at all. For a unix system","\\tsetting it to \\"sync\\" will use the sync() call instead of the default","\\tfsync(), which may work better on some systems.","\\tThe \'fsync\' option is used for the actual file."],"tcldll":["string\\t(default depends on the build)","\\t\\t\\tglobal","\\t\\t\\t{only available when compiled with the |+tcl/dyn|","\\t\\t\\tfeature}","\\tSpecifies the name of the Tcl shared library. The default is","\\tDYNAMIC_TCL_DLL, which was specified at compile time.","\\tEnvironment variables are expanded |:set_env|.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"term":["string\\t(default is $TERM, if that fails:","\\t\\t\\t\\t in the GUI: \\"builtin_gui\\"","\\t\\t\\t\\t\\ton Amiga: \\"amiga\\"","\\t\\t\\t\\t\\t on BeOS: \\"beos-ansi\\"","\\t\\t\\t\\t\\t on Mac: \\"mac-ansi\\"","\\t\\t\\t\\t\\t on MiNT: \\"vt52\\"","\\t\\t\\t\\t on MS-DOS: \\"pcterm\\"","\\t\\t\\t\\t\\t on OS/2: \\"os2ansi\\"","\\t\\t\\t\\t\\t on Unix: \\"ansi\\"","\\t\\t\\t\\t\\t on VMS: \\"ansi\\"","\\t\\t\\t\\t on Win 32: \\"win32\\")","\\t\\t\\tglobal","\\tName of the terminal. Used for choosing the terminal control","\\tcharacters. Environment variables are expanded |:set_env|.","\\tFor example: >","\\t\\t:set term=$TERM","<\\tSee |termcap|."],"termencoding":["string\\t(default \\"\\"; with GTK+ GUI: \\"utf-8\\"; with","\\t\\t\\t\\t\\t\\t Macintosh GUI: \\"macroman\\")","\\t\\t\\tglobal","\\tEncoding used for the terminal. This specifies what character","\\tencoding the keyboard produces and the display will understand. For","\\tthe GUI it only applies to the keyboard (\'encoding\' is used for the","\\tdisplay). Except for the Mac when \'macatsui\' is off, then","\\t\'termencoding\' should be \\"macroman\\".","\\t\\t\\t\\t\\t\\t\\t\\t*E617*","\\tNote: This does not apply to the GTK+ GUI. After the GUI has been","\\tsuccessfully initialized, \'termencoding\' is forcibly set to \\"utf-8\\".","\\tAny attempts to set a different value will be rejected, and an error","\\tmessage is shown.","\\tFor the Win32 GUI and console versions \'termencoding\' is not used,","\\tbecause the Win32 system always passes Unicode characters.","\\tWhen empty, the same encoding is used as for the \'encoding\' option.","\\tThis is the normal value.","\\tNot all combinations for \'termencoding\' and \'encoding\' are valid. See","\\t|encoding-table|.","\\tThe value for this option must be supported by internal conversions or","\\ticonv(). When this is not possible no conversion will be done and you","\\twill probably experience problems with non-ASCII characters.","\\tExample: You are working with the locale set to euc-jp (Japanese) and","\\twant to edit a UTF-8 file: >","\\t\\t:let &termencoding = &encoding","\\t\\t:set encoding=utf-8","<\\tYou need to do this when your system has no locale support for UTF-8."],"termwinkey":["string\\t(default \\"\\")","\\t\\t\\tlocal to window","\\tThe key that starts a CTRL-W command in a terminal window. Other keys","\\tare sent to the job running in the window.","\\tThe <> notation can be used, e.g.: >","\\t\\t:set termwinkey=<C-L>","<\\tThe string must be one key stroke but can be multiple bytes.","\\tWhen not set CTRL-W is used, so that CTRL-W : gets you to the command","\\tline. If \'termwinkey\' is set to CTRL-L then CTRL-L : gets you to the","\\tcommand line."],"termwinscroll":["number\\t(default 10000)","\\t\\t\\tlocal to buffer","\\t\\t\\t{not available when compiled without the","\\t\\t\\t|+terminal| feature}","\\tNumber of scrollback lines to keep. When going over this limit the","\\tfirst 10% of the scrollback lines are deleted. This is just to reduce","\\tthe memory usage. See |Terminal-Normal|."],"termwinsize":["string\\t(default \\"\\")","\\t\\t\\tlocal to window","\\tSize of the |terminal| window. Format: {rows}x{columns} or","\\t{rows}*{columns}.","\\t- When empty the terminal gets the size from the window.","\\t- When set with a \\"x\\" (e.g., \\"24x80\\") the terminal size is not","\\t adjusted to the window size. If the window is smaller only the","\\t top-left part is displayed.","\\t- When set with a \\"*\\" (e.g., \\"10*50\\") the terminal size follows the","\\t window size, but will not be smaller than the specified rows and/or","\\t columns.","\\t- When rows is zero then use the height of the window.","\\t- When columns is zero then use the width of the window.","\\t- Using \\"0x0\\" or \\"0*0\\" is the same as empty."],"termwintype":["string (default \\"\\")","\\t\\t\\tglobal","\\t\\t\\t{only available when compiled with the |terminal|","\\t\\t\\tfeature on MS-Windows}","\\tSpecify the virtual console (pty) used when opening the terminal","\\twindow."],"textauto":["boolean\\t(Vim default: on, Vi default: off)","\\t\\t\\tglobal","\\tThis option is obsolete. Use \'fileformats\'.","\\tFor backwards compatibility, when \'textauto\' is set, \'fileformats\' is","\\tset to the default value for the current system. When \'textauto\' is","\\treset, \'fileformats\' is made empty.","\\tNOTE: This option is set to the Vi default value when \'compatible\' is","\\tset and to the Vim default value when \'compatible\' is reset."],"textmode":["boolean\\t(MS-DOS, Win32 and OS/2: default on,","\\t\\t\\t\\t others: default off)","\\t\\t\\tlocal to buffer","\\tThis option is obsolete. Use \'fileformat\'.","\\tFor backwards compatibility, when \'textmode\' is set, \'fileformat\' is","\\tset to \\"dos\\". When \'textmode\' is reset, \'fileformat\' is set to","\\t\\"unix\\"."],"toolbar":["string\\t(default \\"icons,tooltips\\")","\\t\\t\\tglobal","\\t\\t\\t{only for |+GUI_GTK|, |+GUI_Athena|, |+GUI_Motif| and","\\t\\t\\t|+GUI_Photon|}","\\tThe contents of this option controls various toolbar settings. The","\\tpossible values are:","\\t\\ticons\\t\\tToolbar buttons are shown with icons.","\\t\\ttext\\t\\tToolbar buttons shown with text.","\\t\\thoriz\\t\\tIcon and text of a toolbar button are","\\t\\t\\t\\thorizontally arranged. {only in GTK+ 2 GUI}","\\t\\ttooltips\\tTooltips are active for toolbar buttons.","\\tTooltips refer to the popup help text which appears after the mouse","\\tcursor is placed over a toolbar button for a brief moment."],"toolbariconsize":["string\\t(default \\"small\\")","\\t\\t\\t\\tglobal","\\t\\t\\t\\t{only in the GTK+ GUI}","\\tControls the size of toolbar icons. The possible values are:","\\t\\ttiny\\t\\tUse tiny icons.","\\t\\tsmall\\t\\tUse small icons (default).","\\t\\tmedium\\t\\tUse medium-sized icons.","\\t\\tlarge\\t\\tUse large icons.","\\t\\thuge\\t\\tUse even larger icons.","\\t\\tgiant\\t\\tUse very big icons.","\\tThe exact dimensions in pixels of the various icon sizes depend on","\\tthe current theme. Common dimensions are giant=48x48, huge=32x32,","\\tlarge=24x24, medium=24x24, small=20x20 and tiny=16x16."],"ttybuiltin":["boolean\\t(default on)","\\t\\t\\tglobal","\\tWhen on, the builtin termcaps are searched before the external ones.","\\tWhen off the builtin termcaps are searched after the external ones.","\\tWhen this option is changed, you should set the \'term\' option next for","\\tthe change to take effect, for example: >","\\t\\t:set notbi term=$TERM","<\\tSee also |termcap|.","\\tRationale: The default for this option is \\"on\\", because the builtin","\\ttermcap entries are generally better (many systems contain faulty","\\txterm entries...)."],"ttymouse":["string\\t(default depends on \'term\')","\\t\\t\\tglobal","\\t\\t\\t{only in Unix and VMS, doesn\'t work in the GUI; not","\\t\\t\\tavailable when compiled without |+mouse|}","\\tName of the terminal type for which mouse codes are to be recognized.","\\tCurrently these strings are valid:","\\t\\t\\t\\t\\t\\t\\t*xterm-mouse*","\\t xterm\\txterm-like mouse handling. The mouse generates","\\t\\t\\t\\"<Esc>[Mscr\\", where \\"scr\\" is three bytes:","\\t\\t\\t\\t\\"s\\" = button state","\\t\\t\\t\\t\\"c\\" = column plus 33","\\t\\t\\t\\t\\"r\\" = row plus 33","\\t\\t\\tThis only works up to 223 columns! See \\"dec\\",","\\t\\t\\t\\"urxvt\\", and \\"sgr\\" for solutions.","\\t xterm2\\tWorks like \\"xterm\\", but with the xterm reporting the","\\t\\t\\tmouse position while the mouse is dragged. This works","\\t\\t\\tmuch faster and more precise. Your xterm must at","\\t\\t\\tleast at patchlevel 88 / XFree 3.3.3 for this to","\\t\\t\\twork. See below for how Vim detects this","\\t\\t\\tautomatically.","\\t\\t\\t\\t\\t\\t\\t*netterm-mouse*","\\t netterm\\tNetTerm mouse handling. A left mouse click generates","\\t\\t\\t\\"<Esc>}r,c<CR>\\", where \\"r,c\\" are two decimal numbers","\\t\\t\\tfor the row and column. No other mouse events are","\\t\\t\\tsupported.","\\t\\t\\t\\t\\t\\t\\t*dec-mouse*","\\t dec\\t\\tDEC terminal mouse handling. The mouse generates a","\\t\\t\\trather complex sequence, starting with \\"<Esc>[\\".","\\t\\t\\tThis is also available for an Xterm, if it was","\\t\\t\\tconfigured with \\"--enable-dec-locator\\".","\\t\\t\\t\\t\\t\\t\\t*jsbterm-mouse*","\\t jsbterm\\tJSB term mouse handling.","\\t\\t\\t\\t\\t\\t\\t*pterm-mouse*","\\t pterm\\tQNX pterm mouse handling.","\\t\\t\\t\\t\\t\\t\\t*urxvt-mouse*","\\t urxvt\\tMouse handling for the urxvt (rxvt-unicode) terminal.","\\t\\t\\tThe mouse works only if the terminal supports this","\\t\\t\\tencoding style, but it does not have 223 columns limit","\\t\\t\\tunlike \\"xterm\\" or \\"xterm2\\".","\\t\\t\\t\\t\\t\\t\\t*sgr-mouse*","\\t sgr\\t\\tMouse handling for the terminal that emits SGR-styled","\\t\\t\\tmouse reporting. The mouse works even in columns","\\t\\t\\tbeyond 223. This option is backward compatible with","\\t\\t\\t\\"xterm2\\" because it can also decode \\"xterm2\\" style","\\t\\t\\tmouse codes."],"ttyscroll":["number\\t(default 999)","\\t\\t\\tglobal","\\tMaximum number of lines to scroll the screen. If there are more lines","\\tto scroll the window is redrawn. For terminals where scrolling is","\\tvery slow and redrawing is not slow this can be set to a small number,","\\te.g., 3, to speed up displaying."],"ttytype":["string\\t(default from $TERM)","\\t\\t\\tglobal","\\tAlias for \'term\', see above."],"varsofttabstop":["string\\t(default \\"\\")","\\t\\t\\tlocal to buffer","\\t\\t\\t{only available when compiled with the |+vartabs|","\\t\\t\\tfeature}","\\tA list of the number of spaces that a <Tab> counts for while editing,","\\tsuch as inserting a <Tab> or using <BS>. It \\"feels\\" like variable-","\\twidth <Tab>s are being inserted, while in fact a mixture of spaces","\\tand <Tab>s is used. Tab widths are separated with commas, with the","\\tfinal value applying to all subsequent tabs."],"vartabstop":["string\\t(default \\"\\")","\\t\\t\\tlocal to buffer","\\t\\t\\t{only available when compiled with the |+vartabs|","\\t\\t\\tfeature}","\\tA list of the number of spaces that a <Tab> in the file counts for,","\\tseparated by commas. Each value corresponds to one tab, with the","\\tfinal value applying to all subsequent tabs. For example: >","\\t\\t:set vartabstop=4,20,10,8","<\\tThis will make the first tab 4 spaces wide, the second 20 spaces,","\\tthe third 10 spaces, and all following tabs 8 spaces."],"viminfo":["string\\t(Vi default: \\"\\", Vim default for MS-DOS,","\\t\\t\\t\\t Windows and OS/2: \'100,<50,s10,h,rA:,rB:,","\\t\\t\\t\\t for Amiga: \'100,<50,s10,h,rdf0:,rdf1:,rdf2:","\\t\\t\\t\\t for others: \'100,<50,s10,h)","\\t\\t\\tglobal","\\t\\t\\t{not available when compiled without the |+viminfo|","\\t\\t\\tfeature}","\\tWhen non-empty, the viminfo file is read upon startup and written","\\twhen exiting Vim (see |viminfo-file|). Except when \'viminfofile\' is","\\t\\"NONE\\".","\\tThe string should be a comma separated list of parameters, each","\\tconsisting of a single character identifying the particular parameter,","\\tfollowed by a number or string which specifies the value of that","\\tparameter. If a particular character is left out, then the default","\\tvalue is used for that parameter. The following is a list of the","\\tidentifying characters and the effect of their value.","\\tCHAR\\tVALUE\\t~","\\t\\t\\t\\t\\t\\t\\t*viminfo-!*","\\t!\\tWhen included, save and restore global variables that start","\\t\\twith an uppercase letter, and don\'t contain a lowercase","\\t\\tletter. Thus \\"KEEPTHIS and \\"K_L_M\\" are stored, but \\"KeepThis\\"","\\t\\tand \\"_K_L_M\\" are not. Nested List and Dict items may not be","\\t\\tread back correctly, you end up with an empty item.","\\t\\t\\t\\t\\t\\t\\t*viminfo-quote*","\\t\\"\\tMaximum number of lines saved for each register. Old name of","\\t\\tthe \'<\' item, with the disadvantage that you need to put a","\\t\\tbackslash before the \\", otherwise it will be recognized as the","\\t\\tstart of a comment!","\\t\\t\\t\\t\\t\\t\\t*viminfo-%*","\\t%\\tWhen included, save and restore the buffer list. If Vim is","\\t\\tstarted with a file name argument, the buffer list is not","\\t\\trestored. If Vim is started without a file name argument, the","\\t\\tbuffer list is restored from the viminfo file. Quickfix","\\t\\t(\'buftype\'), unlisted (\'buflisted\'), unnamed and buffers on","\\t\\tremovable media (|viminfo-r|) are not saved.","\\t\\tWhen followed by a number, the number specifies the maximum","\\t\\tnumber of buffers that are stored. Without a number all","\\t\\tbuffers are stored.","\\t\\t\\t\\t\\t\\t\\t*viminfo-\'*","\\t\'\\tMaximum number of previously edited files for which the marks","\\t\\tare remembered. This parameter must always be included when","\\t\\t\'viminfo\' is non-empty.","\\t\\tIncluding this item also means that the |jumplist| and the","\\t\\t|changelist| are stored in the viminfo file.","\\t\\t\\t\\t\\t\\t\\t*viminfo-/*","\\t/\\tMaximum number of items in the search pattern history to be","\\t\\tsaved. If non-zero, then the previous search and substitute","\\t\\tpatterns are also saved. When not included, the value of","\\t\\t\'history\' is used.","\\t\\t\\t\\t\\t\\t\\t*viminfo-:*","\\t:\\tMaximum number of items in the command-line history to be","\\t\\tsaved. When not included, the value of \'history\' is used.","\\t\\t\\t\\t\\t\\t\\t*viminfo-<*","\\t<\\tMaximum number of lines saved for each register. If zero then","\\t\\tregisters are not saved. When not included, all lines are","\\t\\tsaved. \'\\"\' is the old name for this item.","\\t\\tAlso see the \'s\' item below: limit specified in Kbyte.","\\t\\t\\t\\t\\t\\t\\t*viminfo-@*","\\t@\\tMaximum number of items in the input-line history to be","\\t\\tsaved. When not included, the value of \'history\' is used.","\\t\\t\\t\\t\\t\\t\\t*viminfo-c*","\\tc\\tWhen included, convert the text in the viminfo file from the","\\t\\t\'encoding\' used when writing the file to the current","\\t\\t\'encoding\'. See |viminfo-encoding|.","\\t\\t\\t\\t\\t\\t\\t*viminfo-f*","\\tf\\tWhether file marks need to be stored. If zero, file marks (\'0","\\t\\tto \'9, \'A to \'Z) are not stored. When not present or when","\\t\\tnon-zero, they are all stored. \'0 is used for the current","\\t\\tcursor position (when exiting or when doing \\":wviminfo\\").","\\t\\t\\t\\t\\t\\t\\t*viminfo-h*","\\th\\tDisable the effect of \'hlsearch\' when loading the viminfo","\\t\\tfile. When not included, it depends on whether \\":nohlsearch\\"","\\t\\thas been used since the last search command.","\\t\\t\\t\\t\\t\\t\\t*viminfo-n*","\\tn\\tName of the viminfo file. The name must immediately follow","\\t\\tthe \'n\'. Must be at the end of the option! If the","\\t\\t\'viminfofile\' option is set, that file name overrides the one","\\t\\tgiven here with \'viminfo\'. Environment variables are","\\t\\texpanded when opening the file, not when setting the option.","\\t\\t\\t\\t\\t\\t\\t*viminfo-r*","\\tr\\tRemovable media. The argument is a string (up to the next","\\t\\t\',\'). This parameter can be given several times. Each","\\t\\tspecifies the start of a path for which no marks will be","\\t\\tstored. This is to avoid removable media. For MS-DOS you","\\t\\tcould use \\"ra:,rb:\\", for Amiga \\"rdf0:,rdf1:,rdf2:\\". You can","\\t\\talso use it for temp files, e.g., for Unix: \\"r/tmp\\". Case is","\\t\\tignored. Maximum length of each \'r\' argument is 50","\\t\\tcharacters.","\\t\\t\\t\\t\\t\\t\\t*viminfo-s*","\\ts\\tMaximum size of an item in Kbyte. If zero then registers are","\\t\\tnot saved. Currently only applies to registers. The default","\\t\\t\\"s10\\" will exclude registers with more than 10 Kbyte of text.","\\t\\tAlso see the \'<\' item above: line count limit."],"viminfofile":["string\\t(default: \\"\\")","\\t\\t\\tglobal","\\t\\t\\t{not available when compiled without the |+viminfo|","\\t\\t\\tfeature}","\\tWhen non-empty, overrides the file name used for viminfo.","\\tWhen equal to \\"NONE\\" no viminfo file will be read or written.","\\tThis option can be set with the |-i| command line flag. The |--clean|","\\tcommand line flag sets it to \\"NONE\\".","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."],"weirdinvert":["boolean\\t(default off)","\\t\\t\\tglobal","\\tThis option has the same effect as the \'t_xs\' terminal option.","\\tIt is provided for backwards compatibility with version 4.x.","\\tSetting \'weirdinvert\' has the effect of making \'t_xs\' non-empty, and","\\tvice versa. Has no effect when the GUI is running."],"wincolor":["string (default empty)","\\t\\t\\tlocal to window","\\tHighlight group name to use for this window instead of the Normal","\\tcolor |hl-Normal|."],"winptydll":["string\\t(default \\"winpty32.dll\\" or \\"winpty64.dll\\")","\\t\\t\\tglobal","\\t\\t\\t{only available when compiled with the |terminal|","\\t\\t\\tfeature on MS-Windows}","\\tSpecifies the name of the winpty shared library, used for the","\\t|:terminal| command. The default depends on whether was build as a","\\t32-bit or 64-bit executable. If not found, \\"winpty.dll\\" is tried as","\\ta fallback.","\\tEnvironment variables are expanded |:set_env|.","\\tThis option cannot be set from a |modeline| or in the |sandbox|, for","\\tsecurity reasons."]},"features":{"64":["bits)"],"acl":["|ACL| support"],"bsd":["BSD system (not macOS, use \\"mac\\" for that)."],"iconv":["Can use |iconv()| for conversion."],"+shellslash":["Can use backslashes in filenames (Windows)"],"clipboard":["|clipboard| provider is available."],"mac":["MacOS system."],"nvim":["This is Nvim."],"python2":["Legacy Vim |python2| interface. |has-python|"],"python3":["Legacy Vim |python3| interface. |has-python|"],"pythonx":["Legacy Vim |python_x| interface. |has-pythonx|"],"ttyin":["input is a terminal (tty)"],"ttyout":["output is a terminal (tty)"],"unix":["Unix system."],"vim_starting":["True during |startup|. "],"win32":["Windows system (32 or 64 bit)."],"win64":["Windows system (64 bit)."],"wsl":["WSL (Windows Subsystem for Linux) system"],"all_builtin_terms":["Compiled with all builtin terminals enabled."],"amiga":["Amiga version of Vim."],"arabic":["Compiled with Arabic support |Arabic|."],"arp":["Compiled with ARP support (Amiga)."],"autocmd":["Compiled with autocommand support. (always true)"],"autochdir":["Compiled with support for \'autochdir\'"],"autoservername":["Automatically enable |clientserver|"],"balloon_eval":["Compiled with |balloon-eval| support."],"balloon_multiline":["GUI supports multiline balloons."],"beos":["BeOS version of Vim."],"browse":["Compiled with |:browse| support, and browse() will","\\t\\t\\twork."],"browsefilter":["Compiled with support for |browsefilter|."],"builtin_terms":["Compiled with some builtin terminals."],"byte_offset":["Compiled with support for \'o\' in \'statusline\'"],"cindent":["Compiled with \'cindent\' support."],"clientserver":["Compiled with remote invocation support |clientserver|."],"clipboard_working":["Compiled with \'clipboard\' support and it can be used."],"cmdline_compl":["Compiled with |cmdline-completion| support."],"cmdline_hist":["Compiled with |cmdline-history| support."],"cmdline_info":["Compiled with \'showcmd\' and \'ruler\' support."],"comments":["Compiled with |\'comments\'| support."],"compatible":["Compiled to be very Vi compatible."],"conpty":["Platform where |ConPTY| can be used."],"cryptv":["Compiled with encryption support |encryption|."],"cscope":["Compiled with |cscope| support."],"cursorbind":["Compiled with |\'cursorbind\'| (always true)"],"debug":["Compiled with \\"DEBUG\\" defined."],"dialog_con":["Compiled with console dialog support."],"dialog_gui":["Compiled with GUI dialog support."],"diff":["Compiled with |vimdiff| and \'diff\' support."],"digraphs":["Compiled with support for digraphs."],"directx":["Compiled with support for DirectX and \'renderoptions\'."],"dnd":["Compiled with support for the \\"~ register |quote_~|."],"ebcdic":["Compiled on a machine with ebcdic character set."],"emacs_tags":["Compiled with support for Emacs tags."],"eval":["Compiled with expression evaluation support. Always"],"true,":["of course!"],"ex_extra":["|+ex_extra| (always true)"],"extra_search":["Compiled with support for |\'incsearch\'| and","\\t\\t\\t|\'hlsearch\'|"],"farsi":["Support for Farsi was removed |farsi|."],"file_in_path":["Compiled with support for |gf| and |<cfile>|"],"filterpipe":["When \'shelltemp\' is off pipes are used for shell"],"read/write/filter":["commands"],"find_in_path":["Compiled with support for include file searches","\\t\\t\\t|+find_in_path|."],"float":["Compiled with support for |Float|."],"fname_case":["Case in file names matters (for Amiga, MS-DOS, and"],"Windows":["this is not present)."],"folding":["Compiled with |folding| support."],"footer":["Compiled with GUI footer support. |gui-footer|"],"fork":["Compiled to use fork()/exec() instead of system()."],"gettext":["Compiled with message translation |multi-lang|"],"gui":["Compiled with GUI enabled."],"gui_athena":["Compiled with Athena GUI."],"gui_gnome":["Compiled with Gnome support (gui_gtk is also defined)."],"gui_gtk":["Compiled with GTK+ GUI (any version)."],"gui_gtk2":["Compiled with GTK+ 2 GUI (gui_gtk is also defined)."],"gui_gtk3":["Compiled with GTK+ 3 GUI (gui_gtk is also defined)."],"gui_mac":["Compiled with Macintosh GUI."],"gui_motif":["Compiled with Motif GUI."],"gui_photon":["Compiled with Photon GUI."],"gui_running":["Vim is running in the GUI, or it will start soon."],"gui_win32":["Compiled with MS Windows Win32 GUI."],"gui_win32s":["idem, and Win32s system being used (Windows 3.1)"],"hangul_input":["Compiled with Hangul input support. |hangul|"],"hpux":["HP-UX version of Vim."],"insert_expand":["Compiled with support for CTRL-X expansion commands in"],"Insert":["mode. (always true)"],"jumplist":["Compiled with |jumplist| support."],"keymap":["Compiled with \'keymap\' support."],"lambda":["Compiled with |lambda| support."],"langmap":["Compiled with \'langmap\' support."],"libcall":["Compiled with |libcall()| support."],"linebreak":["Compiled with \'linebreak\', \'breakat\', \'showbreak\' and"],"\'breakindent\'":["support."],"linux":["Linux version of Vim."],"lispindent":["Compiled with support for lisp indenting."],"listcmds":["Compiled with commands for the buffer list |:files|"],"and":["the argument list |arglist|.","special formats of \'titlestring\' and \'iconstring\'."],"localmap":["Compiled with local mappings and abbr. |:map-local|"],"lua":["Compiled with Lua interface |Lua|."],"macunix":["Synonym for osxdarwin"],"menu":["Compiled with support for |:menu|."],"mksession":["Compiled with support for |:mksession|."],"modify_fname":["Compiled with file name modifiers. |filename-modifiers|"],"(always":["true)","true)","true)"],"mouse":["Compiled with support mouse."],"mouse_dec":["Compiled with support for Dec terminal mouse."],"mouse_gpm":["Compiled with support for gpm (Linux console mouse)"],"mouse_gpm_enabled":["GPM mouse is working"],"mouse_netterm":["Compiled with support for netterm mouse."],"mouse_pterm":["Compiled with support for qnx pterm mouse."],"mouse_sysmouse":["Compiled with support for sysmouse (*BSD console mouse)"],"mouse_sgr":["Compiled with support for sgr mouse."],"mouse_urxvt":["Compiled with support for urxvt mouse."],"mouse_xterm":["Compiled with support for xterm mouse."],"mouseshape":["Compiled with support for \'mouseshape\'."],"multi_byte":["Compiled with support for \'encoding\' (always true)"],"multi_byte_encoding":["\'encoding\' is set to a multi-byte encoding."],"multi_byte_ime":["Compiled with support for IME input method."],"multi_lang":["Compiled with support for multiple languages."],"mzscheme":["Compiled with MzScheme interface |mzscheme|."],"netbeans_enabled":["Compiled with support for |netbeans| and connected."],"netbeans_intg":["Compiled with support for |netbeans|."],"num64":["Compiled with 64-bit |Number| support."],"ole":["Compiled with OLE automation support for Win32."],"osx":["Compiled for macOS cf. mac"],"osxdarwin":["Compiled for macOS, with |mac-darwin-feature|"],"packages":["Compiled with |packages| support."],"path_extra":["Compiled with up/downwards search in \'path\' and \'tags\'"],"perl":["Compiled with Perl interface."],"persistent_undo":["Compiled with support for persistent undo history."],"postscript":["Compiled with PostScript file printing."],"printer":["Compiled with |:hardcopy| support."],"profile":["Compiled with |:profile| support."],"python":["Python 2.x interface available. |has-python|"],"python_compiled":["Compiled with Python 2.x interface. |has-python|"],"python_dynamic":["Python 2.x interface is dynamically loaded. |has-python|"],"python3_compiled":["Compiled with Python 3.x interface. |has-python|"],"python3_dynamic":["Python 3.x interface is dynamically loaded. |has-python|"],"qnx":["QNX version of Vim."],"quickfix":["Compiled with |quickfix| support."],"reltime":["Compiled with |reltime()| support."],"rightleft":["Compiled with \'rightleft\' support."],"ruby":["Compiled with Ruby interface |ruby|."],"scrollbind":["Compiled with \'scrollbind\' support. (always true)"],"showcmd":["Compiled with \'showcmd\' support."],"signs":["Compiled with |:sign| support."],"smartindent":["Compiled with \'smartindent\' support."],"sound":["Compiled with sound support, e.g. `sound_playevent()`"],"spell":["Compiled with spell checking support |spell|."],"startuptime":["Compiled with |--startuptime| support."],"statusline":["Compiled with support for \'statusline\', \'rulerformat\'"],"sun":["SunOS version of Vim."],"sun_workshop":["Support for Sun |workshop| has been removed."],"syntax":["Compiled with syntax highlighting support |syntax|."],"syntax_items":["There are active syntax highlighting items for the"],"current":["buffer."],"system":["Compiled to use system() instead of fork()/exec()."],"tag_binary":["Compiled with binary searching in tags files","\\t\\t\\t|tag-binary-search|."],"tag_old_static":["Support for old static tags was removed, see","\\t\\t\\t|tag-old-static|."],"tcl":["Compiled with Tcl interface."],"termguicolors":["Compiled with true color in terminal support."],"terminal":["Compiled with |terminal| support."],"terminfo":["Compiled with terminfo instead of termcap."],"termresponse":["Compiled with support for |t_RV| and |v:termresponse|."],"textobjects":["Compiled with support for |text-objects|."],"textprop":["Compiled with support for |text-properties|."],"tgetent":["Compiled with tgetent support, able to use a termcap"],"or":["terminfo file."],"timers":["Compiled with |timer_start()| support."],"title":["Compiled with window title support |\'title\'|."],"toolbar":["Compiled with support for |gui-toolbar|."],"unnamedplus":["Compiled with support for \\"unnamedplus\\" in \'clipboard\'"],"user_commands":["User-defined commands. (always true)"],"vartabs":["Compiled with variable tabstop support |\'vartabstop\'|."],"vcon":["Win32: Virtual console support is working, can use"],"\'termguicolors\'.":["Also see |+vtp|."],"vertsplit":["Compiled with vertically split windows |:vsplit|."],"viminfo":["Compiled with viminfo support."],"vimscript-1":["Compiled Vim script version 1 support"],"vimscript-2":["Compiled Vim script version 2 support"],"vimscript-3":["Compiled Vim script version 3 support"],"virtualedit":["Compiled with \'virtualedit\' option. (always true)"],"visual":["Compiled with Visual mode. (always true)"],"visualextra":["Compiled with extra Visual mode commands. (always"],"true)":["|blockwise-operators|."],"vms":["VMS version of Vim."],"vreplace":["Compiled with |gR| and |gr| commands. (always true)"],"vtp":["Compiled for vcon support |+vtp| (check vcon to find"],"out":["if it works in the current console)."],"wildignore":["Compiled with \'wildignore\' option."],"wildmenu":["Compiled with \'wildmenu\' option."],"win16":["old version for MS-Windows 3.1 (always false)"],"win32unix":["Win32 version of Vim, using Unix files (Cygwin)"],"win95":["Win32 version for MS-Windows 95/98/ME (always false)"],"winaltkeys":["Compiled with \'winaltkeys\' option."],"windows":["Compiled with support for more than one window."],"writebackup":["Compiled with \'writebackup\' default on."],"xfontset":["Compiled with X fontset support |xfontset|."],"xim":["Compiled with X input method support |xim|."],"xpm":["Compiled with pixmap support."],"xpm_w32":["Compiled with pixmap support for Win32. (Only for"],"backward":["compatibility. Use \\"xpm\\" instead.)"],"xsmp":["Compiled with X session management support."],"xsmp_interact":["Compiled with interactive X session management support."],"xterm_clipboard":["Compiled with support for xterm clipboard."],"xterm_save":["Compiled with support for saving and restoring the"],"xterm":["screen."],"x11":["Compiled with X11 support."]},"expandKeywords":{"<cfile>":["file name under the cursor"],"<afile>":["autocmd file name"],"<abuf>":["autocmd buffer number (as a String!)"],"<amatch>":["autocmd matched name"],"<sfile>":["sourced script file or function name"],"<slnum>":["sourced script file line number"],"<cword>":["word under the cursor"],"<cWORD>":["WORD under the cursor"],"<client>":["the {clientid} of the last received message `server2client()`"]}}}')},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=[];e.useProvider=function(t){i.push(t)},e.getProvider=function(){return i.reduce((function(t,e){return function(n,i,r,o){return t(n,i,r,o.concat(e(n,i,r)))}}),(function(t,e,n,i){return i}))}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(55),r=n(47),o=n(60);n(141).useProvider((function(t){return r.isSomeMatchPattern(i.builtinVariablePattern,t)?o.builtinDocs.getPredefinedVimVariables():[]}))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(55),r=n(60);n(141).useProvider((function(t){return i.colorschemePattern.test(t)?r.builtinDocs.getColorschemes():[]}))},function(t,e,n){"use strict";var i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var r=n(55),o=n(47),a=n(60),s=i(n(56)),l=n(145);n(141).useProvider((function(t){return o.isSomeMatchPattern(r.commandPattern,t)?s.default.snippetSupport?a.builtinDocs.getVimCommands().concat(l.commandSnippets):a.builtinDocs.getVimCommands():[]}))},function(t,e,n){"use strict";var i=this&&this.__assign||function(){return(i=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)};Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=n(47);e.commandSnippets=[{label:"func",kind:r.CompletionItemKind.Snippet,insertText:["function ${1:Name}(${2}) ${3:abort}","\t${0}","endfunction"].join("\n"),insertTextFormat:r.InsertTextFormat.Snippet},{label:"tryc",kind:r.CompletionItemKind.Snippet,insertText:["try","\t${1}","catch /.*/","\t${0}","endtry"].join("\n"),insertTextFormat:r.InsertTextFormat.Snippet},{label:"tryf",kind:r.CompletionItemKind.Snippet,insertText:["try","\t${1}","finally","\t${0}","endtry"].join("\n"),insertTextFormat:r.InsertTextFormat.Snippet},{label:"trycf",kind:r.CompletionItemKind.Snippet,insertText:["try","\t${1}","catch /.*/","\t${2}","finally","\t${0}","endtry"].join("\n"),insertTextFormat:r.InsertTextFormat.Snippet},{label:"aug",kind:r.CompletionItemKind.Snippet,insertText:["augroup ${1:Start}","\tautocmd!","\t${0}","augroup END"].join("\n"),insertTextFormat:r.InsertTextFormat.Snippet},{label:"aut",kind:r.CompletionItemKind.Snippet,insertText:["autocmd ${1:group-event} ${2:pat} ${3:once} ${4:nested} ${5:cmd}"].join("\n"),insertTextFormat:r.InsertTextFormat.Snippet},{label:"if",kind:r.CompletionItemKind.Snippet,insertText:["if ${1:condition}","\t${0}","endif"].join("\n"),insertTextFormat:r.InsertTextFormat.Snippet},{label:"cmd",kind:r.CompletionItemKind.Snippet,insertText:["command! ${1:attr} ${2:cmd} ${3:rep} ${0}"].join("\n"),insertTextFormat:r.InsertTextFormat.Snippet},{label:"hi",kind:r.CompletionItemKind.Snippet,insertText:["highlight ${1:default} ${2:group-name} ${3:args} ${0}"].join("\n"),insertTextFormat:r.InsertTextFormat.Snippet}].map((function(t){return i(i({},t),{documentation:o.markupSnippets(t.insertText)})}))},function(t,e,n){"use strict";var i=this&&this.__assign||function(){return(i=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)};Object.defineProperty(e,"__esModule",{value:!0});var r=n(55),o=n(60);n(141).useProvider((function(t){return r.expandPattern[0].test(t)?o.builtinDocs.getExpandKeywords().map((function(t){return i(i({},t),{insertText:t.insertText.slice(1)})})):r.expandPattern[1].test(t)?o.builtinDocs.getExpandKeywords():[]}))},function(t,e,n){"use strict";var i=this&&this.__assign||function(){return(i=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)},r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var o=n(55),a=n(47),s=n(60),l=r(n(56)),c=n(148);n(141).useProvider((function(t,e,n){if(/\b(g:|s:|<SID>)\w*$/.test(t)){var r=[];return/\bg:\w*$/.test(t)?r=c.workspace.getFunctionItems(e).filter((function(t){return/^g:/.test(t.label)})):/\b(s:|<SID>)\w*$/i.test(t)&&(r=c.workspace.getFunctionItems(e).filter((function(t){return/^s:/.test(t.label)}))),r.map((function(t){return i(i({},t),{insertText:/:/.test(l.default.iskeyword)?t.insertText:t.insertText.slice(2)})}))}return/\B:\w*$/.test(t)?c.workspace.getFunctionItems(e).filter((function(t){return/:/.test(t.label)})).map((function(e){var r=t.match(/:[^:]*$/);return i(i({},e),{textEdit:{range:{start:{line:n.line,character:t.length-r[0].length},end:{line:n.line,character:t.length-r[0].length+1}},newText:e.insertText}})})):a.isSomeMatchPattern(o.notFunctionPattern,t)?[]:c.workspace.getFunctionItems(e).filter((function(t){return!s.builtinDocs.isBuiltinFunction(t.label)})).concat(s.builtinDocs.getBuiltinVimFunctions())}))},function(t,e,n){"use strict";var i=this&&this.__awaiter||function(t,e,n,i){return new(n||(n=Promise))((function(r,o){function a(t){try{l(i.next(t))}catch(t){o(t)}}function s(t){try{l(i.throw(t))}catch(t){o(t)}}function l(t){var e;t.done?r(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,s)}l((i=i.apply(t,e||[])).next())}))},r=this&&this.__generator||function(t,e){var n,i,r,o,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,i&&(r=2&o[0]?i.return:o[0]?i.throw||((r=i.return)&&r.call(i),0):i.next)&&!(r=r.call(i,o[1])).done)return r;switch(i=0,r&&(o=[2&o[0],r.value]),o[0]){case 0:case 1:r=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,i=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]<r[3])){a.label=o[1];break}if(6===o[0]&&a.label<r[1]){a.label=r[1],r=o;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(o);break}r[2]&&a.ops.pop(),a.trys.pop();continue}o=e.call(t,a)}catch(t){o=[6,t],i=0}finally{n=r=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}},o=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var a=n(149),s=n(2),l=n(47),c=n(150),u=o(n(56)),d=function(){function t(){this.buffers={}}return t.prototype.isExistsBuffer=function(t){return!!this.buffers[t]},t.prototype.updateBuffer=function(t,e){return i(this,void 0,void 0,(function(){var n;return r(this,(function(i){switch(i.label){case 0:return e?this.buffers[t]?(this.buffers[t].updateBufferByNode(e),[3,3]):[3,1]:[2];case 1:return[4,l.findProjectRoot(a.URI.parse(t).fsPath,u.default.indexes.projectRootPatterns)];case 2:n=i.sent(),""!==u.default.vimruntime.trim()&&0===n.indexOf(u.default.vimruntime)&&(n=u.default.vimruntime),this.buffers[t]=new c.Buffer(t,n,e),i.label=3;case 3:return[2]}}))}))},t.prototype.getBufferByUri=function(t){return this.buffers[t]},t.prototype.getFunctionItems=function(t){return this.getScriptFunctionItems(t).concat(this.getGlobalFunctionItems(t))},t.prototype.getIdentifierItems=function(t,e){return this.getLocalIdentifierItems(t,e).concat(this.getGlobalIdentifierItems(t))},t.prototype.getLocations=function(t,e,n,i){var r=!1,o=[];if(/^((g|b):\w+(\.\w+)*|\w+(#\w+)+)$/.test(t))o=this.getGlobalLocation(t,e,n,i);else if(/^([a-zA-Z_]\w*(\.\w+)*)$/.test(t))(o=this.getFunArgLocation(t,e,n,i)).length?r=!0:(o=this.getLocalLocation(t,e,n,i)).length||(o=this.getGlobalLocation(t,e,n,i));else if(/^((s:|<SID>)\w+(\.\w+)*)$/.test(t)&&this.buffers[e]){var a=[t];/^<SID>/.test(t)?a.push(t.replace(/^<SID>/,"s:")):a.push(t.replace(/^s:/,"<SID>")),o=this.getScriptLocation(a,e,n,i)}else/^(l:\w+(\.\w+)*)$/.test(t)&&this.buffers[e]?o=this.getLocalLocation(t,e,n,i):/^(a:\w+(\.\w+)*)$/.test(t)&&this.buffers[e]&&(o=this.getAIdentifierLocation(t,e,n,i));return o.length&&(o=o.sort((function(t,e){return t.range.start.line===e.range.start.line?t.range.start.character-e.range.start.character:t.range.start.line-e.range.start.line}))),{isFunArg:r,locations:o}},t.prototype.getLocationsByUri=function(t,e,n,i){var r=!1,o=[];if(/^((g|b):\w+(\.\w+)*|\w+(#\w+)+)$/.test(t))o=this.getGlobalLocationByUri(t,e,n,i);else if(/^([a-zA-Z_]\w*(\.\w+)*)$/.test(t))(o=this.getFunArgLocation(t,e,n,i)).length?r=!0:(o=this.getLocalLocation(t,e,n,i)).length||(o=this.getGlobalLocationByUri(t,e,n,i));else if(/^((s:|<SID>)\w+(\.\w+)*)$/.test(t)&&this.buffers[e]){var a=[t];/^<SID>/.test(t)?a.push(t.replace(/^<SID>/,"s:")):a.push(t.replace(/^s:/,"<SID>")),o=this.getScriptLocation(a,e,n,i)}else/^(l:\w+(\.\w+)*)$/.test(t)&&this.buffers[e]?o=this.getLocalLocation(t,e,n,i):/^(a:\w+(\.\w+)*)$/.test(t)&&this.buffers[e]&&(o=this.getAIdentifierLocation(t,e,n,i));return o.length&&(o=o.sort((function(t,e){return t.range.start.line===e.range.start.line?t.range.start.character-e.range.start.character:t.range.start.line-e.range.start.line}))),{isFunArg:r,locations:o}},t.prototype.filterDuplicate=function(t){var e={};return t.reduce((function(t,n){return e[n.label]||(e[n.label]=!0,t.push(n)),t}),[])},t.prototype.getGlobalFunctionItems=function(t){var e=this.buffers[t];if(!e)return[];var n=u.default.suggest.fromRuntimepath?Object.values(this.buffers):Object.values(this.buffers).filter((function(t){return!(!u.default.suggest.fromVimruntime||!t.isBelongToWorkdir(u.default.vimruntime))||t.isBelongToWorkdir(e.getProjectRoot())}));return this.filterDuplicate(n.reduce((function(t,e){return t.concat(e.getGlobalFunctionItems())}),[]))},t.prototype.getScriptFunctionItems=function(t){return this.buffers[t]?this.buffers[t].getScriptFunctionItems():[]},t.prototype.getGlobalIdentifierItems=function(t){var e=this.buffers[t];if(!e)return[];var n=u.default.suggest.fromRuntimepath?Object.values(this.buffers):Object.values(this.buffers).filter((function(t){return!(!u.default.suggest.fromVimruntime||!t.isBelongToWorkdir(u.default.vimruntime))||t.isBelongToWorkdir(e.getProjectRoot())}));return this.filterDuplicate(n.reduce((function(t,e){return t.concat(e.getGlobalIdentifierItems()).concat(e.getEnvItems())}),[]))},t.prototype.getLocalIdentifierItems=function(t,e){if(!this.buffers[t])return[];var n=this.buffers[t];return n.getFunctionLocalIdentifierItems(e).concat(n.getLocalIdentifierItems())},t.prototype.getLocation=function(t,e){return{uri:t,range:s.Range.create(s.Position.create(e.startLine-1,e.startCol-1),s.Position.create(e.startLine-1,e.startCol-1+e.name.length))}},t.prototype.getGlobalLocation=function(t,e,n,i){var r=this;return Object.keys(this.buffers).reduce((function(e,o){return e.concat(r.getGlobalLocationByUri(t,o,n,i))}),[])},t.prototype.getGlobalLocationByUri=function(t,e,n,i){var r=this,o=[],a=[],s=[],l="definition"===i?this.buffers[e].getGlobalFunctions():this.buffers[e].getGlobalFunctionRefs();Object.keys(l).forEach((function(n){n===t&&(o=o.concat(l[n].map((function(t){return r.getLocation(e,t)}))))}));var c="definition"===i?this.buffers[e].getGlobalIdentifiers():this.buffers[e].getGlobalIdentifierRefs();if(Object.keys(c).forEach((function(n){n===t&&(a=a.concat(c[n].map((function(t){return r.getLocation(e,t)}))))})),/^([a-zA-Z_]\w*(\.\w+)*)$/.test(t)){var u=this.buffers[e].getGlobalFunctions(),d=this.buffers[e].getScriptFunctions(),m=Object.values(u).concat(Object.values(d)).reduce((function(t,e){return t.concat(e)}),[]);a.forEach((function(t){m.some((function(e){return e.startLine-1<t.range.start.line&&t.range.start.line<e.endLine-1}))||s.push(t)}))}else s=a;return o=o.concat(s)},t.prototype.getScriptLocation=function(t,e,n,i){var r=this,o=[];if(!this.buffers[e])return o;var a="definition"===i?this.buffers[e].getScriptFunctions():this.buffers[e].getScriptFunctionRefs();Object.keys(a).forEach((function(n){var i=t.indexOf(n);-1!==i&&(o=o.concat(a[t[i]].map((function(t){return r.getLocation(e,t)}))))}));var s="definition"===i?this.buffers[e].getLocalIdentifiers():this.buffers[e].getLocalIdentifierRefs();return Object.keys(s).forEach((function(n){var i=t.indexOf(n);-1!==i&&(o=o.concat(s[t[i]].map((function(t){return r.getLocation(e,t)}))))})),o},t.prototype.getLocalLocation=function(t,e,n,i){var r=this,o=[];if(!this.buffers[e])return o;var a=n.line+1,s=-1,l=-1;if([].concat(Object.values(this.buffers[e].getGlobalFunctions()).reduce((function(t,e){return t.concat(e)}),[])).concat(Object.values(this.buffers[e].getScriptFunctions()).reduce((function(t,e){return t.concat(e)}),[])).forEach((function(t){t.startLine<a&&a<t.endLine&&(s=t.startLine,l=t.endLine)})),-1!==s&&-1!==l){var c="definition"===i?this.buffers[e].getGlobalIdentifiers():this.buffers[e].getGlobalIdentifierRefs();Object.keys(c).some((function(n){return n===t&&(c[n].forEach((function(t){s<t.startLine&&t.startLine<l&&o.push(r.getLocation(e,t))})),!0)}));var u="definition"===i?this.buffers[e].getLocalIdentifiers():this.buffers[e].getLocalIdentifierRefs();Object.keys(u).some((function(n){return n===t&&(u[n].forEach((function(t){s<t.startLine&&t.startLine<l&&o.push(r.getLocation(e,t))})),!0)}))}return o},t.prototype.getAIdentifierLocation=function(t,e,n,i){var r=[];if(!this.buffers[e])return r;if("definition"===i){var o=[],a=this.buffers[e].getGlobalFunctions();Object.keys(a).forEach((function(t){a[t].forEach((function(t){t.startLine-1<n.line&&n.line<t.endLine-1&&o.push(t)}))}));var l=this.buffers[e].getScriptFunctions();if(Object.keys(l).forEach((function(t){l[t].forEach((function(t){t.startLine-1<n.line&&n.line<t.endLine-1&&o.push(t)}))})),o.length){var c=t.slice(2);return o.filter((function(t){return t.args&&t.args.some((function(t){return t.value===c}))})).map((function(t){var n=t.startLine-1,i=t.startCol-1,r=t.startCol-1;return t.args.some((function(t){return t.value===c&&(i=t.pos.col-1,r=i+c.length,!0)})),{uri:e,range:s.Range.create(s.Position.create(n,i),s.Position.create(n,r))}}))}}else{var u=[],d=this.buffers[e].getGlobalFunctions();Object.keys(d).forEach((function(t){d[t].forEach((function(t){t.startLine-1<n.line&&n.line<t.endLine-1&&u.push(t)}))}));var m=this.buffers[e].getScriptFunctions();if(Object.keys(m).forEach((function(t){m[t].forEach((function(t){t.startLine-1<n.line&&n.line<t.endLine-1&&u.push(t)}))})),u.length){var h=this.buffers[e].getLocalIdentifierRefs();Object.keys(h).forEach((function(n){n===t&&h[t].forEach((function(t){u.forEach((function(n){n.startLine<t.startLine&&t.startLine<n.endLine&&r.push({uri:e,range:s.Range.create(s.Position.create(t.startLine-1,t.startCol-1),s.Position.create(t.startLine-1,t.startCol-1+t.name.length))})}))}))}))}}return r},t.prototype.getFunArgLocation=function(t,e,n,i){var r=[];if(!this.buffers[e])return r;if("references"===i){var o=this.buffers[e].getGlobalFunctions(),a=this.buffers[e].getScriptFunctions(),l=-1,c=-1;if(Object.values(o).forEach((function(e){e.forEach((function(e){e.args.forEach((function(i){var r=i.pos;r&&r.lnum===n.line+1&&i.value===t&&(l=e.startLine,c=e.endLine)}))}))})),-1===l&&-1===c&&Object.values(a).forEach((function(e){e.forEach((function(e){e.args.forEach((function(i){var r=i.pos;r&&r.lnum===n.line+1&&i.value===t&&(l=e.startLine,c=e.endLine)}))}))})),-1!==l&&-1!==c){var u=this.buffers[e].getLocalIdentifierRefs();Object.keys(u).forEach((function(n){n==="a:"+t&&u[n].forEach((function(t){l<t.startLine&&t.startLine<c&&r.push({uri:e,range:s.Range.create(s.Position.create(t.startLine-1,t.startCol-1),s.Position.create(t.startLine-1,t.startCol-1+t.name.length))})}))}))}}else{var d=[],m=this.buffers[e].getGlobalFunctions();Object.keys(m).forEach((function(t){m[t].forEach((function(t){t.startLine-1===n.line&&n.character>t.startCol-1&&d.push(t)}))}));var h=this.buffers[e].getScriptFunctions();if(Object.keys(h).forEach((function(t){h[t].forEach((function(t){t.startLine-1===n.line&&n.character>t.startCol-1&&d.push(t)}))})),d.length)return d.filter((function(e){return e.args&&e.args.some((function(e){return e.value===t}))})).map((function(n){var i=n.startLine-1,r=n.startCol-1,o=n.startCol-1;return n.args.some((function(e){return e.value===t&&(r=e.pos.col-1,o=r+t.length,!0)})),{uri:e,range:s.Range.create(s.Position.create(i,r),s.Position.create(i,o))}}))}return r},t}();e.Workspace=d,e.workspace=new d},function(t,e,n){"use strict";n.r(e),n.d(e,"URI",(function(){return p}));var i,r,o,a=(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)},function(t,e){function n(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});if("object"==typeof process)o="win32"===process.platform;else if("object"==typeof navigator){var s=navigator.userAgent;o=s.indexOf("Windows")>=0}var l=/^\w[\w\d+.-]*$/,c=/^\//,u=/^\/\//;var d="",m="/",h=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,p=function(){function t(t,e,n,i,r,o){void 0===o&&(o=!1),"object"==typeof t?(this.scheme=t.scheme||d,this.authority=t.authority||d,this.path=t.path||d,this.query=t.query||d,this.fragment=t.fragment||d):(this.scheme=function(t,e){return t||e?t:"file"}(t,o),this.authority=e||d,this.path=function(t,e){switch(t){case"https":case"http":case"file":e?e[0]!==m&&(e=m+e):e=m}return e}(this.scheme,n||d),this.query=i||d,this.fragment=r||d,function(t,e){if(!t.scheme&&e)throw new Error('[UriError]: Scheme is missing: {scheme: "", authority: "'+t.authority+'", path: "'+t.path+'", query: "'+t.query+'", fragment: "'+t.fragment+'"}');if(t.scheme&&!l.test(t.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(t.path)if(t.authority){if(!c.test(t.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(u.test(t.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}(this,o))}return t.isUri=function(e){return e instanceof t||!!e&&("string"==typeof e.authority&&"string"==typeof e.fragment&&"string"==typeof e.path&&"string"==typeof e.query&&"string"==typeof e.scheme&&"function"==typeof e.fsPath&&"function"==typeof e.with&&"function"==typeof e.toString)},Object.defineProperty(t.prototype,"fsPath",{get:function(){return T(this)},enumerable:!0,configurable:!0}),t.prototype.with=function(t){if(!t)return this;var e=t.scheme,n=t.authority,i=t.path,r=t.query,o=t.fragment;return void 0===e?e=this.scheme:null===e&&(e=d),void 0===n?n=this.authority:null===n&&(n=d),void 0===i?i=this.path:null===i&&(i=d),void 0===r?r=this.query:null===r&&(r=d),void 0===o?o=this.fragment:null===o&&(o=d),e===this.scheme&&n===this.authority&&i===this.path&&r===this.query&&o===this.fragment?this:new g(e,n,i,r,o)},t.parse=function(t,e){void 0===e&&(e=!1);var n=h.exec(t);return n?new g(n[2]||d,decodeURIComponent(n[4]||d),decodeURIComponent(n[5]||d),decodeURIComponent(n[7]||d),decodeURIComponent(n[9]||d),e):new g(d,d,d,d,d)},t.file=function(t){var e=d;if(o&&(t=t.replace(/\\/g,m)),t[0]===m&&t[1]===m){var n=t.indexOf(m,2);-1===n?(e=t.substring(2),t=m):(e=t.substring(2,n),t=t.substring(n)||m)}return new g("file",e,t,d,d)},t.from=function(t){return new g(t.scheme,t.authority,t.path,t.query,t.fragment)},t.prototype.toString=function(t){return void 0===t&&(t=!1),_(this,t)},t.prototype.toJSON=function(){return this},t.revive=function(e){if(e){if(e instanceof t)return e;var n=new g(e);return n._formatted=e.external,n._fsPath=e._sep===f?e.fsPath:null,n}return e},t}(),f=o?1:void 0,g=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._formatted=null,e._fsPath=null,e}return a(e,t),Object.defineProperty(e.prototype,"fsPath",{get:function(){return this._fsPath||(this._fsPath=T(this)),this._fsPath},enumerable:!0,configurable:!0}),e.prototype.toString=function(t){return void 0===t&&(t=!1),t?_(this,!0):(this._formatted||(this._formatted=_(this,!1)),this._formatted)},e.prototype.toJSON=function(){var t={$mid:1};return this._fsPath&&(t.fsPath=this._fsPath,t._sep=f),this._formatted&&(t.external=this._formatted),this.path&&(t.path=this.path),this.scheme&&(t.scheme=this.scheme),this.authority&&(t.authority=this.authority),this.query&&(t.query=this.query),this.fragment&&(t.fragment=this.fragment),t},e}(p),b=((r={})[58]="%3A",r[47]="%2F",r[63]="%3F",r[35]="%23",r[91]="%5B",r[93]="%5D",r[64]="%40",r[33]="%21",r[36]="%24",r[38]="%26",r[39]="%27",r[40]="%28",r[41]="%29",r[42]="%2A",r[43]="%2B",r[44]="%2C",r[59]="%3B",r[61]="%3D",r[32]="%20",r);function x(t,e){for(var n=void 0,i=-1,r=0;r<t.length;r++){var o=t.charCodeAt(r);if(o>=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57||45===o||46===o||95===o||126===o||e&&47===o)-1!==i&&(n+=encodeURIComponent(t.substring(i,r)),i=-1),void 0!==n&&(n+=t.charAt(r));else{void 0===n&&(n=t.substr(0,r));var a=b[o];void 0!==a?(-1!==i&&(n+=encodeURIComponent(t.substring(i,r)),i=-1),n+=a):-1===i&&(i=r)}}return-1!==i&&(n+=encodeURIComponent(t.substring(i))),void 0!==n?n:t}function w(t){for(var e=void 0,n=0;n<t.length;n++){var i=t.charCodeAt(n);35===i||63===i?(void 0===e&&(e=t.substr(0,n)),e+=b[i]):void 0!==e&&(e+=t[n])}return void 0!==e?e:t}function T(t){var e;return e=t.authority&&t.path.length>1&&"file"===t.scheme?"//"+t.authority+t.path:47===t.path.charCodeAt(0)&&(t.path.charCodeAt(1)>=65&&t.path.charCodeAt(1)<=90||t.path.charCodeAt(1)>=97&&t.path.charCodeAt(1)<=122)&&58===t.path.charCodeAt(2)?t.path[1].toLowerCase()+t.path.substr(2):t.path,o&&(e=e.replace(/\//g,"\\")),e}function _(t,e){var n=e?w:x,i="",r=t.scheme,o=t.authority,a=t.path,s=t.query,l=t.fragment;if(r&&(i+=r,i+=":"),(o||"file"===r)&&(i+=m,i+=m),o){var c=o.indexOf("@");if(-1!==c){var u=o.substr(0,c);o=o.substr(c+1),-1===(c=u.indexOf(":"))?i+=n(u,!1):(i+=n(u.substr(0,c),!1),i+=":",i+=n(u.substr(c+1),!1)),i+="@"}-1===(c=(o=o.toLowerCase()).indexOf(":"))?i+=n(o,!1):(i+=n(o.substr(0,c),!1),i+=o.substr(c))}if(a){if(a.length>=3&&47===a.charCodeAt(0)&&58===a.charCodeAt(2))(d=a.charCodeAt(1))>=65&&d<=90&&(a="/"+String.fromCharCode(d+32)+":"+a.substr(3));else if(a.length>=2&&58===a.charCodeAt(1)){var d;(d=a.charCodeAt(0))>=65&&d<=90&&(a=String.fromCharCode(d+32)+":"+a.substr(2))}i+=n(a,!0)}return s&&(i+="?",i+=n(s,!1)),l&&(i+="#",i+=e?l:x(l,!1)),i}},function(t,e,n){"use strict";var i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=n(44),a=i(n(138)).default("buffer"),s=/^(g:\w+(\.\w+)*|[a-zA-Z_]\w*(\.\w+)*|\w+(#\w+)+)$/,l=/^(s:\w+(\.\w+)*|<SID>\w+(\.\w+)*)$/i,c=/^(g:\w+(\.\w+)*|b:\w+(\.\w+)*|\w{1,}(\.\w+)*|\w+(#\w+)+)$/,u=/^(s:\w+(\.\w+)*|l:\w+(\.\w+)*|a:\w+(\.\w+)*)$/,d=/^\$\w+$/,m=function(){function t(t,e,n){this.uri=t,this.projectRoot=e,this.node=n,this.globalFunctions={},this.scriptFunctions={},this.globalFunctionRefs={},this.scriptFunctionRefs={},this.globalVariables={},this.localVariables={},this.globalVariableRefs={},this.localVariableRefs={},this.envs={},this.envRefs={},this.ranges=[],this.updateBufferByNode(this.node)}return t.prototype.getGlobalFunctions=function(){return this.globalFunctions},t.prototype.getGlobalFunctionRefs=function(){return this.globalFunctionRefs},t.prototype.getScriptFunctions=function(){return this.scriptFunctions},t.prototype.getScriptFunctionRefs=function(){return this.scriptFunctionRefs},t.prototype.getGlobalIdentifiers=function(){return this.globalVariables},t.prototype.getGlobalIdentifierRefs=function(){return this.globalVariableRefs},t.prototype.getLocalIdentifiers=function(){return this.localVariables},t.prototype.getLocalIdentifierRefs=function(){return this.localVariableRefs},t.prototype.getRanges=function(){return this.ranges},t.prototype.getProjectRoot=function(){return this.projectRoot},t.prototype.isBelongToWorkdir=function(t){return this.projectRoot===t},t.prototype.updateBufferByNode=function(t){this.node=t,this.resetProperties();try{this.resolveCompletionItems([t])}catch(t){a.error(t.stack)}},t.prototype.getGlobalFunctionItems=function(){var t=this,e={};return Object.keys(this.globalFunctionRefs).forEach((function(n){t.globalFunctions[n]||(e[n]=t.globalFunctionRefs[n])})),this.getFunctionItems(this.globalFunctions,o.sortTexts.three).concat(this.getFunctionItems(e,o.sortTexts.three))},t.prototype.getScriptFunctionItems=function(){var t=this,e={};return Object.keys(this.scriptFunctionRefs).forEach((function(n){t.scriptFunctions[n]||(e[n]=t.scriptFunctionRefs[n])})),this.getFunctionItems(this.scriptFunctions,o.sortTexts.two).concat(this.getFunctionItems(e,o.sortTexts.two))},t.prototype.getGlobalIdentifierItems=function(){var t=this,e={};Object.keys(this.globalVariableRefs).forEach((function(n){t.globalVariables[n]||(e[n]=t.globalVariableRefs[n])}));var n=[],i=[];if(this.getIdentifierItems(this.globalVariables,o.sortTexts.three).concat(this.getIdentifierItems(e,o.sortTexts.three)).forEach((function(t){/^([a-zA-Z_]\w*(\.\w+)*)$/.test(t.label)?i.push(t):n.push(t)})),i.length){var r=this.getGlobalFunctions(),a=this.getScriptFunctions(),s=Object.values(r).concat(Object.values(a)).reduce((function(t,e){return t.concat(e)}),[]);i.forEach((function(t){t.data.some((function(t){return s.every((function(e){return!(e.startLine<t.startLine&&t.startLine<e.endLine)}))}))&&n.push(t)}))}return n},t.prototype.getLocalIdentifierItems=function(){var t=this,e={};return Object.keys(this.localVariableRefs).forEach((function(n){t.localVariables[n]||(e[n]=t.localVariableRefs[n])})),this.getIdentifierItems(this.localVariables,o.sortTexts.two).concat(this.getIdentifierItems(e,o.sortTexts.two)).filter((function(t){return!/^(a|l):/.test(t.label)}))},t.prototype.getFunctionLocalIdentifierItems=function(t){var e=t+1,n=-1,i=-1,a=[].concat(Object.values(this.globalFunctions).reduce((function(t,e){return t.concat(e)}),[])).concat(Object.values(this.scriptFunctions).reduce((function(t,e){return t.concat(e)}),[])).filter((function(t){return-1===n&&-1===i&&t.startLine<e&&e<t.endLine?(n=t.startLine,i=t.endLine):t.startLine>n&&i>t.endLine&&(n=t.startLine,i=t.endLine),t.startLine<e&&e<t.endLine})).reduce((function(t,e){return(e.args||[]).forEach((function(e){-1===t.indexOf(e.value)&&t.push(e.value)})),t}),[]).map((function(t){return{label:"a:"+t,kind:r.CompletionItemKind.Variable,sortText:o.sortTexts.one,insertText:"a:"+t,insertTextFormat:r.InsertTextFormat.PlainText}}));if(-1!==n&&-1!==i){var s=this.getIdentifierItems(this.localVariables,o.sortTexts.one).concat(this.getIdentifierItems(this.globalVariables,o.sortTexts.one)).filter((function(t){if(!/^l:/.test(t.label)&&!/^([a-zA-Z_]\w*(\.\w+)*)$/.test(t.label))return!1;var e=t.data;return!!e&&e.some((function(t){return n<t.startLine&&t.startLine<i}))}));return a.concat(s)}return[]},t.prototype.getEnvItems=function(){return Object.keys(this.envs).map((function(t){return{label:t,insertText:t,sortText:o.sortTexts.three,insertTextFormat:r.InsertTextFormat.PlainText}}))},t.prototype.resetProperties=function(){this.globalFunctions={},this.scriptFunctions={},this.globalFunctionRefs={},this.scriptFunctionRefs={},this.globalVariables={},this.localVariables={},this.globalVariableRefs={},this.localVariableRefs={},this.envs={},this.envRefs={},this.ranges=[]},t.prototype.resolveCompletionItems=function(t){for(var e=[].concat(t);e.length>0;){var n=e.pop();switch(n.type){case 1:e=e.concat(n.body);break;case 3:this.takeFuncRefByExcmd(n);break;case 8:case 7:case 6:case 27:case 95:e=e.concat(n.left);break;case 79:e=e.concat(n.left),this.takeIdentifier(n);break;case 28:case 29:case 31:case 32:case 10:case 11:case 12:case 33:e=e.concat(n.list||[]);break;case 34:e=(e=(e=e.concat(n.cond||[])).concat(n.left||[])).concat(n.right||[]);break;case 13:case 14:case 15:case 17:this.takeRange(n,["endif","endwhile"]),e=(e=(e=(e=e.concat(n.body||[])).concat(n.cond||[])).concat(n.elseif||[])).concat(n._else||[]);break;case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 65:case 66:case 69:case 70:case 71:case 72:case 73:case 74:case 75:case 67:case 68:case 76:case 97:e=(e=e.concat(n.left||[])).concat(n.right||[]);break;case 19:e=(e=e.concat(n.body||[])).concat(n.right||[]),this.takeFor([].concat(n.left||[]).concat(n.list||[])),this.takeRange(n,"endfor");break;case 23:case 24:case 25:this.takeRange(n,"endtry"),e=(e=(e=e.concat(n.body||[])).concat(n.catch||[])).concat(n._finally||[]);break;case 4:e=e.concat(n.body||[]),n.left&&79===n.left.type&&(e=e.concat(n.left.left)),this.takeFunction(n),this.takeRange(n,"endfunction");break;case 82:e=e.concat(n.value||[]);break;case 83:e=e.concat((n.value||[]).map((function(t){return t[1]})));break;case 77:case 92:e=(e=e.concat(n.left||[])).concat(n.rlist||[]);break;case 78:e=e.concat(n.rlist||[]),n.left&&79===n.left.type&&(e=e.concat(n.left.left)),this.takeFuncRefByRef(n),this.takeFuncRef(n);break;case 9:case 94:e=e.concat(n.right||[]),n.left&&79===n.left.type&&(e=e.concat(n.left.left)),this.takeFunctionByRef(n)||this.takeLet(n);break;case 88:case 86:this.takeIdentifier(n)}}},t.prototype.takeFunction=function(t){var e=t.left,n=t.rlist,i=t.endfunction,r=this.getDotName(e);if(r){var o=this.getDotPos(e);if(o){var a={name:r,args:n||[],startLine:o.lnum,startCol:o.col,endLine:i.pos.lnum,endCol:i.pos.col,range:{startLine:t.pos.lnum,startCol:t.pos.col,endLine:i.pos.lnum,endCol:i.pos.col}};s.test(r)?(this.globalFunctions[r]&&Array.isArray(this.globalFunctions[r])||(this.globalFunctions[r]=[]),this.globalFunctions[r].push(a)):l.test(r)&&(this.scriptFunctions[r]&&Array.isArray(this.scriptFunctions[r])||(this.scriptFunctions[r]=[]),this.scriptFunctions[r].push(a))}}},t.prototype.takeFunctionByRef=function(t){var e=t.left,n=t.right;if(n&&78===n.type&&n.left&&n.left.value&&-1!==["function","funcref"].indexOf(n.left.value)){var i=this.getDotName(e);if(i){var r=this.getDotPos(e);if(!r)return!1;var o={name:i,args:[],startLine:r.lnum,startCol:r.col,endLine:r.lnum,endCol:r.col,range:{startLine:r.lnum,startCol:r.col,endLine:r.lnum,endCol:r.col}};return s.test(i)?(this.globalFunctions[i]&&Array.isArray(this.globalFunctions[i])||(this.globalFunctions[i]=[]),this.globalFunctions[i].push(o),!0):!!l.test(i)&&(this.scriptFunctions[i]&&Array.isArray(this.scriptFunctions[i])||(this.scriptFunctions[i]=[]),this.scriptFunctions[i].push(o),!0)}}},t.prototype.takeFuncRef=function(t){var e=t.left,n=t.rlist,i="";if(86===e.type?i=e.value:87===e.type?i=(e.value||[]).map((function(t){return t.value})).join(""):79===e.type&&(i=this.getDotName(e)),i){var r=this.getDotPos(e);if(r){var o={name:i,args:n||[],startLine:r.lnum,startCol:r.col};s.test(i)?(this.globalFunctionRefs[i]&&Array.isArray(this.globalFunctionRefs[i])||(this.globalFunctionRefs[i]=[]),this.globalFunctionRefs[i].push(o)):l.test(i)&&(this.scriptFunctionRefs[i]&&Array.isArray(this.scriptFunctionRefs[i])||(this.scriptFunctionRefs[i]=[]),this.scriptFunctionRefs[i].push(o))}}},t.prototype.takeFuncRefByRef=function(t){var e=t.left,n=t.rlist,i=n&&n[0];if(e&&-1!==["function","funcref"].indexOf(e.value)&&i&&i.pos&&"string"==typeof i.value){var r=i.value.replace(/^['"]|['"]$/g,""),o={name:r,args:[],startLine:i.pos.lnum,startCol:i.pos.col+1};s.test(r)?(this.globalFunctionRefs[r]&&Array.isArray(this.globalFunctionRefs[r])||(this.globalFunctionRefs[r]=[]),this.globalFunctionRefs[r].push(o)):l.test(r)&&(this.scriptFunctionRefs[r]&&Array.isArray(this.scriptFunctionRefs[r])||(this.scriptFunctionRefs[r]=[]),this.scriptFunctionRefs[r].push(o))}},t.prototype.takeFuncRefByExcmd=function(t){var e=t.pos,n=t.str;if(n&&/^[ \t]*((au|aut|auto|autoc|autocm|autocmd|com|comm|comma|comman|command)!?[ \t]+|([a-zA-Z]*map!?[ \t]+.*?:))/.test(n))for(var i=/(<sid>[\w_#]+|[a-zA-Z_]:[\w_#]+|[\w_#]+)[ \t]*\(/gi,r=i.exec(n);r;){var o=r[1];if(o){var a={name:o,args:[],startLine:e.lnum,startCol:e.col+r.index};s.test(o)?(this.globalFunctionRefs[o]&&Array.isArray(this.globalFunctionRefs[o])||(this.globalFunctionRefs[o]=[]),this.globalFunctionRefs[o].push(a)):l.test(o)&&(this.scriptFunctionRefs[o]&&Array.isArray(this.scriptFunctionRefs[o])||(this.scriptFunctionRefs[o]=[]),this.scriptFunctionRefs[o].push(a))}r=i.exec(n)}},t.prototype.takeLet=function(t){var e=this.getDotPos(t.left),n=this.getDotName(t.left);if(e&&n){var i={name:n,startLine:e.lnum,startCol:e.col};u.test(n)?(this.localVariables[n]&&Array.isArray(this.localVariables[n])||(this.localVariables[n]=[]),this.localVariables[n].push(i)):c.test(n)?(this.globalVariables[n]&&Array.isArray(this.globalVariables[n])||(this.globalVariables[n]=[]),this.globalVariables[n].push(i)):d.test(n)&&(this.envs[n]&&Array.isArray(this.envs[n])||(this.envs[n]=[]),this.envs[n].push(i))}},t.prototype.takeRange=function(t,e){var n=this;[].concat(e).forEach((function(e){t.pos&&t[e]&&t[e].pos&&n.ranges.push({startLine:t.pos.lnum,startCol:t.pos.col,endLine:t[e].pos.lnum,endCol:t[e].pos.col})}))},t.prototype.takeFor=function(t){var e=this;t.forEach((function(t){if(86===t.type&&t.pos){var n=t.value,i={name:n,startLine:t.pos.lnum,startCol:t.pos.col};u.test(n)?(e.localVariables[n]&&Array.isArray(e.localVariables[n])||(e.localVariables[n]=[]),e.localVariables[n].push(i)):c.test(n)?(e.globalVariables[n]&&Array.isArray(e.globalVariables[n])||(e.globalVariables[n]=[]),e.globalVariables[n].push(i)):d.test(n)&&(e.envs[n]&&Array.isArray(e.envs[n])||(e.envs[n]=[]),e.envs[n].push(i))}}))},t.prototype.takeIdentifier=function(t){var e=this.getDotName(t);if(e){var n=this.getDotPos(t);if(n){var i={name:e,startLine:n.lnum,startCol:n.col};c.test(e)?(this.globalVariableRefs[e]&&Array.isArray(this.globalVariableRefs[e])||(this.globalVariableRefs[e]=[]),this.globalVariableRefs[e].push(i)):u.test(e)?(this.localVariableRefs[e]&&Array.isArray(this.localVariableRefs[e])||(this.localVariableRefs[e]=[]),this.localVariableRefs[e].push(i)):d.test(e)&&(this.envRefs[e]&&Array.isArray(this.envRefs[e])||(this.envRefs[e]=[]),this.envRefs[e].push(i))}}},t.prototype.getDotPos=function(t){if(!t)return null;if(86===t.type||88===t.type||87===t.type)return t.pos;var e=t.left;return this.getDotPos(e)},t.prototype.getDotName=function(t){if(86===t.type||81===t.type||80===t.type||88===t.type)return t.value;if(87===t.type)return(t.value||[]).map((function(t){return t.value})).join("");if(76===t.type)return this.getDotName(t.left);var e=t.left,n=t.right,i=[];return e&&i.push(this.getDotName(e)),n&&i.push(this.getDotName(n)),i.join(".")},t.prototype.getFunctionItems=function(t,e){return Object.keys(t).map((function(n){var i=t[n],o="${1}";i[0]&&i[0].args&&i[0].args.length>0&&(o=(i[0].args||[]).reduce((function(t,e,n){var i="string"!=typeof e.value?"param":e.value;return 0===n?"${"+(n+1)+":"+i+"}":t+", ${"+(n+1)+":"+i+"}"}),""));var a=n;return/^<SID>/.test(n)&&(a=n.replace(/^<SID>/,"s:")),{label:a,detail:"any",sortText:e,documentation:"User defined function",kind:r.CompletionItemKind.Function,insertText:a+"("+o+")${0}",insertTextFormat:r.InsertTextFormat.Snippet}}))},t.prototype.getIdentifierItems=function(t,e){var n=this;return Object.keys(t).filter((function(t){return!n.globalFunctions[t]&&!n.scriptFunctions[t]})).map((function(n){var i=t[n];return{label:n,kind:r.CompletionItemKind.Variable,sortText:e,documentation:"User defined variable",insertText:n,insertTextFormat:r.InsertTextFormat.PlainText,data:i||[]}}))},t}();e.Buffer=m},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(55),r=n(47),o=n(60);n(141).useProvider((function(t){return r.isSomeMatchPattern(i.featurePattern,t)?o.builtinDocs.getVimFeatures():[]}))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(55),r=n(60);n(141).useProvider((function(t){return i.highlightLinkPattern.test(t)||i.highlightValuePattern.test(t)||!i.highlightPattern.test(t)?[]:r.builtinDocs.getHighlightArgKeys().filter((function(e){return-1===t.indexOf(e.label)}))}))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(55),r=n(60);n(141).useProvider((function(t){var e=t.match(i.highlightValuePattern);if(!i.highlightLinkPattern.test(t)&&e){var n=r.builtinDocs.getHighlightArgValues(),o=e[3];if(n[o])return n[o]}return[]}))},function(t,e,n){"use strict";var i=this&&this.__assign||function(){return(i=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)},r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var o=n(55),a=n(47),s=r(n(56)),l=n(148);n(141).useProvider((function(t,e,n){if(a.isSomeMatchPattern(o.notIdentifierPattern,t))return[];if(/\b[gbsla]:\w*$/.test(t)){var r=[];return/\bg:\w*$/.test(t)?r=l.workspace.getIdentifierItems(e,n.line).filter((function(t){return/^g:/.test(t.label)})):/\bb:\w*$/.test(t)?r=l.workspace.getIdentifierItems(e,n.line).filter((function(t){return/^b:/.test(t.label)})):/\bs:\w*$/.test(t)?r=l.workspace.getIdentifierItems(e,n.line).filter((function(t){return/^s:/.test(t.label)})):/\bl:\w*$/.test(t)?r=l.workspace.getIdentifierItems(e,n.line).filter((function(t){return/^l:/.test(t.label)})):/\ba:\w*$/.test(t)&&(r=l.workspace.getIdentifierItems(e,n.line).filter((function(t){return/^a:/.test(t.label)}))),r.map((function(t){return i(i({},t),{insertText:/:/.test(s.default.iskeyword)?t.insertText:t.insertText.slice(2)})}))}return/\B:\w*$/.test(t)?l.workspace.getIdentifierItems(e,n.line).filter((function(t){return/:/.test(t.label)})).map((function(e){var r=t.match(/:[^:]*$/);return i(i({},e),{textEdit:{range:{start:{line:n.line,character:t.length-r[0].length},end:{line:n.line,character:t.length-r[0].length+1}},newText:e.insertText}})})):l.workspace.getIdentifierItems(e,n.line)}))},function(t,e,n){"use strict";var i=this&&this.__assign||function(){return(i=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)};Object.defineProperty(e,"__esModule",{value:!0});var r=n(55),o=n(60);n(141).useProvider((function(t){return r.mapCommandPattern.test(t)?/<$/.test(t)?o.builtinDocs.getVimMapArgs().map((function(t){return i(i({},t),{insertText:t.insertText.slice(1)})})):o.builtinDocs.getVimMapArgs():[]}))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(55),r=n(47),o=n(60);n(141).useProvider((function(t){return r.isSomeMatchPattern(i.optionPattern,t)?o.builtinDocs.getVimOptions():[]}))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(60);e.completionResolveProvider=function(t){return i.builtinDocs.getDocumentByCompletionItem(t)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(47),r=n(57),o=n(148);e.definitionProvider=function(t){var e=t.textDocument,n=t.position,a=r.documents.get(e.uri);if(!a)return null;var s=i.getWordFromPosition(a,n);if(!s)return null;var l=s.word;if(/\./.test(s.right)){var c=s.right.replace(/^[^.]*(\.)/,"$1");l=s.word.replace(c,"")}return o.workspace.getLocations(l,a.uri,n,"definition").locations}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(47),r=n(57),o=n(148);e.documentHighlightProvider=function(t){var e=t.textDocument,n=t.position,a=r.documents.get(e.uri);if(!a)return[];var s=i.getWordFromPosition(a,n);if(!s)return[];var l=s.word;if(/\./.test(s.right)){var c=s.right.replace(/^[^.]*(\.)/,"$1");l=s.word.replace(c,"")}var u=o.workspace.getLocationsByUri(l,a.uri,n,"definition"),d=o.workspace.getLocationsByUri(l,a.uri,n,"references");return u.locations.concat(d.locations).map((function(t){return{range:t.range}}))}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(148);e.foldingRangeProvider=function(t){var e=t.textDocument,n=i.workspace.getBufferByUri(e.uri);if(!n)return[];var r=n.getGlobalFunctions(),o=n.getScriptFunctions();return Object.values(r).concat(Object.values(o)).reduce((function(t,e){return t.concat(e)}),[]).map((function(t){return{startLine:t.startLine-1,startCharacter:t.startCol-1,endLine:t.endLine-1,endCharacter:t.endCol-1,kind:"region"}}))}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(47),r=n(60),o=n(57);e.hoverProvider=function(t){var e=t.textDocument,n=t.position,a=o.documents.get(e.uri);if(a){var s=i.getWordFromPosition(a,n);if(s)return r.builtinDocs.getHoverDocument(s.word,s.wordLeft,s.wordRight)}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(47),r=n(57),o=n(148);e.referencesProvider=function(t){var e=t.textDocument,n=t.position,a=r.documents.get(e.uri);if(!a)return null;var s=i.getWordFromPosition(a,n);if(!s)return null;var l=s.word;if(/\./.test(s.right)){var c=s.right.replace(/^[^.]*(\.)/,"$1");l=s.word.replace(c,"")}return o.workspace.getLocations(l,a.uri,n,"references").locations}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),r=n(47),o=n(57),a=n(148);e.prepareProvider=function(t){var e=t.textDocument,n=t.position,a=o.documents.get(e.uri);if(!a)return null;var s=r.getWordFromPosition(a,n);if(!s)return null;var l=s.word;if(/\./.test(s.right)){var c=s.right.replace(/^[^.]*(\.)/,"$1");l=s.word.replace(c,"")}return{range:i.Range.create(i.Position.create(n.line,n.character-s.left.length),i.Position.create(n.line,n.character+s.right.length-1)),placeholder:l}},e.renameProvider=function(t){var e=t.textDocument,n=t.position,i=t.newName,s=o.documents.get(e.uri);if(!s)return null;var l=r.getWordFromPosition(s,n);if(!l)return null;var c=l.word;if(/\./.test(l.right)){var u=l.right.replace(/^[^.]*(\.)/,"$1");c=l.word.replace(u,"")}var d={},m=!1;a.workspace.getLocations(c,s.uri,n,"definition").locations.forEach((function(t){m=!0,d[t.uri]&&Array.isArray(d[t.uri])||(d[t.uri]=[]),d[t.uri].push({newText:/^a:/.test(i)?i.slice(2):i,range:t.range})}));var h=a.workspace.getLocations(c,s.uri,n,"references");return h.locations.forEach((function(t){m=!0,d[t.uri]&&Array.isArray(d[t.uri])||(d[t.uri]=[]),d[t.uri].push({newText:h.isFunArg?"a:"+i:i,range:t.range})})),m?{changes:d}:null}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),r=n(55),o=n(60),a=n(57);e.signatureHelpProvider=function(t){var e=t.textDocument,n=t.position,s=a.documents.get(e.uri);if(s){var l=s.getText(i.Range.create(i.Position.create(n.line,0),i.Position.create(n.line+1,0)));if(!r.commentPattern.test(l)){var c=l.slice(0,n.character).match(/([\w#&:]+)[ \t]*\(([^()]*|\([^)]*\))*$/);if(c){var u=c[1],d=c[0].split(",").length-1;return o.builtinDocs.getSignatureHelpByName(u,d)}}}}},function(t,e,n){"use strict";var i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var r,o=i(n(41)),a=n(13),s=n(166),l=n(268),c=n(269),u=n(149),d=i(n(138)),m=n(47),h=n(367),p=i(n(56)),f=n(148),g=d.default("parser"),b={},x={},w=new s.Subject,T=!1;function _(){r||((r=o.default.fork(a.join(__dirname,"scan.js"),["--node-ipc"])).on("message",(function(t){var e=t.data,n=t.msglog;e&&(f.workspace.isExistsBuffer(e.uri)||f.workspace.updateBuffer(e.uri,e.node)),n&&g.info("child_log: "+n)})),r.on("error",(function(t){g.error(""+(t.stack||t.message||t))})),r.send({config:{gap:p.default.indexes.gap,count:p.default.indexes.count,projectRootPatterns:p.default.indexes.projectRootPatterns}}))}function y(t){if(r||_(),p.default.indexes.runtimepath)for(var e=0,n=[].concat(t);e<n.length;e++){var i=n[e];i&&((i=i.trim())&&"/"!==i&&r.send({uri:u.URI.file(a.join(i,"f")).toString()}))}}e.next=function(t){if(!b[t.uri]){var e=t.uri;b[e]=w.pipe(c.filter((function(t){return e===t.uri})),c.switchMap((function(t){return s.timer(100).pipe(c.map((function(){return t})))})),l.waitMap((function(t){return s.from(m.handleParse(t))}),!0)).subscribe((function(n){p.default.diagnostic.enable&&h.handleDiagnostic(t,n[1]),f.workspace.updateBuffer(e,n[0]),x[e]||(x[e]=!0,r.send({uri:e}),T||(T=!0,y([p.default.vimruntime].concat(p.default.runtimepath))))}),(function(t){g.error(""+(t.stack||t.message||t))}))}r||_(),w.next(t)},e.unsubscribe=function(t){void 0!==b[t.uri]&&b[t.uri].unsubscribe(),b[t.uri]=void 0},e.scan=y},function(t,e,n){"use strict";n.r(e);var i=n(167);n.d(e,"Observable",(function(){return i.Observable}));var r=n(184);n.d(e,"ConnectableObservable",(function(){return r.ConnectableObservable}));var o=n(189);n.d(e,"GroupedObservable",(function(){return o.GroupedObservable}));var a=n(181);n.d(e,"observable",(function(){return a.observable}));var s=n(185);n.d(e,"Subject",(function(){return s.Subject}));var l=n(190);n.d(e,"BehaviorSubject",(function(){return l.BehaviorSubject}));var c=n(191);n.d(e,"ReplaySubject",(function(){return c.ReplaySubject}));var u=n(208);n.d(e,"AsyncSubject",(function(){return u.AsyncSubject}));var d=n(209);n.d(e,"asapScheduler",(function(){return d.asap}));var m=n(213);n.d(e,"asyncScheduler",(function(){return m.async}));var h=n(192);n.d(e,"queueScheduler",(function(){return h.queue}));var p=n(214);n.d(e,"animationFrameScheduler",(function(){return p.animationFrame}));var f=n(217);n.d(e,"VirtualTimeScheduler",(function(){return f.VirtualTimeScheduler})),n.d(e,"VirtualAction",(function(){return f.VirtualAction}));var g=n(198);n.d(e,"Scheduler",(function(){return g.Scheduler}));var b=n(175);n.d(e,"Subscription",(function(){return b.Subscription}));var x=n(169);n.d(e,"Subscriber",(function(){return x.Subscriber}));var w=n(200);n.d(e,"Notification",(function(){return w.Notification})),n.d(e,"NotificationKind",(function(){return w.NotificationKind}));var T=n(182);n.d(e,"pipe",(function(){return T.pipe}));var _=n(218);n.d(e,"noop",(function(){return _.noop}));var y=n(183);n.d(e,"identity",(function(){return y.identity}));var v=n(219);n.d(e,"isObservable",(function(){return v.isObservable}));var k=n(220);n.d(e,"ArgumentOutOfRangeError",(function(){return k.ArgumentOutOfRangeError}));var R=n(221);n.d(e,"EmptyError",(function(){return R.EmptyError}));var F=n(186);n.d(e,"ObjectUnsubscribedError",(function(){return F.ObjectUnsubscribedError}));var A=n(178);n.d(e,"UnsubscriptionError",(function(){return A.UnsubscriptionError}));var E=n(222);n.d(e,"TimeoutError",(function(){return E.TimeoutError}));var N=n(223);n.d(e,"bindCallback",(function(){return N.bindCallback}));var S=n(225);n.d(e,"bindNodeCallback",(function(){return S.bindNodeCallback}));var C=n(226);n.d(e,"combineLatest",(function(){return C.combineLatest}));var O=n(237);n.d(e,"concat",(function(){return O.concat}));var L=n(248);n.d(e,"defer",(function(){return L.defer}));var I=n(201);n.d(e,"empty",(function(){return I.empty}));var $=n(249);n.d(e,"forkJoin",(function(){return $.forkJoin}));var D=n(241);n.d(e,"from",(function(){return D.from}));var W=n(250);n.d(e,"fromEvent",(function(){return W.fromEvent}));var G=n(251);n.d(e,"fromEventPattern",(function(){return G.fromEventPattern}));var M=n(252);n.d(e,"generate",(function(){return M.generate}));var P=n(253);n.d(e,"iif",(function(){return P.iif}));var B=n(254);n.d(e,"interval",(function(){return B.interval}));var j=n(256);n.d(e,"merge",(function(){return j.merge}));var U=n(257);n.d(e,"never",(function(){return U.never}));var q=n(202);n.d(e,"of",(function(){return q.of}));var V=n(258);n.d(e,"onErrorResumeNext",(function(){return V.onErrorResumeNext}));var z=n(259);n.d(e,"pairs",(function(){return z.pairs}));var H=n(260);n.d(e,"partition",(function(){return H.partition}));var X=n(263);n.d(e,"race",(function(){return X.race}));var K=n(264);n.d(e,"range",(function(){return K.range}));var Y=n(207);n.d(e,"throwError",(function(){return Y.throwError}));var Z=n(265);n.d(e,"timer",(function(){return Z.timer}));var J=n(266);n.d(e,"using",(function(){return J.using}));var Q=n(267);n.d(e,"zip",(function(){return Q.zip}));var tt=n(242);n.d(e,"scheduled",(function(){return tt.scheduled})),n.d(e,"EMPTY",(function(){return I.EMPTY})),n.d(e,"NEVER",(function(){return U.NEVER}));var et=n(173);n.d(e,"config",(function(){return et.config}))},function(t,e,n){"use strict";n.r(e),n.d(e,"Observable",(function(){return l}));var i=n(168),r=n(180),o=n(181),a=n(182),s=n(173),l=function(){function t(t){this._isScalar=!1,t&&(this._subscribe=t)}return t.prototype.lift=function(e){var n=new t;return n.source=this,n.operator=e,n},t.prototype.subscribe=function(t,e,n){var i=this.operator,o=Object(r.toSubscriber)(t,e,n);if(i?o.add(i.call(o,this.source)):o.add(this.source||s.config.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),s.config.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o},t.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(e){s.config.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=e),Object(i.canReportError)(t)?t.error(e):console.warn(e)}},t.prototype.forEach=function(t,e){var n=this;return new(e=c(e))((function(e,i){var r;r=n.subscribe((function(e){try{t(e)}catch(t){i(t),r&&r.unsubscribe()}}),i,e)}))},t.prototype._subscribe=function(t){var e=this.source;return e&&e.subscribe(t)},t.prototype[o.observable]=function(){return this},t.prototype.pipe=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return 0===t.length?this:Object(a.pipeFromArray)(t)(this)},t.prototype.toPromise=function(t){var e=this;return new(t=c(t))((function(t,n){var i;e.subscribe((function(t){return i=t}),(function(t){return n(t)}),(function(){return t(i)}))}))},t.create=function(e){return new t(e)},t}();function c(t){if(t||(t=s.config.Promise||Promise),!t)throw new Error("no Promise impl found");return t}},function(t,e,n){"use strict";n.r(e),n.d(e,"canReportError",(function(){return r}));var i=n(169);function r(t){for(;t;){var e=t,n=e.closed,r=e.destination,o=e.isStopped;if(n||o)return!1;t=r&&r instanceof i.Subscriber?r:null}return!0}},function(t,e,n){"use strict";n.r(e),n.d(e,"Subscriber",(function(){return u})),n.d(e,"SafeSubscriber",(function(){return d}));var i=n(170),r=n(171),o=n(172),a=n(175),s=n(179),l=n(173),c=n(174),u=function(t){function e(n,i,r){var a=t.call(this)||this;switch(a.syncErrorValue=null,a.syncErrorThrown=!1,a.syncErrorThrowable=!1,a.isStopped=!1,arguments.length){case 0:a.destination=o.empty;break;case 1:if(!n){a.destination=o.empty;break}if("object"==typeof n){n instanceof e?(a.syncErrorThrowable=n.syncErrorThrowable,a.destination=n,n.add(a)):(a.syncErrorThrowable=!0,a.destination=new d(a,n));break}default:a.syncErrorThrowable=!0,a.destination=new d(a,n,i,r)}return a}return i.__extends(e,t),e.prototype[s.rxSubscriber]=function(){return this},e.create=function(t,n,i){var r=new e(t,n,i);return r.syncErrorThrowable=!1,r},e.prototype.next=function(t){this.isStopped||this._next(t)},e.prototype.error=function(t){this.isStopped||(this.isStopped=!0,this._error(t))},e.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this))},e.prototype._next=function(t){this.destination.next(t)},e.prototype._error=function(t){this.destination.error(t),this.unsubscribe()},e.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},e.prototype._unsubscribeAndRecycle=function(){var t=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=t,this},e}(a.Subscription),d=function(t){function e(e,n,i,a){var s,l=t.call(this)||this;l._parentSubscriber=e;var c=l;return Object(r.isFunction)(n)?s=n:n&&(s=n.next,i=n.error,a=n.complete,n!==o.empty&&(c=Object.create(n),Object(r.isFunction)(c.unsubscribe)&&l.add(c.unsubscribe.bind(c)),c.unsubscribe=l.unsubscribe.bind(l))),l._context=c,l._next=s,l._error=i,l._complete=a,l}return i.__extends(e,t),e.prototype.next=function(t){if(!this.isStopped&&this._next){var e=this._parentSubscriber;l.config.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}},e.prototype.error=function(t){if(!this.isStopped){var e=this._parentSubscriber,n=l.config.useDeprecatedSynchronousErrorHandling;if(this._error)n&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(e.syncErrorThrowable)n?(e.syncErrorValue=t,e.syncErrorThrown=!0):Object(c.hostReportError)(t),this.unsubscribe();else{if(this.unsubscribe(),n)throw t;Object(c.hostReportError)(t)}}},e.prototype.complete=function(){var t=this;if(!this.isStopped){var e=this._parentSubscriber;if(this._complete){var n=function(){return t._complete.call(t._context)};l.config.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}},e.prototype.__tryOrUnsub=function(t,e){try{t.call(this._context,e)}catch(t){if(this.unsubscribe(),l.config.useDeprecatedSynchronousErrorHandling)throw t;Object(c.hostReportError)(t)}},e.prototype.__tryOrSetError=function(t,e,n){if(!l.config.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{e.call(this._context,n)}catch(e){return l.config.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=e,t.syncErrorThrown=!0,!0):(Object(c.hostReportError)(e),!0)}return!1},e.prototype._unsubscribe=function(){var t=this._parentSubscriber;this._context=null,this._parentSubscriber=null,t.unsubscribe()},e}(u)},function(t,e,n){"use strict";n.r(e),n.d(e,"__extends",(function(){return r})),n.d(e,"__assign",(function(){return o})),n.d(e,"__rest",(function(){return a})),n.d(e,"__decorate",(function(){return s})),n.d(e,"__param",(function(){return l})),n.d(e,"__metadata",(function(){return c})),n.d(e,"__awaiter",(function(){return u})),n.d(e,"__generator",(function(){return d})),n.d(e,"__exportStar",(function(){return m})),n.d(e,"__values",(function(){return h})),n.d(e,"__read",(function(){return p})),n.d(e,"__spread",(function(){return f})),n.d(e,"__spreadArrays",(function(){return g})),n.d(e,"__await",(function(){return b})),n.d(e,"__asyncGenerator",(function(){return x})),n.d(e,"__asyncDelegator",(function(){return w})),n.d(e,"__asyncValues",(function(){return T})),n.d(e,"__makeTemplateObject",(function(){return _})),n.d(e,"__importStar",(function(){return y})),n.d(e,"__importDefault",(function(){return v}));
  35. /*! *****************************************************************************
  36. Copyright (c) Microsoft Corporation. All rights reserved.
  37. Licensed under the Apache License, Version 2.0 (the "License"); you may not use
  38. this file except in compliance with the License. You may obtain a copy of the
  39. License at http://www.apache.org/licenses/LICENSE-2.0
  40. THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  41. KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
  42. WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
  43. MERCHANTABLITY OR NON-INFRINGEMENT.
  44. See the Apache Version 2.0 License for specific language governing permissions
  45. and limitations under the License.
  46. ***************************************************************************** */
  47. var i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function r(t,e){function n(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var o=function(){return(o=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)};function a(t,e){var n={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.indexOf(i)<0&&(n[i]=t[i]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(t);r<i.length;r++)e.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(t,i[r])&&(n[i[r]]=t[i[r]])}return n}function s(t,e,n,i){var r,o=arguments.length,a=o<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,i);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(a=(o<3?r(a):o>3?r(e,n,a):r(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a}function l(t,e){return function(n,i){e(n,i,t)}}function c(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}function u(t,e,n,i){return new(n||(n=Promise))((function(r,o){function a(t){try{l(i.next(t))}catch(t){o(t)}}function s(t){try{l(i.throw(t))}catch(t){o(t)}}function l(t){t.done?r(t.value):new n((function(e){e(t.value)})).then(a,s)}l((i=i.apply(t,e||[])).next())}))}function d(t,e){var n,i,r,o,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,i&&(r=2&o[0]?i.return:o[0]?i.throw||((r=i.return)&&r.call(i),0):i.next)&&!(r=r.call(i,o[1])).done)return r;switch(i=0,r&&(o=[2&o[0],r.value]),o[0]){case 0:case 1:r=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,i=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]<r[3])){a.label=o[1];break}if(6===o[0]&&a.label<r[1]){a.label=r[1],r=o;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(o);break}r[2]&&a.ops.pop(),a.trys.pop();continue}o=e.call(t,a)}catch(t){o=[6,t],i=0}finally{n=r=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}}function m(t,e){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}function h(t){var e="function"==typeof Symbol&&t[Symbol.iterator],n=0;return e?e.call(t):{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}}}function p(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var i,r,o=n.call(t),a=[];try{for(;(void 0===e||e-- >0)&&!(i=o.next()).done;)a.push(i.value)}catch(t){r={error:t}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}return a}function f(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(p(arguments[e]));return t}function g(){for(var t=0,e=0,n=arguments.length;e<n;e++)t+=arguments[e].length;var i=Array(t),r=0;for(e=0;e<n;e++)for(var o=arguments[e],a=0,s=o.length;a<s;a++,r++)i[r]=o[a];return i}function b(t){return this instanceof b?(this.v=t,this):new b(t)}function x(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i,r=n.apply(t,e||[]),o=[];return i={},a("next"),a("throw"),a("return"),i[Symbol.asyncIterator]=function(){return this},i;function a(t){r[t]&&(i[t]=function(e){return new Promise((function(n,i){o.push([t,e,n,i])>1||s(t,e)}))})}function s(t,e){try{(n=r[t](e)).value instanceof b?Promise.resolve(n.value.v).then(l,c):u(o[0][2],n)}catch(t){u(o[0][3],t)}var n}function l(t){s("next",t)}function c(t){s("throw",t)}function u(t,e){t(e),o.shift(),o.length&&s(o[0][0],o[0][1])}}function w(t){var e,n;return e={},i("next"),i("throw",(function(t){throw t})),i("return"),e[Symbol.iterator]=function(){return this},e;function i(i,r){e[i]=t[i]?function(e){return(n=!n)?{value:b(t[i](e)),done:"return"===i}:r?r(e):e}:r}}function T(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t=h(t),e={},i("next"),i("throw"),i("return"),e[Symbol.asyncIterator]=function(){return this},e);function i(n){e[n]=t[n]&&function(e){return new Promise((function(i,r){(function(t,e,n,i){Promise.resolve(i).then((function(e){t({value:e,done:n})}),e)})(i,r,(e=t[n](e)).done,e.value)}))}}}function _(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}function y(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function v(t){return t&&t.__esModule?t:{default:t}}},function(t,e,n){"use strict";function i(t){return"function"==typeof t}n.r(e),n.d(e,"isFunction",(function(){return i}))},function(t,e,n){"use strict";n.r(e),n.d(e,"empty",(function(){return o}));var i=n(173),r=n(174),o={closed:!0,next:function(t){},error:function(t){if(i.config.useDeprecatedSynchronousErrorHandling)throw t;Object(r.hostReportError)(t)},complete:function(){}}},function(t,e,n){"use strict";n.r(e),n.d(e,"config",(function(){return r}));var i=!1,r={Promise:void 0,set useDeprecatedSynchronousErrorHandling(t){t&&(new Error).stack;i=t},get useDeprecatedSynchronousErrorHandling(){return i}}},function(t,e,n){"use strict";function i(t){setTimeout((function(){throw t}),0)}n.r(e),n.d(e,"hostReportError",(function(){return i}))},function(t,e,n){"use strict";n.r(e),n.d(e,"Subscription",(function(){return s}));var i=n(176),r=n(177),o=n(171),a=n(178),s=function(){function t(t){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}var e;return t.prototype.unsubscribe=function(){var e;if(!this.closed){var n=this._parentOrParents,s=this._unsubscribe,c=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof t)n.remove(this);else if(null!==n)for(var u=0;u<n.length;++u){n[u].remove(this)}if(Object(o.isFunction)(s))try{s.call(this)}catch(t){e=t instanceof a.UnsubscriptionError?l(t.errors):[t]}if(Object(i.isArray)(c)){u=-1;for(var d=c.length;++u<d;){var m=c[u];if(Object(r.isObject)(m))try{m.unsubscribe()}catch(t){e=e||[],t instanceof a.UnsubscriptionError?e=e.concat(l(t.errors)):e.push(t)}}}if(e)throw new a.UnsubscriptionError(e)}},t.prototype.add=function(e){var n=e;if(!e)return t.EMPTY;switch(typeof e){case"function":n=new t(e);case"object":if(n===this||n.closed||"function"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof t)){var i=n;(n=new t)._subscriptions=[i]}break;default:throw new Error("unrecognized teardown "+e+" added to Subscription.")}var r=n._parentOrParents;if(null===r)n._parentOrParents=this;else if(r instanceof t){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}var o=this._subscriptions;return null===o?this._subscriptions=[n]:o.push(n),n},t.prototype.remove=function(t){var e=this._subscriptions;if(e){var n=e.indexOf(t);-1!==n&&e.splice(n,1)}},t.EMPTY=((e=new t).closed=!0,e),t}();function l(t){return t.reduce((function(t,e){return t.concat(e instanceof a.UnsubscriptionError?e.errors:e)}),[])}},function(t,e,n){"use strict";n.r(e),n.d(e,"isArray",(function(){return i}));var i=function(){return Array.isArray||function(t){return t&&"number"==typeof t.length}}()},function(t,e,n){"use strict";function i(t){return null!==t&&"object"==typeof t}n.r(e),n.d(e,"isObject",(function(){return i}))},function(t,e,n){"use strict";n.r(e),n.d(e,"UnsubscriptionError",(function(){return i}));var i=function(){function t(t){return Error.call(this),this.message=t?t.length+" errors occurred during unsubscription:\n"+t.map((function(t,e){return e+1+") "+t.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=t,this}return t.prototype=Object.create(Error.prototype),t}()},function(t,e,n){"use strict";n.r(e),n.d(e,"rxSubscriber",(function(){return i})),n.d(e,"$$rxSubscriber",(function(){return r}));var i=function(){return"function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random()}(),r=i},function(t,e,n){"use strict";n.r(e),n.d(e,"toSubscriber",(function(){return a}));var i=n(169),r=n(179),o=n(172);function a(t,e,n){if(t){if(t instanceof i.Subscriber)return t;if(t[r.rxSubscriber])return t[r.rxSubscriber]()}return t||e||n?new i.Subscriber(t,e,n):new i.Subscriber(o.empty)}},function(t,e,n){"use strict";n.r(e),n.d(e,"observable",(function(){return i}));var i=function(){return"function"==typeof Symbol&&Symbol.observable||"@@observable"}()},function(t,e,n){"use strict";n.r(e),n.d(e,"pipe",(function(){return r})),n.d(e,"pipeFromArray",(function(){return o}));var i=n(183);function r(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return o(t)}function o(t){return 0===t.length?i.identity:1===t.length?t[0]:function(e){return t.reduce((function(t,e){return e(t)}),e)}}},function(t,e,n){"use strict";function i(t){return t}n.r(e),n.d(e,"identity",(function(){return i}))},function(t,e,n){"use strict";n.r(e),n.d(e,"ConnectableObservable",(function(){return c})),n.d(e,"connectableObservableDescriptor",(function(){return u}));var i=n(170),r=n(185),o=n(167),a=n(169),s=n(175),l=n(188),c=function(t){function e(e,n){var i=t.call(this)||this;return i.source=e,i.subjectFactory=n,i._refCount=0,i._isComplete=!1,i}return i.__extends(e,t),e.prototype._subscribe=function(t){return this.getSubject().subscribe(t)},e.prototype.getSubject=function(){var t=this._subject;return t&&!t.isStopped||(this._subject=this.subjectFactory()),this._subject},e.prototype.connect=function(){var t=this._connection;return t||(this._isComplete=!1,(t=this._connection=new s.Subscription).add(this.source.subscribe(new d(this.getSubject(),this))),t.closed&&(this._connection=null,t=s.Subscription.EMPTY)),t},e.prototype.refCount=function(){return Object(l.refCount)()(this)},e}(o.Observable),u=function(){var t=c.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:t._subscribe},_isComplete:{value:t._isComplete,writable:!0},getSubject:{value:t.getSubject},connect:{value:t.connect},refCount:{value:t.refCount}}}(),d=function(t){function e(e,n){var i=t.call(this,e)||this;return i.connectable=n,i}return i.__extends(e,t),e.prototype._error=function(e){this._unsubscribe(),t.prototype._error.call(this,e)},e.prototype._complete=function(){this.connectable._isComplete=!0,this._unsubscribe(),t.prototype._complete.call(this)},e.prototype._unsubscribe=function(){var t=this.connectable;if(t){this.connectable=null;var e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}},e}(r.SubjectSubscriber);a.Subscriber},function(t,e,n){"use strict";n.r(e),n.d(e,"SubjectSubscriber",(function(){return u})),n.d(e,"Subject",(function(){return d})),n.d(e,"AnonymousSubject",(function(){return m}));var i=n(170),r=n(167),o=n(169),a=n(175),s=n(186),l=n(187),c=n(179),u=function(t){function e(e){var n=t.call(this,e)||this;return n.destination=e,n}return i.__extends(e,t),e}(o.Subscriber),d=function(t){function e(){var e=t.call(this)||this;return e.observers=[],e.closed=!1,e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return i.__extends(e,t),e.prototype[c.rxSubscriber]=function(){return new u(this)},e.prototype.lift=function(t){var e=new m(this,this);return e.operator=t,e},e.prototype.next=function(t){if(this.closed)throw new s.ObjectUnsubscribedError;if(!this.isStopped)for(var e=this.observers,n=e.length,i=e.slice(),r=0;r<n;r++)i[r].next(t)},e.prototype.error=function(t){if(this.closed)throw new s.ObjectUnsubscribedError;this.hasError=!0,this.thrownError=t,this.isStopped=!0;for(var e=this.observers,n=e.length,i=e.slice(),r=0;r<n;r++)i[r].error(t);this.observers.length=0},e.prototype.complete=function(){if(this.closed)throw new s.ObjectUnsubscribedError;this.isStopped=!0;for(var t=this.observers,e=t.length,n=t.slice(),i=0;i<e;i++)n[i].complete();this.observers.length=0},e.prototype.unsubscribe=function(){this.isStopped=!0,this.closed=!0,this.observers=null},e.prototype._trySubscribe=function(e){if(this.closed)throw new s.ObjectUnsubscribedError;return t.prototype._trySubscribe.call(this,e)},e.prototype._subscribe=function(t){if(this.closed)throw new s.ObjectUnsubscribedError;return this.hasError?(t.error(this.thrownError),a.Subscription.EMPTY):this.isStopped?(t.complete(),a.Subscription.EMPTY):(this.observers.push(t),new l.SubjectSubscription(this,t))},e.prototype.asObservable=function(){var t=new r.Observable;return t.source=this,t},e.create=function(t,e){return new m(t,e)},e}(r.Observable),m=function(t){function e(e,n){var i=t.call(this)||this;return i.destination=e,i.source=n,i}return i.__extends(e,t),e.prototype.next=function(t){var e=this.destination;e&&e.next&&e.next(t)},e.prototype.error=function(t){var e=this.destination;e&&e.error&&this.destination.error(t)},e.prototype.complete=function(){var t=this.destination;t&&t.complete&&this.destination.complete()},e.prototype._subscribe=function(t){return this.source?this.source.subscribe(t):a.Subscription.EMPTY},e}(d)},function(t,e,n){"use strict";n.r(e),n.d(e,"ObjectUnsubscribedError",(function(){return i}));var i=function(){function t(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return t.prototype=Object.create(Error.prototype),t}()},function(t,e,n){"use strict";n.r(e),n.d(e,"SubjectSubscription",(function(){return r}));var i=n(170),r=function(t){function e(e,n){var i=t.call(this)||this;return i.subject=e,i.subscriber=n,i.closed=!1,i}return i.__extends(e,t),e.prototype.unsubscribe=function(){if(!this.closed){this.closed=!0;var t=this.subject,e=t.observers;if(this.subject=null,e&&0!==e.length&&!t.isStopped&&!t.closed){var n=e.indexOf(this.subscriber);-1!==n&&e.splice(n,1)}}},e}(n(175).Subscription)},function(t,e,n){"use strict";n.r(e),n.d(e,"refCount",(function(){return o}));var i=n(170),r=n(169);function o(){return function(t){return t.lift(new a(t))}}var a=function(){function t(t){this.connectable=t}return t.prototype.call=function(t,e){var n=this.connectable;n._refCount++;var i=new s(t,n),r=e.subscribe(i);return i.closed||(i.connection=n.connect()),r},t}(),s=function(t){function e(e,n){var i=t.call(this,e)||this;return i.connectable=n,i}return i.__extends(e,t),e.prototype._unsubscribe=function(){var t=this.connectable;if(t){this.connectable=null;var e=t._refCount;if(e<=0)this.connection=null;else if(t._refCount=e-1,e>1)this.connection=null;else{var n=this.connection,i=t._connection;this.connection=null,!i||n&&i!==n||i.unsubscribe()}}else this.connection=null},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"groupBy",(function(){return l})),n.d(e,"GroupedObservable",(function(){return m}));var i=n(170),r=n(169),o=n(175),a=n(167),s=n(185);function l(t,e,n,i){return function(r){return r.lift(new c(t,e,n,i))}}var c=function(){function t(t,e,n,i){this.keySelector=t,this.elementSelector=e,this.durationSelector=n,this.subjectSelector=i}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.keySelector,this.elementSelector,this.durationSelector,this.subjectSelector))},t}(),u=function(t){function e(e,n,i,r,o){var a=t.call(this,e)||this;return a.keySelector=n,a.elementSelector=i,a.durationSelector=r,a.subjectSelector=o,a.groups=null,a.attemptedToUnsubscribe=!1,a.count=0,a}return i.__extends(e,t),e.prototype._next=function(t){var e;try{e=this.keySelector(t)}catch(t){return void this.error(t)}this._group(t,e)},e.prototype._group=function(t,e){var n=this.groups;n||(n=this.groups=new Map);var i,r=n.get(e);if(this.elementSelector)try{i=this.elementSelector(t)}catch(t){this.error(t)}else i=t;if(!r){r=this.subjectSelector?this.subjectSelector():new s.Subject,n.set(e,r);var o=new m(e,r,this);if(this.destination.next(o),this.durationSelector){var a=void 0;try{a=this.durationSelector(new m(e,r))}catch(t){return void this.error(t)}this.add(a.subscribe(new d(e,r,this)))}}r.closed||r.next(i)},e.prototype._error=function(t){var e=this.groups;e&&(e.forEach((function(e,n){e.error(t)})),e.clear()),this.destination.error(t)},e.prototype._complete=function(){var t=this.groups;t&&(t.forEach((function(t,e){t.complete()})),t.clear()),this.destination.complete()},e.prototype.removeGroup=function(t){this.groups.delete(t)},e.prototype.unsubscribe=function(){this.closed||(this.attemptedToUnsubscribe=!0,0===this.count&&t.prototype.unsubscribe.call(this))},e}(r.Subscriber),d=function(t){function e(e,n,i){var r=t.call(this,n)||this;return r.key=e,r.group=n,r.parent=i,r}return i.__extends(e,t),e.prototype._next=function(t){this.complete()},e.prototype._unsubscribe=function(){var t=this.parent,e=this.key;this.key=this.parent=null,t&&t.removeGroup(e)},e}(r.Subscriber),m=function(t){function e(e,n,i){var r=t.call(this)||this;return r.key=e,r.groupSubject=n,r.refCountSubscription=i,r}return i.__extends(e,t),e.prototype._subscribe=function(t){var e=new o.Subscription,n=this.refCountSubscription,i=this.groupSubject;return n&&!n.closed&&e.add(new h(n)),e.add(i.subscribe(t)),e},e}(a.Observable),h=function(t){function e(e){var n=t.call(this)||this;return n.parent=e,e.count++,n}return i.__extends(e,t),e.prototype.unsubscribe=function(){var e=this.parent;e.closed||this.closed||(t.prototype.unsubscribe.call(this),e.count-=1,0===e.count&&e.attemptedToUnsubscribe&&e.unsubscribe())},e}(o.Subscription)},function(t,e,n){"use strict";n.r(e),n.d(e,"BehaviorSubject",(function(){return a}));var i=n(170),r=n(185),o=n(186),a=function(t){function e(e){var n=t.call(this)||this;return n._value=e,n}return i.__extends(e,t),Object.defineProperty(e.prototype,"value",{get:function(){return this.getValue()},enumerable:!0,configurable:!0}),e.prototype._subscribe=function(e){var n=t.prototype._subscribe.call(this,e);return n&&!n.closed&&e.next(this._value),n},e.prototype.getValue=function(){if(this.hasError)throw this.thrownError;if(this.closed)throw new o.ObjectUnsubscribedError;return this._value},e.prototype.next=function(e){t.prototype.next.call(this,this._value=e)},e}(r.Subject)},function(t,e,n){"use strict";n.r(e),n.d(e,"ReplaySubject",(function(){return u}));var i=n(170),r=n(185),o=n(192),a=n(175),s=n(199),l=n(186),c=n(187),u=function(t){function e(e,n,i){void 0===e&&(e=Number.POSITIVE_INFINITY),void 0===n&&(n=Number.POSITIVE_INFINITY);var r=t.call(this)||this;return r.scheduler=i,r._events=[],r._infiniteTimeWindow=!1,r._bufferSize=e<1?1:e,r._windowTime=n<1?1:n,n===Number.POSITIVE_INFINITY?(r._infiniteTimeWindow=!0,r.next=r.nextInfiniteTimeWindow):r.next=r.nextTimeWindow,r}return i.__extends(e,t),e.prototype.nextInfiniteTimeWindow=function(e){var n=this._events;n.push(e),n.length>this._bufferSize&&n.shift(),t.prototype.next.call(this,e)},e.prototype.nextTimeWindow=function(e){this._events.push(new d(this._getNow(),e)),this._trimBufferThenGetEvents(),t.prototype.next.call(this,e)},e.prototype._subscribe=function(t){var e,n=this._infiniteTimeWindow,i=n?this._events:this._trimBufferThenGetEvents(),r=this.scheduler,o=i.length;if(this.closed)throw new l.ObjectUnsubscribedError;if(this.isStopped||this.hasError?e=a.Subscription.EMPTY:(this.observers.push(t),e=new c.SubjectSubscription(this,t)),r&&t.add(t=new s.ObserveOnSubscriber(t,r)),n)for(var u=0;u<o&&!t.closed;u++)t.next(i[u]);else for(u=0;u<o&&!t.closed;u++)t.next(i[u].value);return this.hasError?t.error(this.thrownError):this.isStopped&&t.complete(),e},e.prototype._getNow=function(){return(this.scheduler||o.queue).now()},e.prototype._trimBufferThenGetEvents=function(){for(var t=this._getNow(),e=this._bufferSize,n=this._windowTime,i=this._events,r=i.length,o=0;o<r&&!(t-i[o].time<n);)o++;return r>e&&(o=Math.max(o,r-e)),o>0&&i.splice(0,o),i},e}(r.Subject),d=function(){return function(t,e){this.time=t,this.value=e}}()},function(t,e,n){"use strict";n.r(e),n.d(e,"queue",(function(){return r}));var i=n(193),r=new(n(196).QueueScheduler)(i.QueueAction)},function(t,e,n){"use strict";n.r(e),n.d(e,"QueueAction",(function(){return r}));var i=n(170),r=function(t){function e(e,n){var i=t.call(this,e,n)||this;return i.scheduler=e,i.work=n,i}return i.__extends(e,t),e.prototype.schedule=function(e,n){return void 0===n&&(n=0),n>0?t.prototype.schedule.call(this,e,n):(this.delay=n,this.state=e,this.scheduler.flush(this),this)},e.prototype.execute=function(e,n){return n>0||this.closed?t.prototype.execute.call(this,e,n):this._execute(e,n)},e.prototype.requestAsyncId=function(e,n,i){return void 0===i&&(i=0),null!==i&&i>0||null===i&&this.delay>0?t.prototype.requestAsyncId.call(this,e,n,i):e.flush(this)},e}(n(194).AsyncAction)},function(t,e,n){"use strict";n.r(e),n.d(e,"AsyncAction",(function(){return r}));var i=n(170),r=function(t){function e(e,n){var i=t.call(this,e,n)||this;return i.scheduler=e,i.work=n,i.pending=!1,i}return i.__extends(e,t),e.prototype.schedule=function(t,e){if(void 0===e&&(e=0),this.closed)return this;this.state=t;var n=this.id,i=this.scheduler;return null!=n&&(this.id=this.recycleAsyncId(i,n,e)),this.pending=!0,this.delay=e,this.id=this.id||this.requestAsyncId(i,this.id,e),this},e.prototype.requestAsyncId=function(t,e,n){return void 0===n&&(n=0),setInterval(t.flush.bind(t,this),n)},e.prototype.recycleAsyncId=function(t,e,n){if(void 0===n&&(n=0),null!==n&&this.delay===n&&!1===this.pending)return e;clearInterval(e)},e.prototype.execute=function(t,e){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var n=this._execute(t,e);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},e.prototype._execute=function(t,e){var n=!1,i=void 0;try{this.work(t)}catch(t){n=!0,i=!!t&&t||new Error(t)}if(n)return this.unsubscribe(),i},e.prototype._unsubscribe=function(){var t=this.id,e=this.scheduler,n=e.actions,i=n.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==i&&n.splice(i,1),null!=t&&(this.id=this.recycleAsyncId(e,t,null)),this.delay=null},e}(n(195).Action)},function(t,e,n){"use strict";n.r(e),n.d(e,"Action",(function(){return r}));var i=n(170),r=function(t){function e(e,n){return t.call(this)||this}return i.__extends(e,t),e.prototype.schedule=function(t,e){return void 0===e&&(e=0),this},e}(n(175).Subscription)},function(t,e,n){"use strict";n.r(e),n.d(e,"QueueScheduler",(function(){return r}));var i=n(170),r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i.__extends(e,t),e}(n(197).AsyncScheduler)},function(t,e,n){"use strict";n.r(e),n.d(e,"AsyncScheduler",(function(){return o}));var i=n(170),r=n(198),o=function(t){function e(n,i){void 0===i&&(i=r.Scheduler.now);var o=t.call(this,n,(function(){return e.delegate&&e.delegate!==o?e.delegate.now():i()}))||this;return o.actions=[],o.active=!1,o.scheduled=void 0,o}return i.__extends(e,t),e.prototype.schedule=function(n,i,r){return void 0===i&&(i=0),e.delegate&&e.delegate!==this?e.delegate.schedule(n,i,r):t.prototype.schedule.call(this,n,i,r)},e.prototype.flush=function(t){var e=this.actions;if(this.active)e.push(t);else{var n;this.active=!0;do{if(n=t.execute(t.state,t.delay))break}while(t=e.shift());if(this.active=!1,n){for(;t=e.shift();)t.unsubscribe();throw n}}},e}(r.Scheduler)},function(t,e,n){"use strict";n.r(e),n.d(e,"Scheduler",(function(){return i}));var i=function(){function t(e,n){void 0===n&&(n=t.now),this.SchedulerAction=e,this.now=n}return t.prototype.schedule=function(t,e,n){return void 0===e&&(e=0),new this.SchedulerAction(this,t).schedule(n,e)},t.now=function(){return Date.now()},t}()},function(t,e,n){"use strict";n.r(e),n.d(e,"observeOn",(function(){return a})),n.d(e,"ObserveOnOperator",(function(){return s})),n.d(e,"ObserveOnSubscriber",(function(){return l})),n.d(e,"ObserveOnMessage",(function(){return c}));var i=n(170),r=n(169),o=n(200);function a(t,e){return void 0===e&&(e=0),function(n){return n.lift(new s(t,e))}}var s=function(){function t(t,e){void 0===e&&(e=0),this.scheduler=t,this.delay=e}return t.prototype.call=function(t,e){return e.subscribe(new l(t,this.scheduler,this.delay))},t}(),l=function(t){function e(e,n,i){void 0===i&&(i=0);var r=t.call(this,e)||this;return r.scheduler=n,r.delay=i,r}return i.__extends(e,t),e.dispatch=function(t){var e=t.notification,n=t.destination;e.observe(n),this.unsubscribe()},e.prototype.scheduleMessage=function(t){this.destination.add(this.scheduler.schedule(e.dispatch,this.delay,new c(t,this.destination)))},e.prototype._next=function(t){this.scheduleMessage(o.Notification.createNext(t))},e.prototype._error=function(t){this.scheduleMessage(o.Notification.createError(t)),this.unsubscribe()},e.prototype._complete=function(){this.scheduleMessage(o.Notification.createComplete()),this.unsubscribe()},e}(r.Subscriber),c=function(){return function(t,e){this.notification=t,this.destination=e}}()},function(t,e,n){"use strict";n.r(e),n.d(e,"NotificationKind",(function(){return i})),n.d(e,"Notification",(function(){return s}));var i,r=n(201),o=n(202),a=n(207);i||(i={});var s=function(){function t(t,e,n){this.kind=t,this.value=e,this.error=n,this.hasValue="N"===t}return t.prototype.observe=function(t){switch(this.kind){case"N":return t.next&&t.next(this.value);case"E":return t.error&&t.error(this.error);case"C":return t.complete&&t.complete()}},t.prototype.do=function(t,e,n){switch(this.kind){case"N":return t&&t(this.value);case"E":return e&&e(this.error);case"C":return n&&n()}},t.prototype.accept=function(t,e,n){return t&&"function"==typeof t.next?this.observe(t):this.do(t,e,n)},t.prototype.toObservable=function(){switch(this.kind){case"N":return Object(o.of)(this.value);case"E":return Object(a.throwError)(this.error);case"C":return Object(r.empty)()}throw new Error("unexpected notification kind value")},t.createNext=function(e){return void 0!==e?new t("N",e):t.undefinedValueNotification},t.createError=function(e){return new t("E",void 0,e)},t.createComplete=function(){return t.completeNotification},t.completeNotification=new t("C"),t.undefinedValueNotification=new t("N",void 0),t}()},function(t,e,n){"use strict";n.r(e),n.d(e,"EMPTY",(function(){return r})),n.d(e,"empty",(function(){return o}));var i=n(167),r=new i.Observable((function(t){return t.complete()}));function o(t){return t?function(t){return new i.Observable((function(e){return t.schedule((function(){return e.complete()}))}))}(t):r}},function(t,e,n){"use strict";n.r(e),n.d(e,"of",(function(){return a}));var i=n(203),r=n(204),o=n(206);function a(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=t[t.length-1];return Object(i.isScheduler)(n)?(t.pop(),Object(o.scheduleArray)(t,n)):Object(r.fromArray)(t)}},function(t,e,n){"use strict";function i(t){return t&&"function"==typeof t.schedule}n.r(e),n.d(e,"isScheduler",(function(){return i}))},function(t,e,n){"use strict";n.r(e),n.d(e,"fromArray",(function(){return a}));var i=n(167),r=n(205),o=n(206);function a(t,e){return e?Object(o.scheduleArray)(t,e):new i.Observable(Object(r.subscribeToArray)(t))}},function(t,e,n){"use strict";n.r(e),n.d(e,"subscribeToArray",(function(){return i}));var i=function(t){return function(e){for(var n=0,i=t.length;n<i&&!e.closed;n++)e.next(t[n]);e.complete()}}},function(t,e,n){"use strict";n.r(e),n.d(e,"scheduleArray",(function(){return o}));var i=n(167),r=n(175);function o(t,e){return new i.Observable((function(n){var i=new r.Subscription,o=0;return i.add(e.schedule((function(){o!==t.length?(n.next(t[o++]),n.closed||i.add(this.schedule())):n.complete()}))),i}))}},function(t,e,n){"use strict";n.r(e),n.d(e,"throwError",(function(){return r}));var i=n(167);function r(t,e){return e?new i.Observable((function(n){return e.schedule(o,0,{error:t,subscriber:n})})):new i.Observable((function(e){return e.error(t)}))}function o(t){var e=t.error;t.subscriber.error(e)}},function(t,e,n){"use strict";n.r(e),n.d(e,"AsyncSubject",(function(){return a}));var i=n(170),r=n(185),o=n(175),a=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.value=null,e.hasNext=!1,e.hasCompleted=!1,e}return i.__extends(e,t),e.prototype._subscribe=function(e){return this.hasError?(e.error(this.thrownError),o.Subscription.EMPTY):this.hasCompleted&&this.hasNext?(e.next(this.value),e.complete(),o.Subscription.EMPTY):t.prototype._subscribe.call(this,e)},e.prototype.next=function(t){this.hasCompleted||(this.value=t,this.hasNext=!0)},e.prototype.error=function(e){this.hasCompleted||t.prototype.error.call(this,e)},e.prototype.complete=function(){this.hasCompleted=!0,this.hasNext&&t.prototype.next.call(this,this.value),t.prototype.complete.call(this)},e}(r.Subject)},function(t,e,n){"use strict";n.r(e),n.d(e,"asap",(function(){return r}));var i=n(210),r=new(n(212).AsapScheduler)(i.AsapAction)},function(t,e,n){"use strict";n.r(e),n.d(e,"AsapAction",(function(){return o}));var i=n(170),r=n(211),o=function(t){function e(e,n){var i=t.call(this,e,n)||this;return i.scheduler=e,i.work=n,i}return i.__extends(e,t),e.prototype.requestAsyncId=function(e,n,i){return void 0===i&&(i=0),null!==i&&i>0?t.prototype.requestAsyncId.call(this,e,n,i):(e.actions.push(this),e.scheduled||(e.scheduled=r.Immediate.setImmediate(e.flush.bind(e,null))))},e.prototype.recycleAsyncId=function(e,n,i){if(void 0===i&&(i=0),null!==i&&i>0||null===i&&this.delay>0)return t.prototype.recycleAsyncId.call(this,e,n,i);0===e.actions.length&&(r.Immediate.clearImmediate(n),e.scheduled=void 0)},e}(n(194).AsyncAction)},function(t,e,n){"use strict";n.r(e),n.d(e,"Immediate",(function(){return s})),n.d(e,"TestTools",(function(){return l}));var i=1,r=function(){return Promise.resolve()}(),o={};function a(t){return t in o&&(delete o[t],!0)}var s={setImmediate:function(t){var e=i++;return o[e]=!0,r.then((function(){return a(e)&&t()})),e},clearImmediate:function(t){a(t)}},l={pending:function(){return Object.keys(o).length}}},function(t,e,n){"use strict";n.r(e),n.d(e,"AsapScheduler",(function(){return r}));var i=n(170),r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i.__extends(e,t),e.prototype.flush=function(t){this.active=!0,this.scheduled=void 0;var e,n=this.actions,i=-1,r=n.length;t=t||n.shift();do{if(e=t.execute(t.state,t.delay))break}while(++i<r&&(t=n.shift()));if(this.active=!1,e){for(;++i<r&&(t=n.shift());)t.unsubscribe();throw e}},e}(n(197).AsyncScheduler)},function(t,e,n){"use strict";n.r(e),n.d(e,"async",(function(){return r}));var i=n(194),r=new(n(197).AsyncScheduler)(i.AsyncAction)},function(t,e,n){"use strict";n.r(e),n.d(e,"animationFrame",(function(){return r}));var i=n(215),r=new(n(216).AnimationFrameScheduler)(i.AnimationFrameAction)},function(t,e,n){"use strict";n.r(e),n.d(e,"AnimationFrameAction",(function(){return r}));var i=n(170),r=function(t){function e(e,n){var i=t.call(this,e,n)||this;return i.scheduler=e,i.work=n,i}return i.__extends(e,t),e.prototype.requestAsyncId=function(e,n,i){return void 0===i&&(i=0),null!==i&&i>0?t.prototype.requestAsyncId.call(this,e,n,i):(e.actions.push(this),e.scheduled||(e.scheduled=requestAnimationFrame((function(){return e.flush(null)}))))},e.prototype.recycleAsyncId=function(e,n,i){if(void 0===i&&(i=0),null!==i&&i>0||null===i&&this.delay>0)return t.prototype.recycleAsyncId.call(this,e,n,i);0===e.actions.length&&(cancelAnimationFrame(n),e.scheduled=void 0)},e}(n(194).AsyncAction)},function(t,e,n){"use strict";n.r(e),n.d(e,"AnimationFrameScheduler",(function(){return r}));var i=n(170),r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i.__extends(e,t),e.prototype.flush=function(t){this.active=!0,this.scheduled=void 0;var e,n=this.actions,i=-1,r=n.length;t=t||n.shift();do{if(e=t.execute(t.state,t.delay))break}while(++i<r&&(t=n.shift()));if(this.active=!1,e){for(;++i<r&&(t=n.shift());)t.unsubscribe();throw e}},e}(n(197).AsyncScheduler)},function(t,e,n){"use strict";n.r(e),n.d(e,"VirtualTimeScheduler",(function(){return o})),n.d(e,"VirtualAction",(function(){return a}));var i=n(170),r=n(194),o=function(t){function e(e,n){void 0===e&&(e=a),void 0===n&&(n=Number.POSITIVE_INFINITY);var i=t.call(this,e,(function(){return i.frame}))||this;return i.maxFrames=n,i.frame=0,i.index=-1,i}return i.__extends(e,t),e.prototype.flush=function(){for(var t,e,n=this.actions,i=this.maxFrames;(e=n[0])&&e.delay<=i&&(n.shift(),this.frame=e.delay,!(t=e.execute(e.state,e.delay))););if(t){for(;e=n.shift();)e.unsubscribe();throw t}},e.frameTimeFactor=10,e}(n(197).AsyncScheduler),a=function(t){function e(e,n,i){void 0===i&&(i=e.index+=1);var r=t.call(this,e,n)||this;return r.scheduler=e,r.work=n,r.index=i,r.active=!0,r.index=e.index=i,r}return i.__extends(e,t),e.prototype.schedule=function(n,i){if(void 0===i&&(i=0),!this.id)return t.prototype.schedule.call(this,n,i);this.active=!1;var r=new e(this.scheduler,this.work);return this.add(r),r.schedule(n,i)},e.prototype.requestAsyncId=function(t,n,i){void 0===i&&(i=0),this.delay=t.frame+i;var r=t.actions;return r.push(this),r.sort(e.sortActions),!0},e.prototype.recycleAsyncId=function(t,e,n){void 0===n&&(n=0)},e.prototype._execute=function(e,n){if(!0===this.active)return t.prototype._execute.call(this,e,n)},e.sortActions=function(t,e){return t.delay===e.delay?t.index===e.index?0:t.index>e.index?1:-1:t.delay>e.delay?1:-1},e}(r.AsyncAction)},function(t,e,n){"use strict";function i(){}n.r(e),n.d(e,"noop",(function(){return i}))},function(t,e,n){"use strict";n.r(e),n.d(e,"isObservable",(function(){return r}));var i=n(167);function r(t){return!!t&&(t instanceof i.Observable||"function"==typeof t.lift&&"function"==typeof t.subscribe)}},function(t,e,n){"use strict";n.r(e),n.d(e,"ArgumentOutOfRangeError",(function(){return i}));var i=function(){function t(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return t.prototype=Object.create(Error.prototype),t}()},function(t,e,n){"use strict";n.r(e),n.d(e,"EmptyError",(function(){return i}));var i=function(){function t(){return Error.call(this),this.message="no elements in sequence",this.name="EmptyError",this}return t.prototype=Object.create(Error.prototype),t}()},function(t,e,n){"use strict";n.r(e),n.d(e,"TimeoutError",(function(){return i}));var i=function(){function t(){return Error.call(this),this.message="Timeout has occurred",this.name="TimeoutError",this}return t.prototype=Object.create(Error.prototype),t}()},function(t,e,n){"use strict";n.r(e),n.d(e,"bindCallback",(function(){return c}));var i=n(167),r=n(208),o=n(224),a=n(168),s=n(176),l=n(203);function c(t,e,n){if(e){if(!Object(l.isScheduler)(e))return function(){for(var i=[],r=0;r<arguments.length;r++)i[r]=arguments[r];return c(t,n).apply(void 0,i).pipe(Object(o.map)((function(t){return Object(s.isArray)(t)?e.apply(void 0,t):e(t)})))};n=e}return function(){for(var e=[],o=0;o<arguments.length;o++)e[o]=arguments[o];var s,l=this,c={context:l,subject:s,callbackFunc:t,scheduler:n};return new i.Observable((function(i){if(n){var o={args:e,subscriber:i,params:c};return n.schedule(u,0,o)}if(!s){s=new r.AsyncSubject;try{t.apply(l,e.concat([function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];s.next(t.length<=1?t[0]:t),s.complete()}]))}catch(t){Object(a.canReportError)(s)?s.error(t):console.warn(t)}}return s.subscribe(i)}))}}function u(t){var e=this,n=t.args,i=t.subscriber,o=t.params,a=o.callbackFunc,s=o.context,l=o.scheduler,c=o.subject;if(!c){c=o.subject=new r.AsyncSubject;try{a.apply(s,n.concat([function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var i=t.length<=1?t[0]:t;e.add(l.schedule(d,0,{value:i,subject:c}))}]))}catch(t){c.error(t)}}this.add(c.subscribe(i))}function d(t){var e=t.value,n=t.subject;n.next(e),n.complete()}},function(t,e,n){"use strict";n.r(e),n.d(e,"map",(function(){return o})),n.d(e,"MapOperator",(function(){return a}));var i=n(170),r=n(169);function o(t,e){return function(n){if("function"!=typeof t)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return n.lift(new a(t,e))}}var a=function(){function t(t,e){this.project=t,this.thisArg=e}return t.prototype.call=function(t,e){return e.subscribe(new s(t,this.project,this.thisArg))},t}(),s=function(t){function e(e,n,i){var r=t.call(this,e)||this;return r.project=n,r.count=0,r.thisArg=i||r,r}return i.__extends(e,t),e.prototype._next=function(t){var e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(t){return void this.destination.error(t)}this.destination.next(e)},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"bindNodeCallback",(function(){return c}));var i=n(167),r=n(208),o=n(224),a=n(168),s=n(203),l=n(176);function c(t,e,n){if(e){if(!Object(s.isScheduler)(e))return function(){for(var i=[],r=0;r<arguments.length;r++)i[r]=arguments[r];return c(t,n).apply(void 0,i).pipe(Object(o.map)((function(t){return Object(l.isArray)(t)?e.apply(void 0,t):e(t)})))};n=e}return function(){for(var e=[],o=0;o<arguments.length;o++)e[o]=arguments[o];var s={subject:void 0,args:e,callbackFunc:t,scheduler:n,context:this};return new i.Observable((function(i){var o=s.context,l=s.subject;if(n)return n.schedule(u,0,{params:s,subscriber:i,context:o});if(!l){l=s.subject=new r.AsyncSubject;try{t.apply(o,e.concat([function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=t.shift();n?l.error(n):(l.next(t.length<=1?t[0]:t),l.complete())}]))}catch(t){Object(a.canReportError)(l)?l.error(t):console.warn(t)}}return l.subscribe(i)}))}}function u(t){var e=this,n=t.params,i=t.subscriber,o=t.context,a=n.callbackFunc,s=n.args,l=n.scheduler,c=n.subject;if(!c){c=n.subject=new r.AsyncSubject;try{a.apply(o,s.concat([function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var i=t.shift();if(i)e.add(l.schedule(m,0,{err:i,subject:c}));else{var r=t.length<=1?t[0]:t;e.add(l.schedule(d,0,{value:r,subject:c}))}}]))}catch(t){this.add(l.schedule(m,0,{err:t,subject:c}))}}this.add(c.subscribe(i))}function d(t){var e=t.value,n=t.subject;n.next(e),n.complete()}function m(t){var e=t.err;t.subject.error(e)}},function(t,e,n){"use strict";n.r(e),n.d(e,"combineLatest",(function(){return u})),n.d(e,"CombineLatestOperator",(function(){return d})),n.d(e,"CombineLatestSubscriber",(function(){return m}));var i=n(170),r=n(203),o=n(176),a=n(227),s=n(228),l=n(204),c={};function u(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=null,i=null;return Object(r.isScheduler)(t[t.length-1])&&(i=t.pop()),"function"==typeof t[t.length-1]&&(n=t.pop()),1===t.length&&Object(o.isArray)(t[0])&&(t=t[0]),Object(l.fromArray)(t,i).lift(new d(n))}var d=function(){function t(t){this.resultSelector=t}return t.prototype.call=function(t,e){return e.subscribe(new m(t,this.resultSelector))},t}(),m=function(t){function e(e,n){var i=t.call(this,e)||this;return i.resultSelector=n,i.active=0,i.values=[],i.observables=[],i}return i.__extends(e,t),e.prototype._next=function(t){this.values.push(c),this.observables.push(t)},e.prototype._complete=function(){var t=this.observables,e=t.length;if(0===e)this.destination.complete();else{this.active=e,this.toRespond=e;for(var n=0;n<e;n++){var i=t[n];this.add(Object(s.subscribeToResult)(this,i,i,n))}}},e.prototype.notifyComplete=function(t){0==(this.active-=1)&&this.destination.complete()},e.prototype.notifyNext=function(t,e,n,i,r){var o=this.values,a=o[n],s=this.toRespond?a===c?--this.toRespond:this.toRespond:0;o[n]=e,0===s&&(this.resultSelector?this._tryResultSelector(o):this.destination.next(o.slice()))},e.prototype._tryResultSelector=function(t){var e;try{e=this.resultSelector.apply(this,t)}catch(t){return void this.destination.error(t)}this.destination.next(e)},e}(a.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"OuterSubscriber",(function(){return r}));var i=n(170),r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i.__extends(e,t),e.prototype.notifyNext=function(t,e,n,i,r){this.destination.next(e)},e.prototype.notifyError=function(t,e){this.destination.error(t)},e.prototype.notifyComplete=function(t){this.destination.complete()},e}(n(169).Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"subscribeToResult",(function(){return a}));var i=n(229),r=n(230),o=n(167);function a(t,e,n,a,s){if(void 0===s&&(s=new i.InnerSubscriber(t,n,a)),!s.closed)return e instanceof o.Observable?e.subscribe(s):Object(r.subscribeTo)(e)(s)}},function(t,e,n){"use strict";n.r(e),n.d(e,"InnerSubscriber",(function(){return r}));var i=n(170),r=function(t){function e(e,n,i){var r=t.call(this)||this;return r.parent=e,r.outerValue=n,r.outerIndex=i,r.index=0,r}return i.__extends(e,t),e.prototype._next=function(t){this.parent.notifyNext(this.outerValue,t,this.outerIndex,this.index++,this)},e.prototype._error=function(t){this.parent.notifyError(t,this),this.unsubscribe()},e.prototype._complete=function(){this.parent.notifyComplete(this),this.unsubscribe()},e}(n(169).Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"subscribeTo",(function(){return m}));var i=n(205),r=n(231),o=n(232),a=n(234),s=n(235),l=n(236),c=n(177),u=n(233),d=n(181),m=function(t){if(t&&"function"==typeof t[d.observable])return Object(a.subscribeToObservable)(t);if(Object(s.isArrayLike)(t))return Object(i.subscribeToArray)(t);if(Object(l.isPromise)(t))return Object(r.subscribeToPromise)(t);if(t&&"function"==typeof t[u.iterator])return Object(o.subscribeToIterable)(t);var e=Object(c.isObject)(t)?"an invalid object":"'"+t+"'";throw new TypeError("You provided "+e+" where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.")}},function(t,e,n){"use strict";n.r(e),n.d(e,"subscribeToPromise",(function(){return r}));var i=n(174),r=function(t){return function(e){return t.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,i.hostReportError),e}}},function(t,e,n){"use strict";n.r(e),n.d(e,"subscribeToIterable",(function(){return r}));var i=n(233),r=function(t){return function(e){for(var n=t[i.iterator]();;){var r=n.next();if(r.done){e.complete();break}if(e.next(r.value),e.closed)break}return"function"==typeof n.return&&e.add((function(){n.return&&n.return()})),e}}},function(t,e,n){"use strict";function i(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}n.r(e),n.d(e,"getSymbolIterator",(function(){return i})),n.d(e,"iterator",(function(){return r})),n.d(e,"$$iterator",(function(){return o}));var r=i(),o=r},function(t,e,n){"use strict";n.r(e),n.d(e,"subscribeToObservable",(function(){return r}));var i=n(181),r=function(t){return function(e){var n=t[i.observable]();if("function"!=typeof n.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return n.subscribe(e)}}},function(t,e,n){"use strict";n.r(e),n.d(e,"isArrayLike",(function(){return i}));var i=function(t){return t&&"number"==typeof t.length&&"function"!=typeof t}},function(t,e,n){"use strict";function i(t){return!!t&&"function"!=typeof t.subscribe&&"function"==typeof t.then}n.r(e),n.d(e,"isPromise",(function(){return i}))},function(t,e,n){"use strict";n.r(e),n.d(e,"concat",(function(){return o}));var i=n(202),r=n(238);function o(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return Object(r.concatAll)()(i.of.apply(void 0,t))}},function(t,e,n){"use strict";n.r(e),n.d(e,"concatAll",(function(){return r}));var i=n(239);function r(){return Object(i.mergeAll)(1)}},function(t,e,n){"use strict";n.r(e),n.d(e,"mergeAll",(function(){return o}));var i=n(240),r=n(183);function o(t){return void 0===t&&(t=Number.POSITIVE_INFINITY),Object(i.mergeMap)(r.identity,t)}},function(t,e,n){"use strict";n.r(e),n.d(e,"mergeMap",(function(){return c})),n.d(e,"MergeMapOperator",(function(){return u})),n.d(e,"MergeMapSubscriber",(function(){return d}));var i=n(170),r=n(228),o=n(227),a=n(229),s=n(224),l=n(241);function c(t,e,n){return void 0===n&&(n=Number.POSITIVE_INFINITY),"function"==typeof e?function(i){return i.pipe(c((function(n,i){return Object(l.from)(t(n,i)).pipe(Object(s.map)((function(t,r){return e(n,t,i,r)})))}),n))}:("number"==typeof e&&(n=e),function(e){return e.lift(new u(t,n))})}var u=function(){function t(t,e){void 0===e&&(e=Number.POSITIVE_INFINITY),this.project=t,this.concurrent=e}return t.prototype.call=function(t,e){return e.subscribe(new d(t,this.project,this.concurrent))},t}(),d=function(t){function e(e,n,i){void 0===i&&(i=Number.POSITIVE_INFINITY);var r=t.call(this,e)||this;return r.project=n,r.concurrent=i,r.hasCompleted=!1,r.buffer=[],r.active=0,r.index=0,r}return i.__extends(e,t),e.prototype._next=function(t){this.active<this.concurrent?this._tryNext(t):this.buffer.push(t)},e.prototype._tryNext=function(t){var e,n=this.index++;try{e=this.project(t,n)}catch(t){return void this.destination.error(t)}this.active++,this._innerSub(e,t,n)},e.prototype._innerSub=function(t,e,n){var i=new a.InnerSubscriber(this,e,n),o=this.destination;o.add(i);var s=Object(r.subscribeToResult)(this,t,void 0,void 0,i);s!==i&&o.add(s)},e.prototype._complete=function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()},e.prototype.notifyNext=function(t,e,n,i,r){this.destination.next(e)},e.prototype.notifyComplete=function(t){var e=this.buffer;this.remove(t),this.active--,e.length>0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},e}(o.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"from",(function(){return a}));var i=n(167),r=n(230),o=n(242);function a(t,e){return e?Object(o.scheduled)(t,e):t instanceof i.Observable?t:new i.Observable(Object(r.subscribeTo)(t))}},function(t,e,n){"use strict";n.r(e),n.d(e,"scheduled",(function(){return d}));var i=n(243),r=n(244),o=n(206),a=n(245),s=n(246),l=n(236),c=n(235),u=n(247);function d(t,e){if(null!=t){if(Object(s.isInteropObservable)(t))return Object(i.scheduleObservable)(t,e);if(Object(l.isPromise)(t))return Object(r.schedulePromise)(t,e);if(Object(c.isArrayLike)(t))return Object(o.scheduleArray)(t,e);if(Object(u.isIterable)(t)||"string"==typeof t)return Object(a.scheduleIterable)(t,e)}throw new TypeError((null!==t&&typeof t||t)+" is not observable")}},function(t,e,n){"use strict";n.r(e),n.d(e,"scheduleObservable",(function(){return a}));var i=n(167),r=n(175),o=n(181);function a(t,e){return new i.Observable((function(n){var i=new r.Subscription;return i.add(e.schedule((function(){var r=t[o.observable]();i.add(r.subscribe({next:function(t){i.add(e.schedule((function(){return n.next(t)})))},error:function(t){i.add(e.schedule((function(){return n.error(t)})))},complete:function(){i.add(e.schedule((function(){return n.complete()})))}}))}))),i}))}},function(t,e,n){"use strict";n.r(e),n.d(e,"schedulePromise",(function(){return o}));var i=n(167),r=n(175);function o(t,e){return new i.Observable((function(n){var i=new r.Subscription;return i.add(e.schedule((function(){return t.then((function(t){i.add(e.schedule((function(){n.next(t),i.add(e.schedule((function(){return n.complete()})))})))}),(function(t){i.add(e.schedule((function(){return n.error(t)})))}))}))),i}))}},function(t,e,n){"use strict";n.r(e),n.d(e,"scheduleIterable",(function(){return a}));var i=n(167),r=n(175),o=n(233);function a(t,e){if(!t)throw new Error("Iterable cannot be null");return new i.Observable((function(n){var i,a=new r.Subscription;return a.add((function(){i&&"function"==typeof i.return&&i.return()})),a.add(e.schedule((function(){i=t[o.iterator](),a.add(e.schedule((function(){if(!n.closed){var t,e;try{var r=i.next();t=r.value,e=r.done}catch(t){return void n.error(t)}e?n.complete():(n.next(t),this.schedule())}})))}))),a}))}},function(t,e,n){"use strict";n.r(e),n.d(e,"isInteropObservable",(function(){return r}));var i=n(181);function r(t){return t&&"function"==typeof t[i.observable]}},function(t,e,n){"use strict";n.r(e),n.d(e,"isIterable",(function(){return r}));var i=n(233);function r(t){return t&&"function"==typeof t[i.iterator]}},function(t,e,n){"use strict";n.r(e),n.d(e,"defer",(function(){return a}));var i=n(167),r=n(241),o=n(201);function a(t){return new i.Observable((function(e){var n;try{n=t()}catch(t){return void e.error(t)}return(n?Object(r.from)(n):Object(o.empty)()).subscribe(e)}))}},function(t,e,n){"use strict";n.r(e),n.d(e,"forkJoin",(function(){return l}));var i=n(167),r=n(176),o=n(224),a=n(177),s=n(241);function l(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];if(1===t.length){var n=t[0];if(Object(r.isArray)(n))return c(n,null);if(Object(a.isObject)(n)&&Object.getPrototypeOf(n)===Object.prototype){var i=Object.keys(n);return c(i.map((function(t){return n[t]})),i)}}if("function"==typeof t[t.length-1]){var s=t.pop();return c(t=1===t.length&&Object(r.isArray)(t[0])?t[0]:t,null).pipe(Object(o.map)((function(t){return s.apply(void 0,t)})))}return c(t,null)}function c(t,e){return new i.Observable((function(n){var i=t.length;if(0!==i)for(var r=new Array(i),o=0,a=0,l=function(l){var c=Object(s.from)(t[l]),u=!1;n.add(c.subscribe({next:function(t){u||(u=!0,a++),r[l]=t},error:function(t){return n.error(t)},complete:function(){++o!==i&&u||(a===i&&n.next(e?e.reduce((function(t,e,n){return t[e]=r[n],t}),{}):r),n.complete())}}))},c=0;c<i;c++)l(c);else n.complete()}))}},function(t,e,n){"use strict";n.r(e),n.d(e,"fromEvent",(function(){return s}));var i=n(167),r=n(176),o=n(171),a=n(224);function s(t,e,n,l){return Object(o.isFunction)(n)&&(l=n,n=void 0),l?s(t,e,n).pipe(Object(a.map)((function(t){return Object(r.isArray)(t)?l.apply(void 0,t):l(t)}))):new i.Observable((function(i){!function t(e,n,i,r,o){var a;if(function(t){return t&&"function"==typeof t.addEventListener&&"function"==typeof t.removeEventListener}(e)){var s=e;e.addEventListener(n,i,o),a=function(){return s.removeEventListener(n,i,o)}}else if(function(t){return t&&"function"==typeof t.on&&"function"==typeof t.off}(e)){var l=e;e.on(n,i),a=function(){return l.off(n,i)}}else if(function(t){return t&&"function"==typeof t.addListener&&"function"==typeof t.removeListener}(e)){var c=e;e.addListener(n,i),a=function(){return c.removeListener(n,i)}}else{if(!e||!e.length)throw new TypeError("Invalid event target");for(var u=0,d=e.length;u<d;u++)t(e[u],n,i,r,o)}r.add(a)}(t,e,(function(t){arguments.length>1?i.next(Array.prototype.slice.call(arguments)):i.next(t)}),i,n)}))}},function(t,e,n){"use strict";n.r(e),n.d(e,"fromEventPattern",(function(){return s}));var i=n(167),r=n(176),o=n(171),a=n(224);function s(t,e,n){return n?s(t,e).pipe(Object(a.map)((function(t){return Object(r.isArray)(t)?n.apply(void 0,t):n(t)}))):new i.Observable((function(n){var i,r=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return n.next(1===t.length?t[0]:t)};try{i=t(r)}catch(t){return void n.error(t)}if(Object(o.isFunction)(e))return function(){return e(r,i)}}))}},function(t,e,n){"use strict";n.r(e),n.d(e,"generate",(function(){return a}));var i=n(167),r=n(183),o=n(203);function a(t,e,n,a,l){var c,u;if(1==arguments.length){var d=t;u=d.initialState,e=d.condition,n=d.iterate,c=d.resultSelector||r.identity,l=d.scheduler}else void 0===a||Object(o.isScheduler)(a)?(u=t,c=r.identity,l=a):(u=t,c=a);return new i.Observable((function(t){var i=u;if(l)return l.schedule(s,0,{subscriber:t,iterate:n,condition:e,resultSelector:c,state:i});for(;;){if(e){var r=void 0;try{r=e(i)}catch(e){return void t.error(e)}if(!r){t.complete();break}}var o=void 0;try{o=c(i)}catch(e){return void t.error(e)}if(t.next(o),t.closed)break;try{i=n(i)}catch(e){return void t.error(e)}}}))}function s(t){var e=t.subscriber,n=t.condition;if(!e.closed){if(t.needIterate)try{t.state=t.iterate(t.state)}catch(t){return void e.error(t)}else t.needIterate=!0;if(n){var i=void 0;try{i=n(t.state)}catch(t){return void e.error(t)}if(!i)return void e.complete();if(e.closed)return}var r;try{r=t.resultSelector(t.state)}catch(t){return void e.error(t)}if(!e.closed&&(e.next(r),!e.closed))return this.schedule(t)}}},function(t,e,n){"use strict";n.r(e),n.d(e,"iif",(function(){return o}));var i=n(248),r=n(201);function o(t,e,n){return void 0===e&&(e=r.EMPTY),void 0===n&&(n=r.EMPTY),Object(i.defer)((function(){return t()?e:n}))}},function(t,e,n){"use strict";n.r(e),n.d(e,"interval",(function(){return a}));var i=n(167),r=n(213),o=n(255);function a(t,e){return void 0===t&&(t=0),void 0===e&&(e=r.async),(!Object(o.isNumeric)(t)||t<0)&&(t=0),e&&"function"==typeof e.schedule||(e=r.async),new i.Observable((function(n){return n.add(e.schedule(s,t,{subscriber:n,counter:0,period:t})),n}))}function s(t){var e=t.subscriber,n=t.counter,i=t.period;e.next(n),this.schedule({subscriber:e,counter:n+1,period:i},i)}},function(t,e,n){"use strict";n.r(e),n.d(e,"isNumeric",(function(){return r}));var i=n(176);function r(t){return!Object(i.isArray)(t)&&t-parseFloat(t)+1>=0}},function(t,e,n){"use strict";n.r(e),n.d(e,"merge",(function(){return s}));var i=n(167),r=n(203),o=n(239),a=n(204);function s(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=Number.POSITIVE_INFINITY,s=null,l=t[t.length-1];return Object(r.isScheduler)(l)?(s=t.pop(),t.length>1&&"number"==typeof t[t.length-1]&&(n=t.pop())):"number"==typeof l&&(n=t.pop()),null===s&&1===t.length&&t[0]instanceof i.Observable?t[0]:Object(o.mergeAll)(n)(Object(a.fromArray)(t,s))}},function(t,e,n){"use strict";n.r(e),n.d(e,"NEVER",(function(){return o})),n.d(e,"never",(function(){return a}));var i=n(167),r=n(218),o=new i.Observable(r.noop);function a(){return o}},function(t,e,n){"use strict";n.r(e),n.d(e,"onErrorResumeNext",(function(){return s}));var i=n(167),r=n(241),o=n(176),a=n(201);function s(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];if(0===t.length)return a.EMPTY;var n=t[0],l=t.slice(1);return 1===t.length&&Object(o.isArray)(n)?s.apply(void 0,n):new i.Observable((function(t){var e=function(){return t.add(s.apply(void 0,l).subscribe(t))};return Object(r.from)(n).subscribe({next:function(e){t.next(e)},error:e,complete:e})}))}},function(t,e,n){"use strict";n.r(e),n.d(e,"pairs",(function(){return o})),n.d(e,"dispatch",(function(){return a}));var i=n(167),r=n(175);function o(t,e){return e?new i.Observable((function(n){var i=Object.keys(t),o=new r.Subscription;return o.add(e.schedule(a,0,{keys:i,index:0,subscriber:n,subscription:o,obj:t})),o})):new i.Observable((function(e){for(var n=Object.keys(t),i=0;i<n.length&&!e.closed;i++){var r=n[i];t.hasOwnProperty(r)&&e.next([r,t[r]])}e.complete()}))}function a(t){var e=t.keys,n=t.index,i=t.subscriber,r=t.subscription,o=t.obj;if(!i.closed)if(n<e.length){var a=e[n];i.next([a,o[a]]),r.add(this.schedule({keys:e,index:n+1,subscriber:i,subscription:r,obj:o}))}else i.complete()}},function(t,e,n){"use strict";n.r(e),n.d(e,"partition",(function(){return s}));var i=n(261),r=n(230),o=n(262),a=n(167);function s(t,e,n){return[Object(o.filter)(e,n)(new a.Observable(Object(r.subscribeTo)(t))),Object(o.filter)(Object(i.not)(e,n))(new a.Observable(Object(r.subscribeTo)(t)))]}},function(t,e,n){"use strict";function i(t,e){function n(){return!n.pred.apply(n.thisArg,arguments)}return n.pred=t,n.thisArg=e,n}n.r(e),n.d(e,"not",(function(){return i}))},function(t,e,n){"use strict";n.r(e),n.d(e,"filter",(function(){return o}));var i=n(170),r=n(169);function o(t,e){return function(n){return n.lift(new a(t,e))}}var a=function(){function t(t,e){this.predicate=t,this.thisArg=e}return t.prototype.call=function(t,e){return e.subscribe(new s(t,this.predicate,this.thisArg))},t}(),s=function(t){function e(e,n,i){var r=t.call(this,e)||this;return r.predicate=n,r.thisArg=i,r.count=0,r}return i.__extends(e,t),e.prototype._next=function(t){var e;try{e=this.predicate.call(this.thisArg,t,this.count++)}catch(t){return void this.destination.error(t)}e&&this.destination.next(t)},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"race",(function(){return l})),n.d(e,"RaceOperator",(function(){return c})),n.d(e,"RaceSubscriber",(function(){return u}));var i=n(170),r=n(176),o=n(204),a=n(227),s=n(228);function l(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];if(1===t.length){if(!Object(r.isArray)(t[0]))return t[0];t=t[0]}return Object(o.fromArray)(t,void 0).lift(new c)}var c=function(){function t(){}return t.prototype.call=function(t,e){return e.subscribe(new u(t))},t}(),u=function(t){function e(e){var n=t.call(this,e)||this;return n.hasFirst=!1,n.observables=[],n.subscriptions=[],n}return i.__extends(e,t),e.prototype._next=function(t){this.observables.push(t)},e.prototype._complete=function(){var t=this.observables,e=t.length;if(0===e)this.destination.complete();else{for(var n=0;n<e&&!this.hasFirst;n++){var i=t[n],r=Object(s.subscribeToResult)(this,i,i,n);this.subscriptions&&this.subscriptions.push(r),this.add(r)}this.observables=null}},e.prototype.notifyNext=function(t,e,n,i,r){if(!this.hasFirst){this.hasFirst=!0;for(var o=0;o<this.subscriptions.length;o++)if(o!==n){var a=this.subscriptions[o];a.unsubscribe(),this.remove(a)}this.subscriptions=null}this.destination.next(e)},e}(a.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"range",(function(){return r})),n.d(e,"dispatch",(function(){return o}));var i=n(167);function r(t,e,n){return void 0===t&&(t=0),new i.Observable((function(i){void 0===e&&(e=t,t=0);var r=0,a=t;if(n)return n.schedule(o,0,{index:r,count:e,start:t,subscriber:i});for(;;){if(r++>=e){i.complete();break}if(i.next(a++),i.closed)break}}))}function o(t){var e=t.start,n=t.index,i=t.count,r=t.subscriber;n>=i?r.complete():(r.next(e),r.closed||(t.index=n+1,t.start=e+1,this.schedule(t)))}},function(t,e,n){"use strict";n.r(e),n.d(e,"timer",(function(){return s}));var i=n(167),r=n(213),o=n(255),a=n(203);function s(t,e,n){void 0===t&&(t=0);var s=-1;return Object(o.isNumeric)(e)?s=Number(e)<1?1:Number(e):Object(a.isScheduler)(e)&&(n=e),Object(a.isScheduler)(n)||(n=r.async),new i.Observable((function(e){var i=Object(o.isNumeric)(t)?t:+t-n.now();return n.schedule(l,i,{index:0,period:s,subscriber:e})}))}function l(t){var e=t.index,n=t.period,i=t.subscriber;if(i.next(e),!i.closed){if(-1===n)return i.complete();t.index=e+1,this.schedule(t,n)}}},function(t,e,n){"use strict";n.r(e),n.d(e,"using",(function(){return a}));var i=n(167),r=n(241),o=n(201);function a(t,e){return new i.Observable((function(n){var i,a;try{i=t()}catch(t){return void n.error(t)}try{a=e(i)}catch(t){return void n.error(t)}var s=(a?Object(r.from)(a):o.EMPTY).subscribe(n);return function(){s.unsubscribe(),i&&i.unsubscribe()}}))}},function(t,e,n){"use strict";n.r(e),n.d(e,"zip",(function(){return u})),n.d(e,"ZipOperator",(function(){return d})),n.d(e,"ZipSubscriber",(function(){return m}));var i=n(170),r=n(204),o=n(176),a=n(169),s=n(227),l=n(228),c=n(233);function u(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=t[t.length-1];return"function"==typeof n&&t.pop(),Object(r.fromArray)(t,void 0).lift(new d(n))}var d=function(){function t(t){this.resultSelector=t}return t.prototype.call=function(t,e){return e.subscribe(new m(t,this.resultSelector))},t}(),m=function(t){function e(e,n,i){void 0===i&&(i=Object.create(null));var r=t.call(this,e)||this;return r.iterators=[],r.active=0,r.resultSelector="function"==typeof n?n:null,r.values=i,r}return i.__extends(e,t),e.prototype._next=function(t){var e=this.iterators;Object(o.isArray)(t)?e.push(new p(t)):"function"==typeof t[c.iterator]?e.push(new h(t[c.iterator]())):e.push(new f(this.destination,this,t))},e.prototype._complete=function(){var t=this.iterators,e=t.length;if(this.unsubscribe(),0!==e){this.active=e;for(var n=0;n<e;n++){var i=t[n];if(i.stillUnsubscribed)this.destination.add(i.subscribe(i,n));else this.active--}}else this.destination.complete()},e.prototype.notifyInactive=function(){this.active--,0===this.active&&this.destination.complete()},e.prototype.checkIterators=function(){for(var t=this.iterators,e=t.length,n=this.destination,i=0;i<e;i++){if("function"==typeof(a=t[i]).hasValue&&!a.hasValue())return}var r=!1,o=[];for(i=0;i<e;i++){var a,s=(a=t[i]).next();if(a.hasCompleted()&&(r=!0),s.done)return void n.complete();o.push(s.value)}this.resultSelector?this._tryresultSelector(o):n.next(o),r&&n.complete()},e.prototype._tryresultSelector=function(t){var e;try{e=this.resultSelector.apply(this,t)}catch(t){return void this.destination.error(t)}this.destination.next(e)},e}(a.Subscriber),h=function(){function t(t){this.iterator=t,this.nextResult=t.next()}return t.prototype.hasValue=function(){return!0},t.prototype.next=function(){var t=this.nextResult;return this.nextResult=this.iterator.next(),t},t.prototype.hasCompleted=function(){var t=this.nextResult;return t&&t.done},t}(),p=function(){function t(t){this.array=t,this.index=0,this.length=0,this.length=t.length}return t.prototype[c.iterator]=function(){return this},t.prototype.next=function(t){var e=this.index++,n=this.array;return e<this.length?{value:n[e],done:!1}:{value:null,done:!0}},t.prototype.hasValue=function(){return this.array.length>this.index},t.prototype.hasCompleted=function(){return this.array.length===this.index},t}(),f=function(t){function e(e,n,i){var r=t.call(this,e)||this;return r.parent=n,r.observable=i,r.stillUnsubscribed=!0,r.buffer=[],r.isComplete=!1,r}return i.__extends(e,t),e.prototype[c.iterator]=function(){return this},e.prototype.next=function(){var t=this.buffer;return 0===t.length&&this.isComplete?{value:null,done:!0}:{value:t.shift(),done:!1}},e.prototype.hasValue=function(){return this.buffer.length>0},e.prototype.hasCompleted=function(){return 0===this.buffer.length&&this.isComplete},e.prototype.notifyComplete=function(){this.buffer.length>0?(this.isComplete=!0,this.parent.notifyInactive()):this.destination.complete()},e.prototype.notifyNext=function(t,e,n,i,r){this.buffer.push(e),this.parent.checkIterators()},e.prototype.subscribe=function(t,e){return Object(l.subscribeToResult)(this,this.observable,this,e)},e}(s.OuterSubscriber)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(166);e.waitMap=function(t,e){return void 0===e&&(e=!0),function(n){return i.Observable.create((function(i){var r,o,a,s=!1,l=function(n){return t(n).subscribe({next:function(t){void 0!==r&&e||i.next(t)},error:function(t){s=!0,i.error(t),o.unsubscribe()},complete:function(){if(r&&!s){var t=r;r=void 0,l(t)}}})};return o=n.subscribe({next:function(t){r=t,a&&!a.closed||(r=void 0,a=l(t))},error:function(t){s=!0,i.error(t)},complete:function(){s=!0,i.complete()}})}))}}},function(t,e,n){"use strict";n.r(e);var i=n(270);n.d(e,"audit",(function(){return i.audit}));var r=n(271);n.d(e,"auditTime",(function(){return r.auditTime}));var o=n(272);n.d(e,"buffer",(function(){return o.buffer}));var a=n(273);n.d(e,"bufferCount",(function(){return a.bufferCount}));var s=n(274);n.d(e,"bufferTime",(function(){return s.bufferTime}));var l=n(275);n.d(e,"bufferToggle",(function(){return l.bufferToggle}));var c=n(276);n.d(e,"bufferWhen",(function(){return c.bufferWhen}));var u=n(277);n.d(e,"catchError",(function(){return u.catchError}));var d=n(278);n.d(e,"combineAll",(function(){return d.combineAll}));var m=n(279);n.d(e,"combineLatest",(function(){return m.combineLatest}));var h=n(280);n.d(e,"concat",(function(){return h.concat}));var p=n(238);n.d(e,"concatAll",(function(){return p.concatAll}));var f=n(281);n.d(e,"concatMap",(function(){return f.concatMap}));var g=n(282);n.d(e,"concatMapTo",(function(){return g.concatMapTo}));var b=n(283);n.d(e,"count",(function(){return b.count}));var x=n(284);n.d(e,"debounce",(function(){return x.debounce}));var w=n(285);n.d(e,"debounceTime",(function(){return w.debounceTime}));var T=n(286);n.d(e,"defaultIfEmpty",(function(){return T.defaultIfEmpty}));var _=n(287);n.d(e,"delay",(function(){return _.delay}));var y=n(289);n.d(e,"delayWhen",(function(){return y.delayWhen}));var v=n(290);n.d(e,"dematerialize",(function(){return v.dematerialize}));var k=n(291);n.d(e,"distinct",(function(){return k.distinct}));var R=n(292);n.d(e,"distinctUntilChanged",(function(){return R.distinctUntilChanged}));var F=n(293);n.d(e,"distinctUntilKeyChanged",(function(){return F.distinctUntilKeyChanged}));var A=n(294);n.d(e,"elementAt",(function(){return A.elementAt}));var E=n(297);n.d(e,"endWith",(function(){return E.endWith}));var N=n(298);n.d(e,"every",(function(){return N.every}));var S=n(299);n.d(e,"exhaust",(function(){return S.exhaust}));var C=n(300);n.d(e,"exhaustMap",(function(){return C.exhaustMap}));var O=n(301);n.d(e,"expand",(function(){return O.expand}));var L=n(262);n.d(e,"filter",(function(){return L.filter}));var I=n(302);n.d(e,"finalize",(function(){return I.finalize}));var $=n(303);n.d(e,"find",(function(){return $.find}));var D=n(304);n.d(e,"findIndex",(function(){return D.findIndex}));var W=n(305);n.d(e,"first",(function(){return W.first}));var G=n(189);n.d(e,"groupBy",(function(){return G.groupBy}));var M=n(306);n.d(e,"ignoreElements",(function(){return M.ignoreElements}));var P=n(307);n.d(e,"isEmpty",(function(){return P.isEmpty}));var B=n(308);n.d(e,"last",(function(){return B.last}));var j=n(224);n.d(e,"map",(function(){return j.map}));var U=n(310);n.d(e,"mapTo",(function(){return U.mapTo}));var q=n(311);n.d(e,"materialize",(function(){return q.materialize}));var V=n(312);n.d(e,"max",(function(){return V.max}));var z=n(315);n.d(e,"merge",(function(){return z.merge}));var H=n(239);n.d(e,"mergeAll",(function(){return H.mergeAll}));var X=n(240);n.d(e,"mergeMap",(function(){return X.mergeMap})),n.d(e,"flatMap",(function(){return X.mergeMap}));var K=n(316);n.d(e,"mergeMapTo",(function(){return K.mergeMapTo}));var Y=n(317);n.d(e,"mergeScan",(function(){return Y.mergeScan}));var Z=n(318);n.d(e,"min",(function(){return Z.min}));var J=n(319);n.d(e,"multicast",(function(){return J.multicast}));var Q=n(199);n.d(e,"observeOn",(function(){return Q.observeOn}));var tt=n(320);n.d(e,"onErrorResumeNext",(function(){return tt.onErrorResumeNext}));var et=n(321);n.d(e,"pairwise",(function(){return et.pairwise}));var nt=n(322);n.d(e,"partition",(function(){return nt.partition}));var it=n(323);n.d(e,"pluck",(function(){return it.pluck}));var rt=n(324);n.d(e,"publish",(function(){return rt.publish}));var ot=n(325);n.d(e,"publishBehavior",(function(){return ot.publishBehavior}));var at=n(326);n.d(e,"publishLast",(function(){return at.publishLast}));var st=n(327);n.d(e,"publishReplay",(function(){return st.publishReplay}));var lt=n(328);n.d(e,"race",(function(){return lt.race}));var ct=n(313);n.d(e,"reduce",(function(){return ct.reduce}));var ut=n(329);n.d(e,"repeat",(function(){return ut.repeat}));var dt=n(330);n.d(e,"repeatWhen",(function(){return dt.repeatWhen}));var mt=n(331);n.d(e,"retry",(function(){return mt.retry}));var ht=n(332);n.d(e,"retryWhen",(function(){return ht.retryWhen}));var pt=n(188);n.d(e,"refCount",(function(){return pt.refCount}));var ft=n(333);n.d(e,"sample",(function(){return ft.sample}));var gt=n(334);n.d(e,"sampleTime",(function(){return gt.sampleTime}));var bt=n(314);n.d(e,"scan",(function(){return bt.scan}));var xt=n(335);n.d(e,"sequenceEqual",(function(){return xt.sequenceEqual}));var wt=n(336);n.d(e,"share",(function(){return wt.share}));var Tt=n(337);n.d(e,"shareReplay",(function(){return Tt.shareReplay}));var _t=n(338);n.d(e,"single",(function(){return _t.single}));var yt=n(339);n.d(e,"skip",(function(){return yt.skip}));var vt=n(340);n.d(e,"skipLast",(function(){return vt.skipLast}));var kt=n(341);n.d(e,"skipUntil",(function(){return kt.skipUntil}));var Rt=n(342);n.d(e,"skipWhile",(function(){return Rt.skipWhile}));var Ft=n(343);n.d(e,"startWith",(function(){return Ft.startWith}));var At=n(344);n.d(e,"subscribeOn",(function(){return At.subscribeOn}));var Et=n(346);n.d(e,"switchAll",(function(){return Et.switchAll}));var Nt=n(347);n.d(e,"switchMap",(function(){return Nt.switchMap}));var St=n(348);n.d(e,"switchMapTo",(function(){return St.switchMapTo}));var Ct=n(296);n.d(e,"take",(function(){return Ct.take}));var Ot=n(309);n.d(e,"takeLast",(function(){return Ot.takeLast}));var Lt=n(349);n.d(e,"takeUntil",(function(){return Lt.takeUntil}));var It=n(350);n.d(e,"takeWhile",(function(){return It.takeWhile}));var $t=n(351);n.d(e,"tap",(function(){return $t.tap}));var Dt=n(352);n.d(e,"throttle",(function(){return Dt.throttle}));var Wt=n(353);n.d(e,"throttleTime",(function(){return Wt.throttleTime}));var Gt=n(295);n.d(e,"throwIfEmpty",(function(){return Gt.throwIfEmpty}));var Mt=n(354);n.d(e,"timeInterval",(function(){return Mt.timeInterval}));var Pt=n(355);n.d(e,"timeout",(function(){return Pt.timeout}));var Bt=n(356);n.d(e,"timeoutWith",(function(){return Bt.timeoutWith}));var jt=n(357);n.d(e,"timestamp",(function(){return jt.timestamp}));var Ut=n(358);n.d(e,"toArray",(function(){return Ut.toArray}));var qt=n(359);n.d(e,"window",(function(){return qt.window}));var Vt=n(360);n.d(e,"windowCount",(function(){return Vt.windowCount}));var zt=n(361);n.d(e,"windowTime",(function(){return zt.windowTime}));var Ht=n(362);n.d(e,"windowToggle",(function(){return Ht.windowToggle}));var Xt=n(363);n.d(e,"windowWhen",(function(){return Xt.windowWhen}));var Kt=n(364);n.d(e,"withLatestFrom",(function(){return Kt.withLatestFrom}));var Yt=n(365);n.d(e,"zip",(function(){return Yt.zip}));var Zt=n(366);n.d(e,"zipAll",(function(){return Zt.zipAll}))},function(t,e,n){"use strict";n.r(e),n.d(e,"audit",(function(){return a}));var i=n(170),r=n(227),o=n(228);function a(t){return function(e){return e.lift(new s(t))}}var s=function(){function t(t){this.durationSelector=t}return t.prototype.call=function(t,e){return e.subscribe(new l(t,this.durationSelector))},t}(),l=function(t){function e(e,n){var i=t.call(this,e)||this;return i.durationSelector=n,i.hasValue=!1,i}return i.__extends(e,t),e.prototype._next=function(t){if(this.value=t,this.hasValue=!0,!this.throttled){var e=void 0;try{e=(0,this.durationSelector)(t)}catch(t){return this.destination.error(t)}var n=Object(o.subscribeToResult)(this,e);!n||n.closed?this.clearThrottle():this.add(this.throttled=n)}},e.prototype.clearThrottle=function(){var t=this.value,e=this.hasValue,n=this.throttled;n&&(this.remove(n),this.throttled=null,n.unsubscribe()),e&&(this.value=null,this.hasValue=!1,this.destination.next(t))},e.prototype.notifyNext=function(t,e,n,i){this.clearThrottle()},e.prototype.notifyComplete=function(){this.clearThrottle()},e}(r.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"auditTime",(function(){return a}));var i=n(213),r=n(270),o=n(265);function a(t,e){return void 0===e&&(e=i.async),Object(r.audit)((function(){return Object(o.timer)(t,e)}))}},function(t,e,n){"use strict";n.r(e),n.d(e,"buffer",(function(){return a}));var i=n(170),r=n(227),o=n(228);function a(t){return function(e){return e.lift(new s(t))}}var s=function(){function t(t){this.closingNotifier=t}return t.prototype.call=function(t,e){return e.subscribe(new l(t,this.closingNotifier))},t}(),l=function(t){function e(e,n){var i=t.call(this,e)||this;return i.buffer=[],i.add(Object(o.subscribeToResult)(i,n)),i}return i.__extends(e,t),e.prototype._next=function(t){this.buffer.push(t)},e.prototype.notifyNext=function(t,e,n,i,r){var o=this.buffer;this.buffer=[],this.destination.next(o)},e}(r.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"bufferCount",(function(){return o}));var i=n(170),r=n(169);function o(t,e){return void 0===e&&(e=null),function(n){return n.lift(new a(t,e))}}var a=function(){function t(t,e){this.bufferSize=t,this.startBufferEvery=e,this.subscriberClass=e&&t!==e?l:s}return t.prototype.call=function(t,e){return e.subscribe(new this.subscriberClass(t,this.bufferSize,this.startBufferEvery))},t}(),s=function(t){function e(e,n){var i=t.call(this,e)||this;return i.bufferSize=n,i.buffer=[],i}return i.__extends(e,t),e.prototype._next=function(t){var e=this.buffer;e.push(t),e.length==this.bufferSize&&(this.destination.next(e),this.buffer=[])},e.prototype._complete=function(){var e=this.buffer;e.length>0&&this.destination.next(e),t.prototype._complete.call(this)},e}(r.Subscriber),l=function(t){function e(e,n,i){var r=t.call(this,e)||this;return r.bufferSize=n,r.startBufferEvery=i,r.buffers=[],r.count=0,r}return i.__extends(e,t),e.prototype._next=function(t){var e=this.bufferSize,n=this.startBufferEvery,i=this.buffers,r=this.count;this.count++,r%n==0&&i.push([]);for(var o=i.length;o--;){var a=i[o];a.push(t),a.length===e&&(i.splice(o,1),this.destination.next(a))}},e.prototype._complete=function(){for(var e=this.buffers,n=this.destination;e.length>0;){var i=e.shift();i.length>0&&n.next(i)}t.prototype._complete.call(this)},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"bufferTime",(function(){return s}));var i=n(170),r=n(213),o=n(169),a=n(203);function s(t){var e=arguments.length,n=r.async;Object(a.isScheduler)(arguments[arguments.length-1])&&(n=arguments[arguments.length-1],e--);var i=null;e>=2&&(i=arguments[1]);var o=Number.POSITIVE_INFINITY;return e>=3&&(o=arguments[2]),function(e){return e.lift(new l(t,i,o,n))}}var l=function(){function t(t,e,n,i){this.bufferTimeSpan=t,this.bufferCreationInterval=e,this.maxBufferSize=n,this.scheduler=i}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.bufferTimeSpan,this.bufferCreationInterval,this.maxBufferSize,this.scheduler))},t}(),c=function(){return function(){this.buffer=[]}}(),u=function(t){function e(e,n,i,r,o){var a=t.call(this,e)||this;a.bufferTimeSpan=n,a.bufferCreationInterval=i,a.maxBufferSize=r,a.scheduler=o,a.contexts=[];var s=a.openContext();if(a.timespanOnly=null==i||i<0,a.timespanOnly){var l={subscriber:a,context:s,bufferTimeSpan:n};a.add(s.closeAction=o.schedule(d,n,l))}else{var c={subscriber:a,context:s},u={bufferTimeSpan:n,bufferCreationInterval:i,subscriber:a,scheduler:o};a.add(s.closeAction=o.schedule(h,n,c)),a.add(o.schedule(m,i,u))}return a}return i.__extends(e,t),e.prototype._next=function(t){for(var e,n=this.contexts,i=n.length,r=0;r<i;r++){var o=n[r],a=o.buffer;a.push(t),a.length==this.maxBufferSize&&(e=o)}e&&this.onBufferFull(e)},e.prototype._error=function(e){this.contexts.length=0,t.prototype._error.call(this,e)},e.prototype._complete=function(){for(var e=this.contexts,n=this.destination;e.length>0;){var i=e.shift();n.next(i.buffer)}t.prototype._complete.call(this)},e.prototype._unsubscribe=function(){this.contexts=null},e.prototype.onBufferFull=function(t){this.closeContext(t);var e=t.closeAction;if(e.unsubscribe(),this.remove(e),!this.closed&&this.timespanOnly){t=this.openContext();var n=this.bufferTimeSpan,i={subscriber:this,context:t,bufferTimeSpan:n};this.add(t.closeAction=this.scheduler.schedule(d,n,i))}},e.prototype.openContext=function(){var t=new c;return this.contexts.push(t),t},e.prototype.closeContext=function(t){this.destination.next(t.buffer);var e=this.contexts;(e?e.indexOf(t):-1)>=0&&e.splice(e.indexOf(t),1)},e}(o.Subscriber);function d(t){var e=t.subscriber,n=t.context;n&&e.closeContext(n),e.closed||(t.context=e.openContext(),t.context.closeAction=this.schedule(t,t.bufferTimeSpan))}function m(t){var e=t.bufferCreationInterval,n=t.bufferTimeSpan,i=t.subscriber,r=t.scheduler,o=i.openContext();i.closed||(i.add(o.closeAction=r.schedule(h,n,{subscriber:i,context:o})),this.schedule(t,e))}function h(t){var e=t.subscriber,n=t.context;e.closeContext(n)}},function(t,e,n){"use strict";n.r(e),n.d(e,"bufferToggle",(function(){return s}));var i=n(170),r=n(175),o=n(228),a=n(227);function s(t,e){return function(n){return n.lift(new l(t,e))}}var l=function(){function t(t,e){this.openings=t,this.closingSelector=e}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.openings,this.closingSelector))},t}(),c=function(t){function e(e,n,i){var r=t.call(this,e)||this;return r.openings=n,r.closingSelector=i,r.contexts=[],r.add(Object(o.subscribeToResult)(r,n)),r}return i.__extends(e,t),e.prototype._next=function(t){for(var e=this.contexts,n=e.length,i=0;i<n;i++)e[i].buffer.push(t)},e.prototype._error=function(e){for(var n=this.contexts;n.length>0;){var i=n.shift();i.subscription.unsubscribe(),i.buffer=null,i.subscription=null}this.contexts=null,t.prototype._error.call(this,e)},e.prototype._complete=function(){for(var e=this.contexts;e.length>0;){var n=e.shift();this.destination.next(n.buffer),n.subscription.unsubscribe(),n.buffer=null,n.subscription=null}this.contexts=null,t.prototype._complete.call(this)},e.prototype.notifyNext=function(t,e,n,i,r){t?this.closeBuffer(t):this.openBuffer(e)},e.prototype.notifyComplete=function(t){this.closeBuffer(t.context)},e.prototype.openBuffer=function(t){try{var e=this.closingSelector.call(this,t);e&&this.trySubscribe(e)}catch(t){this._error(t)}},e.prototype.closeBuffer=function(t){var e=this.contexts;if(e&&t){var n=t.buffer,i=t.subscription;this.destination.next(n),e.splice(e.indexOf(t),1),this.remove(i),i.unsubscribe()}},e.prototype.trySubscribe=function(t){var e=this.contexts,n=new r.Subscription,i={buffer:[],subscription:n};e.push(i);var a=Object(o.subscribeToResult)(this,t,i);!a||a.closed?this.closeBuffer(i):(a.context=i,this.add(a),n.add(a))},e}(a.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"bufferWhen",(function(){return s}));var i=n(170),r=n(175),o=n(227),a=n(228);function s(t){return function(e){return e.lift(new l(t))}}var l=function(){function t(t){this.closingSelector=t}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.closingSelector))},t}(),c=function(t){function e(e,n){var i=t.call(this,e)||this;return i.closingSelector=n,i.subscribing=!1,i.openBuffer(),i}return i.__extends(e,t),e.prototype._next=function(t){this.buffer.push(t)},e.prototype._complete=function(){var e=this.buffer;e&&this.destination.next(e),t.prototype._complete.call(this)},e.prototype._unsubscribe=function(){this.buffer=null,this.subscribing=!1},e.prototype.notifyNext=function(t,e,n,i,r){this.openBuffer()},e.prototype.notifyComplete=function(){this.subscribing?this.complete():this.openBuffer()},e.prototype.openBuffer=function(){var t=this.closingSubscription;t&&(this.remove(t),t.unsubscribe());var e,n=this.buffer;this.buffer&&this.destination.next(n),this.buffer=[];try{e=(0,this.closingSelector)()}catch(t){return this.error(t)}t=new r.Subscription,this.closingSubscription=t,this.add(t),this.subscribing=!0,t.add(Object(a.subscribeToResult)(this,e)),this.subscribing=!1},e}(o.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"catchError",(function(){return s}));var i=n(170),r=n(227),o=n(229),a=n(228);function s(t){return function(e){var n=new l(t),i=e.lift(n);return n.caught=i}}var l=function(){function t(t){this.selector=t}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.selector,this.caught))},t}(),c=function(t){function e(e,n,i){var r=t.call(this,e)||this;return r.selector=n,r.caught=i,r}return i.__extends(e,t),e.prototype.error=function(e){if(!this.isStopped){var n=void 0;try{n=this.selector(e,this.caught)}catch(e){return void t.prototype.error.call(this,e)}this._unsubscribeAndRecycle();var i=new o.InnerSubscriber(this,void 0,void 0);this.add(i);var r=Object(a.subscribeToResult)(this,n,void 0,void 0,i);r!==i&&this.add(r)}},e}(r.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"combineAll",(function(){return r}));var i=n(226);function r(t){return function(e){return e.lift(new i.CombineLatestOperator(t))}}},function(t,e,n){"use strict";n.r(e),n.d(e,"combineLatest",(function(){return a}));var i=n(176),r=n(226),o=n(241);function a(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=null;return"function"==typeof t[t.length-1]&&(n=t.pop()),1===t.length&&Object(i.isArray)(t[0])&&(t=t[0].slice()),function(e){return e.lift.call(Object(o.from)([e].concat(t)),new r.CombineLatestOperator(n))}}},function(t,e,n){"use strict";n.r(e),n.d(e,"concat",(function(){return r}));var i=n(237);function r(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return function(e){return e.lift.call(i.concat.apply(void 0,[e].concat(t)))}}},function(t,e,n){"use strict";n.r(e),n.d(e,"concatMap",(function(){return r}));var i=n(240);function r(t,e){return Object(i.mergeMap)(t,e,1)}},function(t,e,n){"use strict";n.r(e),n.d(e,"concatMapTo",(function(){return r}));var i=n(281);function r(t,e){return Object(i.concatMap)((function(){return t}),e)}},function(t,e,n){"use strict";n.r(e),n.d(e,"count",(function(){return o}));var i=n(170),r=n(169);function o(t){return function(e){return e.lift(new a(t,e))}}var a=function(){function t(t,e){this.predicate=t,this.source=e}return t.prototype.call=function(t,e){return e.subscribe(new s(t,this.predicate,this.source))},t}(),s=function(t){function e(e,n,i){var r=t.call(this,e)||this;return r.predicate=n,r.source=i,r.count=0,r.index=0,r}return i.__extends(e,t),e.prototype._next=function(t){this.predicate?this._tryPredicate(t):this.count++},e.prototype._tryPredicate=function(t){var e;try{e=this.predicate(t,this.index++,this.source)}catch(t){return void this.destination.error(t)}e&&this.count++},e.prototype._complete=function(){this.destination.next(this.count),this.destination.complete()},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"debounce",(function(){return a}));var i=n(170),r=n(227),o=n(228);function a(t){return function(e){return e.lift(new s(t))}}var s=function(){function t(t){this.durationSelector=t}return t.prototype.call=function(t,e){return e.subscribe(new l(t,this.durationSelector))},t}(),l=function(t){function e(e,n){var i=t.call(this,e)||this;return i.durationSelector=n,i.hasValue=!1,i.durationSubscription=null,i}return i.__extends(e,t),e.prototype._next=function(t){try{var e=this.durationSelector.call(this,t);e&&this._tryNext(t,e)}catch(t){this.destination.error(t)}},e.prototype._complete=function(){this.emitValue(),this.destination.complete()},e.prototype._tryNext=function(t,e){var n=this.durationSubscription;this.value=t,this.hasValue=!0,n&&(n.unsubscribe(),this.remove(n)),(n=Object(o.subscribeToResult)(this,e))&&!n.closed&&this.add(this.durationSubscription=n)},e.prototype.notifyNext=function(t,e,n,i,r){this.emitValue()},e.prototype.notifyComplete=function(){this.emitValue()},e.prototype.emitValue=function(){if(this.hasValue){var e=this.value,n=this.durationSubscription;n&&(this.durationSubscription=null,n.unsubscribe(),this.remove(n)),this.value=null,this.hasValue=!1,t.prototype._next.call(this,e)}},e}(r.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"debounceTime",(function(){return a}));var i=n(170),r=n(169),o=n(213);function a(t,e){return void 0===e&&(e=o.async),function(n){return n.lift(new s(t,e))}}var s=function(){function t(t,e){this.dueTime=t,this.scheduler=e}return t.prototype.call=function(t,e){return e.subscribe(new l(t,this.dueTime,this.scheduler))},t}(),l=function(t){function e(e,n,i){var r=t.call(this,e)||this;return r.dueTime=n,r.scheduler=i,r.debouncedSubscription=null,r.lastValue=null,r.hasValue=!1,r}return i.__extends(e,t),e.prototype._next=function(t){this.clearDebounce(),this.lastValue=t,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(c,this.dueTime,this))},e.prototype._complete=function(){this.debouncedNext(),this.destination.complete()},e.prototype.debouncedNext=function(){if(this.clearDebounce(),this.hasValue){var t=this.lastValue;this.lastValue=null,this.hasValue=!1,this.destination.next(t)}},e.prototype.clearDebounce=function(){var t=this.debouncedSubscription;null!==t&&(this.remove(t),t.unsubscribe(),this.debouncedSubscription=null)},e}(r.Subscriber);function c(t){t.debouncedNext()}},function(t,e,n){"use strict";n.r(e),n.d(e,"defaultIfEmpty",(function(){return o}));var i=n(170),r=n(169);function o(t){return void 0===t&&(t=null),function(e){return e.lift(new a(t))}}var a=function(){function t(t){this.defaultValue=t}return t.prototype.call=function(t,e){return e.subscribe(new s(t,this.defaultValue))},t}(),s=function(t){function e(e,n){var i=t.call(this,e)||this;return i.defaultValue=n,i.isEmpty=!0,i}return i.__extends(e,t),e.prototype._next=function(t){this.isEmpty=!1,this.destination.next(t)},e.prototype._complete=function(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"delay",(function(){return l}));var i=n(170),r=n(213),o=n(288),a=n(169),s=n(200);function l(t,e){void 0===e&&(e=r.async);var n=Object(o.isDate)(t)?+t-e.now():Math.abs(t);return function(t){return t.lift(new c(n,e))}}var c=function(){function t(t,e){this.delay=t,this.scheduler=e}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.delay,this.scheduler))},t}(),u=function(t){function e(e,n,i){var r=t.call(this,e)||this;return r.delay=n,r.scheduler=i,r.queue=[],r.active=!1,r.errored=!1,r}return i.__extends(e,t),e.dispatch=function(t){for(var e=t.source,n=e.queue,i=t.scheduler,r=t.destination;n.length>0&&n[0].time-i.now()<=0;)n.shift().notification.observe(r);if(n.length>0){var o=Math.max(0,n[0].time-i.now());this.schedule(t,o)}else this.unsubscribe(),e.active=!1},e.prototype._schedule=function(t){this.active=!0,this.destination.add(t.schedule(e.dispatch,this.delay,{source:this,destination:this.destination,scheduler:t}))},e.prototype.scheduleNotification=function(t){if(!0!==this.errored){var e=this.scheduler,n=new d(e.now()+this.delay,t);this.queue.push(n),!1===this.active&&this._schedule(e)}},e.prototype._next=function(t){this.scheduleNotification(s.Notification.createNext(t))},e.prototype._error=function(t){this.errored=!0,this.queue=[],this.destination.error(t),this.unsubscribe()},e.prototype._complete=function(){this.scheduleNotification(s.Notification.createComplete()),this.unsubscribe()},e}(a.Subscriber),d=function(){return function(t,e){this.time=t,this.notification=e}}()},function(t,e,n){"use strict";function i(t){return t instanceof Date&&!isNaN(+t)}n.r(e),n.d(e,"isDate",(function(){return i}))},function(t,e,n){"use strict";n.r(e),n.d(e,"delayWhen",(function(){return l}));var i=n(170),r=n(169),o=n(167),a=n(227),s=n(228);function l(t,e){return e?function(n){return new d(n,e).lift(new c(t))}:function(e){return e.lift(new c(t))}}var c=function(){function t(t){this.delayDurationSelector=t}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.delayDurationSelector))},t}(),u=function(t){function e(e,n){var i=t.call(this,e)||this;return i.delayDurationSelector=n,i.completed=!1,i.delayNotifierSubscriptions=[],i.index=0,i}return i.__extends(e,t),e.prototype.notifyNext=function(t,e,n,i,r){this.destination.next(t),this.removeSubscription(r),this.tryComplete()},e.prototype.notifyError=function(t,e){this._error(t)},e.prototype.notifyComplete=function(t){var e=this.removeSubscription(t);e&&this.destination.next(e),this.tryComplete()},e.prototype._next=function(t){var e=this.index++;try{var n=this.delayDurationSelector(t,e);n&&this.tryDelay(n,t)}catch(t){this.destination.error(t)}},e.prototype._complete=function(){this.completed=!0,this.tryComplete(),this.unsubscribe()},e.prototype.removeSubscription=function(t){t.unsubscribe();var e=this.delayNotifierSubscriptions.indexOf(t);return-1!==e&&this.delayNotifierSubscriptions.splice(e,1),t.outerValue},e.prototype.tryDelay=function(t,e){var n=Object(s.subscribeToResult)(this,t,e);n&&!n.closed&&(this.destination.add(n),this.delayNotifierSubscriptions.push(n))},e.prototype.tryComplete=function(){this.completed&&0===this.delayNotifierSubscriptions.length&&this.destination.complete()},e}(a.OuterSubscriber),d=function(t){function e(e,n){var i=t.call(this)||this;return i.source=e,i.subscriptionDelay=n,i}return i.__extends(e,t),e.prototype._subscribe=function(t){this.subscriptionDelay.subscribe(new m(t,this.source))},e}(o.Observable),m=function(t){function e(e,n){var i=t.call(this)||this;return i.parent=e,i.source=n,i.sourceSubscribed=!1,i}return i.__extends(e,t),e.prototype._next=function(t){this.subscribeToSource()},e.prototype._error=function(t){this.unsubscribe(),this.parent.error(t)},e.prototype._complete=function(){this.unsubscribe(),this.subscribeToSource()},e.prototype.subscribeToSource=function(){this.sourceSubscribed||(this.sourceSubscribed=!0,this.unsubscribe(),this.source.subscribe(this.parent))},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"dematerialize",(function(){return o}));var i=n(170),r=n(169);function o(){return function(t){return t.lift(new a)}}var a=function(){function t(){}return t.prototype.call=function(t,e){return e.subscribe(new s(t))},t}(),s=function(t){function e(e){return t.call(this,e)||this}return i.__extends(e,t),e.prototype._next=function(t){t.observe(this.destination)},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"distinct",(function(){return a})),n.d(e,"DistinctSubscriber",(function(){return l}));var i=n(170),r=n(227),o=n(228);function a(t,e){return function(n){return n.lift(new s(t,e))}}var s=function(){function t(t,e){this.keySelector=t,this.flushes=e}return t.prototype.call=function(t,e){return e.subscribe(new l(t,this.keySelector,this.flushes))},t}(),l=function(t){function e(e,n,i){var r=t.call(this,e)||this;return r.keySelector=n,r.values=new Set,i&&r.add(Object(o.subscribeToResult)(r,i)),r}return i.__extends(e,t),e.prototype.notifyNext=function(t,e,n,i,r){this.values.clear()},e.prototype.notifyError=function(t,e){this._error(t)},e.prototype._next=function(t){this.keySelector?this._useKeySelector(t):this._finalizeNext(t,t)},e.prototype._useKeySelector=function(t){var e,n=this.destination;try{e=this.keySelector(t)}catch(t){return void n.error(t)}this._finalizeNext(e,t)},e.prototype._finalizeNext=function(t,e){var n=this.values;n.has(t)||(n.add(t),this.destination.next(e))},e}(r.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"distinctUntilChanged",(function(){return o}));var i=n(170),r=n(169);function o(t,e){return function(n){return n.lift(new a(t,e))}}var a=function(){function t(t,e){this.compare=t,this.keySelector=e}return t.prototype.call=function(t,e){return e.subscribe(new s(t,this.compare,this.keySelector))},t}(),s=function(t){function e(e,n,i){var r=t.call(this,e)||this;return r.keySelector=i,r.hasKey=!1,"function"==typeof n&&(r.compare=n),r}return i.__extends(e,t),e.prototype.compare=function(t,e){return t===e},e.prototype._next=function(t){var e;try{var n=this.keySelector;e=n?n(t):t}catch(t){return this.destination.error(t)}var i=!1;if(this.hasKey)try{i=(0,this.compare)(this.key,e)}catch(t){return this.destination.error(t)}else this.hasKey=!0;i||(this.key=e,this.destination.next(t))},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"distinctUntilKeyChanged",(function(){return r}));var i=n(292);function r(t,e){return Object(i.distinctUntilChanged)((function(n,i){return e?e(n[t],i[t]):n[t]===i[t]}))}},function(t,e,n){"use strict";n.r(e),n.d(e,"elementAt",(function(){return l}));var i=n(220),r=n(262),o=n(295),a=n(286),s=n(296);function l(t,e){if(t<0)throw new i.ArgumentOutOfRangeError;var n=arguments.length>=2;return function(l){return l.pipe(Object(r.filter)((function(e,n){return n===t})),Object(s.take)(1),n?Object(a.defaultIfEmpty)(e):Object(o.throwIfEmpty)((function(){return new i.ArgumentOutOfRangeError})))}}},function(t,e,n){"use strict";n.r(e),n.d(e,"throwIfEmpty",(function(){return a}));var i=n(170),r=n(221),o=n(169);function a(t){return void 0===t&&(t=c),function(e){return e.lift(new s(t))}}var s=function(){function t(t){this.errorFactory=t}return t.prototype.call=function(t,e){return e.subscribe(new l(t,this.errorFactory))},t}(),l=function(t){function e(e,n){var i=t.call(this,e)||this;return i.errorFactory=n,i.hasValue=!1,i}return i.__extends(e,t),e.prototype._next=function(t){this.hasValue=!0,this.destination.next(t)},e.prototype._complete=function(){if(this.hasValue)return this.destination.complete();var t=void 0;try{t=this.errorFactory()}catch(e){t=e}this.destination.error(t)},e}(o.Subscriber);function c(){return new r.EmptyError}},function(t,e,n){"use strict";n.r(e),n.d(e,"take",(function(){return s}));var i=n(170),r=n(169),o=n(220),a=n(201);function s(t){return function(e){return 0===t?Object(a.empty)():e.lift(new l(t))}}var l=function(){function t(t){if(this.total=t,this.total<0)throw new o.ArgumentOutOfRangeError}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.total))},t}(),c=function(t){function e(e,n){var i=t.call(this,e)||this;return i.total=n,i.count=0,i}return i.__extends(e,t),e.prototype._next=function(t){var e=this.total,n=++this.count;n<=e&&(this.destination.next(t),n===e&&(this.destination.complete(),this.unsubscribe()))},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"endWith",(function(){return o}));var i=n(237),r=n(202);function o(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return function(e){return Object(i.concat)(e,r.of.apply(void 0,t))}}},function(t,e,n){"use strict";n.r(e),n.d(e,"every",(function(){return o}));var i=n(170),r=n(169);function o(t,e){return function(n){return n.lift(new a(t,e,n))}}var a=function(){function t(t,e,n){this.predicate=t,this.thisArg=e,this.source=n}return t.prototype.call=function(t,e){return e.subscribe(new s(t,this.predicate,this.thisArg,this.source))},t}(),s=function(t){function e(e,n,i,r){var o=t.call(this,e)||this;return o.predicate=n,o.thisArg=i,o.source=r,o.index=0,o.thisArg=i||o,o}return i.__extends(e,t),e.prototype.notifyComplete=function(t){this.destination.next(t),this.destination.complete()},e.prototype._next=function(t){var e=!1;try{e=this.predicate.call(this.thisArg,t,this.index++,this.source)}catch(t){return void this.destination.error(t)}e||this.notifyComplete(!1)},e.prototype._complete=function(){this.notifyComplete(!0)},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"exhaust",(function(){return a}));var i=n(170),r=n(227),o=n(228);function a(){return function(t){return t.lift(new s)}}var s=function(){function t(){}return t.prototype.call=function(t,e){return e.subscribe(new l(t))},t}(),l=function(t){function e(e){var n=t.call(this,e)||this;return n.hasCompleted=!1,n.hasSubscription=!1,n}return i.__extends(e,t),e.prototype._next=function(t){this.hasSubscription||(this.hasSubscription=!0,this.add(Object(o.subscribeToResult)(this,t)))},e.prototype._complete=function(){this.hasCompleted=!0,this.hasSubscription||this.destination.complete()},e.prototype.notifyComplete=function(t){this.remove(t),this.hasSubscription=!1,this.hasCompleted&&this.destination.complete()},e}(r.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"exhaustMap",(function(){return c}));var i=n(170),r=n(227),o=n(229),a=n(228),s=n(224),l=n(241);function c(t,e){return e?function(n){return n.pipe(c((function(n,i){return Object(l.from)(t(n,i)).pipe(Object(s.map)((function(t,r){return e(n,t,i,r)})))})))}:function(e){return e.lift(new u(t))}}var u=function(){function t(t){this.project=t}return t.prototype.call=function(t,e){return e.subscribe(new d(t,this.project))},t}(),d=function(t){function e(e,n){var i=t.call(this,e)||this;return i.project=n,i.hasSubscription=!1,i.hasCompleted=!1,i.index=0,i}return i.__extends(e,t),e.prototype._next=function(t){this.hasSubscription||this.tryNext(t)},e.prototype.tryNext=function(t){var e,n=this.index++;try{e=this.project(t,n)}catch(t){return void this.destination.error(t)}this.hasSubscription=!0,this._innerSub(e,t,n)},e.prototype._innerSub=function(t,e,n){var i=new o.InnerSubscriber(this,e,n),r=this.destination;r.add(i);var s=Object(a.subscribeToResult)(this,t,void 0,void 0,i);s!==i&&r.add(s)},e.prototype._complete=function(){this.hasCompleted=!0,this.hasSubscription||this.destination.complete(),this.unsubscribe()},e.prototype.notifyNext=function(t,e,n,i,r){this.destination.next(e)},e.prototype.notifyError=function(t){this.destination.error(t)},e.prototype.notifyComplete=function(t){this.destination.remove(t),this.hasSubscription=!1,this.hasCompleted&&this.destination.complete()},e}(r.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"expand",(function(){return a})),n.d(e,"ExpandOperator",(function(){return s})),n.d(e,"ExpandSubscriber",(function(){return l}));var i=n(170),r=n(227),o=n(228);function a(t,e,n){return void 0===e&&(e=Number.POSITIVE_INFINITY),void 0===n&&(n=void 0),e=(e||0)<1?Number.POSITIVE_INFINITY:e,function(i){return i.lift(new s(t,e,n))}}var s=function(){function t(t,e,n){this.project=t,this.concurrent=e,this.scheduler=n}return t.prototype.call=function(t,e){return e.subscribe(new l(t,this.project,this.concurrent,this.scheduler))},t}(),l=function(t){function e(e,n,i,r){var o=t.call(this,e)||this;return o.project=n,o.concurrent=i,o.scheduler=r,o.index=0,o.active=0,o.hasCompleted=!1,i<Number.POSITIVE_INFINITY&&(o.buffer=[]),o}return i.__extends(e,t),e.dispatch=function(t){var e=t.subscriber,n=t.result,i=t.value,r=t.index;e.subscribeToProjection(n,i,r)},e.prototype._next=function(t){var n=this.destination;if(n.closed)this._complete();else{var i=this.index++;if(this.active<this.concurrent){n.next(t);try{var r=(0,this.project)(t,i);if(this.scheduler){var o={subscriber:this,result:r,value:t,index:i};this.destination.add(this.scheduler.schedule(e.dispatch,0,o))}else this.subscribeToProjection(r,t,i)}catch(t){n.error(t)}}else this.buffer.push(t)}},e.prototype.subscribeToProjection=function(t,e,n){this.active++,this.destination.add(Object(o.subscribeToResult)(this,t,e,n))},e.prototype._complete=function(){this.hasCompleted=!0,this.hasCompleted&&0===this.active&&this.destination.complete(),this.unsubscribe()},e.prototype.notifyNext=function(t,e,n,i,r){this._next(e)},e.prototype.notifyComplete=function(t){var e=this.buffer;this.destination.remove(t),this.active--,e&&e.length>0&&this._next(e.shift()),this.hasCompleted&&0===this.active&&this.destination.complete()},e}(r.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"finalize",(function(){return a}));var i=n(170),r=n(169),o=n(175);function a(t){return function(e){return e.lift(new s(t))}}var s=function(){function t(t){this.callback=t}return t.prototype.call=function(t,e){return e.subscribe(new l(t,this.callback))},t}(),l=function(t){function e(e,n){var i=t.call(this,e)||this;return i.add(new o.Subscription(n)),i}return i.__extends(e,t),e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"find",(function(){return o})),n.d(e,"FindValueOperator",(function(){return a})),n.d(e,"FindValueSubscriber",(function(){return s}));var i=n(170),r=n(169);function o(t,e){if("function"!=typeof t)throw new TypeError("predicate is not a function");return function(n){return n.lift(new a(t,n,!1,e))}}var a=function(){function t(t,e,n,i){this.predicate=t,this.source=e,this.yieldIndex=n,this.thisArg=i}return t.prototype.call=function(t,e){return e.subscribe(new s(t,this.predicate,this.source,this.yieldIndex,this.thisArg))},t}(),s=function(t){function e(e,n,i,r,o){var a=t.call(this,e)||this;return a.predicate=n,a.source=i,a.yieldIndex=r,a.thisArg=o,a.index=0,a}return i.__extends(e,t),e.prototype.notifyComplete=function(t){var e=this.destination;e.next(t),e.complete(),this.unsubscribe()},e.prototype._next=function(t){var e=this.predicate,n=this.thisArg,i=this.index++;try{e.call(n||this,t,i,this.source)&&this.notifyComplete(this.yieldIndex?i:t)}catch(t){this.destination.error(t)}},e.prototype._complete=function(){this.notifyComplete(this.yieldIndex?-1:void 0)},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"findIndex",(function(){return r}));var i=n(303);function r(t,e){return function(n){return n.lift(new i.FindValueOperator(t,n,!0,e))}}},function(t,e,n){"use strict";n.r(e),n.d(e,"first",(function(){return c}));var i=n(221),r=n(262),o=n(296),a=n(286),s=n(295),l=n(183);function c(t,e){var n=arguments.length>=2;return function(c){return c.pipe(t?Object(r.filter)((function(e,n){return t(e,n,c)})):l.identity,Object(o.take)(1),n?Object(a.defaultIfEmpty)(e):Object(s.throwIfEmpty)((function(){return new i.EmptyError})))}}},function(t,e,n){"use strict";n.r(e),n.d(e,"ignoreElements",(function(){return o}));var i=n(170),r=n(169);function o(){return function(t){return t.lift(new a)}}var a=function(){function t(){}return t.prototype.call=function(t,e){return e.subscribe(new s(t))},t}(),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i.__extends(e,t),e.prototype._next=function(t){},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"isEmpty",(function(){return o}));var i=n(170),r=n(169);function o(){return function(t){return t.lift(new a)}}var a=function(){function t(){}return t.prototype.call=function(t,e){return e.subscribe(new s(t))},t}(),s=function(t){function e(e){return t.call(this,e)||this}return i.__extends(e,t),e.prototype.notifyComplete=function(t){var e=this.destination;e.next(t),e.complete()},e.prototype._next=function(t){this.notifyComplete(!1)},e.prototype._complete=function(){this.notifyComplete(!0)},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"last",(function(){return c}));var i=n(221),r=n(262),o=n(309),a=n(295),s=n(286),l=n(183);function c(t,e){var n=arguments.length>=2;return function(c){return c.pipe(t?Object(r.filter)((function(e,n){return t(e,n,c)})):l.identity,Object(o.takeLast)(1),n?Object(s.defaultIfEmpty)(e):Object(a.throwIfEmpty)((function(){return new i.EmptyError})))}}},function(t,e,n){"use strict";n.r(e),n.d(e,"takeLast",(function(){return s}));var i=n(170),r=n(169),o=n(220),a=n(201);function s(t){return function(e){return 0===t?Object(a.empty)():e.lift(new l(t))}}var l=function(){function t(t){if(this.total=t,this.total<0)throw new o.ArgumentOutOfRangeError}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.total))},t}(),c=function(t){function e(e,n){var i=t.call(this,e)||this;return i.total=n,i.ring=new Array,i.count=0,i}return i.__extends(e,t),e.prototype._next=function(t){var e=this.ring,n=this.total,i=this.count++;e.length<n?e.push(t):e[i%n]=t},e.prototype._complete=function(){var t=this.destination,e=this.count;if(e>0)for(var n=this.count>=this.total?this.total:this.count,i=this.ring,r=0;r<n;r++){var o=e++%n;t.next(i[o])}t.complete()},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"mapTo",(function(){return o}));var i=n(170),r=n(169);function o(t){return function(e){return e.lift(new a(t))}}var a=function(){function t(t){this.value=t}return t.prototype.call=function(t,e){return e.subscribe(new s(t,this.value))},t}(),s=function(t){function e(e,n){var i=t.call(this,e)||this;return i.value=n,i}return i.__extends(e,t),e.prototype._next=function(t){this.destination.next(this.value)},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"materialize",(function(){return a}));var i=n(170),r=n(169),o=n(200);function a(){return function(t){return t.lift(new s)}}var s=function(){function t(){}return t.prototype.call=function(t,e){return e.subscribe(new l(t))},t}(),l=function(t){function e(e){return t.call(this,e)||this}return i.__extends(e,t),e.prototype._next=function(t){this.destination.next(o.Notification.createNext(t))},e.prototype._error=function(t){var e=this.destination;e.next(o.Notification.createError(t)),e.complete()},e.prototype._complete=function(){var t=this.destination;t.next(o.Notification.createComplete()),t.complete()},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"max",(function(){return r}));var i=n(313);function r(t){var e="function"==typeof t?function(e,n){return t(e,n)>0?e:n}:function(t,e){return t>e?t:e};return Object(i.reduce)(e)}},function(t,e,n){"use strict";n.r(e),n.d(e,"reduce",(function(){return s}));var i=n(314),r=n(309),o=n(286),a=n(182);function s(t,e){return arguments.length>=2?function(n){return Object(a.pipe)(Object(i.scan)(t,e),Object(r.takeLast)(1),Object(o.defaultIfEmpty)(e))(n)}:function(e){return Object(a.pipe)(Object(i.scan)((function(e,n,i){return t(e,n,i+1)})),Object(r.takeLast)(1))(e)}}},function(t,e,n){"use strict";n.r(e),n.d(e,"scan",(function(){return o}));var i=n(170),r=n(169);function o(t,e){var n=!1;return arguments.length>=2&&(n=!0),function(i){return i.lift(new a(t,e,n))}}var a=function(){function t(t,e,n){void 0===n&&(n=!1),this.accumulator=t,this.seed=e,this.hasSeed=n}return t.prototype.call=function(t,e){return e.subscribe(new s(t,this.accumulator,this.seed,this.hasSeed))},t}(),s=function(t){function e(e,n,i,r){var o=t.call(this,e)||this;return o.accumulator=n,o._seed=i,o.hasSeed=r,o.index=0,o}return i.__extends(e,t),Object.defineProperty(e.prototype,"seed",{get:function(){return this._seed},set:function(t){this.hasSeed=!0,this._seed=t},enumerable:!0,configurable:!0}),e.prototype._next=function(t){if(this.hasSeed)return this._tryNext(t);this.seed=t,this.destination.next(t)},e.prototype._tryNext=function(t){var e,n=this.index++;try{e=this.accumulator(this.seed,t,n)}catch(t){this.destination.error(t)}this.seed=e,this.destination.next(e)},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"merge",(function(){return r}));var i=n(256);function r(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return function(e){return e.lift.call(i.merge.apply(void 0,[e].concat(t)))}}},function(t,e,n){"use strict";n.r(e),n.d(e,"mergeMapTo",(function(){return r}));var i=n(240);function r(t,e,n){return void 0===n&&(n=Number.POSITIVE_INFINITY),"function"==typeof e?Object(i.mergeMap)((function(){return t}),e,n):("number"==typeof e&&(n=e),Object(i.mergeMap)((function(){return t}),n))}},function(t,e,n){"use strict";n.r(e),n.d(e,"mergeScan",(function(){return s})),n.d(e,"MergeScanOperator",(function(){return l})),n.d(e,"MergeScanSubscriber",(function(){return c}));var i=n(170),r=n(228),o=n(227),a=n(229);function s(t,e,n){return void 0===n&&(n=Number.POSITIVE_INFINITY),function(i){return i.lift(new l(t,e,n))}}var l=function(){function t(t,e,n){this.accumulator=t,this.seed=e,this.concurrent=n}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.accumulator,this.seed,this.concurrent))},t}(),c=function(t){function e(e,n,i,r){var o=t.call(this,e)||this;return o.accumulator=n,o.acc=i,o.concurrent=r,o.hasValue=!1,o.hasCompleted=!1,o.buffer=[],o.active=0,o.index=0,o}return i.__extends(e,t),e.prototype._next=function(t){if(this.active<this.concurrent){var e=this.index++,n=this.destination,i=void 0;try{i=(0,this.accumulator)(this.acc,t,e)}catch(t){return n.error(t)}this.active++,this._innerSub(i,t,e)}else this.buffer.push(t)},e.prototype._innerSub=function(t,e,n){var i=new a.InnerSubscriber(this,e,n),o=this.destination;o.add(i);var s=Object(r.subscribeToResult)(this,t,void 0,void 0,i);s!==i&&o.add(s)},e.prototype._complete=function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&(!1===this.hasValue&&this.destination.next(this.acc),this.destination.complete()),this.unsubscribe()},e.prototype.notifyNext=function(t,e,n,i,r){var o=this.destination;this.acc=e,this.hasValue=!0,o.next(e)},e.prototype.notifyComplete=function(t){var e=this.buffer;this.destination.remove(t),this.active--,e.length>0?this._next(e.shift()):0===this.active&&this.hasCompleted&&(!1===this.hasValue&&this.destination.next(this.acc),this.destination.complete())},e}(o.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"min",(function(){return r}));var i=n(313);function r(t){var e="function"==typeof t?function(e,n){return t(e,n)<0?e:n}:function(t,e){return t<e?t:e};return Object(i.reduce)(e)}},function(t,e,n){"use strict";n.r(e),n.d(e,"multicast",(function(){return r})),n.d(e,"MulticastOperator",(function(){return o}));var i=n(184);function r(t,e){return function(n){var r;if(r="function"==typeof t?t:function(){return t},"function"==typeof e)return n.lift(new o(r,e));var a=Object.create(n,i.connectableObservableDescriptor);return a.source=n,a.subjectFactory=r,a}}var o=function(){function t(t,e){this.subjectFactory=t,this.selector=e}return t.prototype.call=function(t,e){var n=this.selector,i=this.subjectFactory(),r=n(i).subscribe(t);return r.add(e.subscribe(i)),r},t}()},function(t,e,n){"use strict";n.r(e),n.d(e,"onErrorResumeNext",(function(){return c})),n.d(e,"onErrorResumeNextStatic",(function(){return u}));var i=n(170),r=n(241),o=n(176),a=n(227),s=n(229),l=n(228);function c(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return 1===t.length&&Object(o.isArray)(t[0])&&(t=t[0]),function(e){return e.lift(new d(t))}}function u(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n;return 1===t.length&&Object(o.isArray)(t[0])&&(t=t[0]),n=t.shift(),Object(r.from)(n,null).lift(new d(t))}var d=function(){function t(t){this.nextSources=t}return t.prototype.call=function(t,e){return e.subscribe(new m(t,this.nextSources))},t}(),m=function(t){function e(e,n){var i=t.call(this,e)||this;return i.destination=e,i.nextSources=n,i}return i.__extends(e,t),e.prototype.notifyError=function(t,e){this.subscribeToNextSource()},e.prototype.notifyComplete=function(t){this.subscribeToNextSource()},e.prototype._error=function(t){this.subscribeToNextSource(),this.unsubscribe()},e.prototype._complete=function(){this.subscribeToNextSource(),this.unsubscribe()},e.prototype.subscribeToNextSource=function(){var t=this.nextSources.shift();if(t){var e=new s.InnerSubscriber(this,void 0,void 0),n=this.destination;n.add(e);var i=Object(l.subscribeToResult)(this,t,void 0,void 0,e);i!==e&&n.add(i)}else this.destination.complete()},e}(a.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"pairwise",(function(){return o}));var i=n(170),r=n(169);function o(){return function(t){return t.lift(new a)}}var a=function(){function t(){}return t.prototype.call=function(t,e){return e.subscribe(new s(t))},t}(),s=function(t){function e(e){var n=t.call(this,e)||this;return n.hasPrev=!1,n}return i.__extends(e,t),e.prototype._next=function(t){var e;this.hasPrev?e=[this.prev,t]:this.hasPrev=!0,this.prev=t,e&&this.destination.next(e)},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"partition",(function(){return o}));var i=n(261),r=n(262);function o(t,e){return function(n){return[Object(r.filter)(t,e)(n),Object(r.filter)(Object(i.not)(t,e))(n)]}}},function(t,e,n){"use strict";n.r(e),n.d(e,"pluck",(function(){return r}));var i=n(224);function r(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=t.length;if(0===n)throw new Error("list of properties cannot be empty.");return function(e){return Object(i.map)(function(t,e){return function(n){for(var i=n,r=0;r<e;r++){var o=i[t[r]];if(void 0===o)return;i=o}return i}}(t,n))(e)}}},function(t,e,n){"use strict";n.r(e),n.d(e,"publish",(function(){return o}));var i=n(185),r=n(319);function o(t){return t?Object(r.multicast)((function(){return new i.Subject}),t):Object(r.multicast)(new i.Subject)}},function(t,e,n){"use strict";n.r(e),n.d(e,"publishBehavior",(function(){return o}));var i=n(190),r=n(319);function o(t){return function(e){return Object(r.multicast)(new i.BehaviorSubject(t))(e)}}},function(t,e,n){"use strict";n.r(e),n.d(e,"publishLast",(function(){return o}));var i=n(208),r=n(319);function o(){return function(t){return Object(r.multicast)(new i.AsyncSubject)(t)}}},function(t,e,n){"use strict";n.r(e),n.d(e,"publishReplay",(function(){return o}));var i=n(191),r=n(319);function o(t,e,n,o){n&&"function"!=typeof n&&(o=n);var a="function"==typeof n?n:void 0,s=new i.ReplaySubject(t,e,o);return function(t){return Object(r.multicast)((function(){return s}),a)(t)}}},function(t,e,n){"use strict";n.r(e),n.d(e,"race",(function(){return o}));var i=n(176),r=n(263);function o(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return function(e){return 1===t.length&&Object(i.isArray)(t[0])&&(t=t[0]),e.lift.call(r.race.apply(void 0,[e].concat(t)))}}},function(t,e,n){"use strict";n.r(e),n.d(e,"repeat",(function(){return a}));var i=n(170),r=n(169),o=n(201);function a(t){return void 0===t&&(t=-1),function(e){return 0===t?Object(o.empty)():t<0?e.lift(new s(-1,e)):e.lift(new s(t-1,e))}}var s=function(){function t(t,e){this.count=t,this.source=e}return t.prototype.call=function(t,e){return e.subscribe(new l(t,this.count,this.source))},t}(),l=function(t){function e(e,n,i){var r=t.call(this,e)||this;return r.count=n,r.source=i,r}return i.__extends(e,t),e.prototype.complete=function(){if(!this.isStopped){var e=this.source,n=this.count;if(0===n)return t.prototype.complete.call(this);n>-1&&(this.count=n-1),e.subscribe(this._unsubscribeAndRecycle())}},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"repeatWhen",(function(){return s}));var i=n(170),r=n(185),o=n(227),a=n(228);function s(t){return function(e){return e.lift(new l(t))}}var l=function(){function t(t){this.notifier=t}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.notifier,e))},t}(),c=function(t){function e(e,n,i){var r=t.call(this,e)||this;return r.notifier=n,r.source=i,r.sourceIsBeingSubscribedTo=!0,r}return i.__extends(e,t),e.prototype.notifyNext=function(t,e,n,i,r){this.sourceIsBeingSubscribedTo=!0,this.source.subscribe(this)},e.prototype.notifyComplete=function(e){if(!1===this.sourceIsBeingSubscribedTo)return t.prototype.complete.call(this)},e.prototype.complete=function(){if(this.sourceIsBeingSubscribedTo=!1,!this.isStopped){if(this.retries||this.subscribeToRetries(),!this.retriesSubscription||this.retriesSubscription.closed)return t.prototype.complete.call(this);this._unsubscribeAndRecycle(),this.notifications.next()}},e.prototype._unsubscribe=function(){var t=this.notifications,e=this.retriesSubscription;t&&(t.unsubscribe(),this.notifications=null),e&&(e.unsubscribe(),this.retriesSubscription=null),this.retries=null},e.prototype._unsubscribeAndRecycle=function(){var e=this._unsubscribe;return this._unsubscribe=null,t.prototype._unsubscribeAndRecycle.call(this),this._unsubscribe=e,this},e.prototype.subscribeToRetries=function(){var e;this.notifications=new r.Subject;try{e=(0,this.notifier)(this.notifications)}catch(e){return t.prototype.complete.call(this)}this.retries=e,this.retriesSubscription=Object(a.subscribeToResult)(this,e)},e}(o.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"retry",(function(){return o}));var i=n(170),r=n(169);function o(t){return void 0===t&&(t=-1),function(e){return e.lift(new a(t,e))}}var a=function(){function t(t,e){this.count=t,this.source=e}return t.prototype.call=function(t,e){return e.subscribe(new s(t,this.count,this.source))},t}(),s=function(t){function e(e,n,i){var r=t.call(this,e)||this;return r.count=n,r.source=i,r}return i.__extends(e,t),e.prototype.error=function(e){if(!this.isStopped){var n=this.source,i=this.count;if(0===i)return t.prototype.error.call(this,e);i>-1&&(this.count=i-1),n.subscribe(this._unsubscribeAndRecycle())}},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"retryWhen",(function(){return s}));var i=n(170),r=n(185),o=n(227),a=n(228);function s(t){return function(e){return e.lift(new l(t,e))}}var l=function(){function t(t,e){this.notifier=t,this.source=e}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.notifier,this.source))},t}(),c=function(t){function e(e,n,i){var r=t.call(this,e)||this;return r.notifier=n,r.source=i,r}return i.__extends(e,t),e.prototype.error=function(e){if(!this.isStopped){var n=this.errors,i=this.retries,o=this.retriesSubscription;if(i)this.errors=null,this.retriesSubscription=null;else{n=new r.Subject;try{i=(0,this.notifier)(n)}catch(e){return t.prototype.error.call(this,e)}o=Object(a.subscribeToResult)(this,i)}this._unsubscribeAndRecycle(),this.errors=n,this.retries=i,this.retriesSubscription=o,n.next(e)}},e.prototype._unsubscribe=function(){var t=this.errors,e=this.retriesSubscription;t&&(t.unsubscribe(),this.errors=null),e&&(e.unsubscribe(),this.retriesSubscription=null),this.retries=null},e.prototype.notifyNext=function(t,e,n,i,r){var o=this._unsubscribe;this._unsubscribe=null,this._unsubscribeAndRecycle(),this._unsubscribe=o,this.source.subscribe(this)},e}(o.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"sample",(function(){return a}));var i=n(170),r=n(227),o=n(228);function a(t){return function(e){return e.lift(new s(t))}}var s=function(){function t(t){this.notifier=t}return t.prototype.call=function(t,e){var n=new l(t),i=e.subscribe(n);return i.add(Object(o.subscribeToResult)(n,this.notifier)),i},t}(),l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.hasValue=!1,e}return i.__extends(e,t),e.prototype._next=function(t){this.value=t,this.hasValue=!0},e.prototype.notifyNext=function(t,e,n,i,r){this.emitValue()},e.prototype.notifyComplete=function(){this.emitValue()},e.prototype.emitValue=function(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.value))},e}(r.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"sampleTime",(function(){return a}));var i=n(170),r=n(169),o=n(213);function a(t,e){return void 0===e&&(e=o.async),function(n){return n.lift(new s(t,e))}}var s=function(){function t(t,e){this.period=t,this.scheduler=e}return t.prototype.call=function(t,e){return e.subscribe(new l(t,this.period,this.scheduler))},t}(),l=function(t){function e(e,n,i){var r=t.call(this,e)||this;return r.period=n,r.scheduler=i,r.hasValue=!1,r.add(i.schedule(c,n,{subscriber:r,period:n})),r}return i.__extends(e,t),e.prototype._next=function(t){this.lastValue=t,this.hasValue=!0},e.prototype.notifyNext=function(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.lastValue))},e}(r.Subscriber);function c(t){var e=t.subscriber,n=t.period;e.notifyNext(),this.schedule(t,n)}},function(t,e,n){"use strict";n.r(e),n.d(e,"sequenceEqual",(function(){return o})),n.d(e,"SequenceEqualOperator",(function(){return a})),n.d(e,"SequenceEqualSubscriber",(function(){return s}));var i=n(170),r=n(169);function o(t,e){return function(n){return n.lift(new a(t,e))}}var a=function(){function t(t,e){this.compareTo=t,this.comparator=e}return t.prototype.call=function(t,e){return e.subscribe(new s(t,this.compareTo,this.comparator))},t}(),s=function(t){function e(e,n,i){var r=t.call(this,e)||this;return r.compareTo=n,r.comparator=i,r._a=[],r._b=[],r._oneComplete=!1,r.destination.add(n.subscribe(new l(e,r))),r}return i.__extends(e,t),e.prototype._next=function(t){this._oneComplete&&0===this._b.length?this.emit(!1):(this._a.push(t),this.checkValues())},e.prototype._complete=function(){this._oneComplete?this.emit(0===this._a.length&&0===this._b.length):this._oneComplete=!0,this.unsubscribe()},e.prototype.checkValues=function(){for(var t=this._a,e=this._b,n=this.comparator;t.length>0&&e.length>0;){var i=t.shift(),r=e.shift(),o=!1;try{o=n?n(i,r):i===r}catch(t){this.destination.error(t)}o||this.emit(!1)}},e.prototype.emit=function(t){var e=this.destination;e.next(t),e.complete()},e.prototype.nextB=function(t){this._oneComplete&&0===this._a.length?this.emit(!1):(this._b.push(t),this.checkValues())},e.prototype.completeB=function(){this._oneComplete?this.emit(0===this._a.length&&0===this._b.length):this._oneComplete=!0},e}(r.Subscriber),l=function(t){function e(e,n){var i=t.call(this,e)||this;return i.parent=n,i}return i.__extends(e,t),e.prototype._next=function(t){this.parent.nextB(t)},e.prototype._error=function(t){this.parent.error(t),this.unsubscribe()},e.prototype._complete=function(){this.parent.completeB(),this.unsubscribe()},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"share",(function(){return s}));var i=n(319),r=n(188),o=n(185);function a(){return new o.Subject}function s(){return function(t){return Object(r.refCount)()(Object(i.multicast)(a)(t))}}},function(t,e,n){"use strict";n.r(e),n.d(e,"shareReplay",(function(){return r}));var i=n(191);function r(t,e,n){var r;return r=t&&"object"==typeof t?t:{bufferSize:t,windowTime:e,refCount:!1,scheduler:n},function(t){return t.lift(function(t){var e,n,r=t.bufferSize,o=void 0===r?Number.POSITIVE_INFINITY:r,a=t.windowTime,s=void 0===a?Number.POSITIVE_INFINITY:a,l=t.refCount,c=t.scheduler,u=0,d=!1,m=!1;return function(t){u++,e&&!d||(d=!1,e=new i.ReplaySubject(o,s,c),n=t.subscribe({next:function(t){e.next(t)},error:function(t){d=!0,e.error(t)},complete:function(){m=!0,n=void 0,e.complete()}}));var r=e.subscribe(this);this.add((function(){u--,r.unsubscribe(),n&&!m&&l&&0===u&&(n.unsubscribe(),n=void 0,e=void 0)}))}}(r))}}},function(t,e,n){"use strict";n.r(e),n.d(e,"single",(function(){return a}));var i=n(170),r=n(169),o=n(221);function a(t){return function(e){return e.lift(new s(t,e))}}var s=function(){function t(t,e){this.predicate=t,this.source=e}return t.prototype.call=function(t,e){return e.subscribe(new l(t,this.predicate,this.source))},t}(),l=function(t){function e(e,n,i){var r=t.call(this,e)||this;return r.predicate=n,r.source=i,r.seenValue=!1,r.index=0,r}return i.__extends(e,t),e.prototype.applySingleValue=function(t){this.seenValue?this.destination.error("Sequence contains more than one element"):(this.seenValue=!0,this.singleValue=t)},e.prototype._next=function(t){var e=this.index++;this.predicate?this.tryNext(t,e):this.applySingleValue(t)},e.prototype.tryNext=function(t,e){try{this.predicate(t,e,this.source)&&this.applySingleValue(t)}catch(t){this.destination.error(t)}},e.prototype._complete=function(){var t=this.destination;this.index>0?(t.next(this.seenValue?this.singleValue:void 0),t.complete()):t.error(new o.EmptyError)},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"skip",(function(){return o}));var i=n(170),r=n(169);function o(t){return function(e){return e.lift(new a(t))}}var a=function(){function t(t){this.total=t}return t.prototype.call=function(t,e){return e.subscribe(new s(t,this.total))},t}(),s=function(t){function e(e,n){var i=t.call(this,e)||this;return i.total=n,i.count=0,i}return i.__extends(e,t),e.prototype._next=function(t){++this.count>this.total&&this.destination.next(t)},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"skipLast",(function(){return a}));var i=n(170),r=n(169),o=n(220);function a(t){return function(e){return e.lift(new s(t))}}var s=function(){function t(t){if(this._skipCount=t,this._skipCount<0)throw new o.ArgumentOutOfRangeError}return t.prototype.call=function(t,e){return 0===this._skipCount?e.subscribe(new r.Subscriber(t)):e.subscribe(new l(t,this._skipCount))},t}(),l=function(t){function e(e,n){var i=t.call(this,e)||this;return i._skipCount=n,i._count=0,i._ring=new Array(n),i}return i.__extends(e,t),e.prototype._next=function(t){var e=this._skipCount,n=this._count++;if(n<e)this._ring[n]=t;else{var i=n%e,r=this._ring,o=r[i];r[i]=t,this.destination.next(o)}},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"skipUntil",(function(){return s}));var i=n(170),r=n(227),o=n(229),a=n(228);function s(t){return function(e){return e.lift(new l(t))}}var l=function(){function t(t){this.notifier=t}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.notifier))},t}(),c=function(t){function e(e,n){var i=t.call(this,e)||this;i.hasValue=!1;var r=new o.InnerSubscriber(i,void 0,void 0);i.add(r),i.innerSubscription=r;var s=Object(a.subscribeToResult)(i,n,void 0,void 0,r);return s!==r&&(i.add(s),i.innerSubscription=s),i}return i.__extends(e,t),e.prototype._next=function(e){this.hasValue&&t.prototype._next.call(this,e)},e.prototype.notifyNext=function(t,e,n,i,r){this.hasValue=!0,this.innerSubscription&&this.innerSubscription.unsubscribe()},e.prototype.notifyComplete=function(){},e}(r.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"skipWhile",(function(){return o}));var i=n(170),r=n(169);function o(t){return function(e){return e.lift(new a(t))}}var a=function(){function t(t){this.predicate=t}return t.prototype.call=function(t,e){return e.subscribe(new s(t,this.predicate))},t}(),s=function(t){function e(e,n){var i=t.call(this,e)||this;return i.predicate=n,i.skipping=!0,i.index=0,i}return i.__extends(e,t),e.prototype._next=function(t){var e=this.destination;this.skipping&&this.tryCallPredicate(t),this.skipping||e.next(t)},e.prototype.tryCallPredicate=function(t){try{var e=this.predicate(t,this.index++);this.skipping=Boolean(e)}catch(t){this.destination.error(t)}},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"startWith",(function(){return o}));var i=n(237),r=n(203);function o(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=t[t.length-1];return Object(r.isScheduler)(n)?(t.pop(),function(e){return Object(i.concat)(t,e,n)}):function(e){return Object(i.concat)(t,e)}}},function(t,e,n){"use strict";n.r(e),n.d(e,"subscribeOn",(function(){return r}));var i=n(345);function r(t,e){return void 0===e&&(e=0),function(n){return n.lift(new o(t,e))}}var o=function(){function t(t,e){this.scheduler=t,this.delay=e}return t.prototype.call=function(t,e){return new i.SubscribeOnObservable(e,this.delay,this.scheduler).subscribe(t)},t}()},function(t,e,n){"use strict";n.r(e),n.d(e,"SubscribeOnObservable",(function(){return s}));var i=n(170),r=n(167),o=n(209),a=n(255),s=function(t){function e(e,n,i){void 0===n&&(n=0),void 0===i&&(i=o.asap);var r=t.call(this)||this;return r.source=e,r.delayTime=n,r.scheduler=i,(!Object(a.isNumeric)(n)||n<0)&&(r.delayTime=0),i&&"function"==typeof i.schedule||(r.scheduler=o.asap),r}return i.__extends(e,t),e.create=function(t,n,i){return void 0===n&&(n=0),void 0===i&&(i=o.asap),new e(t,n,i)},e.dispatch=function(t){var e=t.source,n=t.subscriber;return this.add(e.subscribe(n))},e.prototype._subscribe=function(t){var n=this.delayTime,i=this.source;return this.scheduler.schedule(e.dispatch,n,{source:i,subscriber:t})},e}(r.Observable)},function(t,e,n){"use strict";n.r(e),n.d(e,"switchAll",(function(){return o}));var i=n(347),r=n(183);function o(){return Object(i.switchMap)(r.identity)}},function(t,e,n){"use strict";n.r(e),n.d(e,"switchMap",(function(){return c}));var i=n(170),r=n(227),o=n(229),a=n(228),s=n(224),l=n(241);function c(t,e){return"function"==typeof e?function(n){return n.pipe(c((function(n,i){return Object(l.from)(t(n,i)).pipe(Object(s.map)((function(t,r){return e(n,t,i,r)})))})))}:function(e){return e.lift(new u(t))}}var u=function(){function t(t){this.project=t}return t.prototype.call=function(t,e){return e.subscribe(new d(t,this.project))},t}(),d=function(t){function e(e,n){var i=t.call(this,e)||this;return i.project=n,i.index=0,i}return i.__extends(e,t),e.prototype._next=function(t){var e,n=this.index++;try{e=this.project(t,n)}catch(t){return void this.destination.error(t)}this._innerSub(e,t,n)},e.prototype._innerSub=function(t,e,n){var i=this.innerSubscription;i&&i.unsubscribe();var r=new o.InnerSubscriber(this,e,n),s=this.destination;s.add(r),this.innerSubscription=Object(a.subscribeToResult)(this,t,void 0,void 0,r),this.innerSubscription!==r&&s.add(this.innerSubscription)},e.prototype._complete=function(){var e=this.innerSubscription;e&&!e.closed||t.prototype._complete.call(this),this.unsubscribe()},e.prototype._unsubscribe=function(){this.innerSubscription=null},e.prototype.notifyComplete=function(e){this.destination.remove(e),this.innerSubscription=null,this.isStopped&&t.prototype._complete.call(this)},e.prototype.notifyNext=function(t,e,n,i,r){this.destination.next(e)},e}(r.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"switchMapTo",(function(){return r}));var i=n(347);function r(t,e){return e?Object(i.switchMap)((function(){return t}),e):Object(i.switchMap)((function(){return t}))}},function(t,e,n){"use strict";n.r(e),n.d(e,"takeUntil",(function(){return a}));var i=n(170),r=n(227),o=n(228);function a(t){return function(e){return e.lift(new s(t))}}var s=function(){function t(t){this.notifier=t}return t.prototype.call=function(t,e){var n=new l(t),i=Object(o.subscribeToResult)(n,this.notifier);return i&&!n.seenValue?(n.add(i),e.subscribe(n)):n},t}(),l=function(t){function e(e){var n=t.call(this,e)||this;return n.seenValue=!1,n}return i.__extends(e,t),e.prototype.notifyNext=function(t,e,n,i,r){this.seenValue=!0,this.complete()},e.prototype.notifyComplete=function(){},e}(r.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"takeWhile",(function(){return o}));var i=n(170),r=n(169);function o(t,e){return void 0===e&&(e=!1),function(n){return n.lift(new a(t,e))}}var a=function(){function t(t,e){this.predicate=t,this.inclusive=e}return t.prototype.call=function(t,e){return e.subscribe(new s(t,this.predicate,this.inclusive))},t}(),s=function(t){function e(e,n,i){var r=t.call(this,e)||this;return r.predicate=n,r.inclusive=i,r.index=0,r}return i.__extends(e,t),e.prototype._next=function(t){var e,n=this.destination;try{e=this.predicate(t,this.index++)}catch(t){return void n.error(t)}this.nextOrComplete(t,e)},e.prototype.nextOrComplete=function(t,e){var n=this.destination;Boolean(e)?n.next(t):(this.inclusive&&n.next(t),n.complete())},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"tap",(function(){return s}));var i=n(170),r=n(169),o=n(218),a=n(171);function s(t,e,n){return function(i){return i.lift(new l(t,e,n))}}var l=function(){function t(t,e,n){this.nextOrObserver=t,this.error=e,this.complete=n}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.nextOrObserver,this.error,this.complete))},t}(),c=function(t){function e(e,n,i,r){var s=t.call(this,e)||this;return s._tapNext=o.noop,s._tapError=o.noop,s._tapComplete=o.noop,s._tapError=i||o.noop,s._tapComplete=r||o.noop,Object(a.isFunction)(n)?(s._context=s,s._tapNext=n):n&&(s._context=n,s._tapNext=n.next||o.noop,s._tapError=n.error||o.noop,s._tapComplete=n.complete||o.noop),s}return i.__extends(e,t),e.prototype._next=function(t){try{this._tapNext.call(this._context,t)}catch(t){return void this.destination.error(t)}this.destination.next(t)},e.prototype._error=function(t){try{this._tapError.call(this._context,t)}catch(t){return void this.destination.error(t)}this.destination.error(t)},e.prototype._complete=function(){try{this._tapComplete.call(this._context)}catch(t){return void this.destination.error(t)}return this.destination.complete()},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"defaultThrottleConfig",(function(){return a})),n.d(e,"throttle",(function(){return s}));var i=n(170),r=n(227),o=n(228),a={leading:!0,trailing:!1};function s(t,e){return void 0===e&&(e=a),function(n){return n.lift(new l(t,e.leading,e.trailing))}}var l=function(){function t(t,e,n){this.durationSelector=t,this.leading=e,this.trailing=n}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.durationSelector,this.leading,this.trailing))},t}(),c=function(t){function e(e,n,i,r){var o=t.call(this,e)||this;return o.destination=e,o.durationSelector=n,o._leading=i,o._trailing=r,o._hasValue=!1,o}return i.__extends(e,t),e.prototype._next=function(t){this._hasValue=!0,this._sendValue=t,this._throttled||(this._leading?this.send():this.throttle(t))},e.prototype.send=function(){var t=this._hasValue,e=this._sendValue;t&&(this.destination.next(e),this.throttle(e)),this._hasValue=!1,this._sendValue=null},e.prototype.throttle=function(t){var e=this.tryDurationSelector(t);e&&this.add(this._throttled=Object(o.subscribeToResult)(this,e))},e.prototype.tryDurationSelector=function(t){try{return this.durationSelector(t)}catch(t){return this.destination.error(t),null}},e.prototype.throttlingDone=function(){var t=this._throttled,e=this._trailing;t&&t.unsubscribe(),this._throttled=null,e&&this.send()},e.prototype.notifyNext=function(t,e,n,i,r){this.throttlingDone()},e.prototype.notifyComplete=function(){this.throttlingDone()},e}(r.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"throttleTime",(function(){return s}));var i=n(170),r=n(169),o=n(213),a=n(352);function s(t,e,n){return void 0===e&&(e=o.async),void 0===n&&(n=a.defaultThrottleConfig),function(i){return i.lift(new l(t,e,n.leading,n.trailing))}}var l=function(){function t(t,e,n,i){this.duration=t,this.scheduler=e,this.leading=n,this.trailing=i}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.duration,this.scheduler,this.leading,this.trailing))},t}(),c=function(t){function e(e,n,i,r,o){var a=t.call(this,e)||this;return a.duration=n,a.scheduler=i,a.leading=r,a.trailing=o,a._hasTrailingValue=!1,a._trailingValue=null,a}return i.__extends(e,t),e.prototype._next=function(t){this.throttled?this.trailing&&(this._trailingValue=t,this._hasTrailingValue=!0):(this.add(this.throttled=this.scheduler.schedule(u,this.duration,{subscriber:this})),this.leading?this.destination.next(t):this.trailing&&(this._trailingValue=t,this._hasTrailingValue=!0))},e.prototype._complete=function(){this._hasTrailingValue?(this.destination.next(this._trailingValue),this.destination.complete()):this.destination.complete()},e.prototype.clearThrottle=function(){var t=this.throttled;t&&(this.trailing&&this._hasTrailingValue&&(this.destination.next(this._trailingValue),this._trailingValue=null,this._hasTrailingValue=!1),t.unsubscribe(),this.remove(t),this.throttled=null)},e}(r.Subscriber);function u(t){t.subscriber.clearThrottle()}},function(t,e,n){"use strict";n.r(e),n.d(e,"timeInterval",(function(){return s})),n.d(e,"TimeInterval",(function(){return l}));var i=n(213),r=n(314),o=n(248),a=n(224);function s(t){return void 0===t&&(t=i.async),function(e){return Object(o.defer)((function(){return e.pipe(Object(r.scan)((function(e,n){var i=e.current;return{value:n,current:t.now(),last:i}}),{current:t.now(),value:void 0,last:void 0}),Object(a.map)((function(t){var e=t.current,n=t.last,i=t.value;return new l(i,e-n)})))}))}}var l=function(){return function(t,e){this.value=t,this.interval=e}}()},function(t,e,n){"use strict";n.r(e),n.d(e,"timeout",(function(){return s}));var i=n(213),r=n(222),o=n(356),a=n(207);function s(t,e){return void 0===e&&(e=i.async),Object(o.timeoutWith)(t,Object(a.throwError)(new r.TimeoutError),e)}},function(t,e,n){"use strict";n.r(e),n.d(e,"timeoutWith",(function(){return l}));var i=n(170),r=n(213),o=n(288),a=n(227),s=n(228);function l(t,e,n){return void 0===n&&(n=r.async),function(i){var r=Object(o.isDate)(t),a=r?+t-n.now():Math.abs(t);return i.lift(new c(a,r,e,n))}}var c=function(){function t(t,e,n,i){this.waitFor=t,this.absoluteTimeout=e,this.withObservable=n,this.scheduler=i}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.absoluteTimeout,this.waitFor,this.withObservable,this.scheduler))},t}(),u=function(t){function e(e,n,i,r,o){var a=t.call(this,e)||this;return a.absoluteTimeout=n,a.waitFor=i,a.withObservable=r,a.scheduler=o,a.action=null,a.scheduleTimeout(),a}return i.__extends(e,t),e.dispatchTimeout=function(t){var e=t.withObservable;t._unsubscribeAndRecycle(),t.add(Object(s.subscribeToResult)(t,e))},e.prototype.scheduleTimeout=function(){var t=this.action;t?this.action=t.schedule(this,this.waitFor):this.add(this.action=this.scheduler.schedule(e.dispatchTimeout,this.waitFor,this))},e.prototype._next=function(e){this.absoluteTimeout||this.scheduleTimeout(),t.prototype._next.call(this,e)},e.prototype._unsubscribe=function(){this.action=null,this.scheduler=null,this.withObservable=null},e}(a.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"timestamp",(function(){return o})),n.d(e,"Timestamp",(function(){return a}));var i=n(213),r=n(224);function o(t){return void 0===t&&(t=i.async),Object(r.map)((function(e){return new a(e,t.now())}))}var a=function(){return function(t,e){this.value=t,this.timestamp=e}}()},function(t,e,n){"use strict";n.r(e),n.d(e,"toArray",(function(){return o}));var i=n(313);function r(t,e,n){return 0===n?[e]:(t.push(e),t)}function o(){return Object(i.reduce)(r,[])}},function(t,e,n){"use strict";n.r(e),n.d(e,"window",(function(){return s}));var i=n(170),r=n(185),o=n(227),a=n(228);function s(t){return function(e){return e.lift(new l(t))}}var l=function(){function t(t){this.windowBoundaries=t}return t.prototype.call=function(t,e){var n=new c(t),i=e.subscribe(n);return i.closed||n.add(Object(a.subscribeToResult)(n,this.windowBoundaries)),i},t}(),c=function(t){function e(e){var n=t.call(this,e)||this;return n.window=new r.Subject,e.next(n.window),n}return i.__extends(e,t),e.prototype.notifyNext=function(t,e,n,i,r){this.openWindow()},e.prototype.notifyError=function(t,e){this._error(t)},e.prototype.notifyComplete=function(t){this._complete()},e.prototype._next=function(t){this.window.next(t)},e.prototype._error=function(t){this.window.error(t),this.destination.error(t)},e.prototype._complete=function(){this.window.complete(),this.destination.complete()},e.prototype._unsubscribe=function(){this.window=null},e.prototype.openWindow=function(){var t=this.window;t&&t.complete();var e=this.destination,n=this.window=new r.Subject;e.next(n)},e}(o.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"windowCount",(function(){return a}));var i=n(170),r=n(169),o=n(185);function a(t,e){return void 0===e&&(e=0),function(n){return n.lift(new s(t,e))}}var s=function(){function t(t,e){this.windowSize=t,this.startWindowEvery=e}return t.prototype.call=function(t,e){return e.subscribe(new l(t,this.windowSize,this.startWindowEvery))},t}(),l=function(t){function e(e,n,i){var r=t.call(this,e)||this;return r.destination=e,r.windowSize=n,r.startWindowEvery=i,r.windows=[new o.Subject],r.count=0,e.next(r.windows[0]),r}return i.__extends(e,t),e.prototype._next=function(t){for(var e=this.startWindowEvery>0?this.startWindowEvery:this.windowSize,n=this.destination,i=this.windowSize,r=this.windows,a=r.length,s=0;s<a&&!this.closed;s++)r[s].next(t);var l=this.count-i+1;if(l>=0&&l%e==0&&!this.closed&&r.shift().complete(),++this.count%e==0&&!this.closed){var c=new o.Subject;r.push(c),n.next(c)}},e.prototype._error=function(t){var e=this.windows;if(e)for(;e.length>0&&!this.closed;)e.shift().error(t);this.destination.error(t)},e.prototype._complete=function(){var t=this.windows;if(t)for(;t.length>0&&!this.closed;)t.shift().complete();this.destination.complete()},e.prototype._unsubscribe=function(){this.count=0,this.windows=null},e}(r.Subscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"windowTime",(function(){return c}));var i=n(170),r=n(185),o=n(213),a=n(169),s=n(255),l=n(203);function c(t){var e=o.async,n=null,i=Number.POSITIVE_INFINITY;return Object(l.isScheduler)(arguments[3])&&(e=arguments[3]),Object(l.isScheduler)(arguments[2])?e=arguments[2]:Object(s.isNumeric)(arguments[2])&&(i=arguments[2]),Object(l.isScheduler)(arguments[1])?e=arguments[1]:Object(s.isNumeric)(arguments[1])&&(n=arguments[1]),function(r){return r.lift(new u(t,n,i,e))}}var u=function(){function t(t,e,n,i){this.windowTimeSpan=t,this.windowCreationInterval=e,this.maxWindowSize=n,this.scheduler=i}return t.prototype.call=function(t,e){return e.subscribe(new m(t,this.windowTimeSpan,this.windowCreationInterval,this.maxWindowSize,this.scheduler))},t}(),d=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._numberOfNextedValues=0,e}return i.__extends(e,t),e.prototype.next=function(e){this._numberOfNextedValues++,t.prototype.next.call(this,e)},Object.defineProperty(e.prototype,"numberOfNextedValues",{get:function(){return this._numberOfNextedValues},enumerable:!0,configurable:!0}),e}(r.Subject),m=function(t){function e(e,n,i,r,o){var a=t.call(this,e)||this;a.destination=e,a.windowTimeSpan=n,a.windowCreationInterval=i,a.maxWindowSize=r,a.scheduler=o,a.windows=[];var s=a.openWindow();if(null!==i&&i>=0){var l={subscriber:a,window:s,context:null},c={windowTimeSpan:n,windowCreationInterval:i,subscriber:a,scheduler:o};a.add(o.schedule(f,n,l)),a.add(o.schedule(p,i,c))}else{var u={subscriber:a,window:s,windowTimeSpan:n};a.add(o.schedule(h,n,u))}return a}return i.__extends(e,t),e.prototype._next=function(t){for(var e=this.windows,n=e.length,i=0;i<n;i++){var r=e[i];r.closed||(r.next(t),r.numberOfNextedValues>=this.maxWindowSize&&this.closeWindow(r))}},e.prototype._error=function(t){for(var e=this.windows;e.length>0;)e.shift().error(t);this.destination.error(t)},e.prototype._complete=function(){for(var t=this.windows;t.length>0;){var e=t.shift();e.closed||e.complete()}this.destination.complete()},e.prototype.openWindow=function(){var t=new d;return this.windows.push(t),this.destination.next(t),t},e.prototype.closeWindow=function(t){t.complete();var e=this.windows;e.splice(e.indexOf(t),1)},e}(a.Subscriber);function h(t){var e=t.subscriber,n=t.windowTimeSpan,i=t.window;i&&e.closeWindow(i),t.window=e.openWindow(),this.schedule(t,n)}function p(t){var e=t.windowTimeSpan,n=t.subscriber,i=t.scheduler,r=t.windowCreationInterval,o=n.openWindow(),a={action:this,subscription:null},s={subscriber:n,window:o,context:a};a.subscription=i.schedule(f,e,s),this.add(a.subscription),this.schedule(t,r)}function f(t){var e=t.subscriber,n=t.window,i=t.context;i&&i.action&&i.subscription&&i.action.remove(i.subscription),e.closeWindow(n)}},function(t,e,n){"use strict";n.r(e),n.d(e,"windowToggle",(function(){return l}));var i=n(170),r=n(185),o=n(175),a=n(227),s=n(228);function l(t,e){return function(n){return n.lift(new c(t,e))}}var c=function(){function t(t,e){this.openings=t,this.closingSelector=e}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.openings,this.closingSelector))},t}(),u=function(t){function e(e,n,i){var r=t.call(this,e)||this;return r.openings=n,r.closingSelector=i,r.contexts=[],r.add(r.openSubscription=Object(s.subscribeToResult)(r,n,n)),r}return i.__extends(e,t),e.prototype._next=function(t){var e=this.contexts;if(e)for(var n=e.length,i=0;i<n;i++)e[i].window.next(t)},e.prototype._error=function(e){var n=this.contexts;if(this.contexts=null,n)for(var i=n.length,r=-1;++r<i;){var o=n[r];o.window.error(e),o.subscription.unsubscribe()}t.prototype._error.call(this,e)},e.prototype._complete=function(){var e=this.contexts;if(this.contexts=null,e)for(var n=e.length,i=-1;++i<n;){var r=e[i];r.window.complete(),r.subscription.unsubscribe()}t.prototype._complete.call(this)},e.prototype._unsubscribe=function(){var t=this.contexts;if(this.contexts=null,t)for(var e=t.length,n=-1;++n<e;){var i=t[n];i.window.unsubscribe(),i.subscription.unsubscribe()}},e.prototype.notifyNext=function(t,e,n,i,a){if(t===this.openings){var l=void 0;try{l=(0,this.closingSelector)(e)}catch(t){return this.error(t)}var c=new r.Subject,u=new o.Subscription,d={window:c,subscription:u};this.contexts.push(d);var m=Object(s.subscribeToResult)(this,l,d);m.closed?this.closeWindow(this.contexts.length-1):(m.context=d,u.add(m)),this.destination.next(c)}else this.closeWindow(this.contexts.indexOf(t))},e.prototype.notifyError=function(t){this.error(t)},e.prototype.notifyComplete=function(t){t!==this.openSubscription&&this.closeWindow(this.contexts.indexOf(t.context))},e.prototype.closeWindow=function(t){if(-1!==t){var e=this.contexts,n=e[t],i=n.window,r=n.subscription;e.splice(t,1),i.complete(),r.unsubscribe()}},e}(a.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"windowWhen",(function(){return s}));var i=n(170),r=n(185),o=n(227),a=n(228);function s(t){return function(e){return e.lift(new l(t))}}var l=function(){function t(t){this.closingSelector=t}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.closingSelector))},t}(),c=function(t){function e(e,n){var i=t.call(this,e)||this;return i.destination=e,i.closingSelector=n,i.openWindow(),i}return i.__extends(e,t),e.prototype.notifyNext=function(t,e,n,i,r){this.openWindow(r)},e.prototype.notifyError=function(t,e){this._error(t)},e.prototype.notifyComplete=function(t){this.openWindow(t)},e.prototype._next=function(t){this.window.next(t)},e.prototype._error=function(t){this.window.error(t),this.destination.error(t),this.unsubscribeClosingNotification()},e.prototype._complete=function(){this.window.complete(),this.destination.complete(),this.unsubscribeClosingNotification()},e.prototype.unsubscribeClosingNotification=function(){this.closingNotification&&this.closingNotification.unsubscribe()},e.prototype.openWindow=function(t){void 0===t&&(t=null),t&&(this.remove(t),t.unsubscribe());var e=this.window;e&&e.complete();var n,i=this.window=new r.Subject;this.destination.next(i);try{n=(0,this.closingSelector)()}catch(t){return this.destination.error(t),void this.window.error(t)}this.add(this.closingNotification=Object(a.subscribeToResult)(this,n))},e}(o.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"withLatestFrom",(function(){return a}));var i=n(170),r=n(227),o=n(228);function a(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return function(e){var n;"function"==typeof t[t.length-1]&&(n=t.pop());var i=t;return e.lift(new s(i,n))}}var s=function(){function t(t,e){this.observables=t,this.project=e}return t.prototype.call=function(t,e){return e.subscribe(new l(t,this.observables,this.project))},t}(),l=function(t){function e(e,n,i){var r=t.call(this,e)||this;r.observables=n,r.project=i,r.toRespond=[];var a=n.length;r.values=new Array(a);for(var s=0;s<a;s++)r.toRespond.push(s);for(s=0;s<a;s++){var l=n[s];r.add(Object(o.subscribeToResult)(r,l,l,s))}return r}return i.__extends(e,t),e.prototype.notifyNext=function(t,e,n,i,r){this.values[n]=e;var o=this.toRespond;if(o.length>0){var a=o.indexOf(n);-1!==a&&o.splice(a,1)}},e.prototype.notifyComplete=function(){},e.prototype._next=function(t){if(0===this.toRespond.length){var e=[t].concat(this.values);this.project?this._tryProject(e):this.destination.next(e)}},e.prototype._tryProject=function(t){var e;try{e=this.project.apply(this,t)}catch(t){return void this.destination.error(t)}this.destination.next(e)},e}(r.OuterSubscriber)},function(t,e,n){"use strict";n.r(e),n.d(e,"zip",(function(){return r}));var i=n(267);function r(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return function(e){return e.lift.call(i.zip.apply(void 0,[e].concat(t)))}}},function(t,e,n){"use strict";n.r(e),n.d(e,"zipAll",(function(){return r}));var i=n(267);function r(t){return function(e){return e.lift(new i.ZipOperator(t))}}},function(t,e,n){"use strict";var i=this&&this.__awaiter||function(t,e,n,i){return new(n||(n=Promise))((function(r,o){function a(t){try{l(i.next(t))}catch(t){o(t)}}function s(t){try{l(i.throw(t))}catch(t){o(t)}}function l(t){var e;t.done?r(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,s)}l((i=i.apply(t,e||[])).next())}))},r=this&&this.__generator||function(t,e){var n,i,r,o,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,i&&(r=2&o[0]?i.return:o[0]?i.throw||((r=i.return)&&r.call(i),0):i.next)&&!(r=r.call(i,o[1])).done)return r;switch(i=0,r&&(o=[2&o[0],r.value]),o[0]){case 0:case 1:r=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,i=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]<r[3])){a.label=o[1];break}if(6===o[0]&&a.label<r[1]){a.label=r[1],r=o;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(o);break}r[2]&&a.ops.pop(),a.trys.pop();continue}o=e.call(t,a)}catch(t){o=[6,t],i=0}finally{n=r=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}};Object.defineProperty(e,"__esModule",{value:!0});var o=n(2),a=n(55),s=n(139),l=function(t){return t<0?0:t};e.handleDiagnostic=function(t,e){return i(this,void 0,void 0,(function(){var n,i,c,u;return r(this,(function(r){return(n=(e||"").match(a.errorLinePattern))?(i=t.lineCount,c=l(parseFloat(n[2])-1),u=l(parseFloat(n[3])-1),[2,s.connection.sendDiagnostics({uri:t.uri,diagnostics:[{source:"vimlsp",message:n[1],range:o.Range.create(o.Position.create(c>i?i:c,u),o.Position.create(c>i?i:c,u+1)),severity:o.DiagnosticSeverity.Error}]})]):(s.connection.sendDiagnostics({uri:t.uri,diagnostics:[]}),[2])}))}))}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),r=n(148),o=n(57);e.selectionRangeProvider=function(t){var e=[],n=t.textDocument,a=t.positions;if(!a||0===a.length)return e;var s=r.workspace.getBufferByUri(n.uri),l=o.documents.get(n.uri);if(!s||!l)return e;var c=s.getRanges();if(0===c.length)return e;var u=i.Range.create(a[0],a[0]);a.length>1&&(u=i.Range.create(a[0],a[a.length-1]));var d=[];return c.forEach((function(t){var e=l.getText(i.Range.create(i.Position.create(t.endLine-1,0),i.Position.create(t.endLine,0))),n=i.Range.create(i.Position.create(t.startLine-1,t.startCol-1),i.Position.create(t.endLine-1,t.endCol-1+e.slice(t.endCol-1).split(" ")[0].length));if(u.start.line>=n.start.line&&u.end.line<=n.end.line)if(0===d.length)d.push(n);else{for(var r=0,o=d.length;r<o;r++)if(d[r].start.line<=n.start.line&&d[r].end.line>=n.end.line){d.splice(r,0,n);break}r===d.length&&d.push(n)}})),d.length&&(d.length>1&&(d=d.filter((function(t){return u.start.line!==t.start.line||u.end.line!==t.end.line}))),e.push(d.reverse().reduce((function(t,e,n){return 0===n?t:{range:e,parent:t}}),{range:d[0]}))),e}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),r=n(148),o=n(57);e.documentSymbolProvider=function(t){var e=t.textDocument,n=r.workspace.getBufferByUri(e.uri),a=o.documents.get(e.uri);if(!n||!a)return[];var s=n.getGlobalFunctions(),l=n.getScriptFunctions(),c=n.getGlobalIdentifiers(),u=n.getLocalIdentifiers(),d=Object.values(s).concat(Object.values(l)).reduce((function(t,e){return t.concat(e)}),[]),m=Object.values(c).concat(Object.values(u)).reduce((function(t,e){return t.concat(e)}),[]),h=[];return d.forEach((function(t){if(0===h.length)return h.push(t);for(var e=0,n=h.length;e<n;e+=1){var i=h[e];if(t.range.endLine<i.range.endLine){h.splice(e,0,t);break}}e===h.length&&h.push(t)})),h.map((function(t){var e=t.range,n=a.getText(i.Range.create(i.Position.create(e.endLine-1,0),i.Position.create(e.endLine,0))),r=i.Range.create(i.Position.create(e.startLine-1,e.startCol-1),i.Position.create(e.endLine-1,e.endCol-1+n.slice(e.endCol-1).split(" ")[0].length)),o={name:t.name,kind:i.SymbolKind.Function,range:r,selectionRange:r,children:[]};return m=m.filter((function(t){if(t.startLine>=e.startLine&&t.startLine<=e.endLine){var n=i.Range.create(i.Position.create(t.startLine-1,t.startCol-1),i.Position.create(t.startLine,t.startCol-1+t.name.length));return o.children.push({name:t.name,kind:i.SymbolKind.Variable,range:n,selectionRange:n}),!1}return!0})),o})).reduce((function(t,e){return 0===t.length?t.push(e):(t=t.filter((function(t){return!(t.range.start.line>=e.range.start.line&&t.range.end.line<=e.range.end.line)||(e.children.push(t),!1)}))).push(e),t}),[]).concat(m.map((function(t){var e=i.Range.create(i.Position.create(t.startLine-1,t.startCol-1),i.Position.create(t.startLine,t.startCol-1+t.name.length));return{name:t.name,kind:i.SymbolKind.Variable,range:e,selectionRange:e}})))}}]))}]));