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

徘徊边缘 提交于 2019-11-27 20:58:24

问题


I'm working with CSS, HTML, and JavaScript in my classes, and I've recently started working with Visual Studio 2015. In Notepad++, there's an add-on that allowed me to automatically save all my opened documents as soon as it lost focus. This saved me a lot of time, as I go back and forth frequently between the page I'm working on and the coding for it.

I'm hoping there is a similar add-on for Visual Studio 2015, so I can stop forgetting to save before checking my work on its web page! Anyone know of any?


回答1:


You can use the following extension for Visual Commander to auto save files on switching away from 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;
}



回答2:


The solution above with

DTE.ExecuteCommand("File.SaveAll");

is too slow in case of 1000+ projects in solution, MSVS UI hangs for several seconds on each losing focus event and extremely consumes CPU, even if there are no unsaved changes.

I've edited OnDeactivated() method, and it works much faster in my cases:

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)
    {
    }
}


来源:https://stackoverflow.com/questions/33574292/how-can-i-autosave-my-visual-studio-2015-files-when-it-loses-focus

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!