diff --git a/WelsonJS.Toolkit/WelsonJS.Launcher/ResourceTools/Completion.cs b/WelsonJS.Toolkit/WelsonJS.Launcher/ResourceTools/Completion.cs index 5ff7ecf..f8418f0 100644 --- a/WelsonJS.Toolkit/WelsonJS.Launcher/ResourceTools/Completion.cs +++ b/WelsonJS.Toolkit/WelsonJS.Launcher/ResourceTools/Completion.cs @@ -19,7 +19,6 @@ namespace WelsonJS.Launcher.ResourceTools private readonly HttpClient _httpClient; private const string Prefix = "completion/"; private readonly ConcurrentBag DiscoveredExecutables = new ConcurrentBag(); - private const int SearchMaxResults = 200; public Completion(ResourceServer server, HttpClient httpClient) { @@ -44,9 +43,9 @@ namespace WelsonJS.Launcher.ResourceTools try { - List completionItems = DiscoveredExecutables.ToList() + List completionItems = DiscoveredExecutables .Where(exec => exec.IndexOf(word, 0, StringComparison.OrdinalIgnoreCase) > -1) - .Take(SearchMaxResults) // Limit the number of results + .Take(100) // Limit the number of results .Select(exec => new CompletionItem { Label = Path.GetFileName(exec), @@ -152,7 +151,7 @@ namespace WelsonJS.Launcher.ResourceTools } } - private void SearchAllExecutables(string path, SearchOption searchOption = SearchOption.AllDirectories) + private void SearchAllExecutables(string path, SearchOption searchOption = SearchOption.AllDirectories, int maxFiles = 1000) { if (!Directory.Exists(path)) { @@ -163,7 +162,7 @@ namespace WelsonJS.Launcher.ResourceTools try { var executableFiles = Directory.GetFiles(path, "*.exe", searchOption) - .Take(SearchMaxResults) + .Take(maxFiles) .OrderByDescending(f => new FileInfo(f).Length) .ToList();