measure duration for completion provider from extensions, #109167

This commit is contained in:
Johannes Rieken
2020-10-22 14:06:36 +00:00
committed by GitHub
parent 38e46c9a4d
commit f8391ef992
3 changed files with 21 additions and 17 deletions

View File

@@ -31,6 +31,7 @@ import { encodeSemanticTokensDto } from 'vs/workbench/api/common/shared/semantic
import { IdGenerator } from 'vs/base/common/idGenerator';
import { IExtHostApiDeprecationService } from 'vs/workbench/api/common/extHostApiDeprecationService';
import { Cache } from './cache';
import { StopWatch } from 'vs/base/common/stopwatch';
// --- adapter
@@ -896,6 +897,7 @@ class SuggestAdapter {
const replaceRange = doc.getWordRangeAtPosition(pos) || new Range(pos, pos);
const insertRange = replaceRange.with({ end: pos });
const sw = new StopWatch(true);
const itemsOrList = await asPromise(() => this._provider.provideCompletionItems(doc, pos, token, typeConvert.CompletionContext.to(context)));
if (!itemsOrList) {
@@ -921,7 +923,8 @@ class SuggestAdapter {
x: pid,
[extHostProtocol.ISuggestResultDtoField.completions]: completions,
[extHostProtocol.ISuggestResultDtoField.defaultRanges]: { replace: typeConvert.Range.from(replaceRange), insert: typeConvert.Range.from(insertRange) },
[extHostProtocol.ISuggestResultDtoField.isIncomplete]: list.isIncomplete || undefined
[extHostProtocol.ISuggestResultDtoField.isIncomplete]: list.isIncomplete || undefined,
[extHostProtocol.ISuggestResultDtoField.duration]: sw.elapsed()
};
for (let i = 0; i < list.items.length; i++) {