@@ -731,7 +731,9 @@ namespace ts.server {
731731 }
732732 return ;
733733 }
734- this . host . write ( formatMessage ( msg , this . logger , this . byteLength , this . host . newLine ) ) ;
734+ const msgText = formatMessage ( msg , this . logger , this . byteLength , this . host . newLine ) ;
735+ perfLogger . logEvent ( `Response message size: ${ msgText . length } ` ) ;
736+ this . host . write ( msgText ) ;
735737 }
736738
737739 public event < T extends object > ( body : T , eventName : string ) : void {
@@ -2509,6 +2511,8 @@ namespace ts.server {
25092511 try {
25102512 request = < protocol . Request > JSON . parse ( message ) ;
25112513 relevantFile = request . arguments && ( request as protocol . FileRequest ) . arguments . file ? ( request as protocol . FileRequest ) . arguments : undefined ;
2514+
2515+ perfLogger . logStartCommand ( "" + request . command , message . substring ( 0 , 100 ) ) ;
25122516 const { response, responseRequired } = this . executeCommand ( request ) ;
25132517
25142518 if ( this . logger . hasLevel ( LogLevel . requestTime ) ) {
@@ -2521,6 +2525,8 @@ namespace ts.server {
25212525 }
25222526 }
25232527
2528+ // Note: Log before writing the response, else the editor can complete its activity before the server does
2529+ perfLogger . logStopCommand ( "" + request . command , "Success" ) ;
25242530 if ( response ) {
25252531 this . doOutput ( response , request . command , request . seq , /*success*/ true ) ;
25262532 }
@@ -2531,10 +2537,14 @@ namespace ts.server {
25312537 catch ( err ) {
25322538 if ( err instanceof OperationCanceledException ) {
25332539 // Handle cancellation exceptions
2540+ perfLogger . logStopCommand ( "" + ( request && request . command ) , "Canceled: " + err ) ;
25342541 this . doOutput ( { canceled : true } , request ! . command , request ! . seq , /*success*/ true ) ;
25352542 return ;
25362543 }
2544+
25372545 this . logErrorWorker ( err , message , relevantFile ) ;
2546+ perfLogger . logStopCommand ( "" + ( request && request . command ) , "Error: " + err ) ;
2547+
25382548 this . doOutput (
25392549 /*info*/ undefined ,
25402550 request ? request . command : CommandNames . Unknown ,
0 commit comments