@@ -6,10 +6,14 @@ import {
66 Disposable ,
77 ProgressLocation ,
88} from "vscode" ;
9- import { showAndLogErrorMessage , showAndLogWarningMessage } from "./helpers" ;
9+ import {
10+ showAndLogExceptionWithTelemetry ,
11+ showAndLogWarningMessage ,
12+ } from "./helpers" ;
1013import { extLogger } from "./common" ;
1114import { asError , getErrorMessage , getErrorStack } from "./pure/helpers-pure" ;
1215import { telemetryListener } from "./telemetry" ;
16+ import { redactableError } from "./pure/errors" ;
1317
1418export class UserCancellationException extends Error {
1519 /**
@@ -125,23 +129,28 @@ export function commandRunner(
125129 try {
126130 return await task ( ...args ) ;
127131 } catch ( e ) {
128- const errorMessage = `${ getErrorMessage ( e ) || e } (${ commandId } )` ;
129132 error = asError ( e ) ;
133+ const errorMessage = redactableError ( error ) `${
134+ getErrorMessage ( e ) || e
135+ } (${ commandId } )`;
130136 const errorStack = getErrorStack ( e ) ;
131137 if ( e instanceof UserCancellationException ) {
132138 // User has cancelled this action manually
133139 if ( e . silent ) {
134- void extLogger . log ( errorMessage ) ;
140+ void extLogger . log ( errorMessage . fullMessage ) ;
135141 } else {
136- void showAndLogWarningMessage ( errorMessage ) ;
142+ void showAndLogWarningMessage ( errorMessage . fullMessage ) ;
137143 }
138144 } else {
139145 // Include the full stack in the error log only.
140146 const fullMessage = errorStack
141- ? `${ errorMessage } \n${ errorStack } `
142- : errorMessage ;
143- void showAndLogErrorMessage ( errorMessage , {
147+ ? `${ errorMessage . fullMessage } \n${ errorStack } `
148+ : errorMessage . fullMessage ;
149+ void showAndLogExceptionWithTelemetry ( errorMessage , {
144150 fullMessage,
151+ extraTelemetryProperties : {
152+ command : commandId ,
153+ } ,
145154 } ) ;
146155 }
147156 return undefined ;
@@ -178,24 +187,31 @@ export function commandRunnerWithProgress<R>(
178187 try {
179188 return await withProgress ( progressOptionsWithDefaults , task , ...args ) ;
180189 } catch ( e ) {
181- const errorMessage = `${ getErrorMessage ( e ) || e } (${ commandId } )` ;
182190 error = asError ( e ) ;
191+ const errorMessage = redactableError `${
192+ getErrorMessage ( e ) || e
193+ } (${ commandId } )`;
183194 const errorStack = getErrorStack ( e ) ;
184195 if ( e instanceof UserCancellationException ) {
185196 // User has cancelled this action manually
186197 if ( e . silent ) {
187- void outputLogger . log ( errorMessage ) ;
198+ void outputLogger . log ( errorMessage . fullMessage ) ;
188199 } else {
189- void showAndLogWarningMessage ( errorMessage , { outputLogger } ) ;
200+ void showAndLogWarningMessage ( errorMessage . fullMessage , {
201+ outputLogger,
202+ } ) ;
190203 }
191204 } else {
192205 // Include the full stack in the error log only.
193206 const fullMessage = errorStack
194- ? `${ errorMessage } \n${ errorStack } `
195- : errorMessage ;
196- void showAndLogErrorMessage ( errorMessage , {
207+ ? `${ errorMessage . fullMessage } \n${ errorStack } `
208+ : errorMessage . fullMessage ;
209+ void showAndLogExceptionWithTelemetry ( errorMessage , {
197210 outputLogger,
198211 fullMessage,
212+ extraTelemetryProperties : {
213+ command : commandId ,
214+ } ,
199215 } ) ;
200216 }
201217 return undefined ;
0 commit comments