summaryrefslogtreecommitdiff
path: root/internal/lsp/server.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/lsp/server.go')
-rw-r--r--internal/lsp/server.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/internal/lsp/server.go b/internal/lsp/server.go
index 67e3cab..127b089 100644
--- a/internal/lsp/server.go
+++ b/internal/lsp/server.go
@@ -71,6 +71,7 @@ type ServerOptions struct {
ManualInvokeMinPrefix int
CompletionDebounceMs int
CompletionThrottleMs int
+ CompletionWaitAll *bool
// Inline/chat triggers
InlineOpen string
@@ -160,6 +161,7 @@ func (s *Server) applyOptions(opts ServerOptions) {
s.cfg.ManualInvokeMinPrefix = opts.ManualInvokeMinPrefix
s.cfg.CompletionDebounceMs = opts.CompletionDebounceMs
s.cfg.CompletionThrottleMs = opts.CompletionThrottleMs
+ s.cfg.CompletionWaitAll = opts.CompletionWaitAll
s.cfg.InlineOpen = opts.InlineOpen
s.cfg.InlineClose = opts.InlineClose
s.cfg.ChatSuffix = opts.ChatSuffix
@@ -305,6 +307,12 @@ func (s *Server) clientFor(spec requestSpec) llm.Client {
} else if spec.fallbackModel != "" {
cfg.OllamaModel = spec.fallbackModel
}
+ case "anthropic":
+ if modelOverride != "" {
+ cfg.AnthropicModel = modelOverride
+ } else if spec.fallbackModel != "" {
+ cfg.AnthropicModel = spec.fallbackModel
+ }
}
client, err := newClientForProvider(cfg, provider)
if err != nil {
@@ -451,6 +459,14 @@ func (s *Server) completionThrottle() time.Duration {
return time.Duration(cfg.CompletionThrottleMs) * time.Millisecond
}
+func (s *Server) completionWaitAll() bool {
+ cfg := s.currentConfig()
+ if cfg.CompletionWaitAll == nil {
+ return true // default: wait for all backends
+ }
+ return *cfg.CompletionWaitAll
+}
+
func (s *Server) inlineMarkers() (open string, close string, openChar byte, closeChar byte) {
cfg := s.currentConfig()
open = strings.TrimSpace(cfg.InlineOpen)