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
45
46
47
48
49
50
51
|
import * as Segment from "@segment/analytics-node";
import * as vscode from "vscode";
// Setup Segment
const SEGMENT_WRITE_KEY = "57yy2uYXH2bwMuy7djm9PorfFlYqbJL1";
const analytics = new Segment.Analytics({ writeKey: SEGMENT_WRITE_KEY });
analytics.identify({
userId: vscode.env.machineId,
// traits: {
// name: "Michael Bolton",
// email: "mbolton@example.com",
// createdAt: new Date("2014-06-14T02:00:19.467Z"),
// },
});
// Enum of telemetry events
export enum TelemetryEvent {
// Extension has been activated
ExtensionActivated = "ExtensionActivated",
// Suggestion has been accepted
SuggestionAccepted = "SuggestionAccepted",
// Suggestion has been rejected
SuggestionRejected = "SuggestionRejected",
// Queried universal prompt
UniversalPromptQuery = "UniversalPromptQuery",
// `Explain Code` button clicked
ExplainCode = "ExplainCode",
// `Generate Ideas` button clicked
GenerateIdeas = "GenerateIdeas",
// `Suggest Fix` button clicked
SuggestFix = "SuggestFix",
// `Create Test` button clicked
CreateTest = "CreateTest",
// `AutoDebug This Test` button clicked
AutoDebugThisTest = "AutoDebugThisTest",
// Command run to generate docstring
GenerateDocstring = "GenerateDocstring",
}
export function sendTelemetryEvent(
event: TelemetryEvent,
properties?: Record<string, any>
) {
if (!vscode.env.isTelemetryEnabled) return;
analytics.track({
event,
userId: vscode.env.machineId,
properties,
});
}
|