From 16089c4a3d90ce12f86cb38113f18854b0f4ea9b Mon Sep 17 00:00:00 2001 From: Andreas Louv Date: Tue, 11 Apr 2023 17:04:28 +0200 Subject: [PATCH] Make ":LspServer show" support multiple servers --- autoload/lsp/lsp.vim | 52 ++++++++++++++++++++++++++++++-------------- 1 file changed, 36 insertions(+), 16 deletions(-) diff --git a/autoload/lsp/lsp.vim b/autoload/lsp/lsp.vim index fdb3978..c4ca155 100644 --- a/autoload/lsp/lsp.vim +++ b/autoload/lsp/lsp.vim @@ -179,9 +179,9 @@ enddef # Show the status of the LSP server for the current buffer def ShowServer(arg: string) - var lspserver: dict = buf.CurbufGetServerChecked() - if lspserver->empty() - :echomsg "LSP Server not found" + var lspservers: list> = buf.CurbufGetServers() + + if lspservers->empty() return endif @@ -189,22 +189,42 @@ def ShowServer(arg: string) var lines: list = [] if arg == '' || arg ==# 'status' windowName = $'LangServer-Status' - var msg = $"LSP server '{lspserver.name}' is " - if lspserver.running - msg ..= 'running' - else - msg ..= 'not running' - endif - lines->add(msg) - elseif arg ==# 'capabilities' + for lspserver in lspservers + if !lines->empty() + lines->extend(['', repeat('=', &columns), '']) + endif + var msg = $"LSP server '{lspserver.name}' is " + if lspserver.running + msg ..= 'running' + else + msg ..= 'not running' + endif + lines->add(msg) + endfor + elseif arg ==? 'capabilities' windowName = $'LangServer-Capabilities' - lines->extend(lspserver.getCapabilities()) - elseif arg ==# 'initializeRequest' + for lspserver in lspservers + if !lines->empty() + lines->extend(['', repeat('=', &columns), '']) + endif + lines->extend(lspserver.getCapabilities()) + endfor + elseif arg ==? 'initializeRequest' windowName = $'LangServer-InitializeRequest' - lines->extend(lspserver.getInitializeRequest()) - elseif arg ==# 'messages' + for lspserver in lspservers + if !lines->empty() + lines->extend(['', repeat('=', &columns), '']) + endif + lines->extend(lspserver.getInitializeRequest()) + endfor + elseif arg ==? 'messages' windowName = $'LangServer-Messages' - lines->extend(lspserver.getMessages()) + for lspserver in lspservers + if !lines->empty() + lines->extend(['', repeat('=', &columns), '']) + endif + lines->extend(lspserver.getMessages()) + endfor else util.ErrMsg($'Error: Unsupported argument "{arg}"') return -- 2.48.1