diff --git a/Flow.Launcher.Core/Plugin/PluginConfig.cs b/Flow.Launcher.Core/Plugin/PluginConfig.cs index d12dee0c4..c36534537 100644 --- a/Flow.Launcher.Core/Plugin/PluginConfig.cs +++ b/Flow.Launcher.Core/Plugin/PluginConfig.cs @@ -1,10 +1,8 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.IO; -using System.Threading.Tasks; using Newtonsoft.Json; -using Flow.Launcher.Infrastructure.Exception; using Flow.Launcher.Infrastructure.Logger; using Flow.Launcher.Plugin; @@ -14,23 +12,17 @@ namespace Flow.Launcher.Core.Plugin internal abstract class PluginConfig { private const string PluginConfigName = "plugin.json"; - private static readonly List PluginMetadatas = new List(); /// - /// Parse plugin metadata in giving directories + /// Parse plugin metadata in the given directories /// /// /// public static List Parse(string[] pluginDirectories) { - PluginMetadatas.Clear(); + var allPluginMetadata = new List(); var directories = pluginDirectories.SelectMany(Directory.GetDirectories); - ParsePluginConfigs(directories); - return PluginMetadatas; - } - private static void ParsePluginConfigs(IEnumerable directories) - { // todo use linq when diable plugin is implmented since parallel.foreach + list is not thread saft foreach (var directory in directories) { @@ -50,10 +42,12 @@ namespace Flow.Launcher.Core.Plugin PluginMetadata metadata = GetPluginMetadata(directory); if (metadata != null) { - PluginMetadatas.Add(metadata); + allPluginMetadata.Add(metadata); } } } + + return allPluginMetadata; } private static PluginMetadata GetPluginMetadata(string pluginDirectory) @@ -81,7 +75,6 @@ namespace Flow.Launcher.Core.Plugin return null; } - if (!AllowedLanguage.IsAllowed(metadata.Language)) { Log.Error($"|PluginConfig.GetPluginMetadata|Invalid language <{metadata.Language}> for config <{configPath}>");