web-dev-qa-db-ja.com

保存時にReSharperのコードクリーンアップを構成するにはどうすればよいですか?

ファイルを保存するたびに「コードクリーンアップ」を実行するようにVisualStudio/ReSharperを構成したいと思います。

ボーナスは、これをC#ファイルに対してのみ構成することです。これは、ASP.NETファイルのクリーンアップがエラーを発生させずに機能しない場合があるためです。

41

あなたはマクロを記録することができます(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

30
Johnno Nolan

セットアップを簡単にするために、同様のスクリプトを自動化する無料のVisual StudioExtensionを公開しました。 http://blog.pedropombeiro.com/keeping-code-formatted-the-easy-way/ で試してみることをお勧めします。

16
Pedro Pombeiro

これは私の最初の投稿です(やったー!)ので、完璧ではない場合はすみません...

質問はR#についてですが、(Visual Studio/ ReSharper)についても言及されているので、私のヒントが誰かを助けるかもしれません。 「ProductivityPowerTools」と呼ばれるVisualStudio拡張機能には、これに2つのオプションがあります([ツール]-> [オプション]-> [生産性パワーツール]-> [PowerCommands:一般])。

  1. 保存時にコードをフォーマットします。
  2. 保存時に使用を削除して並べ替えます。

PPT R#がインストールされていても、持っていてよかったです。 Visual Studio Gallery (2012バージョンですが、2010バージョンと2013バージョンもあります)から入手できます。 )。

15
Lech Osiński

ファイルの保存時にReSharperSilent Cleanupを自動的に呼び出す拡張機能を作成しました: https://visualstudiogallery.msdn.Microsoft.com/43be6ead-dabf-4bb1-b019-1e361efd841

ReSharperサイレントクリーンアップのみをサポートしますが、機能します。

2018注:これは、ReSharper apiの変更により、以降のReSharperバージョンでは機能しなくなりました

5
FriendlyGuy

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
    
1
VitalyB

多分これは将来誰か他の人を助けるでしょう。私はマクロのアイデアが本当に好きだったので、それを採用しました。しかし、これは私にとって十分ではありませんでした。保存されていない開いているファイルをすべて一度に保存し、それでも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
0
Marcel Dutt