Udostępnij za pośrednictwem


Klasa CompoundAction

Zarządza grupa operacje edycji, które są traktowane jako pojedynczej operacji.

Ten interfejs API nie jest zgodny ze specyfikacją CLS. Alternatywa zgodna ze specyfikacją CLS to [None].

Hierarchia dziedziczenia

System.Object
  Microsoft.VisualStudio.Package.CompoundActionBase
    Microsoft.VisualStudio.Package.CompoundAction

Przestrzeń nazw:  Microsoft.VisualStudio.Package
Zestawy:   Microsoft.VisualStudio.Package.LanguageService.9.0 (w Microsoft.VisualStudio.Package.LanguageService.9.0.dll)
  Microsoft.VisualStudio.Package.LanguageService.10.0 (w Microsoft.VisualStudio.Package.LanguageService.10.0.dll)
  Microsoft.VisualStudio.Package.LanguageService.11.0 (w Microsoft.VisualStudio.Package.LanguageService.11.0.dll)
  Microsoft.VisualStudio.Package.LanguageService (w Microsoft.VisualStudio.Package.LanguageService.dll)

Składnia

'Deklaracja
<CLSCompliantAttribute(False)> _
Public Class CompoundAction _
    Inherits CompoundActionBase
[CLSCompliantAttribute(false)]
public class CompoundAction : CompoundActionBase

Typ CompoundAction uwidacznia następujące elementy członkowskie.

Konstruktorzy

  Nazwa Opis
Metoda publiczna CompoundAction Inicjuje nowe wystąpienie CompoundAction klasy.

Początek

Metody

  Nazwa Opis
Metoda publiczna Abort Kończy bieżącą akcję mieszanek Wyrzuca wszystkie edycje. (Zastępuje CompoundActionBase.Abort()).
Metoda publiczna Close Zamyka mieszanek działania i zatwierdza wszystkie zmiany w pliku źródłowym. (Zastępuje CompoundActionBase.Close()).
Metoda publiczna Dispose() Zwalnia wszystkie zasoby tuż przed CompoundAction niszczony jest obiekt.
Metoda publiczna Dispose() Zwalnia wszystkie zasoby tuż przed CompoundAction niszczony jest obiekt. (Odziedziczone z CompoundActionBase).
Metoda publiczna Equals Określa, czy określony obiekt jest równa bieżącego obiektu. (Odziedziczone z Object).
Metoda chroniona Finalize Umożliwia obiekt spróbuj zwolnić zasoby i wykonywania innych operacji oczyszczania, zanim jest odzyskane w procesie wyrzucania elementów bezużytecznych. (Odziedziczone z Object).
Metoda publiczna FlushEditActions Opróżnia wszystkie oczekujące edytowanie akcji z bieżącej akcji mieszanek. (Zastępuje CompoundActionBase.FlushEditActions()).
Metoda publiczna GetHashCode Służy jako funkcja mieszania dla określonego typu. (Odziedziczone z Object).
Metoda publiczna GetType Pobiera Type bieżącej instancji. (Odziedziczone z Object).
Metoda chroniona MemberwiseClone Tworzy kopię płytkie bieżące Object. (Odziedziczone z Object).
Metoda publiczna ToString Zwraca ciąg, który reprezentuje bieżącego obiektu. (Odziedziczone z Object).

Początek

Pola

  Nazwa Opis
Pole chronione action Interfejs dla akcji CompoundAction. (Odziedziczone z CompoundActionBase).
Pole chronione opened Określa, jeżeli został otwarty mieszanek działania. (Odziedziczone z CompoundActionBase).

Początek

Uwagi

To klasa jest używana do uproszczenia zawijania to kolekcja operacji edycji do pojedynczego zdarzenia można cofnąć.Jest to osiągane przez wywołanie OpenCompoundAction metody na IVsCompoundAction interfejsu jest uzyskiwana z bieżącej IVsTextLines obiektu przechowywanego w Source obiektu.Podczas tej klasy jest usuwany, IVsCompoundAction interfejsu jest zamknięty i która zobowiązuje wszystkie zdarzenia edycji do IVsTextLines obiektu jako pojedynczej operacji.

Uwagi dotyczące implementacji

Ta klasa zawiera wszystko, co niezbędne otworzyć działanie mieszanek, biorąc pod uwagę Source obiektu i zamknąć tej akcji podczas tej klasy jest usuwany.

Uwagi dotyczące wywoływania

Utwórz wystąpienie CompoundAction obiekt z Source obiektu, gdy konieczne jest zawijany, jeden lub więcej edytować operacje, które mogą zostać cofnięte w jednej operacji.Następnie wykonać swoje operacje edycyjne w normalnym trybie.Gdy nowy CompoundAction obiektu jest usuwany, operacje edycji są przechowywane jako pojedyncza czynność.

Jeśli masz dostęp do IVsTextView obiektów, użyj CompoundViewAction klasy zamiast pozwala na widok tekstu do optymalizowania zmiany jedynie wynik końcowy jest postrzegana przez użytkownika.

Przykłady

W tym przykładzie przedstawiono sposób użycia CompoundAction klasy.W tym przykładzie wstawia listy wyrazów w bieżącej lokalizacji w pliku źródłowym.Bez CompoundAction obiektów, każdy z tych wstawienia jest traktowana jako zdarzenie edit oddzielnych i wymaga operacji Cofnij oddzielne.Jednakże, z CompoundAction obiektów, całą listę można cofnąć operacji Cofnij pojedynczy.

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)
            {
                CompoundAction action = new CompoundAction(src,"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);
                    }
                }
            }
        }
    }
}

Bezpieczeństwo wątku

Wszystkie publiczne static (Shared w języku Visual Basic) elementy członkowskie tego typu są bezpieczne dla wątków. Wystąpienia elementów członkowskich nie dają gwarancji bezpieczeństwa wątków.

Zobacz też

Informacje

Przestrzeń nazw Microsoft.VisualStudio.Package