如何在失去焦点时自动保存我的 Visual Studio 2015 文件?

How can I AutoSave my Visual Studio 2015 files when it loses focus?

我在 类 中使用 CSS、HTML 和 JavaScript,我最近开始使用 Visual Studio 2015 . 在 Notepad++ 中,有一个插件可以让我在失去焦点时自动保存所有打开的文档。这节省了我很多时间,因为我经常在我正在处理的页面和它的编码之间来回切换。

我希望 Visual Studio 2015 有一个类似的插件,这样我就不会在其网页上检查我的作品之前忘记保存了!有人知道吗?

您可以使用 Visual Commander 的以下扩展名在从 Visual Studio 切换时自动保存文件:

public class E : VisualCommanderExt.IExtension
{
    public void SetSite(EnvDTE80.DTE2 DTE_, Microsoft.VisualStudio.Shell.Package package)
    {
        DTE = DTE_;
        System.Windows.Application.Current.Deactivated += OnDeactivated;
    }

    public void Close()
    {
        System.Windows.Application.Current.Deactivated -= OnDeactivated;
    }

    private void OnDeactivated(object sender, System.EventArgs e)
    {
        try
        {
            DTE.ExecuteCommand("File.SaveAll");
        }
        catch (System.Exception ex)
        {
        }
    }

    private EnvDTE80.DTE2 DTE;
}

上面的解决方案

DTE.ExecuteCommand("File.SaveAll");

在解决方案中有 1000 多个项目的情况下太慢了,MSVS UI 在每次失去焦点事件时挂起几秒钟并且极度消耗 CPU,即使没有未保存的更改。

我编辑了 OnDeactivated() 方法,它在我的案例中运行得更快:

private void OnDeactivated(object sender, System.EventArgs e)
{
    try
    {
        EnvDTE.Documents docs = DTE.Documents;

        for (int i = 1; i <= docs.Count; i++) {
            EnvDTE.Document doc = docs.Item(i);
            if (!doc.Saved) {
                doc.Save();
            }
        }
    }
    catch (System.Exception ex)
    {
    }
}

有一个扩展名为“自动保存文件”。它会在 Visual Studio 失去焦点、文件失去焦点或自上次编辑后经过一定时间后保存。默认为 5 秒。

https://marketplace.visualstudio.com/items?itemName=HRai.AutoSaveFile