private List <string> RemoveDuplicateFiles(List <string> documentsToIgnore) { FormatSettingsModel formatSettings = SettingsViewModelProvider.FormatSettingsViewModel.FormatModel; List <string> trimmedDocumentToIgnore = new List <string>(); foreach (var item in documentsToIgnore) { if (formatSettings.FilesToIgnore.Contains(item) == false) { trimmedDocumentToIgnore.Add(item); } } return(trimmedDocumentToIgnore); }
/// <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 RunIgnoreFormatCommand() { _ = Task.Run(() => { SettingsProvider settingsProvider = new SettingsProvider(); ItemsCollector itemsCollector = new ItemsCollector(); SettingsHandler settingsHandler = new SettingsHandler(); FormatSettingsModel settings = settingsProvider.GetFormatSettingsModel(); List <string> documentsToIgnore = itemsCollector.GetFilesToIgnore(); AddItemsToIgnore(documentsToIgnore, settings, "FilesToIgnore"); settingsHandler.SaveSettings(); }); }
public void FallbackStyle_ChangeValue_CompareViewToFile() { var settingsHandler = new SettingsHandler(); var settingsProvider = new SettingsProvider(); var formatSettingsModel = new FormatSettingsModel { FallbackStyle = ClangFormatFallbackStyle.Mozilla }; settingsProvider.SetFormatSettingsModel(formatSettingsModel); settingsHandler.SaveSettings(); settingsHandler.ResetSettings(); settingsHandler.LoadSettings(); Assert.Equal(formatSettingsModel.FallbackStyle, settingsProvider.GetFormatSettingsModel().FallbackStyle); }
public void AssumeFilename_ChangeValue_CompareViewToFile() { var settingsHandler = new SettingsHandler(); var settingsProvider = new SettingsProvider(); var formatSettingsModel = new FormatSettingsModel { AssumeFilename = "Test" }; settingsProvider.SetFormatSettingsModel(formatSettingsModel); settingsHandler.SaveSettings(); settingsHandler.ResetSettings(); settingsHandler.LoadSettings(); Assert.Equal(formatSettingsModel.AssumeFilename, settingsProvider.GetFormatSettingsModel().AssumeFilename); }
public void FilesToIgnore_ChangeValue_CompareViewToFile() { var settingsHandler = new SettingsHandler(); var settingsProvider = new SettingsProvider(); var formatSettingsModel = new FormatSettingsModel { FilesToIgnore = "Test.cpp" }; settingsProvider.SetFormatSettingsModel(formatSettingsModel); settingsHandler.SaveSettings(); settingsHandler.ResetSettings(); settingsHandler.LoadSettings(); Assert.Equal(formatSettingsModel.FilesToIgnore, settingsProvider.GetFormatSettingsModel().FilesToIgnore); }
public void FileExtensions_ChangeValue_CompareViewToFile() { var settingsHandler = new SettingsHandler(); var settingsProvider = new SettingsProvider(); var formatSettingsModel = new FormatSettingsModel { FileExtensions = ".cpp" }; settingsProvider.SetFormatSettingsModel(formatSettingsModel); settingsHandler.SaveSettings(); settingsHandler.ResetSettings(); settingsHandler.LoadSettings(); Assert.Equal(formatSettingsModel.FileExtensions, settingsProvider.GetFormatSettingsModel().FileExtensions); }
public void FormatOnSave_ChangeValue_CompareViewToFile() { var settingsHandler = new SettingsHandler(); var settingsProvider = new SettingsProvider(); var formatSettingsModel = new FormatSettingsModel { FormatOnSave = true }; settingsProvider.SetFormatSettingsModel(formatSettingsModel); settingsHandler.SaveSettings(); settingsHandler.ResetSettings(); settingsHandler.LoadSettings(); Assert.Equal(formatSettingsModel.FormatOnSave, settingsProvider.GetFormatSettingsModel().FormatOnSave); }
public void CustomExecutable_ChangeValue_CompareViewToFile() { var settingsHandler = new SettingsHandler(); var settingsProvider = new SettingsProvider(); var formatSettingsModel = new FormatSettingsModel { CustomExecutable = @"D:\Test.exe" }; settingsProvider.SetFormatSettingsModel(formatSettingsModel); settingsHandler.SaveSettings(); settingsHandler.ResetSettings(); settingsHandler.LoadSettings(); Assert.Equal(formatSettingsModel.CustomExecutable, settingsProvider.GetFormatSettingsModel().CustomExecutable); }
private System.Diagnostics.Process CreateProcess(string aText, int aOffset, int aLength, string aPath, string aFilePath) { SettingsProvider settingsProvider = new SettingsProvider(); FormatSettingsModel formatSettings = settingsProvider.GetFormatSettingsModel(); string vsixPath = Path.GetDirectoryName( typeof(RunClangPowerToolsPackage).Assembly.Location); System.Diagnostics.Process process = new System.Diagnostics.Process(); process.StartInfo.UseShellExecute = false; process.StartInfo.CreateNoWindow = true; process.StartInfo.RedirectStandardInput = true; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.RedirectStandardError = true; process.StartInfo.FileName = true == (string.IsNullOrWhiteSpace(formatSettings.CustomExecutable) == false) ? formatSettings.CustomExecutable : Path.Combine(vsixPath, ScriptConstants.kClangFormat); process.StartInfo.Arguments = " -offset " + aOffset + " -length " + aLength + " -output-replacements-xml " + $" {ScriptConstants.kStyle} \"{formatSettings.Style}\"" + $" {ScriptConstants.kFallbackStyle} \"{formatSettings.FallbackStyle}\""; var assumeFilename = formatSettings.AssumeFilename; if (string.IsNullOrEmpty(assumeFilename)) { assumeFilename = aFilePath; } if (!string.IsNullOrEmpty(assumeFilename)) { process.StartInfo.Arguments += $" -assume-filename \"{assumeFilename}\""; } if (null != aPath) { process.StartInfo.WorkingDirectory = aPath; } return(process); }
private bool ValidExecution(out IWpfTextView view) { SettingsProvider settingsProvider = new SettingsProvider(); FormatSettingsModel formatSettings = settingsProvider.GetFormatSettingsModel(); view = Vsix.GetDocumentView(mDocument); if (view == null) { return(false); } if (false == FileHasExtension(mDocument.FullName, formatSettings.FileExtensions)) { return(false); } if (true == SkipFile(mDocument.FullName, formatSettings.FilesToIgnore)) { return(false); } if (ScriptConstants.kCMakeConfigFile == mDocument.Name.ToLower()) { return(false); } if (IsFileFormatSelected(formatSettings)) { var filePath = Vsix.GetDocumentParent(view); if (DoesClangFormatFileExist(filePath) == false) { OnFormatFile(new FormatCommandEventArgs() { CanFormat = false }); return(false); } } return(true); }
/// <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}''"; } }
private bool IsFileFormatSelected(FormatSettingsModel formatSettings) { return(formatSettings.Style == ClangFormatStyle.file); }
public void SetFormatSettingsModel(FormatSettingsModel model) { formatSettingsModel = model; }