@@ -25,15 +25,23 @@ import reportStatus from './features/omnisharpStatus';
2525import { installCoreClrDebug } from './coreclr-debug' ;
2626import { promptToAddBuildTaskIfNecessary } from './tasks' ;
2727import * as vscode from 'vscode' ;
28+ import TelemetryReporter from 'vscode-extension-telemetry' ;
2829
2930export function activate ( context : vscode . ExtensionContext ) : any {
31+
32+ const extensionId = 'ms-vscode.csharp' ;
33+ const extension = vscode . extensions . getExtension ( extensionId ) ;
34+ const extensionVersion = extension . packageJSON . version ;
35+ const aiKey = extension . packageJSON . contributes . debuggers [ 0 ] . aiKey ;
36+
37+ const reporter = new TelemetryReporter ( extensionId , extensionVersion , aiKey ) ;
3038
3139 const _selector : vscode . DocumentSelector = {
3240 language : 'csharp' ,
3341 scheme : 'file' // only files from disk
3442 } ;
3543
36- const server = new StdioOmnisharpServer ( ) ;
44+ const server = new StdioOmnisharpServer ( reporter ) ;
3745 const advisor = new Advisor ( server ) ; // create before server is started
3846 const disposables : vscode . Disposable [ ] = [ ] ;
3947 const localDisposables : vscode . Disposable [ ] = [ ] ;
@@ -74,14 +82,15 @@ export function activate(context: vscode.ExtensionContext): any {
7482 // stop server on deactivate
7583 disposables . push ( new vscode . Disposable ( ( ) => {
7684 advisor . dispose ( ) ;
85+ server . reportAndClearTelemetry ( ) ;
7786 server . stop ( ) ;
7887 } ) ) ;
7988
8089 // Check to see if there is a tasks.json with a "build" task and prompt the user to add it if missing.
8190 promptToAddBuildTaskIfNecessary ( ) ;
8291
8392 // install coreclr-debug
84- installCoreClrDebug ( context ) ;
93+ installCoreClrDebug ( context , reporter ) ;
8594
8695 context . subscriptions . push ( ...disposables ) ;
8796}
0 commit comments