Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Krüger <mkrueger@novell.com>2009-11-03 09:30:06 +0300
committerMike Krüger <mkrueger@novell.com>2009-11-03 09:30:06 +0300
commitd811fd56da5a59396308d04c04c78b87667fee15 (patch)
tree41c2eadc4f30c687cc689ed0add19352d6c9facd /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles
parent4ec321a888b048a8ca125399a44d3947dd46e680 (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.cs38
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/SearchResultWidget.cs4
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);
}