diff options
| author | Paul Buetow <paul@buetow.org> | 2025-08-16 16:02:47 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-08-16 16:02:47 +0300 |
| commit | 2a7acf566f93a7d660e6909dc6a829e17fe76066 (patch) | |
| tree | 7c27a856d26cd9cf7325af6acec410be97a9162e /internal | |
| parent | 02cc0e3ac6c08f422f11b668c729102fcf0c7f38 (diff) | |
context: log when full-file/window context is skipped because document is not open; add -no-disk-io flag with HEXAI_NO_DISK_IO env; plumb through server
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/lsp/context.go | 7 | ||||
| -rw-r--r-- | internal/lsp/server.go | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/internal/lsp/context.go b/internal/lsp/context.go index c08a865..8b7ed67 100644 --- a/internal/lsp/context.go +++ b/internal/lsp/context.go @@ -33,6 +33,9 @@ func (s *Server) buildAdditionalContext(newFunc bool, uri string, pos Position) func (s *Server) windowContext(uri string, pos Position) string { d := s.getDocument(uri) if d == nil || len(d.lines) == 0 { + if s.logger != nil { + s.logger.Printf("context: window requested but document not open; skipping uri=%s", uri) + } return "" } n := len(d.lines) @@ -52,6 +55,9 @@ func (s *Server) windowContext(uri string, pos Position) string { func (s *Server) fullFileContext(uri string) string { d := s.getDocument(uri) if d == nil { + if s.logger != nil { + s.logger.Printf("context: full-file requested but document not open; skipping uri=%s", uri) + } return "" } return truncateToApproxTokens(d.text, s.maxContextTokens) @@ -77,4 +83,3 @@ func truncateToApproxTokens(text string, maxTokens int) string { } return text[:cut] } - diff --git a/internal/lsp/server.go b/internal/lsp/server.go index 3154613..865d033 100644 --- a/internal/lsp/server.go +++ b/internal/lsp/server.go @@ -25,9 +25,10 @@ type Server struct { contextMode string windowLines int maxContextTokens int + noDiskIO bool } -func NewServer(r io.Reader, w io.Writer, logger *log.Logger, logContext bool, maxTokens int, contextMode string, windowLines int, maxContextTokens int) *Server { +func NewServer(r io.Reader, w io.Writer, logger *log.Logger, logContext bool, maxTokens int, contextMode string, windowLines int, maxContextTokens int, noDiskIO bool) *Server { s := &Server{in: bufio.NewReader(r), out: w, logger: logger, docs: make(map[string]*document), logContext: logContext} if maxTokens <= 0 { maxTokens = 500 @@ -45,6 +46,7 @@ func NewServer(r io.Reader, w io.Writer, logger *log.Logger, logContext bool, ma s.contextMode = contextMode s.windowLines = windowLines s.maxContextTokens = maxContextTokens + s.noDiskIO = noDiskIO if c, err := llm.NewDefault(logger); err != nil { s.logger.Printf("llm disabled: %v", err) } else { |
