Visual Studio 如何配置ReSharper的代码清理保存?

8fq7wneg  于 2023-08-07  发布在  其他
关注(0)|答案(9)|浏览(156)

我很想配置Visual Studio/ReSharper,让它在我保存文件时运行“代码清理”。
一个额外的好处是只为C#文件配置这个,因为我有时会发现清理ASP.NET文件时不引入错误。

cbeh67ev

cbeh67ev1#

您可以录制宏(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。

若要删除用户交互,您必须选择一个配置文件,以便在调用代码清理时运行。您可以通过进入ReSharper进行配置|选项|工具组|代码清理并在“用于静默清理的配置文件”下拉列表中选择配置文件。你也可以在这里创建一个自定义配置文件来指定要对你的代码做什么修改。但是在4.5中它不允许你省略aspx页面。唯一的区别是C#和VB.Net。

有用链接:http://www.jetbrains.com/resharper/features/code_formatting.html

4bbkushb

4bbkushb2#

这是我的第一篇文章(万岁!)所以如果它在任何方面都不完美的话,请原谅我。。
问题是关于R#的,但你也提到了(Visual Studio/ReSharper),所以也许我的提示会帮助到别人。在Visual Studio扩展名为“Productivity Power Tools”中,有两个选项(工具->选项-> Productivity Power Tools -> PowerCommands:一般):
1.保存时格式化代码。
1.保存时删除和排序使用。
我觉得PPT很好,即使安装了R#。您可以从Visual Studio Gallery(2012版本,但也有2010和2013版本)获得它们。

wvyml7n5

wvyml7n53#

我刚刚发布了一个免费的Visual Studio Extension,它自动化了一个类似的脚本,以便于设置。你也许想给予
http://blog.pedropombeiro.com/keeping-code-formatted-the-easy-way/

juud5qan

juud5qan4#

更新Resharper 2020.2

在R#的2020.2+版本中,现在内置了在保存时运行清理的选项:
1.选择重编选项(Alt + R,O)
1.代码编辑>代码清理>常规


的数据

qv7cva1a

qv7cva1a5#

我已经创建了一个扩展来在文件保存时自动调用ReSharper Silent Cleanup:https://visualstudiogallery.msdn.microsoft.com/43be6ead-dabf-4bb1-b019-1e361efd8410
它只支持ReSharper静默清理,但它可以工作。

  • 2018注意:由于ReSharper API更改,这在以后的ReSharper版本中停止工作 *
ntjbwcob

ntjbwcob6#

如果你在VS2012上,并且你不能使用宏解决方案,你可以使用AutoHotKey(或类似的)来自动化它,而不是使用宏:
1.在Visual Studio中:
1.为ReSharper_SilentCleanupCode命令分配密钥,例如:CTRL +SHIFT+C
1.将保存键从CONTROL+S更改为其他键,例如:CONTRL+SHIFT+S
1.在AutoHotKey中,创建一个类似于以下内容的代码段:

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

字符串

b1uwtaje

b1uwtaje7#

也许这会在未来帮助其他人。我真的很喜欢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

字符串

bpzcxfmw

bpzcxfmw8#

今天我在官方的resharper++论坛上询问了这个功能,并得到了已经在2020.2 EAP(抢先体验计划)版本中实现的答案。主题
在这里你可以找到相关的问题:click me
这意味着,这个功能将很快对所有人开放。否则,只需切换到EAP版本。

6qqygrtg

6qqygrtg9#

虽然我可能不是100%同意运行项目范围的代码清理,但有一些简单的方法可以做到这一点,尤其是在2023年,
在我看来,最简单的方法是下载Codemaid,这是一个非常棒的OSS工具。
然后在它的设置中选择以下内容,在几乎每个CodeMaid代码清理上运行整形器清理,也可以配置为在保存时运行。
转到扩展>CodeMaid>选项>第三方
要查找以下用于静默式Resharper清理的选项,请执行以下操作。


的数据

相关问题