ファイルを保存するたびに「コードクリーンアップ」を実行するようにVisualStudio/ReSharperを構成したいと思います。
ボーナスは、これをC#ファイルに対してのみ構成することです。これは、ASP.NETファイルのクリーンアップがエラーを発生させずに機能しない場合があるためです。
あなたはマクロを記録することができます(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
セットアップを簡単にするために、同様のスクリプトを自動化する無料のVisual StudioExtensionを公開しました。 http://blog.pedropombeiro.com/keeping-code-formatted-the-easy-way/ で試してみることをお勧めします。
これは私の最初の投稿です(やったー!)ので、完璧ではない場合はすみません...
質問はR#についてですが、(Visual Studio/ ReSharper)についても言及されているので、私のヒントが誰かを助けるかもしれません。 「ProductivityPowerTools」と呼ばれるVisualStudio拡張機能には、これに2つのオプションがあります([ツール]-> [オプション]-> [生産性パワーツール]-> [PowerCommands:一般])。
PPT R#がインストールされていても、持っていてよかったです。 Visual Studio Gallery (2012バージョンですが、2010バージョンと2013バージョンもあります)から入手できます。 )。
ファイルの保存時にReSharperSilent Cleanupを自動的に呼び出す拡張機能を作成しました: https://visualstudiogallery.msdn.Microsoft.com/43be6ead-dabf-4bb1-b019-1e361efd841
ReSharperサイレントクリーンアップのみをサポートしますが、機能します。
2018注:これは、ReSharper apiの変更により、以降のReSharperバージョンでは機能しなくなりました
VS2012を使用していて、マクロソリューションを使用できない場合は、マクロを使用する代わりに、AutoHotKey(または同様のもの)を使用して自動化できます。
AutoHotKeyで、次のようなスニペットを作成します。
^s::
Send, ^+c
Sleep, 300
Send, ^+s
return
多分これは将来誰か他の人を助けるでしょう。私はマクロのアイデアが本当に好きだったので、それを採用しました。しかし、これは私にとって十分ではありませんでした。保存されていない開いているファイルをすべて一度に保存し、それでも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