[niftyplugins commit] r72 - - Added support for adding arbitrary directories to the quick open dialog.

0 views
Skip to first unread message

codesite...@google.com

unread,
May 4, 2009, 1:05:49 AM5/4/09
to niftyplug...@googlegroups.com
Author: jim.tilander
Date: Sun May 3 21:39:23 2009
New Revision: 72

Modified:
trunk/Build/Experimental_NiftyPerforce.msi
trunk/Build/Experimental_NiftyPerforce2008.msi
trunk/Build/Experimental_NiftySolution.msi
trunk/Build/Experimental_NiftySolution2008.msi
trunk/NiftySolution/Commands/QuickOpen.cs
trunk/NiftySolution/Options.cs
trunk/NiftySolution/SolutionFiles.cs

Log:
- Added support for adding arbitrary directories to the quick open dialog.

Modified: trunk/Build/Experimental_NiftyPerforce.msi
==============================================================================
Binary files. No diff available.

Modified: trunk/Build/Experimental_NiftyPerforce2008.msi
==============================================================================
Binary files. No diff available.

Modified: trunk/Build/Experimental_NiftySolution.msi
==============================================================================
Binary files. No diff available.

Modified: trunk/Build/Experimental_NiftySolution2008.msi
==============================================================================
Binary files. No diff available.

Modified: trunk/NiftySolution/Commands/QuickOpen.cs
==============================================================================
--- trunk/NiftySolution/Commands/QuickOpen.cs (original)
+++ trunk/NiftySolution/Commands/QuickOpen.cs Sun May 3 21:39:23 2009
@@ -32,7 +32,7 @@
if(null == mFiles)
{
Log.Info("First time fast open is run, scanning solution for files");
- mFiles = new SolutionFiles(Plugin.App);
+ mFiles = new SolutionFiles(Plugin);
mFiles.Refresh();
}

@@ -43,7 +43,7 @@
{
string name = mDialog.FileToOpen;
if(name.Length > 0 )
- Plugin.App.DTE.ExecuteCommand("File.OpenFile", name);
+ Plugin.App.DTE.ExecuteCommand("File.OpenFile",
string.Format("\"{0}\"", name));

// TODO: Each time here we could save off the window position into
the registry and
// use it when we open the window the next time around.

Modified: trunk/NiftySolution/Options.cs
==============================================================================
--- trunk/NiftySolution/Options.cs (original)
+++ trunk/NiftySolution/Options.cs Sun May 3 21:39:23 2009
@@ -14,6 +14,8 @@
private bool mDirty = false;
private bool mEnableBindings = false;

+ private string mExtraSearchDirectories = "";
+
[XmlIgnore]
public string mFileName = "";

@@ -40,6 +42,13 @@
mEnableBindings = value;
mDirty = true;
}
+ }
+
+ [Category("NiftyOpen"), Description("Also add all the files underneath
these ; delimited directories")]
+ public string ExtraSearchDirs
+ {
+ get { return mExtraSearchDirectories; }
+ set { mExtraSearchDirectories = value; mDirty = true; }
}

public static Options Load(string filename)

Modified: trunk/NiftySolution/SolutionFiles.cs
==============================================================================
--- trunk/NiftySolution/SolutionFiles.cs (original)
+++ trunk/NiftySolution/SolutionFiles.cs Sun May 3 21:39:23 2009
@@ -12,6 +12,7 @@
{
public class SolutionFiles
{
+ private Plugin mPlugin;
private DTE2 m_application;
private List<SearchEntry> m_solutionFiles = new List<SearchEntry>();
private List<SearchEntry> mHits = new List<SearchEntry>();
@@ -21,9 +22,10 @@
get { return m_solutionFiles.Count; }
}

- public SolutionFiles(DTE2 application)
+ public SolutionFiles(Plugin plugin)
{
- m_application = application;
+ m_application = plugin.App;
+ mPlugin = plugin;
}

public void Refresh()
@@ -36,6 +38,42 @@
AddProjectItems(project.ProjectItems);
}
Log.Info("Scanning done ({0} files in {1} projects)", Count,
m_application.Solution.Projects.Count);
+
+
+ // Now, let's add the files that were explicitly referenced from the
config dialog.
+ Options options = (Options)mPlugin.Options;
+ string[] directories = options.ExtraSearchDirs.Split(';');
+
+ foreach(string dir in directories)
+ {
+ string expanded = Environment.ExpandEnvironmentVariables(dir);
+ Log.Info("Scanning files from {0}", expanded);
+ int count = AddFilesFromDir(expanded);
+ Log.Info("Added {0} files", count);
+ }
+ }
+
+ private int AddFilesFromDir(string dirname)
+ {
+ int count = 0;
+
+ foreach(string file in Directory.GetFiles(dirname))
+ {
+ SearchEntry entry = new SearchEntry();
+ entry.fullPath = file;
+ entry.key = file.ToLower();
+ entry.filename = Path.GetFileName(file);
+ m_solutionFiles.Add(entry);
+
+ count++;
+ }
+
+ foreach(string dir in Directory.GetDirectories(dirname))
+ {
+ count += AddFilesFromDir(dir);
+ }
+
+ return count;
}

private void AddProjectItems(ProjectItems projectItems)

Reply all
Reply to author
Forward
0 new messages