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
path: root/main
diff options
context:
space:
mode:
authortherzok <marius.ungureanu@xamarin.com>2016-09-20 01:04:14 +0300
committertherzok <marius.ungureanu@xamarin.com>2016-09-20 01:04:14 +0300
commit240a9210674070e98f4e7c91dc828f3678d5586c (patch)
treed4dbd0da72372dce404924cb19758f25fdebac64 /main
parenta5ae9172bf39dd1aade886b2e590535a207bae75 (diff)
[Ide] Optimize DirectorySearch scope to only iterate the FS tree once.
Diffstat (limited to 'main')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/Scope.cs11
1 files changed, 6 insertions, 5 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 d50148e0fd..80e72f4eb9 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/Scope.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/Scope.cs
@@ -280,9 +280,11 @@ namespace MonoDevelop.Ide.FindInFiles
set;
}
+ FileProvider[] fileNames;
public override int GetTotalWork (FilterOptions filterOptions)
{
- return GetFileNames (null, filterOptions).Count ();
+ fileNames = GetFileNames (filterOptions).Select (file => new FileProvider (file)).ToArray ();
+ return fileNames.Length;
}
public DirectoryScope (string path, bool recurse)
@@ -291,10 +293,8 @@ namespace MonoDevelop.Ide.FindInFiles
this.recurse = recurse;
}
- IEnumerable<string> GetFileNames (ProgressMonitor monitor, FilterOptions filterOptions)
+ IEnumerable<string> GetFileNames (FilterOptions filterOptions)
{
- if (monitor != null)
- monitor.Log.WriteLine (GettextCatalog.GetString ("Looking in '{0}'", path));
var directoryStack = new Stack<string> ();
directoryStack.Push (path);
@@ -346,7 +346,8 @@ namespace MonoDevelop.Ide.FindInFiles
public override IEnumerable<FileProvider> GetFiles (ProgressMonitor monitor, FilterOptions filterOptions)
{
- return GetFileNames (monitor, filterOptions).Select (file => new FileProvider (file));
+ monitor.Log.WriteLine (GettextCatalog.GetString ("Looking in '{0}'", path));
+ return fileNames;
}
public override string GetDescription (FilterOptions filterOptions, string pattern, string replacePattern)