Esempio n. 1
0
        public static async Task UpdateAllBundlesAsync(bool isBuild = false)
        {
            foreach (Project project in ProjectHelpers.GetAllProjects())
            {
                if (project.ProjectItems.Count == 0)
                {
                    continue;
                }

                string folder = ProjectHelpers.GetRootFolder(project);

                if (string.IsNullOrEmpty(folder))
                {
                    continue;
                }

                BundleFilesMenu menu = new BundleFilesMenu();

                foreach (string file in Directory.EnumerateFiles(folder, "*" + _ext, SearchOption.AllDirectories))
                {
                    if (ProjectHelpers.GetProjectItem(file) == null)
                    {
                        continue;
                    }

                    await menu.UpdateBundleAsync(file, isBuild);
                }
            }
        }
Esempio n. 2
0
        private async void SolutionEvents_Opened()
        {
            foreach (Project project in ProjectHelpers.GetAllProjects())
            {
                if (project.ProjectItems.Count == 0)
                {
                    continue;
                }

                string folder = ProjectHelpers.GetRootFolder(project);
                Func <string, bool, Task> bundleFunc = new BundleFilesMenu().UpdateBundleAsync;
                Func <string, bool, Task> spriteFunc = new SpriteImageMenu().UpdateSpriteAsync;

                foreach (string file in Directory.EnumerateFiles(folder, "*.*", SearchOption.AllDirectories)
                         .Where(s => s.EndsWith(".bundle") || s.EndsWith(".sprite")))
                {
                    if (ProjectHelpers.GetProjectItem(file) == null)
                    {
                        continue;
                    }

                    if (file.EndsWith(".bundle", StringComparison.OrdinalIgnoreCase))
                    {
                        await BundleGenerator.WatchFiles(await BundleDocument.FromFile(file), bundleFunc);
                    }
                    else
                    {
                        await SpriteGenerator.WatchFiles(await SpriteDocument.FromFile(file), spriteFunc);
                    }
                }
            }
        }
Esempio n. 3
0
        private void SolutionBeforeQueryStatus(object sender, EventArgs e)
        {
            OleMenuCommand menuCommand   = sender as OleMenuCommand;
            bool           settingsExist = SettingsStore.SolutionSettingsExist;

            var projects = ProjectHelpers.GetAllProjects();

            menuCommand.Enabled = projects.Any() && !settingsExist;
        }
Esempio n. 4
0
 public static void UpdateBundles(string changedFile, bool isBuild)
 {
     if (!string.IsNullOrEmpty(changedFile))
     {
         UpdateBundle(changedFile, isBuild);
         return;
     }
     foreach (Project project in ProjectHelpers.GetAllProjects())
     {
         if (project.ProjectItems.Count > 0)
         {
             string folder = ProjectHelpers.GetRootFolder(project);
             UpdateBundle(folder, isBuild);
         }
     }
 }
Esempio n. 5
0
        public async static Threading.Task UpdateBundles(string changedFile, bool isBuild)
        {
            if (!string.IsNullOrEmpty(changedFile))
            {
                await UpdateBundle(changedFile, isBuild);

                return;
            }

            foreach (Project project in ProjectHelpers.GetAllProjects())
            {
                if (project.ProjectItems.Count == 0)
                {
                    continue;
                }

                string folder = ProjectHelpers.GetRootFolder(project);
                await UpdateBundle(folder, isBuild);
            }
        }
Esempio n. 6
0
        private async Task Minify()
        {
            _dte.StatusBar.Text = "Web Essentials: Minifying files...";
            var extensions = new HashSet <string>(
                Mef.GetSupportedExtensions <IFileMinifier>(),
                StringComparer.OrdinalIgnoreCase
                );

            var files = ProjectHelpers.GetAllProjects()
                        .Select(ProjectHelpers.GetRootFolder)
                        .SelectMany(p => Directory.EnumerateFiles(p, "*", SearchOption.AllDirectories))
                        .Where(f => extensions.Contains(Path.GetExtension(f)));

            await Task.WhenAll(files.AsParallel().Select(async file =>
                                                         await MinificationSaveListener.ReMinify(
                                                             FileExtensionRegistry.GetContentTypeForExtension(Path.GetExtension(file).TrimStart('.')),
                                                             file,
                                                             false
                                                             )));

            WebEssentialsPackage.DTE.StatusBar.Clear();
        }
Esempio n. 7
0
        private void Minify()
        {
            _dte.StatusBar.Text = "Web Essentials: Minifying files...";
            var extensions = new HashSet <string>(
                Mef.GetSupportedExtensions <IFileMinifier>(),
                StringComparer.OrdinalIgnoreCase
                );

            var files = ProjectHelpers.GetAllProjects()
                        .Select(ProjectHelpers.GetRootFolder)
                        .SelectMany(p => Directory.EnumerateFiles(p, "*", SearchOption.AllDirectories))
                        .Where(f => extensions.Contains(Path.GetExtension(f)));

            // Perform expensive blocking work in parallel
            Parallel.ForEach(files, file =>
                             MinificationSaveListener.ReMinify(
                                 ContentTypeManager.GetContentType(Path.GetExtension(file).TrimStart('.')),
                                 file,
                                 false
                                 )
                             );

            EditorExtensionsPackage.DTE.StatusBar.Clear();
        }