diff options
author | Mike Krüger <mkrueger@novell.com> | 2009-11-03 09:30:06 +0300 |
---|---|---|
committer | Mike Krüger <mkrueger@novell.com> | 2009-11-03 09:30:06 +0300 |
commit | d811fd56da5a59396308d04c04c78b87667fee15 (patch) | |
tree | 41c2eadc4f30c687cc689ed0add19352d6c9facd /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles | |
parent | 4ec321a888b048a8ca125399a44d3947dd46e680 (diff) |
* MonoDevelop.Ide.FindInFiles/Scope.cs:
* MonoDevelop.Ide.FindInFiles/SearchResultWidget.cs: Worked on 'Bug
552017 - Saner and new default options for Find in Files ->
Directories dialog'.
svn path=/trunk/monodevelop/; revision=145275
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles')
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/Scope.cs | 38 | ||||
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/SearchResultWidget.cs | 4 |
2 files changed, 31 insertions, 11 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/Scope.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/Scope.cs index 2b54a162c1..d7fcc0b53a 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/Scope.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/Scope.cs @@ -195,12 +195,7 @@ namespace MonoDevelop.Ide.FindInFiles public override int GetTotalWork (FilterOptions filterOptions) { - int result = 0; - foreach (string fileMask in filterOptions.FileMask.Split (',', ';')) { - string[] files = Directory.GetFiles (path, fileMask, recurse ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly); - result += files.Length; - } - return result; + return GetFileNames (path, recurse, filterOptions).Count (); } public DirectoryScope (string path, bool recurse) @@ -209,12 +204,37 @@ namespace MonoDevelop.Ide.FindInFiles this.recurse = recurse; } - public override IEnumerable<FileProvider> GetFiles (FilterOptions filterOptions) + static IEnumerable<string> GetFileNames (string path, bool recurse, FilterOptions filterOptions) { foreach (string fileMask in filterOptions.FileMask.Split (',', ';')) { - foreach (string file in Directory.GetFiles (path, fileMask, recurse ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly)) { - yield return new FileProvider (file); + string[] files; + try { + files = Directory.GetFiles (path, filterOptions.FileMask, SearchOption.TopDirectoryOnly); + } catch (Exception e) { + LoggingService.LogError ("Can't access path " + path, e); + continue; + } + + foreach (string fileName in files) { + yield return fileName; } + + if (recurse) { + foreach (string directoryName in Directory.GetDirectories (path)) { + if (directoryName.StartsWith (".")) + continue; + foreach (string fileName in GetFileNames (Path.Combine (path, directoryName), recurse, filterOptions)) { + yield return fileName; + } + } + } + } + } + + public override IEnumerable<FileProvider> GetFiles (FilterOptions filterOptions) + { + foreach (string file in GetFileNames (path, recurse, filterOptions)) { + yield return new FileProvider (file); } } diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/SearchResultWidget.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/SearchResultWidget.cs index f854224dda..7158d5a6b0 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/SearchResultWidget.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/SearchResultWidget.cs @@ -391,9 +391,9 @@ namespace MonoDevelop.Ide.FindInFiles markup = markup.Insert (pos1, "<span background=\"" + SyntaxMode.ColorToPangoMarkup (searchColor) + "\">"); } } - string markup = AdjustColors (markup.Replace ("\t", new string (' ', TextEditorOptions.DefaultOptions.TabSize))); + string markupText = AdjustColors (markup.Replace ("\t", new string (' ', TextEditorOptions.DefaultOptions.TabSize))); try { - textRenderer.Markup = markup; + textRenderer.Markup = markupText; } catch (Exception e) { LoggingService.LogError ("Error whil setting the text renderer markup to: " + markup, e); } |