summaryrefslogtreecommitdiff
path: root/internal/lsp/server.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-08-18 09:13:41 +0300
committerPaul Buetow <paul@buetow.org>2025-08-18 09:13:41 +0300
commit6d29ac7e4b2604b5c7df50f33f8ef2357709faf2 (patch)
tree6a164ee0a7c5a1f726447e8f29ab871af63528a1 /internal/lsp/server.go
parent3217d2738af345629e7da14c52fa4ee5cb288fe9 (diff)
feat(lsp): add coding_temperature knob and remove hardcoded temps\n\n- Add to app config and server options.\n- Use in LSP code actions and completions.\n- Default to provider temperature when not set.\n- Update README and config.json.example.
Diffstat (limited to 'internal/lsp/server.go')
-rw-r--r--internal/lsp/server.go36
1 files changed, 20 insertions, 16 deletions
diff --git a/internal/lsp/server.go b/internal/lsp/server.go
index 5f4423a..f1ca302 100644
--- a/internal/lsp/server.go
+++ b/internal/lsp/server.go
@@ -29,7 +29,9 @@ type Server struct {
windowLines int
maxContextTokens int
noDiskIO bool
- triggerChars []string
+ triggerChars []string
+ // If set, used as the LSP coding temperature for all LLM calls
+ codingTemperature *float64
// LLM request stats
llmReqTotal int64
llmSentBytesTotal int64
@@ -40,14 +42,15 @@ type Server struct {
// ServerOptions collects configuration for NewServer to avoid long parameter lists.
type ServerOptions struct {
- LogContext bool
- MaxTokens int
- ContextMode string
- WindowLines int
- MaxContextTokens int
-
- Client llm.Client
- TriggerCharacters []string
+ LogContext bool
+ MaxTokens int
+ ContextMode string
+ WindowLines int
+ MaxContextTokens int
+
+ Client llm.Client
+ TriggerCharacters []string
+ CodingTemperature *float64
}
func NewServer(r io.Reader, w io.Writer, logger *log.Logger, opts ServerOptions) *Server {
@@ -74,13 +77,14 @@ func NewServer(r io.Reader, w io.Writer, logger *log.Logger, opts ServerOptions)
s.maxContextTokens = maxContextTokens
s.startTime = time.Now()
- s.llmClient = opts.Client
- if len(opts.TriggerCharacters) == 0 {
- s.triggerChars = []string{".", ":", "/", "_", ";", "?"}
- } else {
- s.triggerChars = append([]string{}, opts.TriggerCharacters...)
- }
- return s
+ s.llmClient = opts.Client
+ if len(opts.TriggerCharacters) == 0 {
+ s.triggerChars = []string{".", ":", "/", "_", ";", "?"}
+ } else {
+ s.triggerChars = append([]string{}, opts.TriggerCharacters...)
+ }
+ s.codingTemperature = opts.CodingTemperature
+ return s
}
func (s *Server) Run() error {