@@ -32,6 +32,7 @@ import {
32
32
reportActiveInterpreterChangedDeprecated ,
33
33
reportInterpretersChanged ,
34
34
} from './deprecatedProposedApi' ;
35
+ import { sleep } from './common/utils/async' ;
35
36
36
37
type ActiveEnvironmentChangeEvent = {
37
38
resource : WorkspaceFolder | undefined ;
@@ -106,16 +107,19 @@ export function buildProposedApi(
106
107
const disposables = serviceContainer . get < IDisposableRegistry > ( IDisposableRegistry ) ;
107
108
const extensions = serviceContainer . get < IExtensions > ( IExtensions ) ;
108
109
function sendApiTelemetry ( apiName : string ) {
109
- extensions
110
- . determineExtensionFromCallStack ( )
111
- . then ( ( info ) =>
112
- sendTelemetryEvent ( EventName . PYTHON_ENVIRONMENTS_API , undefined , {
113
- apiName,
114
- extensionId : info . extensionId ,
115
- displayName : info . displayName ,
116
- } ) ,
117
- )
118
- . ignoreErrors ( ) ;
110
+ // Add a delay so the calling method finishes as soon as possible.
111
+ sleep ( 1000 ) . then ( ( ) =>
112
+ extensions
113
+ . determineExtensionFromCallStack ( )
114
+ . then ( ( info ) =>
115
+ sendTelemetryEvent ( EventName . PYTHON_ENVIRONMENTS_API , undefined , {
116
+ apiName,
117
+ extensionId : info . extensionId ,
118
+ displayName : info . displayName ,
119
+ } ) ,
120
+ )
121
+ . ignoreErrors ( ) ,
122
+ ) ;
119
123
}
120
124
disposables . push (
121
125
discoveryApi . onChanged ( ( e ) => {
@@ -182,7 +186,6 @@ export function buildProposedApi(
182
186
return onDidActiveInterpreterChangedEvent . event ;
183
187
} ,
184
188
resolveEnvironment : async ( env : Environment | EnvironmentId | string ) => {
185
- sendApiTelemetry ( 'resolveEnvironment' ) ;
186
189
let path = typeof env !== 'string' ? env . path : env ;
187
190
if ( pathUtils . basename ( path ) === path ) {
188
191
// Value can be `python`, `python3`, `python3.9` etc.
@@ -201,17 +204,18 @@ export function buildProposedApi(
201
204
}
202
205
path = fullyQualifiedPath ;
203
206
}
207
+ sendApiTelemetry ( 'resolveEnvironment' ) ;
204
208
return resolveEnvironment ( path , discoveryApi ) ;
205
209
} ,
206
210
get all ( ) : Environment [ ] {
207
211
sendApiTelemetry ( 'all' ) ;
208
212
return discoveryApi . getEnvs ( ) . map ( ( e ) => convertEnvInfoAndGetReference ( e ) ) ;
209
213
} ,
210
214
async refreshEnvironments ( options ?: RefreshOptions ) {
211
- sendApiTelemetry ( 'refreshEnvironments' ) ;
212
215
await discoveryApi . triggerRefresh ( undefined , {
213
216
ifNotTriggerredAlready : ! options ?. forceRefresh ,
214
217
} ) ;
218
+ sendApiTelemetry ( 'refreshEnvironments' ) ;
215
219
} ,
216
220
get onDidChangeEnvironments ( ) {
217
221
sendApiTelemetry ( 'onDidChangeEnvironments' ) ;
0 commit comments