【问题标题】:Run resharper silent cleanup on save fails保存失败时运行 resharper 静默清理
【发布时间】:2012-05-31 20:10:13
【问题描述】:

我正在尝试使用 Resharper 的清理代码功能在保存时清理我的代码。我制作了一个处理DocumentSaved 事件的宏。重要部分:

Private Sub DocumentEvents_DocumentSaved(ByVal document As EnvDTE.Document) _
                                         Handles DocumentEvents.DocumentSaved
    ...
    DTE.ExecuteCommand("ReSharper_SilentCleanupCode")
    document.Save()
End Sub

每次保存时,我都会收到一条异常消息,上面写着Error HRESULT E_FAIL has been returned from a call to a COM component. 有什么想法吗?

注意:我看到了How can I configure ReSharper's code cleanup on save?,它在我的情况下不起作用,因为我需要响应保存事件。将宏映射到 CTRL+S 是不够的。

【问题讨论】:

    标签: resharper code-cleanup visual-studio-macros


    【解决方案1】:

    我认为这是因为当您调用document.Save() 时,它会再次递归并保存,然后它会崩溃。试试这个:

    Private Sub DocumentEvents_DocumentSaved(ByVal Document As EnvDTE.Document) Handles DocumentEvents.DocumentSaved
        Static currentDocument As EnvDTE.Document
    
        If Not currentDocument Is Document Then
            currentDocument = Document
            DTE.Windows.Item(Document.Name).Activate()
            DTE.ExecuteCommand("ReSharper_SilentCleanupCode")
            DTE.ActiveDocument.Save()
        End If
    End Sub
    

    这对我有用

    【讨论】:

      猜你喜欢
      • 2016-05-20
      • 2017-03-26
      • 2015-11-03
      • 2011-03-05
      • 1970-01-01
      • 1970-01-01
      • 2020-12-18
      • 1970-01-01
      • 2010-11-23
      相关资源
      最近更新 更多