每当我保存文件时,我都希望将Visual Studio / ReSharper配置为运行“代码清理”。
一个额外的好处是只为C#文件配置它,因为我有时会发现ASP.NET文件的清理在没有引入错误的情况下不起作用。
您可以录制宏(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
此方法将显示代码清理对话框,您必须在其中选择“运行”。
要删除用户交互,您必须选择在调用代码清理时运行的配置文件。您可以通过进入ReSharper |来配置它选项|工具|代码清理并在“使用静默清理的配置文件”下拉列表中选择配置文件。它也可以在这里创建自定义配置文件,以指定要对代码进行哪些更改。在4.5中,它不允许您省略aspx页面。唯一的区别是C#和VB.Net。
有用的链接:http://www.jetbrains.com/resharper/features/code_formatting.html
我刚刚发布了一个免费的Visual Studio扩展,可以自动化类似的脚本,以便于设置。你可能想尝试一下http://blog.pedropombeiro.com/keeping-code-formatted-the-easy-way/。
这是我的第一篇文章(万岁!)请原谅我,如果它在任何方面都不完美......
问题是关于R#,但你也提到过(Visual Studio / ReSharper),所以也许我的提示可以帮助某人。在名为“Productivity Power Tools”的Visual Studio扩展中,有两个选项(在工具 - >选项 - >生产力电动工具 - > PowerCommands:常规):
即使安装了R#,我也觉得PPT很好用。您可以从Visual Studio Gallery(2012版本,但也有2010年和2013年版本)获取它们。
我已经创建了一个扩展来自动调用ReSharper Silent Cleanup文件保存:https://visualstudiogallery.msdn.microsoft.com/43be6ead-dabf-4bb1-b019-1e361efd8410
它只支持ReSharper静默清理,但它可以工作。
2018注意:由于ReSharper api更改,此操作在以后的ReSharper版本中停止工作
如果你在VS2012上,并且你不能使用宏解决方案,你可以使用AutoHotKey(或类似)来自动化它,而不是使用宏:
^s::
Send, ^+c
Sleep, 300
Send, ^+s
return
也许这会在将来帮助其他人。我真的很喜欢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