Partager via


Comment : Fournissez la prise en charge étendue du mode Plan

Il existe deux options pour étendre la prise en charge du mode Plan de votre langage au delà de prendre en charge la commande de Réduire aux définitions . vous pouvez ajouter les régions en mode Plan contrôlées par l'éditeur et ajouter les régions en mode Plan client-contrôlées.

ajouter les régions en mode Plan contrôlées par l'éditeur

Utilisez cette approche pour créer une région en mode Plan puis pour permettre à l'éditeur pour gérer si la région est développée, réduit, etc. Les deux options permettant la prise en charge du mode Plan, cette option est moins la fiable. Pour cette option, vous créez une nouvelle région en mode Plan sur une étendue spécifiée de texte à l'aide de l' AddOutlineRegions. Une fois cette zone créée, son comportement est contrôlé par l'éditeur. Utilisez la procédure suivante pour implémenter les régions en mode Plan contrôlées par l'éditeur.

pour implémenter une région en mode Plan contrôlée par l'éditeur

  1. appelez QueryService pour SVsTextManager

    Retourne un pointeur vers IVsHiddenTextManager.

  2. Appelez l' GetHiddenTextSession, en passant un pointeur d'une mémoire tampon de texte donnée. Retourne un pointeur vers l'objet d' IVsHiddenTextSession pour la mémoire tampon.

  3. Appelez QueryInterface sur IVsHiddenTextSession pour un pointeur vers IVsOutliningSession.

  4. appelez l' AddOutlineRegions pour ajouter une ou plusieurs nouvelles régions en mode Plan à la fois.

    Cette méthode vous permet de spécifier l'étendue de texte pour esquisser, si les régions en mode Plan existantes sont supprimées ou conservées, et si la région en mode Plan est développée ou réduite par défaut.

ajouter les régions en mode Plan Client-contrôlées

Utilisez cette approche pour implémenter le mode Plan client-contrôlé (ou dynamique) similaire à celui utilisé par les services de Visual C# de langage et vbprvb. Un service de langage qui gère son propre mode Plan surveille le contenu de la mémoire tampon de texte afin de détruire les régions en mode Plan anciennes lorsqu'il devient non valide et de créer des régions en mode Plan si nécessaire.

pour implémenter une région en mode Plan client-contrôlée

  1. appel QueryService pour SVsTextManager. Retourne un pointeur vers IVsHiddenTextManager.

  2. Appelez l' GetHiddenTextSession, en passant un pointeur d'une mémoire tampon de texte donnée. Cela détermine si une session de texte masqué existe déjà pour la mémoire tampon.

  3. Si une session de texte existe déjà, vous n'avez pas besoin de créer un, et un pointeur vers l'objet existant d' IVsHiddenTextSession est retourné. Utilisez ce pointeur pour énumérer et créer des régions en mode Plan. Sinon, CreateHiddenTextSession d'appel pour créer une session de texte masqué pour la mémoire tampon. Un pointeur vers l'objet d' IVsHiddenTextSession est retourné.

    Notes

    Lorsque vous appelez l' CreateHiddenTextSession, vous pouvez spécifier un client de texte masqué (autrement dit, un objet d' IVsHiddenTextClient ).Ce client vous avertit lorsqu'un texte masqué ou une région en mode Plan est développé ou réduit par l'utilisateur.

  4. appelez le paramètre de structure d' AddHiddenRegions ) : spécifiez une valeur d' hrtCollapsible dans le membre d' iType de la structure d' NewHiddenRegion pour indiquer que vous créez une région en mode Plan, plutôt qu'une zone masquée. Spécifiez si la région est client-contrôlée ou contrôlée par l'éditeur dans le membre d' dwBehavior de la structure d' NewHiddenRegion . Votre implémentation intelligente de mode Plan peut contenir une combinaison de régions en mode Plan d'éditeur et client-contrôlé. Spécifiez le texte de la bannière qui s'affiche lorsque votre région en mode Plan est réduite, par exemple « … », dans le membre d' pszBanner de la structure d' NewHiddenRegion . le texte par défaut de la bannière de l'éditeur pour une zone masquée est « … ».