From fed130b0ce1931c75ab93636bee29b72ab6f81b4 Mon Sep 17 00:00:00 2001 From: Vic <10308169+VictoriousRaptor@users.noreply.github.com> Date: Thu, 17 Nov 2022 16:22:05 +0800 Subject: [PATCH] Filter common parent for PATH and custom sources --- Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs b/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs index f98b1d7f3..61dc146a8 100644 --- a/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs +++ b/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs @@ -414,7 +414,7 @@ namespace Flow.Launcher.Plugin.Program.Programs return programs; } - private static IEnumerable PATHPrograms(string[] suffixes, string[] protocols) + private static IEnumerable PATHPrograms(string[] suffixes, string[] protocols, List commonParents) { var pathEnv = Environment.GetEnvironmentVariable("Path"); if (String.IsNullOrEmpty(pathEnv)) @@ -424,6 +424,8 @@ namespace Flow.Launcher.Plugin.Program.Programs var paths = pathEnv.Split(";", StringSplitOptions.RemoveEmptyEntries).DistinctBy(p => p.ToLowerInvariant()); + paths = paths.Where(x => commonParents.All(parent => !x.StartsWith(parent, StringComparison.OrdinalIgnoreCase))); + var toFilter = paths.AsParallel().SelectMany(p => EnmuerateProgramsInDir(p, suffixes, recursive: false)); var programs = ExceptDisabledSource(toFilter.Distinct()) @@ -592,8 +594,8 @@ namespace Flow.Launcher.Plugin.Program.Programs if (settings.EnablePATHSource) { - var path = PATHPrograms(settings.GetSuffixes(), protocols); - autoIndexPrograms = autoIndexPrograms.Concat(path); + var path = PATHPrograms(settings.GetSuffixes(), protocols, commonParents); + programs = programs.Concat(path); } autoIndexPrograms = ProgramsHasher(autoIndexPrograms).ToArray();