@@ -19,12 +19,12 @@ export class TracingLanguageClient extends LanguageClient {
19
19
const startAt : number = performance . now ( ) ;
20
20
return super . start ( ) . then ( value => {
21
21
if ( isFirstTimeStart ) {
22
- this . fireTraceEvent ( "initialize" , startAt ) ;
22
+ this . fireTraceEvent ( "initialize" , startAt , undefined ) ;
23
23
}
24
24
return value ;
25
25
} , reason => {
26
26
if ( isFirstTimeStart ) {
27
- this . fireTraceEvent ( "initialize" , startAt , reason ) ;
27
+ this . fireTraceEvent ( "initialize" , startAt , undefined , reason ) ;
28
28
}
29
29
throw reason ;
30
30
} ) ;
@@ -45,10 +45,10 @@ export class TracingLanguageClient extends LanguageClient {
45
45
const startAt : number = performance . now ( ) ;
46
46
const requestType : string = this . getRequestType ( method , ...args ) ;
47
47
return this . sendRequest0 ( method , ...args ) . then ( value => {
48
- this . fireTraceEvent ( requestType , startAt ) ;
48
+ this . fireTraceEvent ( requestType , startAt , this . getResultLength ( value ) ) ;
49
49
return value ;
50
50
} , reason => {
51
- this . fireTraceEvent ( requestType , startAt , reason ) ;
51
+ this . fireTraceEvent ( requestType , startAt , undefined , reason ) ;
52
52
throw reason ;
53
53
} ) ;
54
54
}
@@ -88,12 +88,21 @@ export class TracingLanguageClient extends LanguageClient {
88
88
return requestType ;
89
89
}
90
90
91
- private fireTraceEvent ( type : string , startAt : number , reason ?: any ) : void {
91
+ private fireTraceEvent ( type : string , startAt : number , resultLength : number | undefined , reason ?: any ) : void {
92
92
const duration : number = performance . now ( ) - startAt ;
93
93
requestEventEmitter . fire ( {
94
94
type,
95
95
duration,
96
96
error : reason ,
97
+ resultLength,
97
98
} ) ;
98
99
}
100
+
101
+ private getResultLength ( value : any ) : number | undefined {
102
+ if ( ! value ) {
103
+ return 0 ;
104
+ }
105
+
106
+ return value ?. length ?? value ?. items ?. length ;
107
+ }
99
108
}
0 commit comments