public void PredefinedChecks_ChangeValue_CompareViewToFile() { var settingsHandler = new SettingsHandler(); var settingsProvider = new SettingsProvider(); var tidyChecks = new TidyChecks(); var tidyPredefinedChecks = new List <TidyCheckModel>(tidyChecks.Checks); var checks = new StringBuilder(); tidyPredefinedChecks[0].IsChecked = true; foreach (TidyCheckModel item in tidyPredefinedChecks) { if (item.IsChecked) { checks.Append(item.Name).Append(";"); } } var tidySettingsModel = new TidySettingsModel { PredefinedChecks = checks.ToString() }; settingsProvider.SetTidySettingsModel(tidySettingsModel); settingsHandler.SaveSettings(); settingsHandler.ResetSettings(); settingsHandler.LoadSettings(); Assert.Equal(tidySettingsModel.PredefinedChecks, settingsProvider.GetTidySettingsModel().PredefinedChecks); }
/// <summary> /// Get the header filter option from the Clang Tidy Option page /// </summary> /// <returns>Header filter option</returns> private string GetHeaderFilters() { TidySettingsModel tidySettings = settingsProvider.GetTidySettingsModel(); return(string.Format("{0} ''{1}''", ScriptConstants.kHeaderFilter, string.IsNullOrWhiteSpace(ClangTidyHeaderFiltersConvertor.ScriptEncode(tidySettings.HeaderFilter)) ? tidySettings.HeaderFilter : ClangTidyHeaderFiltersConvertor.ScriptEncode(tidySettings.HeaderFilter))); }
public void CustomExecutable_ChangeValue_CompareViewToFile() { var settingsHandler = new SettingsHandler(); var settingsProvider = new SettingsProvider(); var tidySettingsModel = new TidySettingsModel { CustomExecutable = @"D:\Test.exe" }; settingsProvider.SetTidySettingsModel(tidySettingsModel); settingsHandler.SaveSettings(); settingsHandler.ResetSettings(); settingsHandler.LoadSettings(); Assert.Equal(tidySettingsModel.CustomExecutable, settingsProvider.GetTidySettingsModel().CustomExecutable); }
public void ChecksFrom_ChangeValue_CompareViewToFile() { var settingsHandler = new SettingsHandler(); var settingsProvider = new SettingsProvider(); var tidySettingsModel = new TidySettingsModel { UseChecksFrom = ClangTidyUseChecksFrom.TidyFile }; settingsProvider.SetTidySettingsModel(tidySettingsModel); settingsHandler.SaveSettings(); settingsHandler.ResetSettings(); settingsHandler.LoadSettings(); Assert.Equal(tidySettingsModel.UseChecksFrom, settingsProvider.GetTidySettingsModel().UseChecksFrom); }
public void HeaderFilter_ChangeValue_CompareViewToFile() { var settingsHandler = new SettingsHandler(); var settingsProvider = new SettingsProvider(); var tidySettingsModel = new TidySettingsModel { HeaderFilter = "test" }; settingsProvider.SetTidySettingsModel(tidySettingsModel); settingsHandler.SaveSettings(); settingsHandler.ResetSettings(); settingsHandler.LoadSettings(); Assert.Equal(tidySettingsModel.HeaderFilter, settingsProvider.GetTidySettingsModel().HeaderFilter); }
public void ClangTidyOnSave_ChangeValue_CompareViewToFile() { var settingsHandler = new SettingsHandler(); var settingsProvider = new SettingsProvider(); var tidySettingsModel = new TidySettingsModel { TidyOnSave = true }; settingsProvider.SetTidySettingsModel(tidySettingsModel); settingsHandler.SaveSettings(); settingsHandler.ResetSettings(); settingsHandler.LoadSettings(); Assert.Equal(tidySettingsModel.TidyOnSave, settingsProvider.GetTidySettingsModel().TidyOnSave); }
public void FormatAfterTidy_ChangeValue_CompareViewToFile() { var settingsHandler = new SettingsHandler(); var settingsProvider = new SettingsProvider(); var tidySettingsModel = new TidySettingsModel { FormatAfterTidy = true }; settingsProvider.SetTidySettingsModel(tidySettingsModel); settingsHandler.SaveSettings(); settingsHandler.ResetSettings(); settingsHandler.LoadSettings(); Assert.Equal(tidySettingsModel.FormatAfterTidy, settingsProvider.GetTidySettingsModel().FormatAfterTidy); }
public void CustomChecks_ChangeValue_CompareViewToFile() { var settingsHandler = new SettingsHandler(); var settingsProvider = new SettingsProvider(); var tidySettingsModel = new TidySettingsModel { CustomChecks = "test-check" }; settingsProvider.SetTidySettingsModel(tidySettingsModel); settingsHandler.SaveSettings(); settingsHandler.ResetSettings(); settingsHandler.LoadSettings(); Assert.Equal(tidySettingsModel.CustomChecks, settingsProvider.GetTidySettingsModel().CustomChecks); }
private string GetTidyChecks(TidySettingsModel tidyModel) { ClangTidyUseChecksFrom useChecksFrom = tidyModel.UseChecksFrom; if (useChecksFrom == ClangTidyUseChecksFrom.CustomChecks) { return(ScriptConstants.kTidyCheckFirstElement + tidyModel.CustomChecks.Replace(';', ',').TrimEnd(',')); } else if (useChecksFrom == ClangTidyUseChecksFrom.PredefinedChecks) { return(ScriptConstants.kTidyCheckFirstElement + tidyModel.PredefinedChecks.Replace(';', ',').TrimEnd(',')); } else { return(ScriptConstants.kTidyFile); } }
public async Task RunClangTidyAsync(int aCommandId, CommandUILocation commandUILocation) { await PrepareCommmandAsync(commandUILocation); await Task.Run(() => { try { using (var silentFileController = new SilentFileChangerController()) { using (var fileChangerWatcher = new FileChangerWatcher()) { SettingsProvider settingsProvider = new SettingsProvider(); TidySettingsModel tidySettings = settingsProvider.GetTidySettingsModel(); if (CommandIds.kTidyFixId == aCommandId || tidySettings.TidyOnSave) { fileChangerWatcher.OnChanged += FileOpener.Open; var dte2 = VsServiceProvider.GetService(typeof(DTE)) as DTE2; string solutionFolderPath = SolutionInfo.IsOpenFolderModeActive() ? dte2.Solution.FullName : dte2.Solution.FullName .Substring(0, dte2.Solution.FullName.LastIndexOf('\\')); fileChangerWatcher.Run(solutionFolderPath); FilePathCollector fileCollector = new FilePathCollector(); var filesPath = fileCollector.Collect(mItemsCollector.Items).ToList(); silentFileController.SilentFiles(filesPath); silentFileController.SilentFiles(dte2.Documents); } RunScript(aCommandId); } } } catch (Exception exception) { VsShellUtilities.ShowMessageBox(AsyncPackage, exception.Message, "Error", OLEMSGICON.OLEMSGICON_CRITICAL, OLEMSGBUTTON.OLEMSGBUTTON_OK, OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST); } }); }
/// <summary> /// Get the parameters from the Tidy related option page /// </summary> /// <returns></returns> private string GetTidyParameters() { TidySettingsModel tidySettings = settingsProvider.GetTidySettingsModel(); // Get the clang tidy parameters depending on the tidy mode var parameters = GetTidyChecks(tidySettings); // Append the clang tidy type(tidy / tidy-fix) with / without clang tidy config file option attached if (!string.IsNullOrWhiteSpace(parameters)) { parameters = AppendClangTidyType(parameters); } // Get the header filter option if (null != tidySettings.HeaderFilter && !string.IsNullOrWhiteSpace(tidySettings.HeaderFilter)) { parameters += $" {GetHeaderFilters()}"; } return(parameters); }
/// <summary> /// Create the generic script by gathering all the generic parameters from the environment and settings components /// </summary> public void Build() { // Append the General parameters and Tidy parameters from option pages mScript = $"{GetGeneralParameters()} {(CommandIds.kTidyId == mCommandId || CommandIds.kTidyFixId == mCommandId ? GetTidyParameters() : ScriptConstants.kParallel)}"; FormatSettingsModel formatSettings = settingsProvider.GetFormatSettingsModel(); TidySettingsModel tidySettings = settingsProvider.GetTidySettingsModel(); // Append the clang-format style if (null != formatSettings && null != tidySettings && CommandIds.kTidyFixId == mCommandId && tidySettings.FormatAfterTidy) { mScript += $" {ScriptConstants.kClangFormatStyle} {formatSettings.Style}"; } // Append the Visual Studio Version and Edition mScript += $" {ScriptConstants.kVsVersion} {mVsVersion} {ScriptConstants.kVsEdition} {mVsEdition}"; // Append the solution path if (VsServiceProvider.TryGetService(typeof(DTE), out object dte)) { mScript += $" {ScriptConstants.kDirectory} ''{(dte as DTE2).Solution.FullName}''"; } }
public void SetTidySettingsModel(TidySettingsModel model) { tidySettingsModel = model; }