From b0ccc1890234b2505dbc905a70b028ee2e666ce9 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Mon, 2 Mar 2026 14:37:08 +0200 Subject: io: use errors.Is for EOF checks in lsp and mcp servers (task 409) --- internal/lsp/server.go | 3 ++- internal/mcp/server.go | 3 ++- internal/mcp/transport.go | 5 +++-- 3 files changed, 7 insertions(+), 4 deletions(-) (limited to 'internal') diff --git a/internal/lsp/server.go b/internal/lsp/server.go index 573428b..9516e37 100644 --- a/internal/lsp/server.go +++ b/internal/lsp/server.go @@ -5,6 +5,7 @@ import ( "bufio" "context" "encoding/json" + "errors" "io" "log" "strings" @@ -415,7 +416,7 @@ func (s *Server) Run() error { defer s.cancelRequests() for { body, err := s.readMessage() - if err == io.EOF { + if errors.Is(err, io.EOF) { return nil } if err != nil { diff --git a/internal/mcp/server.go b/internal/mcp/server.go index 17df79f..772d311 100644 --- a/internal/mcp/server.go +++ b/internal/mcp/server.go @@ -4,6 +4,7 @@ package mcp import ( "bufio" "encoding/json" + "errors" "fmt" "io" "log" @@ -71,7 +72,7 @@ func NewServer(r io.Reader, w io.Writer, logger *log.Logger, store promptstore.P func (s *Server) Run() error { for { body, err := s.readMessage() - if err == io.EOF { + if errors.Is(err, io.EOF) { return nil } if err != nil { diff --git a/internal/mcp/transport.go b/internal/mcp/transport.go index 4708e6d..9147ea0 100644 --- a/internal/mcp/transport.go +++ b/internal/mcp/transport.go @@ -4,6 +4,7 @@ package mcp import ( "encoding/json" + "errors" "fmt" "io" "strings" @@ -17,7 +18,7 @@ func (s *Server) readMessage() ([]byte, error) { for { line, err := s.in.ReadString('\n') if err != nil && len(line) == 0 { - if err == io.EOF { + if errors.Is(err, io.EOF) { return nil, io.EOF } return nil, fmt.Errorf("read error: %w", err) @@ -25,7 +26,7 @@ func (s *Server) readMessage() ([]byte, error) { line = strings.TrimSpace(line) if line == "" { // If we hit EOF on an empty line, propagate it - if err == io.EOF { + if errors.Is(err, io.EOF) { return nil, io.EOF } continue // skip empty lines -- cgit v1.2.3