es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Existe alguna forma de habilitar el autocompletado de Intellisense dentro de comillas sin utilizar el atajo de teclado (Ctrl + Espacio) en Visual Studio Code?

Quiero desarrollar una extensión para Visual Studio Code.
He registrado un proveedor de elementos de finalización para typescript, pero cuando intento escribir entre comillas, la autocompletación no funciona.
Por ejemplo, tengo este código:

function buildProvider(language : vscode.DocumentSelector, label : string, text : string | vscode.CompletionItemLabel){
return vscode.languages.registerCompletionItemProvider('typescript', {
    provideCompletionItems(document: vscode.TextDocument, position: vscode.Position, token: vscode.CancellationToken, context: vscode.CompletionContext) {

        const simpleCompletion = new vscode.CompletionItem('', vscode.CompletionItemKind.Text);

        simpleCompletion.label = label;
        simpleCompletion.insertText = text.toString();

        return [
            simpleCompletion,
        ];
    }
});
}

Si escribo en typescript, la autocompletación funciona:

Auto completion works

Si escribo entre comillas, no funciona a menos que use Ctrl + Espacio:

Auto completion does not works

¿Qué puedo hacer para habilitar la autocompletación entre comillas?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para habilitar el autocompletado en comillas, necesitas establecer la propiedad triggerCharacters del CompletionItemProvider para incluir comillas dobles. Esto le dirá a VS Code que active el autocompletado cuando escribas un carácter de comillas.

    Aquí tienes un ejemplo de cómo puedes modificar la función buildProvider para incluir comillas dobles como carácter de activación:

    function buildProvider(language: vscode.DocumentSelector, label: string, text: string | vscode.CompletionItemLabel) {
        return vscode.languages.registerCompletionItemProvider('typescript', {
            provideCompletionItems(document: vscode.TextDocument, position: vscode.Position, token: vscode.CancellationToken, context: vscode.CompletionContext) {
                const simpleCompletion = new vscode.CompletionItem('', vscode.CompletionItemKind.Text);
                simpleCompletion.label = label;
                simpleCompletion.insertText = text.toString();
                simpleCompletion.triggerCharacters = ['"']; // establece los caracteres de activación para incluir comillas dobles
                return [simpleCompletion];
            }
        });
    }
    

    Con esta modificación, deberías poder obtener el autocompletado en comillas sin tener que usar Ctrl + Espacio.

Comments are closed.