From 75071898dcea1405abc92d9a1118efabd43eed66 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Thu, 20 Dec 2018 12:47:24 -0800 Subject: [PATCH] Adding test for vscode.executeSignatureHelpProvider --- .../parameterHints/provideSignatureHelp.ts | 5 ++-- .../api/extHostApiCommands.test.ts | 29 +++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/vs/editor/contrib/parameterHints/provideSignatureHelp.ts b/src/vs/editor/contrib/parameterHints/provideSignatureHelp.ts index 37ad043a05f..87ea878abfd 100644 --- a/src/vs/editor/contrib/parameterHints/provideSignatureHelp.ts +++ b/src/vs/editor/contrib/parameterHints/provideSignatureHelp.ts @@ -26,8 +26,9 @@ export function provideSignatureHelp(model: ITextModel, position: Position, cont })); } -registerDefaultLanguageCommand('_executeSignatureHelpProvider', (model, position) => +registerDefaultLanguageCommand('_executeSignatureHelpProvider', (model, position, args) => provideSignatureHelp(model, position, { triggerKind: modes.SignatureHelpTriggerKind.Invoke, - isRetrigger: false + isRetrigger: false, + triggerCharacter: args['triggerCharacter'] }, CancellationToken.None)); diff --git a/src/vs/workbench/test/electron-browser/api/extHostApiCommands.test.ts b/src/vs/workbench/test/electron-browser/api/extHostApiCommands.test.ts index 74183652039..f73279a7c6f 100644 --- a/src/vs/workbench/test/electron-browser/api/extHostApiCommands.test.ts +++ b/src/vs/workbench/test/electron-browser/api/extHostApiCommands.test.ts @@ -564,6 +564,35 @@ suite('ExtHostLanguageFeatureCommands', function () { assert.equal(b.commitCharacters, undefined); }); + // --- signatureHelp + + test('Parameter Hints, back and forth', async () => { + disposables.push(extHost.registerSignatureHelpProvider(nullExtensionDescription, defaultSelector, new class implements vscode.SignatureHelpProvider { + provideSignatureHelp(_document, _position, _token, context: vscode.SignatureHelpContext): vscode.SignatureHelp { + return { + activeSignature: 0, + activeParameter: 1, + signatures: [ + { + label: 'abc', + documentation: `${context.triggerKind === 1 /* vscode.SignatureHelpTriggerKind.Invoke */ ? 'invoked' : 'unknown'} ${context.triggerCharacter}`, + parameters: [] + } + ] + }; + } + }, [])); + + await rpcProtocol.sync(); + + const firstValue = await commands.executeCommand('vscode.executeSignatureHelpProvider', model.uri, new types.Position(0, 1), ','); + assert.strictEqual(firstValue.activeSignature, 0); + assert.strictEqual(firstValue.activeParameter, 1); + assert.strictEqual(firstValue.signatures.length, 1); + assert.strictEqual(firstValue.signatures[0].label, 'abc'); + assert.strictEqual(firstValue.signatures[0].documentation, 'invoked ,'); + }); + // --- quickfix test('QuickFix, back and forth', function () { -- GitLab