@@ -14,16 +14,20 @@ import { redactableError } from "../../pure/errors";
1414import { UserCancellationException } from "./progress" ;
1515import { telemetryListener } from "./telemetry" ;
1616import { showAndLogExceptionWithTelemetry } from "./logging" ;
17+ import { AppTelemetry } from "../telemetry" ;
1718
1819/**
1920 * Create a command manager for VSCode, wrapping registerCommandWithErrorHandling
2021 * and vscode.executeCommand.
2122 */
2223export function createVSCodeCommandManager <
2324 Commands extends Record < string , CommandFunction > ,
24- > ( logger ?: NotificationLogger ) : CommandManager < Commands > {
25+ > (
26+ logger ?: NotificationLogger ,
27+ telemetry ?: AppTelemetry ,
28+ ) : CommandManager < Commands > {
2529 return new CommandManager ( ( commandId , task ) => {
26- return registerCommandWithErrorHandling ( commandId , task , logger ) ;
30+ return registerCommandWithErrorHandling ( commandId , task , logger , telemetry ) ;
2731 } , wrapExecuteCommand ) ;
2832}
2933
@@ -34,11 +38,13 @@ export function createVSCodeCommandManager<
3438 * @param task The task to run. It is passed directly to `commands.registerCommand`. Any
3539 * arguments to the command handler are passed on to the task.
3640 * @param logger The logger to use for error reporting.
41+ * @param telemetry The telemetry listener to use for error reporting.
3742 */
3843export function registerCommandWithErrorHandling (
3944 commandId : string ,
4045 task : ( ...args : any [ ] ) => Promise < any > ,
4146 logger : NotificationLogger = extLogger ,
47+ telemetry : AppTelemetry | undefined = telemetryListener ,
4248) : Disposable {
4349 return commands . registerCommand ( commandId , async ( ...args : any [ ] ) => {
4450 const startTime = Date . now ( ) ;
@@ -64,7 +70,7 @@ export function registerCommandWithErrorHandling(
6470 const fullMessage = errorStack
6571 ? `${ errorMessage . fullMessage } \n${ errorStack } `
6672 : errorMessage . fullMessage ;
67- void showAndLogExceptionWithTelemetry ( logger , errorMessage , {
73+ void showAndLogExceptionWithTelemetry ( logger , telemetry , errorMessage , {
6874 fullMessage,
6975 extraTelemetryProperties : {
7076 command : commandId ,
0 commit comments