ParseRequest Класс

Определение

Важно!

Этот API несовместим с CLS.

Предоставляет информацию для выполнения синтаксического разбора в языковой службе.

public ref class ParseRequest
[Windows::Foundation::Metadata::WebHostHidden]
class ParseRequest
[System.CLSCompliant(false)]
public class ParseRequest
[<System.CLSCompliant(false)>]
type ParseRequest = class
Public Class ParseRequest
Наследование
ParseRequest
Атрибуты

Примеры

В этом примере показано, как создать новый ParseRequest объект с пользовательским AuthoringSink объектом (класс, для которого не отображается).

using Microsoft.VisualStudio.Package;  
using Microsoft.VisualStudio.TextManager.Interop;  

namespace MyLanguagePackage  
{  
    class MyLanguageService : LanguageService  
    {  
        public ParseRequest CreateParseRequest(Source s,   
                                               int line,   
                                               int idx,   
                                               TokenInfo info,   
                                               string sourceText,   
                                               string fname,   
                                               ParseReason reason,   
                                               IVsTextView view)  
        {  
             ParseRequest req = new ParseRequest(line,  
                                                 idx,  
                                                 info,  
                                                 sourceText,  
                                                 fname,  
                                                 reason,  
                                                 view);  
             if (req != null)  
             {  
                  req.Sink = new MyAuthoringSink(reason, line, idx);  
             }  
             return req;  
         }  
    }  
}  

Комментарии

Этот класс используется для передачи сведений синтаксическому анализатору о конкретной операции синтаксического анализа и для получения сведений об операции синтаксического анализа. Доступ к источнику, используемому средством синтаксического анализа, осуществляется как к одному блоку текста через Text свойство. Этот текст передается в ParseRequest конструктор.

Примечания для тех, кто наследует этот метод

Все, что обычно требуется операции синтаксического анализа, можно найти в этом классе, поэтому не должно быть причин быть производным от этого класса. Однако если необходимо создать производный класс от ParseRequest класса, необходимо создать производный класс от LanguageService класса и переопределить CreateParseRequest(Source, Int32, Int32, TokenInfo, String, String, ParseReason, IVsTextView) метод для создания экземпляра собственной версии ParseRequest класса.

Обратите внимание, что если ваша языковая служба будет поддерживать синтаксический анализ переменных для вывода в окне Отладка и/или поддерживает проверку точек останова, необходимо создать класс из AuthoringSink класса и установить Sink свойство в экземпляре ParseRequest класса в качестве версии AuthoringSink класса. Это можно сделать в CreateParseRequest(Source, Int32, Int32, TokenInfo, String, String, ParseReason, IVsTextView) методе после ParseRequest создания объекта.

Примечания для тех, кто вызывает этот метод

Экземпляр этого класса создается путем вызова CreateParseRequest(Source, Int32, Int32, TokenInfo, String, String, ParseReason, IVsTextView) метода в LanguageService классе.

Не пытайтесь использовать View свойство в фоновом потоке: IVsTextView объект предназначен только для использования в основном классе базовым Source классом.

Конструкторы

ParseRequest(Boolean)

Инициализирует новый экземпляр класса ParseRequest чтобы завершить поток, используемый для фоновых операций анализа.

ParseRequest(Int32, Int32, TokenInfo, String, String, ParseReason, IVsTextView, AuthoringSink, Boolean)

Инициализирует новый экземпляр класса ParseRequest.

Свойства

Callback

Указывает делегат обратного вызова, вызываемый при завершении операции анализа.

Col

Указывает смещение знака с первой строки для начала операции анализа.

DirtySpan

Определяет диапазон источника, который был изменен.

FileName

Задает имя анализируемого исходного файла.

IsSynchronous

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

Line

Указывает строку, с которой необходимо начать операцию синтаксического анализа.

Reason

Указывает причину начала операции синтаксического анализа.

Scope

Указывает объект AuthoringScope, используемый для возврата подробных данных из операции анализа.

Sink

Указывает объект AuthoringSink, используемый для хранения сведений из операции анализа.

Terminate

Указывает, должен ли рабочий поток, обрабатывающий фоновые операции анализа, завершиться.

Text

Указывает исходный текст, который необходимо проанализировать.

Timestamp

Определяет отметку времени для запроса синтакс. анализа.

TokenInfo

Определяет структуру TokenInfo, заполняемую с результатами операции анализа.

View

Указывает объект IVsTextView, представляющий представление, содержащее источник, который анализируется.

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