private static void InitiateExecutors() { var compiler = WebEditor.Host.ExportProvider.GetExport <ProjectCompiler>(); ThreadingTask.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"); } }
private void BuildEvents_OnBuildDone(vsBuildScope Scope, vsBuildAction Action) { bool success = _dte.Solution.SolutionBuild.LastBuildInfo == 0; if (!success) { string text = _dte.StatusBar.Text; // respect localization of "Build failed" Dispatcher.CurrentDispatcher.BeginInvoke(new Action(() => { _dte.StatusBar.Text = text; }), DispatcherPriority.ApplicationIdle, null); return; } if (Action != vsBuildAction.vsBuildActionClean) { var compiler = WebEditor.Host.ExportProvider.GetExport <ProjectCompiler>(); ThreadingTask.Task.Run(() => { Parallel.ForEach( Mef.GetSupportedContentTypes <ICompilerRunnerProvider>() .Where(c => WESettings.Instance.ForContentType <ICompilerInvocationSettings>(c).CompileOnBuild), c => compiler.Value.CompileSolutionAsync(c).DontWait("compiling solution-wide " + c.DisplayName) ); BuildMenu.UpdateBundleFiles(); }).DontWait("running solution-wide compilers"); if (WESettings.Instance.JavaScript.LintOnBuild) { LintFileInvoker.RunOnAllFilesInProjectAsync(new[] { "*.js" }, f => new JavaScriptLintReporter(new JsHintCompiler(), f)) .DontWait("running solution-wide JSHint"); LintFileInvoker.RunOnAllFilesInProjectAsync(new[] { "*.js" }, f => new JavaScriptLintReporter(new JsCodeStyleCompiler(), f)) .DontWait("running solution-wide JSCS"); } if (WESettings.Instance.TypeScript.LintOnBuild) { LintFileInvoker.RunOnAllFilesInProjectAsync(new[] { "*.ts" }, f => new LintReporter(new TsLintCompiler(), WESettings.Instance.TypeScript, f)) .DontWait("running solution-wide TSLint"); } if (WESettings.Instance.CoffeeScript.LintOnBuild) { LintFileInvoker.RunOnAllFilesInProjectAsync(new[] { "*.coffee", "*.iced" }, f => new LintReporter(new CoffeeLintCompiler(), WESettings.Instance.CoffeeScript, f)) .DontWait("running solution-wide CoffeeLint"); } } else if (Action == vsBuildAction.vsBuildActionClean) { LintReporter.Reset(); } }
protected override void Initialize() { base.Initialize(); Instance = this; JsDocComments.Register(); OleMenuCommandService mcs = GetService(typeof(IMenuCommandService)) as OleMenuCommandService; if (null != mcs) { HandleMenuVisibility(mcs); TransformMenu transform = new TransformMenu(DTE, mcs); transform.SetupCommands(); DiffMenu diffMenu = new DiffMenu(DTE, mcs); diffMenu.SetupCommands(); MinifyFileMenu minifyMenu = new MinifyFileMenu(DTE, mcs); minifyMenu.SetupCommands(); BundleFilesMenu bundleMenu = new BundleFilesMenu(DTE, mcs); bundleMenu.SetupCommands(); JsHintMenu jsHintMenu = new JsHintMenu(DTE, mcs); jsHintMenu.SetupCommands(); ProjectSettingsMenu projectSettingsMenu = new ProjectSettingsMenu(DTE, mcs); projectSettingsMenu.SetupCommands(); SolutionColorsMenu solutionColorsMenu = new SolutionColorsMenu(DTE, mcs); solutionColorsMenu.SetupCommands(); BuildMenu buildMenu = new BuildMenu(DTE, mcs); buildMenu.SetupCommands(); MarkdownStylesheetMenu markdownMenu = new MarkdownStylesheetMenu(DTE, mcs); markdownMenu.SetupCommands(); } // Hook up event handlers Dispatcher.CurrentDispatcher.BeginInvoke(new Action(() => { DTE.Events.BuildEvents.OnBuildDone += BuildEvents_OnBuildDone; DTE.Events.SolutionEvents.Opened += delegate { Settings.UpdateCache(); Settings.UpdateStatusBar("applied"); }; DTE.Events.SolutionEvents.AfterClosing += delegate { DTE.StatusBar.Clear(); }; }), DispatcherPriority.ApplicationIdle, null); }
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); }