@@ -32,6 +32,7 @@ import {
3232 reportActiveInterpreterChangedDeprecated ,
3333 reportInterpretersChanged ,
3434} from './deprecatedProposedApi' ;
35+ import { sleep } from './common/utils/async' ;
3536
3637type ActiveEnvironmentChangeEvent = {
3738 resource : WorkspaceFolder | undefined ;
@@ -106,16 +107,19 @@ export function buildProposedApi(
106107 const disposables = serviceContainer . get < IDisposableRegistry > ( IDisposableRegistry ) ;
107108 const extensions = serviceContainer . get < IExtensions > ( IExtensions ) ;
108109 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+ ) ;
119123 }
120124 disposables . push (
121125 discoveryApi . onChanged ( ( e ) => {
@@ -182,7 +186,6 @@ export function buildProposedApi(
182186 return onDidActiveInterpreterChangedEvent . event ;
183187 } ,
184188 resolveEnvironment : async ( env : Environment | EnvironmentId | string ) => {
185- sendApiTelemetry ( 'resolveEnvironment' ) ;
186189 let path = typeof env !== 'string' ? env . path : env ;
187190 if ( pathUtils . basename ( path ) === path ) {
188191 // Value can be `python`, `python3`, `python3.9` etc.
@@ -201,17 +204,18 @@ export function buildProposedApi(
201204 }
202205 path = fullyQualifiedPath ;
203206 }
207+ sendApiTelemetry ( 'resolveEnvironment' ) ;
204208 return resolveEnvironment ( path , discoveryApi ) ;
205209 } ,
206210 get all ( ) : Environment [ ] {
207211 sendApiTelemetry ( 'all' ) ;
208212 return discoveryApi . getEnvs ( ) . map ( ( e ) => convertEnvInfoAndGetReference ( e ) ) ;
209213 } ,
210214 async refreshEnvironments ( options ?: RefreshOptions ) {
211- sendApiTelemetry ( 'refreshEnvironments' ) ;
212215 await discoveryApi . triggerRefresh ( undefined , {
213216 ifNotTriggerredAlready : ! options ?. forceRefresh ,
214217 } ) ;
218+ sendApiTelemetry ( 'refreshEnvironments' ) ;
215219 } ,
216220 get onDidChangeEnvironments ( ) {
217221 sendApiTelemetry ( 'onDidChangeEnvironments' ) ;
0 commit comments