Разработка простого приложения на C # для понимания API-интерфейсов Resharper Open - PullRequest
3 голосов
/ 23 марта 2011

Я хотел начать разработку плагинов для Resharper, используя его Open API.

Поскольку документации очень мало, для начала я хотел разработать простое приложение на C # для извлечения деталей класса (например, имя класса, количество методов в классе и т. Д.), Чтобы я мог понятьработа библиотеки Resharper и встроенных функций, которые она предоставляет.

Было бы идеально, если бы я мог извлечь эти данные и распечатать их на консоли, для простоты тестирования.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 23 марта 2011

с точки зрения документации, есть некоторая информация, доступная на Developer Wiki , и еще больше. Возможно, вы также захотите ознакомиться с ReSharper Extensibility Guide , которое немного устарело, но все еще актуально.

Что касается вашего вопроса о том, как проверить файловую структуру - угадайте, что - вам даже не нужен API! Вот что вам нужно сделать:

  • Запустите Visual Studio с помощью клавиши /ReSharper.Internal. Это улучшит меню верхнего уровня ReSharper с разделом Внутренний .
  • Pick ReSharper-->Internal-->PSI Viewer. Появится форма, подобная следующей: illustration
  • Теперь нажмите кнопку «Создать», которая позволит вам создать файл, выражение, выражение или объявление элемента.
  • Нижняя панель затем проиллюстрирует проанализированную структуру и позволит вам перемещаться по ней.

Удачи!

2 голосов
/ 23 марта 2011

Если вы хотите разобрать код самостоятельно, это немного сложнее.Ниже приведен грубый план того, как можно выполнить синтаксический анализ файла.

var buffer = new StringBuffer(sourceCode);
var lexer = LexerFactory.CreateLexer(buffer);
var defines = EmptyArray<PreProcessingDirective>.Instance; // assume there are none
var parser = new CSharpParser(lexer, defines);
var file = parser.ParseFile() as CSharpFile;

Теперь вы можете использовать file для навигации по структуре кода.Кстати, я настоятельно рекомендую использовать F #.Это сделано для такого рода вещей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...