Partager via


Liste de vérification : Créer un service de langage

La liste de vérification suivante résume les étapes de base que vous devez entrer à nouveau la commande pour créer un service de langage pour l'éditeur principal de Visual Studio . Pour intégrer votre service de langage dans Visual Studio, vous devez créer un évaluateur d'expression de débogage. Pour plus d'informations, consultez Écrire un évaluateur d'expression du common langage runtime dans Extensibilité du débogueur Visual Studio.

Étapes pour créer un service de langage

  1. Implémenter l'interface IVsPackage.

    • Dans votre VSPackage, implémentez l'interface d' IServiceProvider pour fournir le service de langage.

    • Rendez votre service de langage disponible à l'environnement (IDE) de développement intégré dans votre implémentation d' SetSite .

  2. Implémentez l'interface d' IVsLanguageInfo dans la classe principale de service de langage.

    L'interface d' IVsLanguageInfo est le point de départ d'interaction entre l'éditeur principal et le service de langage.

Fonctionnalités facultatives

Les fonctionnalités suivantes sont facultatives et peuvent être implémentées dans n'importe quel ordre. Ces fonctionnalités augmentent la fonctionnalité de votre service de langage.

  • coloration de syntaxe

    Implémenter l'interface IVsColorizer. Votre implémentation de cette interface si les informations d'analyseur retournent des informations sur la couleur appropriées.

    La méthode d' GetColorizer retourne l'interface d' IVsColorizer . Une instance séparée de coloriseur est créée pour chaque mémoire tampon de texte, vous devez implémenter l'interface d' IVsColorizer séparément. Pour plus d'informations, consultez coloration de syntaxe.

  • fenêtre de code

    Implémentez l'interface d' IVsCodeWindowManager pour permettre au service de langage pour recevoir la notification de lorsqu'une nouvelle fenêtre de code est créée.

    La méthode d' GetCodeWindowManager retourne l'interface d' IVsCodeWindowManager . Le service de langage peut ensuite ajouter l'une interface utilisateur spéciale à la fenêtre de code dans AddAdornments. Le service de langage peut également effectuer un traitement spécial, par exemple ajouter un filtre d'affichage de texte dans l' OnNewView.

  • filtre d'affichage de texte

    Pour fournir la saisie semi-automatique des instructions Intellisense dans un service de langage, vous devez désactiver certaines commandes que l'affichage de texte ' sinon. Pour arrêter ces commandes, exécutez les étapes suivantes :

    Les commandes qui doivent être gérées dépendent des services fournis. Pour plus d'informations, consultez Commandes importantes pour les filtres de service de langage.

    Notes

    l'interface d' IVsTextViewFilter doit être implémentée sur le même objet que l'interface d' IOleCommandTarget .

  • Saisie semi-automatique des instructions

    Implémenter l'interface IVsCompletionSet.

    Prend en charge la commande de saisie semi-automatique des instructions (autrement dit, COMPLETEWORD) et appelez la méthode d' UpdateCompletionStatus dans l'interface d' IVsTextView , en passant l'interface d' IVsCompletionSet . Pour plus d'informations, consultez saisie semi-automatique des instructions.

  • conseils de méthode

    Implémentez l'interface d' IVsMethodData pour fournir des données pour la fenêtre de conseils de méthode.

    Installez le filtre d'affichage de texte pour gérer les commandes correctement, afin que vous sachiez lorsque l'affichage d'une fenêtre de conseils de données de méthode. Pour plus d'informations, consultez Info-bulles des informations sur les paramètres.

  • Marqueurs d'erreurs

    Implémenter l'interface IVsTextMarkerClient.

    Créez les objets de marque d'erreurs qui implémentent l'interface d' IVsTextMarkerClient et appelez la méthode d' CreateLineMarker , en passant l'interface d' IVsTextMarkerClient de l'objet de marque d'erreurs.

    En général chaque point d'erreurs gère un élément dans la fenêtre liste des tâches.

  • éléments de la liste des tâches

    implémentez une classe de tâche fournissant l'interface d' IVsTaskItem .

    implémentez une classe de fournisseur de tâche fournissant l'interface d' IVsTaskProvider et l'interface d' IVsTaskProvider2 .

    implémentez une classe d'énumérateur de tâche fournissant l'interface d' IVsEnumTaskItems .

    Enregistrer le fournisseur de tâche avec la méthode de l' RegisterTaskProvider de la liste des tâches.

    Obtenez l'interface d' IVsTaskList en appelant le fournisseur de services du service de langage avec le service GUID SVsTaskList.

    Créez les objets de tâche et appelez la méthode d' RefreshTasks dans l'interface d' IVsTaskList lorsqu'il existe de nouvelles ou mises à jour tâches.

  • Commentaires

    Utilisez l'interface d' IVsCommentTaskInfo et l'interface d' IVsEnumCommentTaskTokens pour obtenir les jetons de commentaire.

    obtenez une interface d' IVsCommentTaskInfo du service d' SVsTaskList .

    obtenez l'interface d' IVsEnumCommentTaskTokens de la méthode d' EnumTokens .

    Implémentez l'interface d' IVsTaskListEvents pour écouter les modifications dans la liste de jetons.

  • Mode Plan

    Il existe plusieurs options pour prendre en charge le mode Plan. Par exemple, vous pouvez prendre en charge la commande de Réduire aux définitions , fournir les régions en mode Plan contrôlées par l'éditeur, ou pour prendre en charge les régions client-contrôlées. Pour plus d'informations, consultez Comment : Fournissez la prise en charge étendue du mode Plan.

  • Inscription de service de langage

    Pour plus d'informations sur l'enregistrement d'un service de langage, consultez Enregistrer un service de langage et le chargement VSPackages.

  • aide contextuelle

    Fournissez le contexte à l'éditeur de l'une des façons suivantes :

Fournissez tout le contexte d'utilisateur en implémentant l'interface d' IVsLanguageContextProvider .

Voir aussi

Autres ressources

Développer un service de langage

Écrire un évaluateur d'expression du common langage runtime