@@ -7,7 +7,7 @@ import net = require("net");
7
7
import path = require( "path" ) ;
8
8
import * as semver from "semver" ;
9
9
import vscode = require( "vscode" ) ;
10
- import TelemetryReporter from "@vscode/extension-telemetry" ;
10
+ import TelemetryReporter , { TelemetryEventProperties , TelemetryEventMeasurements } from "@vscode/extension-telemetry" ;
11
11
import { Message } from "vscode-jsonrpc" ;
12
12
import { Logger } from "./logging" ;
13
13
import { PowerShellProcess } from "./process" ;
@@ -505,6 +505,11 @@ Type 'help' to get help.
505
505
vscode . workspace . onDidChangeConfiguration ( async ( ) => { await this . onConfigurationUpdated ( ) ; } ) ,
506
506
vscode . commands . registerCommand (
507
507
"PowerShell.ShowSessionConsole" , ( isExecute ?: boolean ) => { this . showSessionConsole ( isExecute ) ; } ) ,
508
+ vscode . commands . registerCommand (
509
+ "PowerShell.WalkthroughTelemetry" , ( satisfaction : number ) => {
510
+ this . sendTelemetryEvent ( "powershellWalkthroughSatisfaction" , null , { level : satisfaction } ) ;
511
+ }
512
+ )
508
513
] ;
509
514
}
510
515
@@ -571,6 +576,12 @@ Type 'help' to get help.
571
576
}
572
577
}
573
578
579
+ private async sendTelemetryEvent ( eventName : string , properties ?: TelemetryEventProperties , measures ?: TelemetryEventMeasurements ) {
580
+ if ( this . extensionContext . extensionMode === vscode . ExtensionMode . Production ) {
581
+ this . telemetryReporter . sendTelemetryEvent ( eventName , properties , measures ) ;
582
+ }
583
+ }
584
+
574
585
private async startLanguageClient ( sessionDetails : IEditorServicesSessionDetails ) {
575
586
this . log . write ( `Connecting to language service on pipe: ${ sessionDetails . languageServicePipeName } ` ) ;
576
587
this . log . write ( "Session details: " + JSON . stringify ( sessionDetails ) ) ;
@@ -622,13 +633,11 @@ Type 'help' to get help.
622
633
// This enables handling Semantic Highlighting messages in PowerShell Editor Services
623
634
this . languageClient . registerProposedFeatures ( ) ;
624
635
625
- if ( this . extensionContext . extensionMode === vscode . ExtensionMode . Production ) {
626
- this . languageClient . onTelemetry ( ( event ) => {
627
- const eventName : string = event . eventName ? event . eventName : "PSESEvent" ;
628
- const data : any = event . data ? event . data : event
629
- this . telemetryReporter . sendTelemetryEvent ( eventName , data ) ;
630
- } ) ;
631
- }
636
+ this . languageClient . onTelemetry ( ( event ) => {
637
+ const eventName : string = event . eventName ? event . eventName : "PSESEvent" ;
638
+ const data : any = event . data ? event . data : event
639
+ this . sendTelemetryEvent ( eventName , data ) ;
640
+ } ) ;
632
641
633
642
// Send the new LanguageClient to extension features
634
643
// so that they can register their message handlers
@@ -661,10 +670,7 @@ Type 'help' to get help.
661
670
662
671
this . versionDetails = await this . languageClient . sendRequest ( PowerShellVersionRequestType ) ;
663
672
664
- if ( this . extensionContext . extensionMode === vscode . ExtensionMode . Production ) {
665
- this . telemetryReporter . sendTelemetryEvent ( "powershellVersionCheck" ,
666
- { powershellVersion : this . versionDetails . version } ) ;
667
- }
673
+ this . sendTelemetryEvent ( "powershellVersionCheck" , { powershellVersion : this . versionDetails . version } ) ;
668
674
669
675
this . setSessionVersion ( this . versionDetails . architecture === "x86"
670
676
? `${ this . versionDetails . displayVersion } (${ this . versionDetails . architecture } )`
0 commit comments