AuthoringSink.MatchTriple(TextSpan, TextSpan, TextSpan, Int32) Método

Definição

As ultrapassações correspondentes são usadas para realçar em negrito uma instrução concluída. Por exemplo, quando você digita a chave de fechamento em uma instrução foreach VS realça em negrito a instrução que foi fechada. Os dois primeiros contextos de origem são o início e o final da instrução que abre o bloco (por exemplo, a extensão do "foreach (...) {"e o terceiro contexto de origem é a chave de fechamento para o bloco (por exemplo, o"} "). Uma prioridade também pode ser fornecida para que vários pares sobrepostos possam ser priorizados para correspondência de chaves.
O par correspondente com a prioridade mais alta (maior valor inteiro) vence.

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)

Parâmetros

startSpan
TextSpan

no Um TextSpan objeto que indica o elemento inicial.

middleSpan
TextSpan

no Um TextSpan objeto que indica o elemento do meio.

endSpan
TextSpan

no Um TextSpan objeto span que indica o elemento final.

priority
Int32

no Um valor de prioridade usado para classificar as corridas de sobreposição.

Exemplos

A estrutura a seguir é usada pela estrutura de pacote gerenciada para conter um conjunto priorizado de três elementos de linguagem (por exemplo, " foreach() ", " { " e " } "). Observe que essa estrutura deriva da BraceMatch estrutura, conforme descrito na seção de exemplo do MatchPair método.

internal class TripleMatch : BraceMatch  
{  
    internal TextSpan c;  

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

Comentários

Se a BraceMatching Propriedade retornar true , esse método será chamado para adicionar o triplo a uma lista interna que descreve as percorridas correspondentes, classificadas em ordem de prioridade (normalmente, a prioridade mais alta para viagens de sobreposição vencem), que é usada para sobreposição. Dois exemplos de uma combinação tripla em C# é " foreach(...) ", " { ", " } "; e " while (...) ", " { ", " } ".

Uma maneira na qual as de correspondências se sobrepõem é com loops aninhados. Nesse esquema, o loop mais interno tem a prioridade mais alta e o loop mais externo tem a prioridade mais baixa.

O método base determina se qualquer uma das extensões inclui o ponto de partida da operação de análise (conforme fornecido pelas Line Column Propriedades e). Se qualquer uma das extensões incluir o ponto de partida, as extensões serão normalizadas, adicionadas a uma lista interna de Spans e, em seguida, agrupadas em uma TripleMatch estrutura que é adicionada a outra lista interna. A lista interna é uma matriz de TripleMatch estruturas e é chamada Braces . Consulte o exemplo para a definição interna da TripleMatch estrutura.

Aplica-se a