mirror of
https://github.com/microsoft/PowerToys.git
synced 2024-12-15 03:59:15 +08:00
Merge pull request #319 from danisein/dev
Auto completion for the folder plugin
This commit is contained in:
commit
5ffb7bba83
@ -118,11 +118,11 @@ namespace Wox.Plugin.Folder
|
|||||||
if (driverNames != null && !driverNames.Any(input.StartsWith))
|
if (driverNames != null && !driverNames.Any(input.StartsWith))
|
||||||
return results;
|
return results;
|
||||||
|
|
||||||
if (!input.EndsWith("\\"))
|
//if (!input.EndsWith("\\"))
|
||||||
{
|
//{
|
||||||
//"c:" means "the current directory on the C drive" whereas @"c:\" means "root of the C drive"
|
// //"c:" means "the current directory on the C drive" whereas @"c:\" means "root of the C drive"
|
||||||
input = input + "\\";
|
// input = input + "\\";
|
||||||
}
|
//}
|
||||||
results.AddRange(QueryInternal_Directory_Exists(input));
|
results.AddRange(QueryInternal_Directory_Exists(input));
|
||||||
|
|
||||||
return results;
|
return results;
|
||||||
@ -142,9 +142,34 @@ namespace Wox.Plugin.Folder
|
|||||||
private List<Result> QueryInternal_Directory_Exists(string rawQuery)
|
private List<Result> QueryInternal_Directory_Exists(string rawQuery)
|
||||||
{
|
{
|
||||||
var results = new List<Result>();
|
var results = new List<Result>();
|
||||||
if (!Directory.Exists(rawQuery)) return results;
|
|
||||||
|
|
||||||
results.Add(new Result("Open current directory", "Images/folder.png")
|
string incompleteName = "";
|
||||||
|
if (!Directory.Exists(rawQuery + "\\"))
|
||||||
|
{
|
||||||
|
//if the last component of the path is incomplete,
|
||||||
|
//then make auto complete for it.
|
||||||
|
int index = rawQuery.LastIndexOf('\\');
|
||||||
|
if (index > 0 && index < (rawQuery.Length - 1))
|
||||||
|
{
|
||||||
|
incompleteName = rawQuery.Substring(index + 1);
|
||||||
|
incompleteName = incompleteName.ToLower();
|
||||||
|
rawQuery = rawQuery.Substring(0, index + 1);
|
||||||
|
if (!Directory.Exists(rawQuery))
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!rawQuery.EndsWith("\\"))
|
||||||
|
rawQuery += "\\";
|
||||||
|
}
|
||||||
|
|
||||||
|
string firstResult = "Open current directory";
|
||||||
|
if (incompleteName.Length > 0)
|
||||||
|
firstResult = "Open " + rawQuery;
|
||||||
|
results.Add(new Result(firstResult, "Images/folder.png")
|
||||||
{
|
{
|
||||||
Score = 10000,
|
Score = 10000,
|
||||||
Action = c =>
|
Action = c =>
|
||||||
@ -160,6 +185,8 @@ namespace Wox.Plugin.Folder
|
|||||||
{
|
{
|
||||||
if ((dir.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden) continue;
|
if ((dir.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden) continue;
|
||||||
|
|
||||||
|
if (incompleteName.Length != 0 && !dir.Name.ToLower().StartsWith(incompleteName))
|
||||||
|
continue;
|
||||||
DirectoryInfo dirCopy = dir;
|
DirectoryInfo dirCopy = dir;
|
||||||
var result = new Result(dir.Name, "Images/folder.png", "Ctrl + Enter to open the directory")
|
var result = new Result(dir.Name, "Images/folder.png", "Ctrl + Enter to open the directory")
|
||||||
{
|
{
|
||||||
@ -191,7 +218,8 @@ namespace Wox.Plugin.Folder
|
|||||||
foreach (FileInfo file in files)
|
foreach (FileInfo file in files)
|
||||||
{
|
{
|
||||||
if ((file.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden) continue;
|
if ((file.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden) continue;
|
||||||
|
if (incompleteName.Length != 0 && !file.Name.ToLower().StartsWith(incompleteName))
|
||||||
|
continue;
|
||||||
string filePath = file.FullName;
|
string filePath = file.FullName;
|
||||||
var result = new Result(Path.GetFileName(filePath), "Images/file.png")
|
var result = new Result(Path.GetFileName(filePath), "Images/file.png")
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user