@@ -12,6 +12,7 @@ import (
12
12
type LSPLogger struct {
13
13
IncomingPrefix , OutgoingPrefix string
14
14
HiColor , LoColor func (format string , a ... interface {}) string
15
+ ErrorColor func (format string , a ... interface {}) string
15
16
}
16
17
17
18
func (l * LSPLogger ) LogOutgoingRequest (id string , method string , params json.RawMessage ) {
@@ -21,7 +22,11 @@ func (l *LSPLogger) LogOutgoingCancelRequest(id string) {
21
22
log .Print (l .LoColor ("%s CANCEL %s" , l .OutgoingPrefix , id ))
22
23
}
23
24
func (l * LSPLogger ) LogIncomingResponse (id string , method string , resp json.RawMessage , respErr * jsonrpc.ResponseError ) {
24
- log .Print (l .LoColor ("%s RESP %s %s" , l .IncomingPrefix , method , id ))
25
+ e := ""
26
+ if respErr != nil {
27
+ e = l .ErrorColor (" ERROR: %s" , respErr .AsError ())
28
+ }
29
+ log .Print (l .LoColor ("%s RESP %s %s%s" , l .IncomingPrefix , method , id , e ))
25
30
}
26
31
func (l * LSPLogger ) LogOutgoingNotification (method string , params json.RawMessage ) {
27
32
log .Print (l .HiColor ("%s NOTIF %s" , l .OutgoingPrefix , method ))
@@ -39,7 +44,11 @@ func (l *LSPLogger) LogIncomingCancelRequest(id string) {
39
44
log .Print (l .LoColor ("%s CANCEL %s" , l .IncomingPrefix , id ))
40
45
}
41
46
func (l * LSPLogger ) LogOutgoingResponse (id string , method string , resp json.RawMessage , respErr * jsonrpc.ResponseError ) {
42
- log .Print (l .LoColor ("%s RESP %s %s" , l .OutgoingPrefix , method , id ))
47
+ e := ""
48
+ if respErr != nil {
49
+ e = l .ErrorColor (" ERROR: %s" , respErr .AsError ())
50
+ }
51
+ log .Print (l .LoColor ("%s RESP %s %s%s" , l .OutgoingPrefix , method , id , e ))
43
52
}
44
53
func (l * LSPLogger ) LogIncomingNotification (method string , params json.RawMessage ) jsonrpc.FunctionLogger {
45
54
spaces := " "
0 commit comments