private void OnAfterClangCommand() { running = false; var cMakeBuilder = new CMakeBuilder(); cMakeBuilder.ClearBuildCashe(); }
public void Run(Document document, int commandId) { try { #region Create currnet project item if (document == null || document.ProjectItem == null) { return; } var projectName = document.ProjectItem.ContainingProject.FullName; if (string.IsNullOrWhiteSpace(projectName)) { return; } IItem item = new CurrentProjectItem(document.ProjectItem); #endregion #region Get VS edition and version var dte = (DTE2)VsServiceProvider.GetService(typeof(DTE)); var vsEdition = dte.Edition; mVsVersions.TryGetValue(dte.Version, out string vsVersion); #endregion #region Generate powershell script string runModeParameters = ScriptGenerator.GetRunModeParamaters(); string genericParameters = ScriptGenerator.GetGenericParamaters(commandId, vsEdition, vsVersion, false); CMakeBuilder cMakeBuilder = new CMakeBuilder(); cMakeBuilder.Build(); var vsSolution = SolutionInfo.IsOpenFolderModeActive() == false ? (IVsSolution)VsServiceProvider.GetService(typeof(SVsSolution)) : null; var itemRelatedParameters = ScriptGenerator.GetItemRelatedParameters(item); var psScript = JoinUtility.Join(" ", runModeParameters.Remove(runModeParameters.Length - 1), itemRelatedParameters, genericParameters, "'"); #endregion #region PowerShell Invocation powerShell.Invoke(psScript, new RunningProcesses(true)); #endregion cMakeBuilder.ClearBuildCashe(); } catch (Exception) { //MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }