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)
Параметры
- 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 структуры.