Подтвердить что ты не робот

Как настроить очистку кода ReSharper при сохранении?

Мне бы хотелось настроить Visual Studio/ReSharper для запуска "Очистки кода" всякий раз, когда я сохраняю файл.

Бонус должен был бы сконфигурировать это только для файлов С#, так как иногда я обнаружил, что очистка файлов ASP.NET не работает без введения ошибок.

4b9b3361

Ответ 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