Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

244
Visualizações
¿Cómo ejecutar el comando después de insertar la finalización en el editor de texto (VS Code Extension)?

En mi extensión de VS Code, me gustaría que los paréntesis de apertura y cierre se insertaran automáticamente después de seleccionar una función de la lista proporcionada por el proveedor del elemento de finalización.

Después de agregar los paréntesis, me gustaría que la extensión active el proveedor de ayuda para firmas (tenga en cuenta que VS Code activa el proveedor de ayuda para firmas cuando escribe manualmente el paréntesis de apertura ( .

Aquí hay un fragmento de lo que agregué dentro del método provideCompletionItems :

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

Soy consciente de que puedo ejecutar un comando después de insertar una finalización agregando algo como

 completion.command = ...

La API de extensión de VS Code tiene vscode.executeSignatureHelpProvider como un comando integrado para ejecutar el proveedor de ayuda de firma. Por lo tanto, ejecutaría este comando así:

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

Sin embargo, no sé cómo ejecutar este comando como parte de la variable de command , lo que significa que no puedo hacer

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

porque la variable de command acepta solo el tipo Command .

Entonces, ¿cómo podría ejecutar un comando después de insertar la finalización en el editor?


SOLUCIÓN:

Según las respuestas a continuación, me di cuenta de que estaba usando el comando incorrecto para activar el widget de sugerencias de parámetros. En su lugar, utilicé el comando editor.action.triggerParameterHints :

 completion.command = { command: 'editor.action.triggerParameterHints', title: '' };
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Pruebe el comando editor.action.triggerParameterHints en su lugar. Si ha registrado su propio SignatureHelpProvider, eso debería activarlo para que se ejecute. Si no ha registrado el suyo propio, eso debería activar el proveedor predeterminado.

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


También puede invocar un comando, si tiene más trabajo que hacer allí, a través de esto en su 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;

Y luego ese comando está registrado en alguna parte, no tiene que estar en el 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 Relatório

0

asignar una instancia del objeto Command

 completion.command = { command: 'vscode.executeSignatureHelpProvider', title: 'Signature' };
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda