示例#1
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);
                    }
                }
            }
        }
示例#2
0
        private static void InitiateExecutors()
        {
            var compiler = WebEditor.Host.ExportProvider.GetExport <ProjectCompiler>();

            Task.Run(async() =>
            {
                Parallel.ForEach(
                    Mef.GetSupportedContentTypes <ICompilerRunnerProvider>()
                    .Where(c => WESettings.Instance.ForContentType <ICompilerInvocationSettings>(c).CompileOnBuild),
                    c => compiler.Value.CompileSolutionAsync(c).DoNotWait("compiling solution-wide " + c.DisplayName)
                    );

                await BuildMenu.UpdateBundleFiles();
            }).DoNotWait("running solution-wide compilers");

            if (WESettings.Instance.JavaScript.LintOnBuild)
            {
                LintFileInvoker.RunOnAllFilesInProjectAsync(new[] { "*.js" }, f => new JavaScriptLintReporter(new JsHintCompiler(), f))
                .DoNotWait("running solution-wide JSHint");
                LintFileInvoker.RunOnAllFilesInProjectAsync(new[] { "*.js" }, f => new JavaScriptLintReporter(new JsCodeStyleCompiler(), f))
                .DoNotWait("running solution-wide JSCS");
            }

            if (WESettings.Instance.TypeScript.LintOnBuild)
            {
                LintFileInvoker.RunOnAllFilesInProjectAsync(new[] { "*.ts" }, f => new LintReporter(new TsLintCompiler(), WESettings.Instance.TypeScript, f))
                .DoNotWait("running solution-wide TSLint");
            }

            if (WESettings.Instance.CoffeeScript.LintOnBuild)
            {
                LintFileInvoker.RunOnAllFilesInProjectAsync(new[] { "*.coffee", "*.iced" }, f => new LintReporter(new CoffeeLintCompiler(), WESettings.Instance.CoffeeScript, f))
                .DoNotWait("running solution-wide CoffeeLint");
            }

            BundleFilesMenu.UpdateAllBundlesAsync(true).DoNotWait("running bundles");
            SpriteImageMenu.UpdateAllSpritesAsync(true).DoNotWait("running sprites");
        }
示例#3
0
        protected async override void Initialize()
        {
            base.Initialize();

            Instance = this;

            await NodeServer.Up();

            SettingsStore.Load();
            JavaScriptIntellisense.Register();

            OleMenuCommandService mcs = GetService(typeof(IMenuCommandService)) as OleMenuCommandService;

            if (null != mcs)
            {
                TransformMenu           transform           = new TransformMenu(DTE, mcs);
                DiffMenu                diffMenu            = new DiffMenu(mcs);
                MinifyFileMenu          minifyMenu          = new MinifyFileMenu(mcs);
                BundleFilesMenu         bundleMenu          = new BundleFilesMenu(DTE, mcs);
                JsHintMenu              jsHintMenu          = new JsHintMenu(DTE, mcs);
                TsLintMenu              tsLintMenu          = new TsLintMenu(DTE, mcs);
                HubsT4Menu              hubsT4Menu          = new HubsT4Menu(DTE, mcs);
                CoffeeLintMenu          coffeeLintMenu      = new CoffeeLintMenu(DTE, mcs);
                JsCodeStyle             jsCodeStyleMenu     = new JsCodeStyle(DTE, mcs);
                RtlCssMenu              rtlCssMenu          = new RtlCssMenu(DTE, mcs);
                CsonMenu                cson                = new CsonMenu(mcs);
                ProjectSettingsMenu     projectSettingsMenu = new ProjectSettingsMenu(DTE, mcs);
                SolutionColorsMenu      solutionColorsMenu  = new SolutionColorsMenu(mcs);
                BuildMenu               buildMenu           = new BuildMenu(DTE, mcs);
                MarkdownMenu            markdownMenu        = new MarkdownMenu(DTE, mcs);
                HandlebarsMenu          handlebarsMenu      = new HandlebarsMenu(DTE, mcs);
                AddIntellisenseFileMenu intellisenseFile    = new AddIntellisenseFileMenu(DTE, mcs);
                UnusedCssMenu           unusedCssMenu       = new UnusedCssMenu(mcs);
                PixelPushingMenu        pixelPushingMenu    = new PixelPushingMenu(mcs);
                ReferenceJsMenu         referenceJsMenu     = new ReferenceJsMenu(mcs);
                CompressImageMenu       compressImageMenu   = new CompressImageMenu(mcs);
                SpriteImageMenu         spriteImageMenu     = new SpriteImageMenu(DTE, mcs);
                UnminifyMenu            unMinifyMenu        = new UnminifyMenu(mcs);
                //ChainCompilationMenu chainCompilationMenu = new ChainCompilationMenu(DTE, mcs);

                HandleMenuVisibility(mcs);
                referenceJsMenu.SetupCommands();
                pixelPushingMenu.SetupCommands();
                unusedCssMenu.SetupCommands();
                intellisenseFile.SetupCommands();
                markdownMenu.SetupCommands();
                handlebarsMenu.SetupCommands();
                buildMenu.SetupCommands();
                solutionColorsMenu.SetupCommands();
                projectSettingsMenu.SetupCommands();
                jsHintMenu.SetupCommands();
                tsLintMenu.SetupCommands();
                hubsT4Menu.SetupCommands();
                coffeeLintMenu.SetupCommands();
                jsCodeStyleMenu.SetupCommands();
                rtlCssMenu.SetupCommands();
                cson.SetupCommands();
                bundleMenu.SetupCommands();
                minifyMenu.SetupCommands();
                diffMenu.SetupCommands();
                transform.SetupCommands();
                compressImageMenu.SetupCommands();
                spriteImageMenu.SetupCommands();
                unMinifyMenu.SetupCommands();
                //chainCompilationMenu.SetupCommands();
            }

            IconRegistration.RegisterIcons();

            // Hook up event handlers
            await Dispatcher.CurrentDispatcher.BeginInvoke(new Action(() =>
            {
                DTE.Events.BuildEvents.OnBuildDone += BuildEvents_OnBuildDone;
                DTE.Events.SolutionEvents.Opened += delegate { SettingsStore.Load(); ShowTopMenu(); };
                DTE.Events.SolutionEvents.AfterClosing += delegate { DTE.StatusBar.Clear(); ShowTopMenu(); };
            }), DispatcherPriority.ApplicationIdle, null);
        }
示例#4
0
 private static void RunBundles()
 {
     BundleFilesMenu.UpdateAllBundlesAsync(true).DoNotWait("Web Essentials: Updating Bundles...");
     SpriteImageMenu.UpdateAllSpritesAsync(true).DoNotWait("Web Essentials: Updating Sprites...");
 }
示例#5
0
文件: BuildMenu.cs 项目: waodng/VSIX
 private async static Task UpdateSpriteFiles()
 {
     await SpriteImageMenu.UpdateAllSpritesAsync();
 }