stream.go
func (VSCodeObjectCodec) ReadObject(stream *bufio.Reader, v interface{}) error {
	var contentLength uint64
	for {
		line, err := stream.ReadString('\r')
		if err != nil {
			return err
		}
		b, err := stream.ReadByte()
		if err != nil {
			return err
		}
		if b != '\n' {
			return fmt.Errorf(`jsonrpc2: line endings must be \r\n`)
		}
		if line == "\r" {
			break
		}
		if strings.HasPrefix(line, "Content-Length: ") {
			line = strings.TrimPrefix(line, "Content-Length: ")
			line = strings.TrimSpace(line)
			var err error
			contentLength, err = strconv.ParseUint(line, 10, 32)
			if err != nil {
				return err
			}
		}
	}
	if contentLength == 0 {
		return fmt.Errorf("jsonrpc2: no Content-Length header found")
	}
	return json.NewDecoder(io.LimitReader(stream, int64(contentLength))).Decode(v)
}
func (VSCodeObjectCodec) ReadObject(stream *bufio.Reader, v interface{}) error {
	var contentLength uint64
	for {
		line, err := stream.ReadString('\r')
		if err != nil {
			return err
		}
		b, err := stream.ReadByte()
		if err != nil {
			return err
		}
		if b != '\n' {
			return fmt.Errorf(`jsonrpc2: line endings must be \r\n`)
		}
		if line == "\r" {
			break
		}
		if strings.HasPrefix(line, "Content-Length: ") {
			line = strings.TrimPrefix(line, "Content-Length: ")
			line = strings.TrimSpace(line)
			var err error
			contentLength, err = strconv.ParseUint(line, 10, 32)
			if err != nil {
				return err
			}
		}
	}
	if contentLength == 0 {
		return fmt.Errorf("jsonrpc2: no Content-Length header found")
	}
	return json.NewDecoder(io.LimitReader(stream, int64(contentLength))).Decode(v)
}
func ( VSCodeObjectCodec ) ReadObject ( stream * bufio . Reader , v interface { } ) error { var contentLength uint64 for { line , err := stream . ReadString ( '\r' ) if err != nil { return err } b , err := stream . ReadByte ( ) if err != nil { return err } if b != '\n' { return fmt . Errorf ( `jsonrpc2: line endings must be \r\n` ) } if line == " \r " { break } if strings . HasPrefix ( line , " " ) { line = strings . TrimPrefix ( line , " " ) line = strings . TrimSpace ( line ) var err error contentLength , err = strconv . ParseUint ( line , 10 , 32 ) if err != nil { return err } } } if contentLength == 0 { return fmt . Errorf ( " " ) } return json . NewDecoder ( io . LimitReader ( stream , int64 ( contentLength ) ) ) . Decode ( v ) }
// ReadObject implements ObjectCodec.
ReadObject implements ObjectCodec .