turbo-editors/turbo-corepublic Fork 0
28d59854361aeda8541d853093e732126f3d7bff
Commits
Clone
git clone https://git.rickub.com/turbo-editors/turbo-core.git
git clone ssh://git@rickub.com/turbo-editors/turbo-core.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

🛟 Updated. 28d5985 · on 28d59854361aeda8541d853093e732126f3d7bff · k33g · 16h ago
conn.go · 44 lines · 1.5 KBGo Blame HistoryRaw
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package lsp

import (
	"io"

	"codeberg.org/turbo-editors/turbo-core/jsonrpc"
)

// The JSON-RPC layer this client talks over is jsonrpc's, which the Agent
// Client Protocol client shares. The names below are kept so that a language
// server's error still reads as an lsp one at the call site.

// Conn is a JSON-RPC 2.0 connection over an LSP-framed stream.
type Conn = jsonrpc.Conn

// ResponseError is the error object a response may carry.
type ResponseError = jsonrpc.ResponseError

// NotificationFunc handles a notification the server sent, such as a batch of
// diagnostics. It is called from the connection's read loop, so it must not
// block for long.
type NotificationFunc = jsonrpc.NotificationFunc

// ErrClosed is returned once the connection has been closed or its peer has
// gone away.
var ErrClosed = jsonrpc.ErrClosed

// The JSON-RPC error codes this client uses.
const (
	CodeMethodNotFound = jsonrpc.CodeMethodNotFound
	CodeInternalError  = jsonrpc.CodeInternalError
)

// NewConn returns a connection to a language server over stream. Call Run in a
// goroutine of its own to start reading.
//
// It is NewConn with this package's framing already chosen, which is the only
// thing a language server connection adds to a plain JSON-RPC one.
//
//	conn := lsp.NewConn(stream, client.handleNotification, client.answerRequest)
//	go conn.Run()
func NewConn(stream io.ReadWriteCloser, onNotify jsonrpc.NotificationFunc, onRequest jsonrpc.RequestFunc) *Conn {
	return jsonrpc.NewConn(stream, Framing{}, onNotify, onRequest)
}