提交 263cb2c3 编写于 作者: J Johannes Rieken

debt - make editor adapter use overwrite[Before|After] instead of multiple suggest results

上级 3e3dd8ce
......@@ -395,14 +395,19 @@ class SuggestAdapter {
}
provideCompletionItems(model:editorCommon.IReadOnlyModel, position:Position, token:CancellationToken): Thenable<modes.ISuggestResult[]> {
const ran = model.getWordUntilPosition(position);
return toThenable<CompletionItem[]|CompletionList>(this._provider.provideCompletionItems(model, position, token)).then(value => {
let defaultSuggestions: modes.ISuggestResult = {
const result: modes.ISuggestResult = {
suggestions: [],
currentWord: ran ? ran.word : '',
currentWord: '',
};
let allSuggestions: modes.ISuggestResult[] = [defaultSuggestions];
// default text edit start
let wordStartPos = position.clone();
const word = model.getWordUntilPosition(position);
if (word) {
wordStartPos.column = word.startColumn;
}
let list: CompletionList;
if (Array.isArray(value)) {
......@@ -412,7 +417,7 @@ class SuggestAdapter {
};
} else if (typeof value === 'object' && Array.isArray(value.items)) {
list = value;
defaultSuggestions.incomplete = list.isIncomplete;
result.incomplete = list.isIncomplete;
} else if (!value) {
// undefined and null are valid results
return;
......@@ -442,18 +447,17 @@ class SuggestAdapter {
suggestion.overwriteBefore = position.column - editRange.startColumn;
suggestion.overwriteAfter = editRange.endColumn - position.column;
allSuggestions.push({
currentWord: model.getValueInRange(editRange),
suggestions: [suggestion],
incomplete: list.isIncomplete
});
} else {
defaultSuggestions.suggestions.push(suggestion);
result.suggestions.push(suggestion);
suggestion.overwriteBefore = position.column - wordStartPos.column;
suggestion.overwriteAfter = 0;
}
result.suggestions.push(suggestion);
}
return allSuggestions;
return [result];
});
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册