Partager via


CompoundViewAction, classe

Gère les plusieurs actions de modification qui sont traitées comme une opération unique, optimisées pour un affichage de texte.

Cette API n'est pas conforme CLS. L'alternative conforme CLS est [None].

Hiérarchie d'héritage

System.Object
  Microsoft.VisualStudio.Package.CompoundViewAction

Espace de noms :  Microsoft.VisualStudio.Package
Assemblys :   Microsoft.VisualStudio.Package.LanguageService (dans Microsoft.VisualStudio.Package.LanguageService.dll)
  Microsoft.VisualStudio.Package.LanguageService.11.0 (dans Microsoft.VisualStudio.Package.LanguageService.11.0.dll)
  Microsoft.VisualStudio.Package.LanguageService.9.0 (dans Microsoft.VisualStudio.Package.LanguageService.9.0.dll)
  Microsoft.VisualStudio.Package.LanguageService.10.0 (dans Microsoft.VisualStudio.Package.LanguageService.10.0.dll)

Syntaxe

'Déclaration
<CLSCompliantAttribute(False)> _
Public Class CompoundViewAction _
    Implements IDisposable
[CLSCompliantAttribute(false)]
public class CompoundViewAction : IDisposable

Le type CompoundViewAction expose les membres suivants.

Constructeurs

  Nom Description
Méthode publique CompoundViewAction Initialise une nouvelle instance de la classe CompoundViewAction.

Début

Méthodes

  Nom Description
Méthode publique Abort() Termine l'action composite actuelle, levant loin toutes les modifications. (Hérité de CompoundActionBase.)
Méthode publique Abort()
Méthode publique Close() Fermez l'action et les validations composites toutes les modifications au fichier source. (Hérité de CompoundActionBase.)
Méthode publique Close()
Méthode publique Dispose() Libère toutes les ressources juste avant que l'objet d'CompoundAction soit détruit. (Hérité de CompoundActionBase.)
Méthode publique Dispose()
Méthode publique Equals Détermine si l'objet Object spécifié est égal à l'objet Object actuel. (Hérité de Object.)
Méthode protégée Finalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publique FlushEditActions() Purge les actions en attente de modification de l'action composite actuelle. (Hérité de CompoundActionBase.)
Méthode publique FlushEditActions()
Méthode publique GetHashCode Sert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode protégée MemberwiseClone Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode publique ToString Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.)

Début

Champs

  Nom Description
Champ protégé action Interface pour une action de CompoundAction. (Hérité de CompoundActionBase.)
Champ protégé opened Spécifie si une action composite a été ouverte. (Hérité de CompoundActionBase.)

Début

Remarques

Cette classe est utilisée pour simplifier encapsulant une collection de modifications dans une opération unique.Cela est accompli en appelant la méthode d'OpenCompoundAction sur l'interface d'IVsCompoundAction obtenue à partir de l'objet spécifié d'IVsTextView.Lorsque cette classe est supprimée, l'interface d'IVsCompoundAction est fermée et ce des validations tous les événements de modification faits à l'objet d'IVsTextLines comme opération unique.

Remarques à l'attention des implémenteurs

Cette classe contient tous les éléments nécessaires pour ouvrir une action composite donnée un objet d'IVsTextView et fermer cette action lorsque cette classe est supprimée.

Remarques à l'attention des appelants

Instanciez un objet d'CompoundViewAction avec l'objet d'IVsTextView lorsque vous devez encapsuler un ou plusieurs modifications qui peuvent être annulées dans une action unique.Exécutez vos modifications de façon normale.Lorsque le nouvel objet d'CompoundViewAction est supprimé, les modifications sont enregistrées en tant qu'opération unique.

Utilisez cette classe plutôt que la classe d'CompoundAction comme cette classe permet à l'affichage de texte pour optimiser toutes les modifications faites.

[!REMARQUE]

Étant donné que la classe d'CompoundViewAction fonctionne directement avec la vue, le coloriseur n'a pas besoin d'être interrompu par la classe.

Exemples

Cet exemple indique comme utiliser la classe CompoundViewAction.Cet exemple insère une liste de mots à la position actuelle dans le fichier source.Sans objet d'CompoundViewAction, chacune de ces insertions est traitée comme un événement séparé de modification et requiert une opération d'annulation distincte.Toutefois, avec l'objet d'CompoundViewAction, la liste entière peut être annulée avec une phase de restauration unique.

using Microsoft.VisualStudio.Package

namespace MyLanguagePackage
{
    class CMyLanguageService : LanguageService
    {
        // Insert the list of words, one per line.
        void InsertWords(Source src,string[] wordList)
        {
            if (LastActiveTextView != null)
            {
                CompoundViewAction action = new CompoundViewAction(LastActiveTextView,
                                                                   "Update source");
                using (action)
                {
                    int currentLine = 0;
                    int currentCol = 0;
                    LastActiveTextView.GetCaretPos(out currentLine, out currentCol);
                    // Insert list in reverse so the words appear in the proper
                    // order in the sourec file.
                    for (int i = wordList.Length - 1, i >= 0; i--)
                    {
                        string w = wordList[i] + "\n";
                        src.SetText(currentLine, currentCol, currentLine, currentCol, w);
                    }
                }
            }
        }
    }
}

Sécurité des threads

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Voir aussi

Référence

Microsoft.VisualStudio.Package, espace de noms