From 51b2621d58633aa5c0f5cc7b64616d70d41acc91 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 27 Sep 2025 02:19:22 +0300 Subject: Support multi-provider fan-out across CLI and completions --- internal/lsp/server.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'internal/lsp/server.go') diff --git a/internal/lsp/server.go b/internal/lsp/server.go index 28f3218..1fbb0cc 100644 --- a/internal/lsp/server.go +++ b/internal/lsp/server.go @@ -257,6 +257,28 @@ func (s *Server) clientFor(spec requestSpec) llm.Client { if store != nil { cfg = store.Snapshot() } + cfg.Provider = provider + modelOverride := strings.TrimSpace(spec.entry.Model) + switch provider { + case "openai": + if modelOverride != "" { + cfg.OpenAIModel = modelOverride + } else if spec.fallbackModel != "" { + cfg.OpenAIModel = spec.fallbackModel + } + case "copilot": + if modelOverride != "" { + cfg.CopilotModel = modelOverride + } else if spec.fallbackModel != "" { + cfg.CopilotModel = spec.fallbackModel + } + case "ollama": + if modelOverride != "" { + cfg.OllamaModel = modelOverride + } else if spec.fallbackModel != "" { + cfg.OllamaModel = spec.fallbackModel + } + } client, err := newClientForProvider(cfg, provider) if err != nil { logging.Logf("lsp ", "failed to build client for provider=%s: %v", provider, err) -- cgit v1.2.3