diff --git a/internal/lsp/manager.go b/internal/lsp/manager.go index b564c0e602c0234462a32cfaae67c8f8179551c4..a7e497331899a1377c002f892be005c71e2e86d5 100644 --- a/internal/lsp/manager.go +++ b/internal/lsp/manager.go @@ -141,6 +141,15 @@ var skipAutoStartCommands = map[string]bool{ } func (s *Manager) startServer(ctx context.Context, name, filepath string, server *powernapconfig.ServerConfig) { + var ( + isUserConfigured = s.isUserConfigured(name) + autoLSP = s.cfg.Config().Options.AutoLSP + ) + if !isUserConfigured && autoLSP != nil && !*autoLSP { + slog.Debug("Auto-start LSP disabled", "name", name) + return + } + cfg := s.buildConfig(name, server) if cfg.Disabled { return @@ -159,9 +168,7 @@ func (s *Manager) startServer(ctx context.Context, name, filepath string, server } } - userConfigured := s.isUserConfigured(name) - - if !userConfigured { + if !isUserConfigured { if _, err := exec.LookPath(server.Command); err != nil { slog.Debug("LSP server not installed, skipping", "name", name, "command", server.Command) unavailable.Set(name, struct{}{})