@@ -32,8 +32,13 @@ export enum DATA_CONNECT_EVENT_NAME {
32
32
START_EMULATORS = "start_emulators" ,
33
33
AUTO_COMPLETE = "auto_complete" ,
34
34
SESSION_CHAR_COUNT = "session_char_count" ,
35
- EMULATOR_EXPORT = "emulator_export" ,
35
+ EMULATOR_EXPORT = "emulator_export" ,
36
36
SETUP_FIREBASE_BINARY = "setup_firebase_binary" ,
37
+ GEMINI_ERROR = "gemini_error" ,
38
+ GEMINI_OPERATION_CALL = "gemini_operation_call" ,
39
+ GEMINI_SCHEMA_CALL = "gemini_schema_call" ,
40
+ GEMINI_SUCCESS = "gemini_success" ,
41
+ TRY_GEMINI_CLICKED = "try_gemini_clicked" ,
37
42
}
38
43
39
44
export class AnalyticsLogger {
@@ -42,9 +47,9 @@ export class AnalyticsLogger {
42
47
private sessionCharCount = 0 ; // Track total chars for the session
43
48
44
49
constructor ( context : vscode . ExtensionContext ) {
45
- this . logger = monospaceEnv . value . isMonospace ? new IDXLogger ( new GA4TelemetrySender ( pluginLogger ) , context ) : env . createTelemetryLogger (
46
- new GA4TelemetrySender ( pluginLogger ) ,
47
- ) ;
50
+ this . logger = monospaceEnv . value . isMonospace
51
+ ? new IDXLogger ( new GA4TelemetrySender ( pluginLogger ) , context )
52
+ : env . createTelemetryLogger ( new GA4TelemetrySender ( pluginLogger ) ) ;
48
53
49
54
let subscriptions : vscode . Disposable [ ] = [
50
55
vscode . workspace . onDidChangeTextDocument (
@@ -149,13 +154,15 @@ export class AnalyticsLogger {
149
154
}
150
155
151
156
export class IDXLogger {
152
- constructor ( private sender : GA4TelemetrySender , private context : vscode . ExtensionContext ) { }
157
+ constructor (
158
+ private sender : GA4TelemetrySender ,
159
+ private context : vscode . ExtensionContext ,
160
+ ) { }
153
161
public logUsage ( eventName : string , data ?: any ) {
154
162
const packageJson = this . context . extension . packageJSON ;
155
163
data = {
156
164
...data ,
157
- extversion : packageJson . version ,
158
- extname : "idx" ,
165
+ ...getAnalyticsContext ( this . context ) ,
159
166
isidx : "true" ,
160
167
} ;
161
168
this . sender . sendEventData ( eventName , data ) ;
@@ -207,6 +214,15 @@ class GA4TelemetrySender implements TelemetrySender {
207
214
}
208
215
}
209
216
217
+ export function getAnalyticsContext ( context : vscode . ExtensionContext ) {
218
+ const packageJson = context . extension . packageJSON ;
219
+
220
+ return {
221
+ extversion : packageJson . version ,
222
+ extname : monospaceEnv . value . isMonospace ? "idx" : "vscode" ,
223
+ } ;
224
+ }
225
+
210
226
function addFirebaseBinaryMetadata ( data ?: Record < string , any > | undefined ) {
211
227
const settings = getSettings ( ) ;
212
228
return { ...data , binary_kind : settings . firebaseBinaryKind } ;
0 commit comments