From: Andreas Louv Date: Wed, 12 Apr 2023 08:13:47 +0000 (+0200) Subject: Make workspace folders support multiple servers X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=cac7edcd85745b090def3d084a1665d2511f4618;p=vim-lsp.git Make workspace folders support multiple servers --- diff --git a/autoload/lsp/lsp.vim b/autoload/lsp/lsp.vim index 3fb2597..2cf6598 100644 --- a/autoload/lsp/lsp.vim +++ b/autoload/lsp/lsp.vim @@ -938,21 +938,14 @@ enddef # Display the list of workspace folders export def ListWorkspaceFolders() - var lspserver: dict = buf.CurbufGetServerChecked() - if lspserver->empty() - return - endif - - :echomsg $'Workspace Folders: {lspserver.workspaceFolders->string()}' + var lspservers: list> = buf.CurbufGetServers() + for lspserver in lspservers + :echomsg $'Workspace Folders: {lspserver.workspaceFolders->string()}' + endfor enddef # Add a workspace folder. Default is to use the current folder. export def AddWorkspaceFolder(dirArg: string) - var lspserver: dict = buf.CurbufGetServerChecked() - if lspserver->empty() - return - endif - var dirName: string = dirArg if dirName == '' dirName = input('Add Workspace Folder: ', getcwd(), 'dir') @@ -966,16 +959,15 @@ export def AddWorkspaceFolder(dirArg: string) return endif - lspserver.addWorkspaceFolder(dirName) + var lspservers: list> = buf.CurbufGetServers() + + for lspserver in lspservers + lspserver.addWorkspaceFolder(dirName) + endfor enddef # Remove a workspace folder. Default is to use the current folder. export def RemoveWorkspaceFolder(dirArg: string) - var lspserver: dict = buf.CurbufGetServerChecked() - if lspserver->empty() - return - endif - var dirName: string = dirArg if dirName == '' dirName = input('Remove Workspace Folder: ', getcwd(), 'dir') @@ -989,7 +981,10 @@ export def RemoveWorkspaceFolder(dirArg: string) return endif - lspserver.removeWorkspaceFolder(dirName) + var lspservers: list> = buf.CurbufGetServers() + for lspserver in lspservers + lspserver.removeWorkspaceFolder(dirName) + endfor enddef # expand the previous selection or start a new selection