AuthoringSink.MatchTriple(TextSpan, TextSpan, TextSpan, Int32) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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.