public async Task SearchAsync() { Window.ShowStatusProgress($"Searching files for '{SearchPhrase}'"); var finder = new SearchInFilesFinder(SearchFolder, FileFilters); finder.SearchSubFolders = SearchSubFolders; var result = await finder.SearchFilesAsync(SearchPhrase); if (result != null) { SearchResults = new ObservableCollection <SearchFileResult>(result.OrderBy(r => r.FilePath + "!" + r.FileOnly)); } else { SearchResults = new ObservableCollection <SearchFileResult>(); } if (result.Count < 1) { Window.ShowStatusError("No matching files found."); } else { Window.ShowStatusSuccess($"{result.Count} file{(result.Count > 1 ? "s" : "")} found."); } }
public async Task SearchInFilesAsyncTest() { var finder = new SearchInFilesFinder(STR_Folder, "*.*"); var result = await finder.SearchFilesAsync("Single line breaks"); Assert.IsTrue(result.Count > 0, "No matches - should have matched"); WriteResult(result); }
public void SearchInFilesTest() { var finder = new SearchInFilesFinder(STR_Folder, "*.*"); finder.NoMatchDetails = true; var result = finder.SearchFiles("Markdown"); Assert.IsTrue(result.Count > 0, "No matches - should have matched"); WriteResult(result); }
public FileSearchModel() { AppModel = mmApp.Model; Window = AppModel.Window; if (AppModel.ActiveProject != null && !AppModel.ActiveProject.IsEmpty) { SearchFolder = Path.GetDirectoryName(AppModel.ActiveProject.Filename); } else { SearchFolder = AppModel.ActiveDocument?.Filename; if (!string.IsNullOrEmpty(SearchFolder)) { SearchFolder = Path.GetDirectoryName(SearchFolder); } } SearchFinder = new SearchInFilesFinder(SearchFolder, FileFilters); }