提交 b166d589 编写于 作者: M Matt Bierner

Add basic pinning test for commit character var completion

上级 483adec7
...@@ -35,6 +35,23 @@ suite('TypeScript Completions', () => { ...@@ -35,6 +35,23 @@ suite('TypeScript Completions', () => {
)); ));
}); });
test('Should treat period as commit character for var completions', async () => {
await wait(100);
await createTestEditor(testDocumentUri,
`const abcdef = 123;`,
`ab$0;`
);
const document = await typeCommitCharacter(testDocumentUri, '.', _disposables);
assert.strictEqual(
document.getText(),
joinLines(
`const abcdef = 123;`,
`abcdef.;`
));
});
test('Should insert backets when completing dot properties with spaces in name', async () => { test('Should insert backets when completing dot properties with spaces in name', async () => {
await wait(100); await wait(100);
...@@ -110,6 +127,15 @@ async function acceptFirstSuggestion(uri: vscode.Uri, _disposables: vscode.Dispo ...@@ -110,6 +127,15 @@ async function acceptFirstSuggestion(uri: vscode.Uri, _disposables: vscode.Dispo
return await didChangeDocument; return await didChangeDocument;
} }
async function typeCommitCharacter(uri: vscode.Uri, character: string, _disposables: vscode.Disposable[]) {
const didChangeDocument = onChangedDocument(uri, _disposables);
const didSuggest = onDidSuggest(_disposables);
await vscode.commands.executeCommand('editor.action.triggerSuggest');
await didSuggest;
await vscode.commands.executeCommand('type', {text: character});
return await didChangeDocument;
}
function onChangedDocument(documentUri: vscode.Uri, disposables: vscode.Disposable[]) { function onChangedDocument(documentUri: vscode.Uri, disposables: vscode.Disposable[]) {
return new Promise<vscode.TextDocument>(resolve => vscode.workspace.onDidChangeTextDocument(e => { return new Promise<vscode.TextDocument>(resolve => vscode.workspace.onDidChangeTextDocument(e => {
if (e.document.uri.toString() === documentUri.toString()) { if (e.document.uri.toString() === documentUri.toString()) {
...@@ -142,7 +168,7 @@ function onDidSuggest(disposables: vscode.Disposable[]) { ...@@ -142,7 +168,7 @@ function onDidSuggest(disposables: vscode.Disposable[]) {
}]; }];
} }
async resolveCompletionItem(item: vscode.CompletionItem) { async resolveCompletionItem(item: vscode.CompletionItem) {
await vscode.commands.executeCommand('selectNextSuggestion') await vscode.commands.executeCommand('selectNextSuggestion');
resolve(); resolve();
return item; return item;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册