Как настроить очистку кода ReSharper при сохранении?
Мне бы хотелось настроить Visual Studio/ReSharper для запуска "Очистки кода" всякий раз, когда я сохраняю файл.
Бонус должен был бы сконфигурировать это только для файлов С#, так как иногда я обнаружил, что очистка файлов ASP.NET не работает без введения ошибок.
Ответы
Ответ 1
Вы можете записать макрос (Ctrl + E, Ctrl + C, Run, Ctrl + S). Затем запустите это вместо сохранения. Тогда все, что вам нужно сделать, это назначить CTRL + S вашему макросу.
Public Module RecordingModule
Sub CLEAN_AND_SAVE()
DTE.ExecuteCommand ("ReSharper.ReSharper_CleanupCode")
DTE.ActiveDocument.Save
End Sub
End Module
Этот метод покажет диалоговое окно очистки кода, где вам нужно будет выбрать Run.
Чтобы удалить взаимодействие с пользователем, вам нужно будет выбрать профиль для запуска при запуске Code Cleanup. Вы можете настроить это, зайдя в ReSharper | Варианты | Инструменты | Очистка кода и выбор профиля в раскрывающемся списке "Профиль для автоматической очистки". Здесь также можно создать собственный профиль, чтобы указать, какие изменения необходимо внести в код. В 4.5, однако, это не позволяет вам пропустить aspx-страницы. Единственным отличием является С# и VB.Net.
Полезная ссылка: http://www.jetbrains.com/resharper/features/code_formatting.html
Ответ 2
Я только что опубликовал бесплатную версию Visual Studio Extension, которая автоматизирует аналогичный script, для упрощения настройки. Вы можете попробовать попробовать http://blog.pedropombeiro.com/keeping-code-formatted-the-easy-way/.
Ответ 3
Это мой первый пост (ура!), поэтому извините меня, если он не идеально подойдет...
Вопрос о R #, но вы также упомянули ( Visual Studio/ReSharper), поэтому, возможно, мой намек поможет кому-то. В расширении Visual Studio под названием "Инструменты для повышения производительности" для этого есть два варианта (В Инструменты → Параметры → Производительность Электроинструменты → PowerCommands: General):
- Код формата при сохранении.
- Удалить и отсортировать использование при сохранении.
Я считаю PPT приятным, даже если R # установлен. Вы можете получить их из Visual Studio Gallery (версия 2012 года, но есть также версии 2010 и 2013 годов).
Ответ 4
Я создал расширение для автоматического запуска ReSharper Silent Cleanup при сохранении файла: https://visualstudiogallery.msdn.microsoft.com/43be6ead-dabf-4bb1-b019-1e361efd8410
Он поддерживает только тихую очистку ReSharper, но работает.
2018 Примечание: это перестало работать в более поздних версиях ReSharper из-за изменений API ReSharper
Ответ 5
Если вы находитесь на VS2012, и вы не можете использовать решение макроса, вы можете использовать AutoHotKey (или аналогичный) для его автоматизации вместо использования макросов:
- В Visual Studio:
- Назначьте ключ команде ReSharper_SilentCleanupCode, например: CONTRL + SHIFT + C
- Измените ключ сохранения с CONTROL + S на что-то еще, например: CONTRL + SHIFT + S
-
В AutoHotKey создайте фрагмент, который выглядит примерно так:
^s::
Send, ^+c
Sleep, 300
Send, ^+s
return
Ответ 6
Возможно, это поможет кому-то еще в будущем. Мне очень понравилась идея Macro, и я принял ее. Но этого было недостаточно для меня. Я хотел сохранить сразу все несохраненные открытые файлы и до сих пор получать удовольствие от функции очистки ReSharper. Поэтому я придумал этот макрос:
Public Module SaveUtils
Public Sub CleanAndSave()
DTE.ExecuteCommand("ReSharper_SilentCleanupCode")
DTE.ActiveDocument.Save()
End Sub
Public Sub CleanAndSaveAll()
For i = 1 To DTE.Documents.Count
Dim document = DTE.Documents.Item(i)
If (Not document.Saved) Then
document.Activate()
CleanAndSave()
End If
Next i
End Sub
End Module