提交 de638fa4 编写于 作者: J Joao Moreno

suggest: model.visibleCount

上级 8ca43a84
......@@ -105,6 +105,10 @@ class CompletionGroup {
}
}
}
get visibleCount(): number {
return this.items.reduce((r, i) => r + (isFalsyOrEmpty(this.filter(this.model.currentWord, i.suggestion)) ? 0 : 1), 0);
}
}
class CompletionModel {
......@@ -133,6 +137,10 @@ class CompletionModel {
get items(): CompletionItem[] {
return this.groups.reduce((r, groups) => r.concat(groups.items), []);
}
get visibleCount(): number {
return this.groups.reduce((r, g) => r + g.visibleCount, 0);
}
}
// To be used as a tree element when we want to show a message
......@@ -613,6 +621,26 @@ export class SuggestWidget implements EditorBrowser.IContentWidget, IDisposable
promise = this.tree.setInput(model);
}
if (model.visibleCount === 0) {
if (e.auto) {
this.setState(State.Hidden);
} else {
if (this.shouldShowEmptySuggestionList) {
this.setState(State.Empty);
} else {
this.setState(State.Hidden);
}
}
if(this.telemetryTimer) {
this.telemetryTimer.data = { reason: 'empty' };
this.telemetryTimer.stop();
this.telemetryTimer = null;
}
return;
}
promise.done(() => {
const navigator = this.tree.getNavigator();
const currentWord = e.currentWord;
......@@ -633,38 +661,19 @@ export class SuggestWidget implements EditorBrowser.IContentWidget, IDisposable
bestSuggestion = item;
bestSuggestionIndex = index;
}
index++;
}
this.telemetryData = this.telemetryData || {};
let reason: string;
if (index === 0) { // no suggestions
if (e.auto) {
this.setState(State.Hidden);
} else {
if (this.shouldShowEmptySuggestionList) {
this.setState(State.Empty);
} else {
this.setState(State.Hidden);
}
}
this.tree.setFocus(bestSuggestion, { firstSuggestion: true });
reason = 'empty';
} else {
this.tree.setFocus(bestSuggestion, { firstSuggestion: true });
this.telemetryData.suggestionCount = suggestions.length;
this.telemetryData.suggestedIndex = bestSuggestionIndex;
this.telemetryData.hintLength = currentWord.length;
reason = 'results';
this.telemetryData = this.telemetryData || {};
this.telemetryData.suggestionCount = suggestions.length;
this.telemetryData.suggestedIndex = bestSuggestionIndex;
this.telemetryData.hintLength = currentWord.length;
this.setState(State.Open);
}
this.setState(State.Open);
if(this.telemetryTimer) {
this.telemetryTimer.data = { reason };
this.telemetryTimer.data = { reason: 'results' };
this.telemetryTimer.stop();
this.telemetryTimer = null;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册