From c98d3d765975107e5d18ccb3699949db25a6a071 Mon Sep 17 00:00:00 2001
From: Andreas Louv <andreas@louv.dk>
Date: Wed, 12 Apr 2023 10:13:47 +0200
Subject: [PATCH] Make restart server support multiple servers

---
 autoload/lsp/lsp.vim | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

diff --git a/autoload/lsp/lsp.vim b/autoload/lsp/lsp.vim
index 0cf12eb..3fb2597 100644
--- a/autoload/lsp/lsp.vim
+++ b/autoload/lsp/lsp.vim
@@ -531,16 +531,6 @@ enddef
 
 # Restart the LSP server for the current buffer
 def RestartServer()
-  var lspserver: dict<any> = buf.CurbufGetServer()
-  if lspserver->empty()
-    return
-  endif
-
-  # Stop the server (if running)
-  if lspserver.running
-    lspserver.stopServer()
-  endif
-
   # Remove all the buffers with the same file type as the current buffer
   var ftype: string = &filetype
   for binfo in getbufinfo()
@@ -549,8 +539,16 @@ def RestartServer()
     endif
   endfor
 
-  # Start the server again
-  lspserver.startServer(bufnr(''))
+  var lspservers: list<dict<any>> = buf.CurbufGetServers()
+  for lspserver in lspservers
+    # Stop the server (if running)
+    if lspserver.running
+      lspserver.stopServer()
+    endif
+
+    # Start the server again
+    lspserver.startServer(bufnr(''))
+  endfor
 
   AddBuffersToLsp(ftype)
 enddef
-- 
2.51.0