aboutsummaryrefslogtreecommitdiff
path: root/internal/lsp/debug
diff options
context:
space:
mode:
authorIan Cottrell <iancottrell@google.com>2020-04-21 09:41:57 -0400
committerIan Cottrell <iancottrell@google.com>2020-04-27 15:30:19 +0000
commita90b7300be7c0e2a1e83e1753a958fa84c930f72 (patch)
tree40837cc8bd2df36f7e56d727e8bbbcacaee1b3a8 /internal/lsp/debug
parentbed5418863f7348dd845e8d45004884bb89e8473 (diff)
downloadgolang-x-tools-a90b7300be7c0e2a1e83e1753a958fa84c930f72.tar.gz
internal/event: remove the event.eventType type
Instead of tagging events with their type, instead we infer the type from the label pattern. The standard event creators all have a matching test that returns true if the the labels pattern matches the ones that would be built by the creator. Spans and logs already have a unique label pattern, other event types required a special label marker. This makes the system much more extensible, and also cleans up some the API. Change-Id: I1fbc9ec07aa84ead6c12bbd5ca65b13b605bfa4a Reviewed-on: https://go-review.googlesource.com/c/tools/+/229242 Run-TryBot: Ian Cottrell <iancottrell@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
Diffstat (limited to 'internal/lsp/debug')
-rw-r--r--internal/lsp/debug/rpc.go7
-rw-r--r--internal/lsp/debug/serve.go2
-rw-r--r--internal/lsp/debug/trace.go5
3 files changed, 8 insertions, 6 deletions
diff --git a/internal/lsp/debug/rpc.go b/internal/lsp/debug/rpc.go
index f15f6cabb..2732971c6 100644
--- a/internal/lsp/debug/rpc.go
+++ b/internal/lsp/debug/rpc.go
@@ -13,6 +13,7 @@ import (
"sync"
"time"
+ "golang.org/x/tools/internal/event"
"golang.org/x/tools/internal/event/core"
"golang.org/x/tools/internal/event/export"
"golang.org/x/tools/internal/event/label"
@@ -82,16 +83,16 @@ func (r *rpcs) ProcessEvent(ctx context.Context, ev core.Event, lm label.Map) co
r.mu.Lock()
defer r.mu.Unlock()
switch {
- case ev.IsStartSpan():
+ case event.IsStart(ev):
if _, stats := r.getRPCSpan(ctx, ev); stats != nil {
stats.Started++
}
- case ev.IsEndSpan():
+ case event.IsEnd(ev):
span, stats := r.getRPCSpan(ctx, ev)
if stats != nil {
endRPC(ctx, ev, span, stats)
}
- case ev.IsRecord():
+ case event.IsMetric(ev):
sent := byteUnits(tag.SentBytes.Get(lm))
rec := byteUnits(tag.ReceivedBytes.Get(lm))
if sent != 0 || rec != 0 {
diff --git a/internal/lsp/debug/serve.go b/internal/lsp/debug/serve.go
index 7e8c98a03..b364c70f0 100644
--- a/internal/lsp/debug/serve.go
+++ b/internal/lsp/debug/serve.go
@@ -548,7 +548,7 @@ func makeGlobalExporter(stderr io.Writer) event.Exporter {
return func(ctx context.Context, ev core.Event, lm label.Map) context.Context {
i := GetInstance(ctx)
- if ev.IsLog() {
+ if event.IsLog(ev) {
// Don't log context cancellation errors.
if err := keys.Err.Get(ev); xerrors.Is(err, context.Canceled) {
return ctx
diff --git a/internal/lsp/debug/trace.go b/internal/lsp/debug/trace.go
index 36dd530f6..4a3b90554 100644
--- a/internal/lsp/debug/trace.go
+++ b/internal/lsp/debug/trace.go
@@ -15,6 +15,7 @@ import (
"sync"
"time"
+ "golang.org/x/tools/internal/event"
"golang.org/x/tools/internal/event/core"
"golang.org/x/tools/internal/event/export"
"golang.org/x/tools/internal/event/label"
@@ -83,7 +84,7 @@ func (t *traces) ProcessEvent(ctx context.Context, ev core.Event, lm label.Map)
}
switch {
- case ev.IsStartSpan():
+ case event.IsStart(ev):
if t.sets == nil {
t.sets = make(map[string]*traceSet)
t.unfinished = make(map[export.SpanContext]*traceData)
@@ -110,7 +111,7 @@ func (t *traces) ProcessEvent(ctx context.Context, ev core.Event, lm label.Map)
}
parent.Children = append(parent.Children, td)
- case ev.IsEndSpan():
+ case event.IsEnd(ev):
// finishing, must be already in the map
td, found := t.unfinished[span.ID]
if !found {