2010-06-18 2 views
36

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

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

ответ

26

Вы можете записать макрос (Ctrl +E, Ctrl + C, Выполнить, Ctrl + S). Затем запустите это вместо сохранения. Затем все, что вам нужно сделать, это назначить CTRL + S вашим макросом.

Public Module RecordingModule 
    Sub CLEAN_AND_SAVE() 
    DTE.ExecuteCommand ("ReSharper.ReSharper_CleanupCode") 
    DTE.ActiveDocument.Save 
    End Sub 
End Module 

Этот метод отобразит диалоговое окно очистки кода, в котором вам нужно будет выбрать «Выполнить».

Чтобы удалить взаимодействие пользователя, вам нужно будет выбрать профиль для запуска при активации кода. Вы можете настроить это, перейдя в ReSharper | Варианты | Инструменты | Очистка кода и выбор профиля в разделе «Профиль для использования с тихой очисткой». Здесь также вы можете создать настраиваемый профиль , чтобы указать, какие изменения вносят ваш код. В 4.5 однако это не позволяет вам опускать страницы aspx. Единственным отличием является C# и VB.Net.

Полезная ссылка: http://www.jetbrains.com/resharper/features/code_formatting.html

+6

, если вы хотите запустить очистку беззвучно, тогда вам нужно «ExecuteCommand» («ReSharper_SilentCleanupCode») вместо этого и установить параметр очистки чистого кода –

+5

Не для VS2012 поддержка макроса отбрасывается (http: // stackoverflow.com/a/12065139/23805) – bob

+0

Вы можете использовать [Visual Commander] (http://visualstudiogallery.msdn.microsoft.com/deda8ac1-75e6-4068-89ab-b607cee38f2d) для макроса. –

13

Я только что опубликовал бесплатное расширение Visual Studio, который автоматизирует подобный сценарий, для более легкой установки. Возможно, вы захотите попробовать, например, http://blog.pedropombeiro.com/keeping-code-formatted-the-easy-way/.

+3

спасибо, ты просто спас меня от написания этого сам :) –

+3

установлен и используется, спасибо :) –

+3

Возможно, было бы интересно реализовать его как плагин ReSharper, развернутый с новым диспетчером расширений ReSharper. –

1

Если вы на VS2012, и вы не можете использовать решение макроса, можно использовать AutoHotkey (или аналогичный), чтобы автоматизировать его, вместо того, чтобы с помощью макросов:

  1. В Visual Studio:
    1. Присвоить ключ к команде ReSharper_SilentCleanupCode, например: Contrl + SHIFT + C
    2. Изменение сохранить ключ от того CONTROL + S к чему-то еще, например: Contrl + SHIFT + S
  2. В AutoHotKey создать фрагмент кода, который выглядит примерно так:

    ^s:: 
        Send, ^+c 
        Sleep, 300 
        Send, ^+s 
    return 
    
9

Это мой первый пост (! Ура), поэтому простите, если она не совершенна никак ...

Вопрос о R #, но вы также упомянули (Visual Studio/ReSharper), поэтому, возможно, мой намек поможет кому-то. В расширение Visual Studio под названием "Productivity Power Tools" есть два варианта для этого (Сервис -> Параметры -> Производительность Power Tools -> PowerCommands: Общие):

  1. Форматирование кода при сохранении.
  2. Удалить и отсортировать использование при сохранении.

Я считаю, что PPT приятно иметь, даже с установленным R #. Вы можете получить их от Visual Studio Gallery (версия 2012 года, но есть также версии 2010 и 2013 года).

3

Я создал расширение для автоматического вызова ReSharper Бесшумного Cleanup на файл сохранить: https://visualstudiogallery.msdn.microsoft.com/43be6ead-dabf-4bb1-b019-1e361efd8410

Он поддерживает только ReSharper бесшумные очистки, но это работает.

+0

Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. - [Из обзора] (/ review/low-quality-posts/11568843) –

+1

@Odedra, учитывая, что ответ - это расширение, которое выполняет то, что хотел, но я не уверен, что могу добавить «существенные части ответа здесь ", если StackOverflow не позволяет мне загрузить расширение непосредственно ::) – FriendlyGuy

+0

Удалось с этим. И работает правильно при сохранении нескольких файлов. Также не мешает отменять ожидающие изменения в нескольких файлах. –

Смежные вопросы