From 737a43a170ee18e35ab4d993ede4ab8fd781ab5f Mon Sep 17 00:00:00 2001 From: Fazlul Shahriar Date: Sun, 18 Jun 2023 11:25:47 -0400 Subject: [PATCH] Disable LSP server restarts for unit tests --- internal/lsp/acmelsp/client_test.go | 6 +++--- internal/lsp/acmelsp/exec.go | 10 +++++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/internal/lsp/acmelsp/client_test.go b/internal/lsp/acmelsp/client_test.go index 680dd9a..acd51ff 100644 --- a/internal/lsp/acmelsp/client_test.go +++ b/internal/lsp/acmelsp/client_test.go @@ -73,7 +73,7 @@ func testGoModule(t *testing.T, server string, src string, f func(t *testing.T, RootDirectory: dir, DiagWriter: &mockDiagosticsWriter{ioutil.Discard}, Workspaces: nil, - }) + }, false) if err != nil { t.Fatalf("startServer failed: %v", err) } @@ -297,7 +297,7 @@ func main() { RootDirectory: dir, DiagWriter: &chanDiagosticsWriter{ch}, Workspaces: nil, - }) + }, false) if err != nil { t.Fatalf("startServer failed: %v", err) } @@ -366,7 +366,7 @@ func testPython(t *testing.T, src string, f func(t *testing.T, c *Client, uri pr RootDirectory: dir, DiagWriter: &mockDiagosticsWriter{ioutil.Discard}, Workspaces: nil, - }) + }, false) if err != nil { t.Fatalf("startServer failed: %v", err) } diff --git a/internal/lsp/acmelsp/exec.go b/internal/lsp/acmelsp/exec.go index f2e9149..c4feb4a 100644 --- a/internal/lsp/acmelsp/exec.go +++ b/internal/lsp/acmelsp/exec.go @@ -31,7 +31,7 @@ func (s *Server) Close() { } } -func execServer(cs *config.Server, cfg *ClientConfig) (*Server, error) { +func execServer(cs *config.Server, cfg *ClientConfig, restartOnExit bool) (*Server, error) { args := cs.Command stderr := os.Stderr @@ -69,11 +69,15 @@ func execServer(cs *config.Server, cfg *ClientConfig) (*Server, error) { go func() { for { err := cmd.Wait() - log.Printf("language server %v exited: %v; restarting...", args[0], err) + log.Printf("language server %v exited: %v", args[0], err) // TODO(fhs): cancel using context? srv.conn.Close() + if !restartOnExit { + break + } + log.Printf("restarting language server %v after exit", args[0]) cmd, p1, err = startCommand() if err != nil { log.Printf("%v", err) @@ -138,7 +142,7 @@ func (info *ServerInfo) start(cfg *ClientConfig) (*Server, error) { } info.srv = srv } else { - srv, err := execServer(info.Server, cfg) + srv, err := execServer(info.Server, cfg, true) if err != nil { return nil, err }