#c# #visual-studio #visual-studio-2017 #refactoring #visual-studio-extensions
#c# #visual-studio #visual-studio-2017 #рефакторинг #visual-studio-extensions
Вопрос:
Я хотел бы разработать расширение Visual Studio 2017, чтобы применить некоторый пользовательский рефакторинг и очистку кода ко всему устаревшему решению C #.
Тип рефакторинга, который я хотел бы применить, не поддерживается Visual Studio или другими расширениями рефакторинга, которые я рассмотрел (например, ReSharper и т.д.). Я полагаю, я могу разобраться с самой логикой рефакторинга.
Однако я не знаю, с чего начать. Я видел ряд статей, которые иллюстрируют, как начать работу с проектом рефакторинга C # в Visual Studio 2015. Однако в Visual Studio 2017 все выглядит совсем по-другому. Для начала есть только шаблон «VISX Project», а не конкретный шаблон рефакторинга. В документации и примерах VSSDK-Extensibility-указано, что вы можете добавить «Точки расширения языковой службы и редактора» и «Добавить рефакторинг или языковые анализаторы для исправления и улучшения кода», но на самом деле я не видел никаких шагов, как этого добиться.
Каковы следующие шаги для создания пользовательского рефакторинга, который я могу выполнить в своем решении? Обратите внимание, что я не хочу добавлять подсказку в редактор, которую я могу выбрать в каждом конкретном случае.
Ответ №1:
Убедитесь, что у вас установлен пакет SDK для платформы компилятора .NET:
С ним у вас будет шаблон проекта для рефакторинга кода:
Комментарии:
1. Ах, вот оно что! Добавление этого дает мне тип проекта рефакторинга кода, а также элемент рефакторинга при добавлении в проект VISX.
Ответ №2:
Взгляните на Roslyn examples, с помощью которых вы будете выполнять фактический рефакторинг. Вероятно, пример «ImplementNotifyPropertyChanged» станет для вас хорошей отправной точкой.
Для части VSIX, не связанной с рефакторингом, используйте любое обычное руководство по написанию расширений Visual Studio.
КСТАТИ: Ваш вопрос немного широковат для этой страницы.
Комментарии:
1. Спасибо за указатель на примеры Roslyn. У меня все еще возникают проблемы с устранением разрыва между моим пустым проектом VISX и следующим шагом. В документации, кажется, предлагается, чтобы я сделал «Добавить элемент», а затем выбрал из «Расширений», но там нет ничего, что для меня выглядит как рефакторинг. В примерах Roslyn показана часть рефакторинга, но я не уверен, что с ними делать, поскольку они не могут быть запущены как плагин Visual Studio — или я снова что-то упускаю…
2. Перепроверено назад и вперед: в этом руководстве есть скриншот, где предлагается добавить рефакторинг. В моей Visual Studio есть команда Add и т.д., Но нет анализатора, исправления кода и рефакторинга…
3. Был заинтересован в этом; создал пример и попробовал его, но сам пример мне не подходит :-/