@@ -201,13 +201,12 @@ func (s *Manager) startServer(ctx context.Context, name, filepath string, server
201201 }()
202202
203203 switch client.GetServerState() {
204โ case StateReady, StateStarting:
204+ case StateReady, StateStarting, StateDisabled:
205205 // already done, return
206206 return
207207 }
208208
209209 client.serverState.Store(StateStarting)
210โ s.callback(name, client)
211210
212211 initCtx, cancel := context.WithTimeout(ctx, time.Duration(cmp.Or(cfg.Timeout, 30))*time.Second)
213212 defer cancel()
@@ -315,6 +314,7 @@ func (s *Manager) KillAll(context.Context) {
315314 defer func() { s.callback(name, client) }()
316315 client.client.Kill()
317316 client.SetServerState(StateStopped)
317+ s.clients.Del(name)
318318 slog.Debug("Killed LSP client", "name", name)
319319 })
320320 }
@@ -335,6 +335,7 @@ func (s *Manager) StopAll(ctx context.Context) {
335335 slog.Warn("Failed to stop LSP client", "name", name, "error", err)
336336 }
337337 client.SetServerState(StateStopped)
338+ s.clients.Del(name)
338339 slog.Debug("Stopped LSP client", "name", name)
339340 })
340341 }