我正在尝试构建一个宏,在保存之前格式化所有已修改的文件。
Public Module ReformatAndSave
Sub SingleFile()
DTE.ExecuteCommand("ReSharper.ReSharper_SilentCleanupCode")
DTE.ActiveDocument.Save()
End Sub
Sub AllFiles()
For Each doc As Document In DTE.Documents
If Not doc.Saved Then
doc.Activate()
DTE.ExecuteCommand("ReSharper.ReSharper_SilentCleanupCode")
DTE.ActiveDocument.Save()
End If
Next
End Sub
End Module
这会导致错误
错误HRESULT E_FAIL已从调用COM组件返回。
当我使用它时它起作用:
DTE.ExecuteCommand("ReSharper.ReSharper_CleanupCode")
我可以使用此解决方案来处理单个文件,但在保存所有文件时选择配置文件很烦人。
我使用ReSharper 6.1.1000.82。这个错误看起来很旧:http://youtrack.jetbrains.com/issue/RSRP-179846
是否可以通过收集所有已修改的文件并为所有文件执行一次有效的CleanUpCode命令来解决此错误。 我可以手动选择多个文件并在这些文件上执行CleanUp。我想在保存它们时自动对所有修改过的文件执行此操作。
答案 0 :(得分:1)
解决方案非常简单。 我所要做的只是取代这个
DTE.ExecuteCommand("ReSharper.ReSharper_CleanupCode")
用这个
DTE.ExecuteCommand("ReSharper_SilentCleanupCode")
这不起作用!
DTE.ExecuteCommand("ReSharper.ReSharper_SilentCleanupCode")