@@ -47,7 +47,11 @@ import { getComponentFolder } from './lsptoolshost/extensions/builtInComponents'
47
47
export async function activate (
48
48
context : vscode . ExtensionContext
49
49
) : Promise < CSharpExtensionExports | OmnisharpExtensionExports | null > {
50
+ // Start measuring the activation time
51
+ const startActivation = process . hrtime ( ) ;
52
+
50
53
const csharpChannel = vscode . window . createOutputChannel ( 'C#' , { log : true } ) ;
54
+ csharpChannel . trace ( 'Activating C# Extension' ) ;
51
55
52
56
await MigrateOptions ( vscode ) ;
53
57
const optionStream = createOptionStream ( vscode ) ;
@@ -120,6 +124,7 @@ export async function activate(
120
124
const useFramework = useOmnisharpServer && omnisharpOptions . useModernNet !== true ;
121
125
const installDependencies : IInstallDependencies = async ( dependencies : AbsolutePathPackage [ ] ) =>
122
126
downloadAndInstallPackages ( dependencies , networkSettingsProvider , eventStream , isValidDownload ) ;
127
+
123
128
const runtimeDependenciesExist = await ensureRuntimeDependencies (
124
129
context . extension ,
125
130
eventStream ,
@@ -247,10 +252,7 @@ export async function activate(
247
252
) ;
248
253
}
249
254
250
- const activationProperties : { [ key : string ] : string } = {
251
- serverKind : useOmnisharpServer ? 'OmniSharp' : 'Roslyn' ,
252
- } ;
253
- reporter . sendTelemetryEvent ( TelemetryEventNames . CSharpActivated , activationProperties ) ;
255
+ let exports : CSharpExtensionExports | OmnisharpExtensionExports ;
254
256
255
257
if ( ! useOmnisharpServer ) {
256
258
debugSessionTracker . initializeDebugSessionHandlers ( context ) ;
@@ -262,7 +264,7 @@ export async function activate(
262
264
util . isNotNull ( projectInitializationCompletePromise ) ;
263
265
264
266
const languageServerExport = new RoslynLanguageServerExport ( roslynLanguageServerStartedPromise ) ;
265
- return {
267
+ exports = {
266
268
initializationFinished : async ( ) => {
267
269
await coreClrDebugPromise ;
268
270
await razorLanguageServerStartedPromise ;
@@ -282,7 +284,7 @@ export async function activate(
282
284
} ,
283
285
} ;
284
286
} else {
285
- return {
287
+ exports = {
286
288
initializationFinished : async ( ) => {
287
289
const langService = await omnisharpLangServicePromise ;
288
290
await langService ! . server . waitForInitialize ( ) ;
@@ -304,6 +306,17 @@ export async function activate(
304
306
logDirectory : context . logUri . fsPath ,
305
307
} ;
306
308
}
309
+
310
+ const timeTaken = process . hrtime ( startActivation ) ;
311
+ const timeTakenStr = ( timeTaken [ 0 ] * 1000 + timeTaken [ 1 ] / 1000000 ) . toFixed ( 3 ) ;
312
+ csharpChannel . trace ( 'C# Extension activated in ' + timeTakenStr + 'ms.' ) ;
313
+ const activationProperties : { [ key : string ] : string } = {
314
+ serverKind : useOmnisharpServer ? 'OmniSharp' : 'Roslyn' ,
315
+ timeTaken : timeTakenStr ,
316
+ } ;
317
+ reporter . sendTelemetryEvent ( TelemetryEventNames . CSharpActivated , activationProperties ) ;
318
+
319
+ return exports ;
307
320
}
308
321
309
322
/**
0 commit comments