Получить все операторы кода в конкретном элементе кода с EnvDte

Под оператором кода я подразумеваю наименьший автономный элемент кода. Есть ли интерфейс для получения операторов кода внутри тела EnvDTE.CodeFunction в структурированной форме.

Есть способы, которые могут получить тело EnvDTE.CodeFunction в виде простого текста, и если я хочу обрабатывать вызовы методов и т. Д., Я должен использовать Regex, который, я думаю, не является общим решением. Например, оба эти утверждения одинаковы:

var value = @ "the" "это кавычка"; var value = "the \" является кавычкой ";

но разобрать их с помощью регулярных выражений немного сложно, и я думаю, что с EnvDTE должен существовать более простой способ!

1 ответ

Решение

Модель кода файла (EnvDTE.FileCodeModel) не поддерживает получение операторов внутри метода. Для VS 2015 и выше вы можете использовать платформу компилятора.NET (ранее "Roslyn"), которая является синтаксическим анализатором C# / VB.NET, компилятором и т. Д., Работающим с расширениями Visual Studio. См.: Платформа компилятора.NET

Другие вопросы по тегам