/// <summary> /// Get the clang flags in the power shell script format /// </summary> /// <returns>The clang flags</returns> private string GetClangFlags() { CompilerSettingsModel compilerSettings = settingsProvider.GetCompilerSettingsModel(); return(string.Format("{0} {1}", ScriptConstants.kClangFlags, compilerSettings.WarningsAsErrors ? $" (''{ScriptConstants.kTreatWarningsAsErrors}'',''{TransformInPowerShellArray(compilerSettings.CompileFlags)}'')" : $" (''{TransformInPowerShellArray(compilerSettings.CompileFlags)}'')")); }
public void TreatWarningsAsErrors_ChangeValue_CompareViewToFile() { var settingsHandler = new SettingsHandler(); var settingsProvider = new SettingsProvider(); var compilerSettingsModel = new CompilerSettingsModel { WarningsAsErrors = true }; settingsProvider.SetCompilerSettingsModel(compilerSettingsModel); settingsHandler.SaveSettings(); settingsHandler.ResetSettings(); settingsHandler.LoadSettings(); Assert.Equal(compilerSettingsModel.WarningsAsErrors, settingsProvider.GetCompilerSettingsModel().WarningsAsErrors); }
public void ProjectToIgnore_ChangeValue_CompareViewToFile() { var settingsHandler = new SettingsHandler(); var settingsProvider = new SettingsProvider(); var compilerSettingsModel = new CompilerSettingsModel { ProjectsToIgnore = "TestProject" }; settingsProvider.SetCompilerSettingsModel(compilerSettingsModel); settingsHandler.SaveSettings(); settingsHandler.ResetSettings(); settingsHandler.LoadSettings(); Assert.Equal(compilerSettingsModel.ProjectsToIgnore, settingsProvider.GetCompilerSettingsModel().ProjectsToIgnore); }
public void AdditionalIncludes_ChangeValue_CompareViewToFile() { var settingsHandler = new SettingsHandler(); var settingsProvider = new SettingsProvider(); var compilerSettingsModel = new CompilerSettingsModel { AdditionalIncludes = ClangGeneralAdditionalIncludes.SystemIncludeDirectories }; settingsProvider.SetCompilerSettingsModel(compilerSettingsModel); settingsHandler.SaveSettings(); settingsHandler.ResetSettings(); settingsHandler.LoadSettings(); Assert.Equal(compilerSettingsModel.AdditionalIncludes, settingsProvider.GetCompilerSettingsModel().AdditionalIncludes); }
public void CompileFlags_ChangeValue_CompareViewToFile() { var settingsHandler = new SettingsHandler(); var settingsProvider = new SettingsProvider(); var compilerSettingsModel = new CompilerSettingsModel { CompileFlags = "-Wall" }; settingsProvider.SetCompilerSettingsModel(compilerSettingsModel); settingsHandler.SaveSettings(); settingsHandler.ResetSettings(); settingsHandler.LoadSettings(); Assert.Equal(compilerSettingsModel.CompileFlags, settingsProvider.GetCompilerSettingsModel().CompileFlags); }
public void VerboseMode_ChangeValue_CompareViewToFile() { var settingsHandler = new SettingsHandler(); var settingsProvider = new SettingsProvider(); var compilerSettingsModel = new CompilerSettingsModel { VerboseMode = true }; settingsProvider.SetCompilerSettingsModel(compilerSettingsModel); settingsHandler.SaveSettings(); settingsHandler.ResetSettings(); settingsHandler.LoadSettings(); Assert.Equal(compilerSettingsModel.VerboseMode, settingsProvider.GetCompilerSettingsModel().VerboseMode); }
public void ClangCompileAfterVsCompile_ChangeValue_CompareViewToFile() { var settingsHandler = new SettingsHandler(); var settingsProvider = new SettingsProvider(); var compilerSettingsModel = new CompilerSettingsModel { ClangAfterMSVC = true }; settingsProvider.SetCompilerSettingsModel(compilerSettingsModel); settingsHandler.SaveSettings(); settingsHandler.ResetSettings(); settingsHandler.LoadSettings(); Assert.Equal(compilerSettingsModel.ClangAfterMSVC, settingsProvider.GetCompilerSettingsModel().ClangAfterMSVC); }
public void ContinueOnError_ChangeValue_CompareViewToFile() { var settingsHandler = new SettingsHandler(); var settingsProvider = new SettingsProvider(); var compilerSettingsModel = new CompilerSettingsModel { ContinueOnError = true }; settingsProvider.SetCompilerSettingsModel(compilerSettingsModel); settingsHandler.SaveSettings(); settingsHandler.ResetSettings(); settingsHandler.LoadSettings(); Assert.Equal(compilerSettingsModel.ContinueOnError, settingsProvider.GetCompilerSettingsModel().ContinueOnError); }
/// <summary> /// Get the parameters from the General option page /// </summary> /// <param name="mGeneralOptions"></param> /// <returns>The parameters from General option page</returns> private string GetGeneralParameters() { CompilerSettingsModel compilerSettings = settingsProvider.GetCompilerSettingsModel(); var parameters = string.Empty; // Get the Clang Flags list if (!string.IsNullOrWhiteSpace(compilerSettings.CompileFlags)) { parameters = GetClangFlags(); } // Get the continue when errors are detected flag if (compilerSettings.ContinueOnError) { parameters += $" {ScriptConstants.kContinue}"; } // Get the verbose mode flag if (compilerSettings.VerboseMode) { parameters += $" {ScriptConstants.kVerboseMode}"; } // Get the projects to ignore list if (!string.IsNullOrWhiteSpace(compilerSettings.ProjectsToIgnore)) { parameters += $" {ScriptConstants.kProjectsToIgnore} (''{TransformInPowerShellArray(compilerSettings.ProjectsToIgnore)}'')"; } // Get the files to ignore list if (!string.IsNullOrWhiteSpace(compilerSettings.FilesToIgnore)) { parameters += $" {ScriptConstants.kFilesToIgnore} (''{TransformInPowerShellArray(compilerSettings.FilesToIgnore)}'')"; } // Get the selected Additional Includes type if (0 == string.Compare(ClangGeneralAdditionalIncludesConvertor.ToString(compilerSettings.AdditionalIncludes), ComboBoxConstants.kSystemIncludeDirectories)) { parameters += $" {ScriptConstants.kSystemIncludeDirectories}"; } return(parameters); }
/// <summary> /// This function is the callback used to execute the command when the menu item is clicked. /// See the constructor to see how the menu item is associated with this function using /// OleMenuCommandService service and MenuCommand class. /// </summary> /// <param name="sender">Event sender.</param> /// <param name="e">Event args.</param> public void RunIgnoreCompileCommand() { _ = Task.Run(() => { SettingsHandler settingsHandler = new SettingsHandler(); SettingsProvider settingsProvider = new SettingsProvider(); ItemsCollector itemsCollector = new ItemsCollector(); List <string> projectsToIgnore = itemsCollector.GetProjectsToIgnore(); CompilerSettingsModel settingsModel = settingsProvider.GetCompilerSettingsModel(); AddItemsToIgnore(projectsToIgnore, settingsModel, "ProjectsToIgnore"); if (projectsToIgnore.Any() == false) { List <string> filesToIgnore = itemsCollector.GetFilesToIgnore(); AddItemsToIgnore(filesToIgnore, settingsModel, "FilesToIgnore"); settingsHandler.SaveSettings(); } }); }
private CompilerSettingsModel LoadOrCreateCompilerSettings() { CompilerSettingsModel compilerSettings = new CompilerSettingsModel(); var filePath = JsonSettingsFilePath; if (filePath.Exists()) { try { var text = System.IO.File.ReadAllText(filePath.FullPath); compilerSettings = JsonConvert.DeserializeObject <CompilerSettingsModel>(text); } catch { // do nothing, it'll just get wiped out and re-saved later } } return(compilerSettings); }
public void SetCompilerSettingsModel(CompilerSettingsModel model) { compilerSettingsModel = model; }