1

Je cherche à avoir des extraits conditionnels dans le VS Code IntelliSense pour une langue particulière. J'envisage de créer une extension, intercepter la liste de CompletionItems, et de supprimer tous les extraits qui ne satisfont pas mes conditions en fonction de languageId et les paramètres/configuration que je vais contribuer avec l'extension. Je suis à la recherche de la solution la plus simple pour accomplir ceci, mais si j'ai besoin d'un Language Server, alors qu'il en soit ainsi. Si je peux charger dynamiquement un fichier de snippets pour un languageId particulier alors ce serait encore mieux. J'ai juste besoin d'un point de départ de quelqu'un de plus familier avec l'API. Je n'ai même pas trouvé comment récupérer CompletionList pour lancer l'interception - J'ai cherché le document d'API mais n'ai trouvé rien d'autre que sa définition d'objet.VS Code Conditional Snippets

Répondre

0

À partir de VSCode 1.14, vous ne pouvez pas avoir de conditionnel user snippets mais une extension peut apporter des fragments conditionnellement. Essayez de créer un CompletionItemProvider qui renvoie les éléments d'achèvement avec leur kind défini sur CompletionItemKind.Snippet. Le JsDocCompletionProvider dans la base de code VSCode est un exemple de ce modèle. Il ne renvoie que des fragments de jsdoc lorsque la zone autour du curseur correspond à une expression régulière