Merge from vscode a4177f50c475fc0fa278a78235e3bee9ffdec781 (#8649)

* Merge from vscode a4177f50c475fc0fa278a78235e3bee9ffdec781

* distro

* fix tests
This commit is contained in:
Anthony Dresser
2019-12-11 22:42:23 -08:00
committed by GitHub
parent 82974a2135
commit 4ba6a979ba
280 changed files with 10898 additions and 14231 deletions

View File

@@ -126,8 +126,9 @@ export class SnippetCompletionProvider implements CompletionItemProvider {
// add remaing snippets when the current prefix ends in whitespace or when no
// interesting positions have been found
availableSnippets.forEach(snippet => {
const range = Range.fromPositions(position);
suggestions.push(new SnippetCompletion(snippet, { replace: range, insert: range }));
let insert = Range.fromPositions(position);
let replace = startsWith(lineSuffixLow, snippet.prefixLow) ? insert.setEndPosition(position.lineNumber, position.column + snippet.prefixLow.length) : insert;
suggestions.push(new SnippetCompletion(snippet, { replace, insert }));
});
}

View File

@@ -438,5 +438,13 @@ suite('SnippetsService', function () {
[first] = result.suggestions;
assert.equal((first.range as any).insert.endColumn, 3);
assert.equal((first.range as any).replace.endColumn, 3);
model = TextModel.createFromString('not word', undefined, modeService.getLanguageIdentifier('fooLang'));
result = await provider.provideCompletionItems(model, new Position(1, 1), context)!;
assert.equal(result.suggestions.length, 1);
[first] = result.suggestions;
assert.equal((first.range as any).insert.endColumn, 1);
assert.equal((first.range as any).replace.endColumn, 9);
});
});