@@ -19,12 +19,12 @@ export class TracingLanguageClient extends LanguageClient {
1919 const startAt : number = performance . now ( ) ;
2020 return super . start ( ) . then ( value => {
2121 if ( isFirstTimeStart ) {
22- this . fireTraceEvent ( "initialize" , startAt ) ;
22+ this . fireTraceEvent ( "initialize" , startAt , undefined ) ;
2323 }
2424 return value ;
2525 } , reason => {
2626 if ( isFirstTimeStart ) {
27- this . fireTraceEvent ( "initialize" , startAt , reason ) ;
27+ this . fireTraceEvent ( "initialize" , startAt , undefined , reason ) ;
2828 }
2929 throw reason ;
3030 } ) ;
@@ -45,10 +45,10 @@ export class TracingLanguageClient extends LanguageClient {
4545 const startAt : number = performance . now ( ) ;
4646 const requestType : string = this . getRequestType ( method , ...args ) ;
4747 return this . sendRequest0 ( method , ...args ) . then ( value => {
48- this . fireTraceEvent ( requestType , startAt ) ;
48+ this . fireTraceEvent ( requestType , startAt , this . getResultLength ( value ) ) ;
4949 return value ;
5050 } , reason => {
51- this . fireTraceEvent ( requestType , startAt , reason ) ;
51+ this . fireTraceEvent ( requestType , startAt , undefined , reason ) ;
5252 throw reason ;
5353 } ) ;
5454 }
@@ -88,12 +88,21 @@ export class TracingLanguageClient extends LanguageClient {
8888 return requestType ;
8989 }
9090
91- private fireTraceEvent ( type : string , startAt : number , reason ?: any ) : void {
91+ private fireTraceEvent ( type : string , startAt : number , resultLength : number | undefined , reason ?: any ) : void {
9292 const duration : number = performance . now ( ) - startAt ;
9393 requestEventEmitter . fire ( {
9494 type,
9595 duration,
9696 error : reason ,
97+ resultLength,
9798 } ) ;
9899 }
100+
101+ private getResultLength ( value : any ) : number | undefined {
102+ if ( ! value ) {
103+ return 0 ;
104+ }
105+
106+ return value ?. length ?? value ?. items ?. length ;
107+ }
99108}
0 commit comments