AuthoringSink.MatchPair(TextSpan, TextSpan, Int32) Metoda

Definice

Pokaždé, když se analyzuje párové páry, např. {a}, tato metoda se zavolá s textem v rozsahu levé i pravé položky. Tyto informace se používají, když uživatel zadá "CTRL-]" v sadě VS k nalezení odpovídajícího složené závorky a když je povolen automatický zvýrazňování závorek. Lze také určit prioritu, aby bylo možné určit prioritu více překrývajících párů pro párování složených závorek. Dvojice párování s nejvyšší prioritou (největší celočíselnou hodnotou) WINS.

public:
 virtual void MatchPair(Microsoft::VisualStudio::TextManager::Interop::TextSpan span, Microsoft::VisualStudio::TextManager::Interop::TextSpan endContext, int priority);
public:
 virtual void MatchPair(Microsoft::VisualStudio::TextManager::Interop::TextSpan span, Microsoft::VisualStudio::TextManager::Interop::TextSpan endContext, int priority);
 virtual void MatchPair(Microsoft::VisualStudio::TextManager::Interop::TextSpan span, Microsoft::VisualStudio::TextManager::Interop::TextSpan endContext, int priority);
public virtual void MatchPair (Microsoft.VisualStudio.TextManager.Interop.TextSpan span, Microsoft.VisualStudio.TextManager.Interop.TextSpan endContext, int priority);
abstract member MatchPair : Microsoft.VisualStudio.TextManager.Interop.TextSpan * Microsoft.VisualStudio.TextManager.Interop.TextSpan * int -> unit
override this.MatchPair : Microsoft.VisualStudio.TextManager.Interop.TextSpan * Microsoft.VisualStudio.TextManager.Interop.TextSpan * int -> unit
Public Overridable Sub MatchPair (span As TextSpan, endContext As TextSpan, priority As Integer)

Parametry

span
TextSpan

pro TextSpan Objekt popisující počáteční spárovaný element.

endContext
TextSpan

pro TextSpan Objekt popisující koncový spárovaný prvek.

priority
Int32

pro Hodnota priority používaná k řazení překrývajících se párů.

Příklady

Následující struktura je používána architekturou spravovaného balíčku, aby obsahovala pár jazykových prvků (například "(" a ")".

internal class BraceMatch  
{  
    internal TextSpan a;  
    internal TextSpan b;  
    internal int priority;  

    public BraceMatch(TextSpan a, TextSpan b, int priority)  
    {  
        this.a = a;  
        this.b = b;  
        this.priority = priority;  
    }  
}  

Poznámky

Pokud BraceMatching vlastnost vrátí true , je tato metoda volána pro přidání obou rozsahů do interního seznamu, který popisuje odpovídající páry, seřazené v pořadí podle priority (obvykle nejvyšší priorita pro překrývající se páry služba WINS), která se používá pro překrývající se páry. Některé příklady dvojic párů jsou "(", ")"; " {", "}"; a " <", "> ".

Jeden způsob, jakým se překrývají párové páry, je s vnořenými závorkami. V tomto schématu má nejvnitřnější pár složených závorek nejvyšší prioritu a krajní dvojice má nejnižší prioritu.

Základní metoda normalizuje rozsahy a pak určuje, zda mezi rozsahy patří počáteční bod operace analýzy (jak je uvedeno ve Line vlastnostech a Column ). Pokud některý z rozsahů zahrnuje výchozí bod, jsou rozsahy nejprve přidány do interního seznamu rozsahů a následně zahrnuty do BraceMatch struktury přidané do jiného interního seznamu seřazeného v pořadí podle priority. Interní seznam je pole BraceMatch struktur a je zavolán Braces . V následujícím příkladu se zobrazí interní definice BraceMatch struktury.

Platí pro