1
- // Copyright 2019 The Go Language Server Authors. All rights reserved.
2
- // Use of this source code is governed by a BSD-style
3
- // license that can be found in the LICENSE file.
1
+ // SPDX-FileCopyrightText: Copyright 2019 The Go Language Server Authors
2
+ // SPDX-License-Identifier: BSD-3-Clause
4
3
5
4
package protocol
6
5
@@ -12,33 +11,32 @@ import (
12
11
"go.lsp.dev/jsonrpc2"
13
12
)
14
13
15
- // NewServer returns the new Server, Client and jsonrpc2.Conn.
16
- func NewServer (pctx context.Context , server ServerInterface , stream jsonrpc2.Stream , logger * zap.Logger ) (ctx context.Context , conn jsonrpc2.Conn , clientInterface ClientInterface ) {
17
- conn = jsonrpc2 .NewConn (stream )
18
- client := & client {
19
- Conn : conn ,
20
- logger : logger .Named ("client" ),
21
- }
22
- ctx = WithClient (pctx , client )
14
+ // NewServer returns the context in which client is embedded, jsonrpc2.Conn, and the Client.
15
+ func NewServer (ctx context.Context , server Server , stream jsonrpc2.Stream , logger * zap.Logger ) (context.Context , jsonrpc2.Conn , Client ) {
16
+ conn := jsonrpc2 .NewConn (stream )
17
+ cliint := ClientDispatcher (conn , logger .Named ("client" ))
18
+ ctx = WithClient (ctx , cliint )
23
19
24
- // conn.AddHandler(&serverHandler{server: server})
25
- // conn.AddHandler(&canceller{logger: logger.Named("canceller")})
20
+ conn .Go (ctx ,
21
+ Handlers (
22
+ ServerHandler (server , jsonrpc2 .MethodNotFoundHandler ),
23
+ ),
24
+ )
26
25
27
- return ctx , conn , client
26
+ return ctx , conn , cliint
28
27
}
29
28
30
- // NewClient returns the new context, jsonrpc2.Conn and ServerInterface .
31
- func NewClient (pctx context.Context , client ClientInterface , stream jsonrpc2.Stream , logger * zap.Logger ) (ctx context.Context , conn jsonrpc2.Conn , serverInterface ServerInterface ) {
32
- ctx = WithClient (pctx , client )
29
+ // NewClient returns the context in which Client is embedded , jsonrpc2.Conn, and the Server .
30
+ func NewClient (ctx context.Context , client Client , stream jsonrpc2.Stream , logger * zap.Logger ) (context.Context , jsonrpc2.Conn , Server ) {
31
+ ctx = WithClient (ctx , client )
33
32
34
- conn = jsonrpc2 .NewConn (stream )
35
- // conn.AddHandler(&clientHandler{client: client})
36
- // conn.AddHandler(&canceller{logger: logger.Named("canceller")})
33
+ conn := jsonrpc2 .NewConn (stream )
34
+ conn .Go (ctx ,
35
+ Handlers (
36
+ ClientHandler (client , jsonrpc2 .MethodNotFoundHandler ),
37
+ ),
38
+ )
39
+ server := ServerDispatcher (conn , logger .Named ("server" ))
37
40
38
- s := & server {
39
- Conn : conn ,
40
- logger : logger .Named ("server" ),
41
- }
42
-
43
- return ctx , conn , s
41
+ return ctx , conn , server
44
42
}
0 commit comments