AuthoringSink.MatchTriple(TextSpan, TextSpan, TextSpan, Int32) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Übereinstimmende tripeln werden verwendet, um eine abgeschlossene Anweisung in Fett Schrift hervorzuheben. Wenn Sie z. b. die schließende geschweifte Klammer für eine foreach-Anweisung eingeben und die Anweisung, die geschlossen wurde, in Fett Schrift hervorgehoben. Die ersten beiden Quell Kontexte sind der Anfang und das Beenden der Anweisung, die den Block öffnet (z. b. die Spanne von "foreach (...)". {"und der dritte Quell Kontext ist die schließende geschweifte Klammer für den Block (z. b."} "). Außerdem kann eine Priorität angegeben werden, sodass mehrere überlappende Paare für die Übereinstimmung mit geschweiften Klammern priorisiert werden können.
Das passende Paar mit der höchsten Priorität (der größte ganzzahlige Wert) gewinnt.
public:
virtual void MatchTriple(Microsoft::VisualStudio::TextManager::Interop::TextSpan startSpan, Microsoft::VisualStudio::TextManager::Interop::TextSpan middleSpan, Microsoft::VisualStudio::TextManager::Interop::TextSpan endSpan, int priority);
public:
virtual void MatchTriple(Microsoft::VisualStudio::TextManager::Interop::TextSpan startSpan, Microsoft::VisualStudio::TextManager::Interop::TextSpan middleSpan, Microsoft::VisualStudio::TextManager::Interop::TextSpan endSpan, int priority);
virtual void MatchTriple(Microsoft::VisualStudio::TextManager::Interop::TextSpan startSpan, Microsoft::VisualStudio::TextManager::Interop::TextSpan middleSpan, Microsoft::VisualStudio::TextManager::Interop::TextSpan endSpan, int priority);
public virtual void MatchTriple (Microsoft.VisualStudio.TextManager.Interop.TextSpan startSpan, Microsoft.VisualStudio.TextManager.Interop.TextSpan middleSpan, Microsoft.VisualStudio.TextManager.Interop.TextSpan endSpan, int priority);
abstract member MatchTriple : Microsoft.VisualStudio.TextManager.Interop.TextSpan * Microsoft.VisualStudio.TextManager.Interop.TextSpan * Microsoft.VisualStudio.TextManager.Interop.TextSpan * int -> unit
override this.MatchTriple : Microsoft.VisualStudio.TextManager.Interop.TextSpan * Microsoft.VisualStudio.TextManager.Interop.TextSpan * Microsoft.VisualStudio.TextManager.Interop.TextSpan * int -> unit
Public Overridable Sub MatchTriple (startSpan As TextSpan, middleSpan As TextSpan, endSpan As TextSpan, priority As Integer)
Parameter
- priority
- Int32
[in] Ein Prioritätswert, der verwendet wird, um überlappende Tripel zu sortieren.
Beispiele
Die folgende Struktur wird vom Managed Package Framework verwendet, um einen priorisierten Satz von drei Sprachelementen (z. b. " foreach() ", " { " und " } ") zu enthalten. Beachten Sie, dass diese Struktur von der-Struktur abgeleitet wird, BraceMatch wie im Beispiel Abschnitt für die- MatchPair Methode beschrieben.
internal class TripleMatch : BraceMatch
{
internal TextSpan c;
public TripleMatch(TextSpan a, TextSpan b, TextSpan c, int priority)
: base(a, b, priority)
{
this.c = c;
}
}
Hinweise
Wenn die- BraceMatching Eigenschaft zurückgibt true , wird diese Methode aufgerufen, um das Dreifache einer internen Liste hinzuzufügen, die übereinstimmende Tripel in der Reihenfolge der Priorität sortiert (in der Regel die höchste Priorität für überlappende Tripel gewinnt), die für überlappende Tripel verwendet wird Zwei Beispiele für ein entsprechendes Triple in c# sind " foreach(...) ", " { ", " } " und " while (...) ", " { ", " } ".
Eine Möglichkeit, bei der sich die übereinstimmenden drei Klammern überlappen, ist die Verwendung von In diesem Schema hat die innerste Schleife die höchste Priorität, und die äußerste Schleife hat die niedrigste Priorität.
Die Basis Methode bestimmt, ob einer der spannen den Anfangspunkt des Analyse Vorgangs enthält (wie von den Line -und- Column Eigenschaften angegeben). Wenn einer der spannen den Anfangspunkt umfasst, werden die Spannen normalisiert, einer internen Liste von spannen hinzugefügt und dann in einer Struktur gebündelt, TripleMatch die einer anderen internen Liste hinzugefügt wird. Die interne Liste ist ein Array von TripleMatch Strukturen und wird aufgerufen Braces . Siehe das Beispiel für die interne Definition der- TripleMatch Struktur.