Skip to content

Commit 115ae59

Browse files
Log server version and attached clients
1 parent cac0425 commit 115ae59

File tree

2 files changed

+28
-2
lines changed

2 files changed

+28
-2
lines changed

private/buf/buflsp/buflsp.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,13 @@ import (
2121
"context"
2222
"fmt"
2323
"log/slog"
24+
"runtime/debug"
2425
"sync"
2526
"sync/atomic"
2627

2728
"buf.build/go/app/appext"
2829
"buf.build/go/standard/xlog/xslog"
30+
"github.com/bufbuild/buf/private/buf/bufcli"
2931
"github.com/bufbuild/buf/private/buf/bufctl"
3032
"github.com/bufbuild/buf/private/pkg/storage"
3133
"github.com/bufbuild/buf/private/pkg/wasm"
@@ -49,15 +51,23 @@ func Serve(
4951
stream jsonrpc2.Stream,
5052
queryExecutor *incremental.Executor,
5153
) (jsonrpc2.Conn, error) {
54+
logger := container.Logger()
55+
version := bufcli.Version
56+
if buildInfo, ok := debug.ReadBuildInfo(); ok && buildInfo.Main.Version != "" {
57+
version = buildInfo.Main.Version
58+
}
59+
logger = logger.With(slog.String("buf_version", version))
60+
logger.Info("starting LSP server")
61+
5262
conn := jsonrpc2.NewConn(stream)
5363
lsp := &lsp{
5464
conn: conn,
5565
client: protocol.ClientDispatcher(
56-
&connWrapper{Conn: conn, logger: container.Logger()},
66+
&connWrapper{Conn: conn, logger: logger},
5767
zap.NewNop(), // The logging from protocol itself isn't very good, we've replaced it with connAdapter here.
5868
),
5969
container: container,
60-
logger: container.Logger(),
70+
logger: logger,
6171
controller: controller,
6272
wasmRuntime: wasmRuntime,
6373
wktBucket: wktBucket,

private/buf/buflsp/server.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525

2626
celpv "buf.build/go/protovalidate/cel"
2727
"buf.build/go/standard/xslices"
28+
"github.com/bufbuild/buf/private/buf/bufcli"
2829
"github.com/bufbuild/buf/private/buf/bufformat"
2930
"github.com/bufbuild/protocompile/parser"
3031
"github.com/bufbuild/protocompile/reporter"
@@ -93,9 +94,24 @@ func (s *server) Initialize(
9394
return nil, err
9495
}
9596

97+
if params.ClientInfo != nil {
98+
s.logger.Info(
99+
"client attached",
100+
"client_name", params.ClientInfo.Name,
101+
"client_version", params.ClientInfo.Version,
102+
)
103+
}
104+
105+
// Set initial trace value, if provided.
106+
if params.Trace != "" {
107+
s.lsp.traceValue.Store(&params.Trace)
108+
}
109+
96110
info := &protocol.ServerInfo{Name: serverName}
97111
if buildInfo, ok := debug.ReadBuildInfo(); ok {
98112
info.Version = buildInfo.Main.Version
113+
} else {
114+
info.Version = bufcli.Version
99115
}
100116

101117
// The LSP protocol library doesn't actually provide SemanticTokensOptions

0 commit comments

Comments
 (0)