From 0197e7e77061c581f72c4f6da1a79e0a77805eb6 Mon Sep 17 00:00:00 2001 From: Yegappan Lakshmanan Date: Sun, 13 Feb 2022 08:23:18 -0800 Subject: [PATCH] In Vim9 scripts, s: prefix is not supported for script-local functions and variables --- autoload/buffer.vim | 2 +- autoload/callhierarchy.vim | 4 +-- autoload/diag.vim | 6 ++-- autoload/handlers.vim | 8 ++--- autoload/lsp.vim | 70 +++++++++++++++++++------------------- autoload/lspserver.vim | 6 ++-- autoload/outline.vim | 8 ++--- autoload/selection.vim | 10 +++--- autoload/signature.vim | 8 ++--- autoload/textedit.vim | 2 +- plugin/lsp.vim | 60 ++++++++++++++++---------------- test/run_tests.sh | 4 ++- test/unit_tests.vim | 4 +-- 13 files changed, 97 insertions(+), 95 deletions(-) diff --git a/autoload/buffer.vim b/autoload/buffer.vim index d7fb5ba..3120c9d 100644 --- a/autoload/buffer.vim +++ b/autoload/buffer.vim @@ -22,7 +22,7 @@ enddef # Returns the LSP server for the current buffer. Returns an empty dict if the # server is not found. export def CurbufGetServer(): dict - return s:BufLspServerGet(bufnr()) + return BufLspServerGet(bufnr()) enddef export def BufHasLspServer(bnr: number): bool diff --git a/autoload/callhierarchy.vim b/autoload/callhierarchy.vim index aaa5c40..1cd76b6 100644 --- a/autoload/callhierarchy.vim +++ b/autoload/callhierarchy.vim @@ -74,7 +74,7 @@ export def IncomingCalls(calls: list>) return endif - s:CreateLoclistWithCalls(calls, true) + CreateLoclistWithCalls(calls, true) enddef export def OutgoingCalls(calls: list>) @@ -83,7 +83,7 @@ export def OutgoingCalls(calls: list>) return endif - s:CreateLoclistWithCalls(calls, false) + CreateLoclistWithCalls(calls, false) enddef # vim: shiftwidth=2 softtabstop=2 diff --git a/autoload/diag.vim b/autoload/diag.vim index 7310d43..72801a5 100644 --- a/autoload/diag.vim +++ b/autoload/diag.vim @@ -71,7 +71,7 @@ def ProcessNewDiags(lspserver: dict, bnr: number) for [lnum, diag] in lspserver.diagsMap[bnr]->items() signs->add({id: 0, buffer: bnr, group: 'LSPDiag', lnum: str2nr(lnum), - name: s:DiagSevToSignName(diag.severity)}) + name: DiagSevToSignName(diag.severity)}) endfor signs->sign_placelist() @@ -173,7 +173,7 @@ export def ShowAllDiags(lspserver: dict): void 'lnum': diag.range.start.line + 1, 'col': util.GetLineByteFromPos(bnr, diag.range.start) + 1, 'text': text, - 'type': s:DiagSevToQfType(diag.severity)}) + 'type': DiagSevToQfType(diag.severity)}) endfor setloclist(0, [], ' ', {'title': 'Language Server Diagnostics', 'items': qflist}) @@ -242,7 +242,7 @@ export def LspDiagsJump(lspserver: dict, which: string): void endif # sort the diagnostics by line number - var sortedDiags: list = s:GetSortedDiagLines(lspserver, bnr) + var sortedDiags: list = GetSortedDiagLines(lspserver, bnr) if which == 'first' cursor(sortedDiags[0], 1) diff --git a/autoload/handlers.vim b/autoload/handlers.vim index e635016..ca789e1 100644 --- a/autoload/handlers.vim +++ b/autoload/handlers.vim @@ -439,7 +439,7 @@ def ProcessDocSymbolTable(docSymbolTable: list>, endif childSymbols = {} if symbol->has_key('children') - s:ProcessDocSymbolTable(symbol.children, childSymbols, symbolLineTable) + ProcessDocSymbolTable(symbol.children, childSymbols, symbolLineTable) endif symInfo = {name: name, range: r, detail: symbolDetail, children: childSymbols} @@ -468,10 +468,10 @@ def ProcessDocSymbolReply(lspserver: dict, req: dict, reply: dict if reply.result[0]->has_key('location') # SymbolInformation[] - s:ProcessSymbolInfoTable(reply.result, symbolTypeTable, symbolLineTable) + ProcessSymbolInfoTable(reply.result, symbolTypeTable, symbolLineTable) else # DocumentSymbol[] - s:ProcessDocSymbolTable(reply.result, symbolTypeTable, symbolLineTable) + ProcessDocSymbolTable(reply.result, symbolTypeTable, symbolLineTable) endif # sort the symbols by line number @@ -613,7 +613,7 @@ def ProcessWorkspaceSymbolReply(lspserver: dict, req: dict, reply: dic symName = symbol.containerName .. '::' .. symName endif symName ..= ' [' .. LspSymbolKindToName(symbol.kind) .. ']' - symName ..= ' ' .. s:MakeMenuName( + symName ..= ' ' .. MakeMenuName( lspserver.workspaceSymbolPopup->popup_getpos().core_width, fileName) diff --git a/autoload/lsp.vim b/autoload/lsp.vim index e190d45..6005ec0 100644 --- a/autoload/lsp.vim +++ b/autoload/lsp.vim @@ -207,7 +207,7 @@ enddef # Go to a definition using "textDocument/definition" LSP request export def GotoDefinition(peek: bool) - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return endif @@ -217,7 +217,7 @@ enddef # Go to a declaration using "textDocument/declaration" LSP request export def GotoDeclaration(peek: bool) - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return endif @@ -227,7 +227,7 @@ enddef # Go to a type definition using "textDocument/typeDefinition" LSP request export def GotoTypedef(peek: bool) - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return endif @@ -237,7 +237,7 @@ enddef # Go to a implementation using "textDocument/implementation" LSP request export def GotoImplementation(peek: bool) - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return endif @@ -248,7 +248,7 @@ enddef # Show the signature using "textDocument/signatureHelp" LSP method # Invoked from an insert-mode mapping, so return an empty string. def g:LspShowSignature(): string - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return '' endif @@ -339,13 +339,13 @@ export def AddFile(bnr: number): void if ftype == '' return endif - var lspserver: dict = s:LspGetServer(ftype) + var lspserver: dict = LspGetServer(ftype) if lspserver->empty() return endif if !lspserver.running if !lspInitializedOnce - s:LspInitOnce() + LspInitOnce() endif lspserver.startServer() endif @@ -363,7 +363,7 @@ export def AddFile(bnr: number): void inoremap pumvisible() ? "\\" : "\" endif else - if s:LspOmniComplEnabled(ftype) + if LspOmniComplEnabled(ftype) setbufvar(bnr, '&omnifunc', 'LspOmniFunc') endif endif @@ -376,7 +376,7 @@ export def AddFile(bnr: number): void # Set buffer local autocmds augroup LSPBufferAutocmds # file saved notification handler - exe 'autocmd BufWritePost call s:LspSavedFile()' + exe 'autocmd BufWritePost call LspSavedFile()' if opt.lspOptions.autoComplete # Trigger 24x7 insert mode completion when text is changed @@ -454,12 +454,12 @@ export def AddServer(serverList: list>) var lspserver: dict = lserver.NewLspServer(server.path, args) if server.filetype->type() == v:t_string - s:LspAddServer(server.filetype, lspserver) - s:LspOmniComplSet(server.filetype, server.omnicompl) + LspAddServer(server.filetype, lspserver) + LspOmniComplSet(server.filetype, server.omnicompl) elseif server.filetype->type() == v:t_list for ftype in server.filetype - s:LspAddServer(ftype, lspserver) - s:LspOmniComplSet(ftype, server.omnicompl) + LspAddServer(ftype, lspserver) + LspOmniComplSet(ftype, server.omnicompl) endfor else util.ErrMsg('Error: Unsupported file type information "' .. @@ -492,7 +492,7 @@ export def SetTraceServer(traceVal: string) return endif - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return endif @@ -503,7 +503,7 @@ enddef # Display the diagnostic messages from the LSP server for the current buffer # in a quickfix list export def ShowDiagnostics(): void - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return endif @@ -513,7 +513,7 @@ enddef # Show the diagnostic message for the current line export def LspShowCurrentDiag() - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return endif @@ -554,7 +554,7 @@ enddef # jump to the next/previous/first diagnostic message in the current buffer export def JumpToDiag(which: string): void - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return endif @@ -601,7 +601,7 @@ enddef # omni complete handler def g:LspOmniFunc(findstart: number, base: string): any - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return -2 endif @@ -654,7 +654,7 @@ enddef # show symbol references export def ShowReferences(peek: bool) - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return endif @@ -664,7 +664,7 @@ enddef # highlight all the places where a symbol is referenced def g:LspDocHighlight() - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return endif @@ -710,7 +710,7 @@ export def TextDocFormat(range_args: number, line1: number, line2: number) return endif - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return endif @@ -729,7 +729,7 @@ enddef # Display all the locations where the current symbol is called from. # Uses LSP "callHierarchy/incomingCalls" request export def IncomingCalls() - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return endif @@ -740,7 +740,7 @@ export def IncomingCalls() enddef def g:LspGetIncomingCalls(item: dict) - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return endif @@ -749,7 +749,7 @@ def g:LspGetIncomingCalls(item: dict) enddef def g:LspGetOutgoingCalls(item: dict) - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return endif @@ -761,7 +761,7 @@ enddef # Display all the symbols used by the current symbol. # Uses LSP "callHierarchy/outgoingCalls" request export def OutgoingCalls() - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return endif @@ -774,7 +774,7 @@ enddef # Rename a symbol # Uses LSP "textDocument/rename" request export def Rename() - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return endif @@ -790,7 +790,7 @@ enddef # Perform a code action # Uses LSP "textDocument/codeAction" request export def CodeAction() - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return endif @@ -802,7 +802,7 @@ enddef # Perform a workspace wide symbol lookup # Uses LSP "workspace/symbol" request export def SymbolSearch(queryArg: string) - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return endif @@ -825,7 +825,7 @@ enddef # Display the list of workspace folders export def ListWorkspaceFolders() - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return endif @@ -835,7 +835,7 @@ enddef # Add a workspace folder. Default is to use the current folder. export def AddWorkspaceFolder(dirArg: string) - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return endif @@ -858,7 +858,7 @@ enddef # Remove a workspace folder. Default is to use the current folder. export def RemoveWorkspaceFolder(dirArg: string) - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return endif @@ -881,7 +881,7 @@ enddef # expand the previous selection or start a new selection export def SelectionExpand() - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return endif @@ -891,7 +891,7 @@ enddef # shrink the previous selection or start a new selection export def SelectionShrink() - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return endif @@ -901,7 +901,7 @@ enddef # fold the entire document export def FoldDocument() - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return endif @@ -927,7 +927,7 @@ enddef # Display the LSP server capabilities export def ShowServerCapabilities() - var lspserver: dict = s:CurbufGetServerChecked() + var lspserver: dict = CurbufGetServerChecked() if lspserver->empty() return endif diff --git a/autoload/lspserver.vim b/autoload/lspserver.vim index 1be8746..397ff55 100644 --- a/autoload/lspserver.vim +++ b/autoload/lspserver.vim @@ -404,7 +404,7 @@ def GetLspTextDocPosition(): dict> # interface TextDocumentIdentifier # interface Position return {textDocument: {uri: util.LspFileToUri(@%)}, - position: s:GetLspPosition()} + position: GetLspPosition()} enddef # Get a list of completion items. @@ -426,7 +426,7 @@ def GetCompletion(lspserver: dict, triggerKind_arg: number): void # interface CompletionParams # interface TextDocumentPositionParams - req.params = s:GetLspTextDocPosition() + req.params = GetLspTextDocPosition() # interface CompletionContext req.params.context = {triggerKind: triggerKind_arg} @@ -790,7 +790,7 @@ def RenameSymbol(lspserver: dict, newName: string) var req = lspserver.createRequest('textDocument/rename') # interface RenameParams # interface TextDocumentPositionParams - req.params = s:GetLspTextDocPosition() + req.params = GetLspTextDocPosition() req.params.newName = newName lspserver.sendMessage(req) if exists('g:LSPTest') && g:LSPTest diff --git a/autoload/outline.vim b/autoload/outline.vim index bef0ae3..af549f9 100644 --- a/autoload/outline.vim +++ b/autoload/outline.vim @@ -137,7 +137,7 @@ export def UpdateOutlineWindow(fname: string, # First two lines in the buffer display comment information var lnumMap: list> = [{}, {}] var text: list = [] - s:AddSymbolText(fname->bufnr(), symbolTypeTable, '', text, lnumMap, false) + AddSymbolText(fname->bufnr(), symbolTypeTable, '', text, lnumMap, false) append('$', text) w:lspSymbols = {filename: fname, lnumTable: lnumMap, symbolsByLine: symbolLineTable} @@ -150,7 +150,7 @@ export def UpdateOutlineWindow(fname: string, prevWinID->win_gotoid() # Highlight the current symbol - s:OutlineHighlightCurrentSymbol() + OutlineHighlightCurrentSymbol() # re-enable refreshing the outline window skipRefresh = false @@ -279,8 +279,8 @@ export def OpenOutlineWindow() au! autocmd BufEnter * call g:LspRequestDocSymbols() # when the outline window is closed, do the cleanup - autocmd BufUnload LSP-Outline call s:OutlineCleanup() - autocmd CursorHold * call s:OutlineHighlightCurrentSymbol() + autocmd BufUnload LSP-Outline call OutlineCleanup() + autocmd CursorHold * call OutlineHighlightCurrentSymbol() augroup END prevWinID->win_gotoid() diff --git a/autoload/selection.vim b/autoload/selection.vim index 7b73340..222b385 100644 --- a/autoload/selection.vim +++ b/autoload/selection.vim @@ -35,7 +35,7 @@ export def SelectionStart(lspserver: dict, sel: list>) # save the reply for expanding or shrinking the selected text. lspserver.selection = {bnr: bnr, selRange: sel[0], index: 0} - s:SelectText(bnr, sel[0].range) + SelectText(bnr, sel[0].range) enddef # Locate the range in the LSP reply at a specified level @@ -80,11 +80,11 @@ export def SelectionModify(lspserver: dict, expand: bool) var idx: number = lspserver.selection.index # Locate the range in the LSP reply for the current selection - selRange = s:GetSelRangeAtLevel(selRange, lspserver.selection.index) + selRange = GetSelRangeAtLevel(selRange, lspserver.selection.index) # If the current selection is present in the LSP reply, then modify the # selection - if s:SelectionFromLSP(selRange.range, startpos, endpos) + if SelectionFromLSP(selRange.range, startpos, endpos) if expand # expand the selection if selRange->has_key('parent') @@ -95,12 +95,12 @@ export def SelectionModify(lspserver: dict, expand: bool) # shrink the selection if idx > 0 idx -= 1 - selRange = s:GetSelRangeAtLevel(lspserver.selection.selRange, idx) + selRange = GetSelRangeAtLevel(lspserver.selection.selRange, idx) lspserver.selection.index = idx endif endif - s:SelectText(bnr, selRange.range) + SelectText(bnr, selRange.range) return endif endif diff --git a/autoload/signature.vim b/autoload/signature.vim index 64d2d77..c78b0c3 100644 --- a/autoload/signature.vim +++ b/autoload/signature.vim @@ -36,7 +36,7 @@ def CloseCurBufSignaturePopup() return endif - s:CloseSignaturePopup(lspserver) + CloseSignaturePopup(lspserver) enddef # Initialize the signature triggers for the current buffer @@ -53,19 +53,19 @@ export def SignatureInit(lspserver: dict) .. "=LspShowSignature()" endfor # close the signature popup when leaving insert mode - autocmd InsertLeave call s:CloseCurBufSignaturePopup() + autocmd InsertLeave call CloseCurBufSignaturePopup() enddef # Display the symbol signature help export def SignatureDisplay(lspserver: dict, sighelp: dict): void if sighelp->empty() - s:CloseSignaturePopup(lspserver) + CloseSignaturePopup(lspserver) return endif if sighelp.signatures->len() <= 0 util.WarnMsg('No signature help available') - s:CloseSignaturePopup(lspserver) + CloseSignaturePopup(lspserver) return endif diff --git a/autoload/textedit.vim b/autoload/textedit.vim index f9afaa2..9da069a 100644 --- a/autoload/textedit.vim +++ b/autoload/textedit.vim @@ -168,7 +168,7 @@ export def ApplyTextEdits(bnr: number, text_edits: list>): void for e in updated_edits var A: list = [e.A[0] - start_line, e.A[1]] var B: list = [e.B[0] - start_line, e.B[1]] - lines = s:Set_lines(lines, A, B, e.lines) + lines = Set_lines(lines, A, B, e.lines) endfor #echomsg 'lines(2) = ' .. string(lines) diff --git a/plugin/lsp.vim b/plugin/lsp.vim index 84b9ff1..a9b51d5 100644 --- a/plugin/lsp.vim +++ b/plugin/lsp.vim @@ -180,36 +180,36 @@ def g:LspServerReady(): bool return lspf.LspServerReady() enddef -var TshowServers = s:lspf.showServers -var TshowServerCapabilities = s:lspf.showServerCapabilities -var TsetTraceServer = s:lspf.setTraceServer -var TaddFile = s:lspf.addFile -var TremoveFile = s:lspf.removeFile -var TshowCurrentDiagInStatusLine = s:lspf.showCurrentDiagInStatusLine -var TgotoDefinition = s:lspf.gotoDefinition -var TgotoDeclaration = s:lspf.gotoDeclaration -var TgotoTypedef = s:lspf.gotoTypedef -var TgotoImplementation = s:lspf.gotoImplementation -var TshowDiagnostics = s:lspf.showDiagnostics -var TshowCurrentDiag = s:lspf.showCurrentDiag -var TjumpToDiag = s:lspf.jumpToDiag -var TdiagHighlightEnable = s:lspf.diagHighlightEnable -var TdiagHighlightDisable = s:lspf.diagHighlightDisable -var TshowReferences = s:lspf.showReferences -var Toutline = s:lspf.outline -var TtextDocFormat = s:lspf.textDocFormat -var TincomingCalls = s:lspf.incomingCalls -var ToutgoingCalls = s:lspf.outgoingCalls -var Trename = s:lspf.rename -var TcodeAction = s:lspf.codeAction -var TsymbolSearch = s:lspf.symbolSearch -var Thover = s:lspf.hover -var TselectionExpand = s:lspf.selectionExpand -var TselectionShrink = s:lspf.selectionShrink -var TfoldDocument = s:lspf.foldDocument -var TlistWorkspaceFolders = s:lspf.listWorkspaceFolders -var TaddWorkspaceFolder = s:lspf.addWorkspaceFolder -var TremoveWorkspaceFolder = s:lspf.removeWorkspaceFolder +var TshowServers = lspf.showServers +var TshowServerCapabilities = lspf.showServerCapabilities +var TsetTraceServer = lspf.setTraceServer +var TaddFile = lspf.addFile +var TremoveFile = lspf.removeFile +var TshowCurrentDiagInStatusLine = lspf.showCurrentDiagInStatusLine +var TgotoDefinition = lspf.gotoDefinition +var TgotoDeclaration = lspf.gotoDeclaration +var TgotoTypedef = lspf.gotoTypedef +var TgotoImplementation = lspf.gotoImplementation +var TshowDiagnostics = lspf.showDiagnostics +var TshowCurrentDiag = lspf.showCurrentDiag +var TjumpToDiag = lspf.jumpToDiag +var TdiagHighlightEnable = lspf.diagHighlightEnable +var TdiagHighlightDisable = lspf.diagHighlightDisable +var TshowReferences = lspf.showReferences +var Toutline = lspf.outline +var TtextDocFormat = lspf.textDocFormat +var TincomingCalls = lspf.incomingCalls +var ToutgoingCalls = lspf.outgoingCalls +var Trename = lspf.rename +var TcodeAction = lspf.codeAction +var TsymbolSearch = lspf.symbolSearch +var Thover = lspf.hover +var TselectionExpand = lspf.selectionExpand +var TselectionShrink = lspf.selectionShrink +var TfoldDocument = lspf.foldDocument +var TlistWorkspaceFolders = lspf.listWorkspaceFolders +var TaddWorkspaceFolder = lspf.addWorkspaceFolder +var TremoveWorkspaceFolder = lspf.removeWorkspaceFolder augroup LSPAutoCmds au! diff --git a/test/run_tests.sh b/test/run_tests.sh index 39d5cec..4285d6f 100755 --- a/test/run_tests.sh +++ b/test/run_tests.sh @@ -2,7 +2,9 @@ # Script to run the unit-tests for the LSP Vim plugin -VIMPRG=${VIMPRG:=/usr/bin/vim} +#VIMPRG=${VIMPRG:=/usr/bin/vim} +export VIMRUNTIME=/home/yega/Documents/vim/cmdexpand/vim/runtime +VIMPRG=/home/yega/Documents/vim/cmdexpand/vim/src/vim VIM_CMD="$VIMPRG -u NONE -U NONE -i NONE --noplugin -N --not-a-term" $VIM_CMD -S unit_tests.vim diff --git a/test/unit_tests.vim b/test/unit_tests.vim index 03b7095..a6603ac 100644 --- a/test/unit_tests.vim +++ b/test/unit_tests.vim @@ -39,7 +39,7 @@ g:LSPTest = true # Return zero for success, one for failure (like the assert function). func WaitForAssert(assert, ...) let timeout = get(a:000, 0, 5000) - if s:WaitForCommon(v:null, a:assert, timeout) < 0 + if WaitForCommon(v:null, a:assert, timeout) < 0 return 1 endif return 0 @@ -47,7 +47,7 @@ endfunc # Either "expr" or "assert" is not v:null # Return the waiting time for success, -1 for failure. -func s:WaitForCommon(expr, assert, timeout) +func WaitForCommon(expr, assert, timeout) " using reltime() is more accurate, but not always available let slept = 0 if exists('*reltimefloat') -- 2.48.1