AuthoringSink.MatchTriple(TextSpan, TextSpan, TextSpan, Int32) Метод

Определение

Соответствующий трипплес используется для выделения завершенной инструкции полужирным шрифтом. Например, при вводе закрывающей фигурной скобки в операторе foreach или выделении полужирным шрифтом закрытой инструкции. Первые два контекста источника — это начало и конец инструкции, открывающей блок (например, диапазон "foreach (...)". {"и третий контекст источника — это закрывающая фигурная скобка для блока (например,"} "). Можно также задать приоритет, чтобы несколько перекрывающихся пар можно было расставлять по приоритету для сопоставления фигурных скобок.
Совпадающая пара с наивысшим приоритетом (наибольшее целочисленное значение).

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)

Параметры

startSpan
TextSpan

[in] Объект TextSpan, указывающий начальный элемент.

middleSpan
TextSpan

[in] Объект TextSpan, указывающий средний элемент.

endSpan
TextSpan

[in] Объект диапазона TextSpan, указывающий конечный элемент.

priority
Int32

[in] Значение приоритета, используемое для сортировки перекрывающихся триад.

Примеры

Следующая структура используется платформой управляемых пакетов для хранения набора из трех элементов языка (например, " foreach() ", " { " и " } "). Обратите внимание, что эта структура является производной от BraceMatch структуры, как описано в разделе "пример" для 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;  
    }  
}  

Комментарии

Если BraceMatching свойство возвращает true , этот метод вызывается для добавления тройного в внутренний список, который описывает соответствующие триадные, отсортированные в порядке приоритета (обычно это наивысший приоритет для перекрывающихся тройных алгоритмов), который используется для перекрывающихся триад. Два примера парного тройного кода в C#: " foreach(...) ", " { ", " } "; и " while (...) ", " { ", " } ".

Один из способов, в котором сопоставление триадных, перекрывается с помощью вложенных циклов. В этой схеме внутренний цикл имеет наивысший приоритет, а внешний цикл имеет самый низкий приоритет.

Базовый метод определяет, включает ли какой-либо из диапазонов начальную точку операции синтаксического анализа (как это задается Line Column свойствами и). Если какой-либо из диапазонов включает начальную точку, диапазоны нормализованы, добавляются во внутренний список диапазонов, а затем объединяются в TripleMatch структуру, которая добавляется в другой внутренний список. Внутренний список представляет собой массив TripleMatch структур и вызывается Braces . См. пример для внутреннего определения TripleMatch структуры.

Применяется к