提交 2d93ffc8 编写于 作者: J Johannes Rieken

improve filter/score speed a little by avoiding uncessary string-creation, #10621

上级 eb068a5d
......@@ -78,16 +78,23 @@ export class CompletionModel {
private _filterAndScore(): void {
this._filteredItems = [];
this._topScoreIdx = -1;
let topScore = -1;
const {leadingLineContent, characterCountDelta} = this._lineContext;
//TODO@joh - sort by 'overwriteBefore' such that we can 'reuse' the word (wordLowerCase)
let word = '';
let topScore = -1;
for (const item of this._items) {
const start = leadingLineContent.length - (item.suggestion.overwriteBefore + characterCountDelta);
const word = leadingLineContent.substr(start);
const {filter, suggestion} = item;
// 'word' is that remainder of the current line that we
// filter and score against. In theory each suggestion uses a
// differnet word, but in practice not - that's why we cache
const wordLen = item.suggestion.overwriteBefore + characterCountDelta;
if (word.length !== wordLen) {
word = leadingLineContent.slice(-wordLen);
}
let match = false;
// compute highlights based on 'label'
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册