Получить все операторы кода в конкретном элементе кода с 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