Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

243
Views
How to run command after the completion is inserted into the text editor (VS Code Extension)?

In my VS Code Extension I would like the opening and closing parentheses to be inserted automatically after a function is selected from the list provided by the completion item provider.

After the parentheses are added, I would like the extension to trigger the signature help provider (note that VS Code triggers the signature help provider when you manually type the opening parenthesis (.

Here's a snippet of what I've added inside the provideCompletionItems method:

myFunctions.forEach((func) => {
    const completion = new CompletionItem(func, CompletionItemKind.Function);
    completion.detail = func.signature;
    completion.documentation = func.description;
    completion.insertText = func + '(';
    ...
});

I am aware that I can execute a command after inserting a completion by adding something like

completion.command = ...

The VS Code Extension API has vscode.executeSignatureHelpProvider as a built-in command to execute the Signature Help Provider. Thus, I would run this command like this:

vscode.commands.executeCommand('vscode.executeSignatureHelpProvider', document.uri, position)

However, I don't know how to run this command as part of the command variable, meaning that I can't do

completion.command = vscode.commands.executeCommand('vscode.executeSignatureHelpProvider', document.uri, position)

because the command variable accepts only the type Command.

So, how would I be able to run a command after the completion is inserted into the editor?


SOLUTION:

Based on the answers below, I realized I was using the wrong command to trigger the parameter hints widget. Instead, I used the editor.action.triggerParameterHints command:

completion.command = { command: 'editor.action.triggerParameterHints', title: '' };
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Try the editor.action.triggerParameterHints command instead. If you have registered your own SignatureHelpProvider that should trigger it to run. If you haven't registered your own, that should trigger the default provider.

completion.command = "editor.action.triggerParameterHints";


You can also invoke a command, if you have more work to do there, via this in your CompletionItem:

newCommand.command = "<your extension name>.selectDigitInCompletion";
newCommand.title = "Select the digit 'n' in completionItem";
newCommand.arguments = [key, replaceRange, position];  // whatever args you want to pass to the command
completion.command = newCommand;

And then that command is registered somewhere - it doesn't have to be in the package.json:

vscode.commands.registerCommand('<your extension name>.selectDigitInCompletion', async (completionText, completionRange, position) => {

// ...

// access your passed-in args `completionText`,`completionRange` and `position` here
// await vscode.commands.executeCommand('vscode.executeSignatureHelpProvider', document.uri, position)

...

}
about 4 years ago · Juan Pablo Isaza Report

0

assign an instance of the Command object

completion.command = { command: 'vscode.executeSignatureHelpProvider', title: 'Signature' };
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!