Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

247
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar

0

asignar una instancia del objeto Command

 completion.command = { command: 'vscode.executeSignatureHelpProvider', title: 'Signature' };
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda