AuthoringSink.MatchTriple(TextSpan, TextSpan, TextSpan, Int32) Yöntem

Tanım

Eşleşen Tripples, kalın bir tamamlanmış ifadeyi vurgulamak için kullanılır. Örneğin, bir foreach ifadesine kapanış ayracını yazdığınızda,, kapatılmış olan ifadede kalın ifadesi Ile vurgular. İlk iki kaynak bağlamı, bloğu açan deyimin başlangıcı ve sonu (örneğin, "foreach (...) {"ve üçüncü kaynak bağlamı, blok için kapatma küme ayracı (ör."} "). Ayrıca, birden çok çakışan çifte küme eşleştirme için önceliklendirilebilecek bir öncelik verilebilir.
En yüksek önceliğe sahip eşleşen çift (en büyük tamsayı değeri) kazanır.

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)

Parametreler

startSpan
TextSpan

'ndaki TextSpan Başlangıç öğesini gösteren bir nesne.

middleSpan
TextSpan

'ndaki TextSpan Orta öğeyi gösteren bir nesne.

endSpan
TextSpan

'ndaki TextSpan Bitiş öğesini gösteren bir span nesnesi.

priority
Int32

'ndaki Çakışan Üçlü değerleri sıralamak için kullanılan bir öncelik değeri.

Örnekler

Aşağıdaki yapı, yönetilen paket çerçevesi tarafından, öncelikli üç dil öğeleri kümesi (örneğin, " foreach() ", "" { ve "") içerecek şekilde kullanılır } . Bu yapının, BraceMatch yöntemin örnek bölümünde açıklandığı gibi yapıdan türediğini unutmayın MatchPair .

internal class TripleMatch : BraceMatch  
{  
    internal TextSpan c;  

    public TripleMatch(TextSpan a, TextSpan b, TextSpan c, int priority)  
        : base(a, b, priority)  
    {  
        this.c = c;  
    }  
}  

Açıklamalar

Özelliği döndürülürse BraceMatching true , bu yöntem, çakışan Üçlü düzende kullanılan, artan Üçlü sırada (genellikle örtüşen üçlü ve WINS için en yüksek öncelik), eşleşen engelleri açıklayan bir iç listeye Üçlü eklemek için çağrılır. C# ' deki bir " foreach(...) ", " { ", " } "; ve " while (...) ", " { ", " } " ile eşleşen üç örnek vardır.

Eşleşen Üçlü çakışma ile eşleşen bir yol iç içe döngülerle aynıdır. Bu düzende en içteki döngü en yüksek önceliğe sahiptir ve en dıştaki döngü en düşük önceliğe sahiptir.

Taban yöntemi, yayılmadan herhangi birinin ayrıştırma işleminin başlangıç noktasını (ve özellikleri tarafından belirtilen şekilde) kapsamadığını belirler Line Column . Yayılmalar başlangıç noktasını içeriyorsa, yayılmalar normalleştirildir, iç yayılma listesine eklenir ve daha sonra TripleMatch başka bir iç listeye eklenen bir yapıya paketlenmiştir. İç liste bir TripleMatch Yapı dizisidir ve çağırılır Braces . Yapının iç tanımı için örneğe bakın TripleMatch .

Şunlara uygulanır