Skip to content

Commit 0871a0b

Browse files
committed
use generic tasks
1 parent 97688ef commit 0871a0b

File tree

2 files changed

+29
-28
lines changed

2 files changed

+29
-28
lines changed

Flow.Launcher.Core/ExternalPlugins/Environments/AbstractPluginEnvironment.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ internal AbstractPluginEnvironment(List<PluginMetadata> pluginMetadataList, Plug
3838
PluginSettings = pluginSettings;
3939
}
4040

41-
internal IEnumerable<Task> Setup()
41+
internal IEnumerable<Task<PluginPair>> Setup()
4242
{
4343
if (!PluginMetadataList.Any(o => o.Language.Equals(Language, StringComparison.OrdinalIgnoreCase)))
44-
return new List<Task>();
44+
return new List<Task<PluginPair>>();
4545

4646
if (!string.IsNullOrEmpty(PluginsSettingsFilePath) && FilesFolders.FileExists(PluginsSettingsFilePath))
4747
{
@@ -88,7 +88,7 @@ internal IEnumerable<Task> Setup()
8888
$"Not able to successfully set {EnvName} path, setting's plugin executable path variable is still an empty string.",
8989
$"{Language}Environment");
9090

91-
return new List<Task>();
91+
return new List<Task<PluginPair>>();
9292
}
9393
}
9494

@@ -107,9 +107,9 @@ private void EnsureLatestInstalled(string expectedPath, string currentPath, stri
107107

108108
internal abstract PluginPair CreatePluginPair(string filePath, PluginMetadata metadata);
109109

110-
private IEnumerable<Task> SetPathForPluginPairs(string filePath, string languageToSet)
110+
private IEnumerable<Task<PluginPair>> SetPathForPluginPairs(string filePath, string languageToSet)
111111
{
112-
var tasks = new List<Task>();
112+
var tasks = new List<Task<PluginPair>>();
113113

114114
foreach (var metadata in PluginMetadataList)
115115
{

Flow.Launcher.Core/Plugin/PluginsLoader.cs

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,25 @@ public static async Task<List<PluginPair>> PluginsAsync(List<PluginMetadata> met
2525
{
2626
var dotnetPlugins = DotNetPlugins(metadatas);
2727

28+
await Task.WhenAll(dotnetPlugins);
29+
30+
if (!ErroredPlugins.IsEmpty)
31+
{
32+
var errorPluginString = String.Join(Environment.NewLine, ErroredPlugins);
33+
34+
var errorMessage = "The following "
35+
+ (ErroredPlugins.Count > 1 ? "plugins have " : "plugin has ")
36+
+ "errored and cannot be loaded:";
37+
38+
_ = Task.Run(() =>
39+
{
40+
MessageBox.Show($"{errorMessage}{Environment.NewLine}{Environment.NewLine}" +
41+
$"{errorPluginString}{Environment.NewLine}{Environment.NewLine}" +
42+
$"Please refer to the logs for more information", "",
43+
MessageBoxButtons.OK, MessageBoxIcon.Warning);
44+
});
45+
}
46+
2847
var pythonEnv = new PythonEnvironment(metadatas, settings);
2948
var pythonV2Env = new PythonV2Environment(metadatas, settings);
3049
var tsEnv = new TypeScriptEnvironment(metadatas, settings);
@@ -41,8 +60,7 @@ public static async Task<List<PluginPair>> PluginsAsync(List<PluginMetadata> met
4160
var executablePlugins = ExecutablePlugins(metadatas);
4261
var executableV2Plugins = ExecutableV2Plugins(metadatas);
4362

44-
var plugins = dotnetPlugins
45-
.Concat(pythonPlugins)
63+
var plugins = pythonPlugins
4664
.Concat(pythonV2Plugins)
4765
.Concat(tsPlugins)
4866
.Concat(jsPlugins)
@@ -52,26 +70,9 @@ public static async Task<List<PluginPair>> PluginsAsync(List<PluginMetadata> met
5270
.Concat(executableV2Plugins)
5371
.ToList();
5472

55-
await Task.WhenAll(plugins);
56-
57-
if (!ErroredPlugins.IsEmpty)
58-
{
59-
var errorPluginString = String.Join(Environment.NewLine, ErroredPlugins);
60-
61-
var errorMessage = "The following "
62-
+ (ErroredPlugins.Count > 1 ? "plugins have " : "plugin has ")
63-
+ "errored and cannot be loaded:";
64-
65-
_ = Task.Run(() =>
66-
{
67-
MessageBox.Show($"{errorMessage}{Environment.NewLine}{Environment.NewLine}" +
68-
$"{errorPluginString}{Environment.NewLine}{Environment.NewLine}" +
69-
$"Please refer to the logs for more information", "",
70-
MessageBoxButtons.OK, MessageBoxIcon.Warning);
71-
});
72-
}
73+
var pluginPairs = await Task.WhenAll(plugins);
7374

74-
return Plugins.ToList();
75+
return Plugins.Concat(pluginPairs).ToList();
7576
}
7677

7778
public static IEnumerable<Task> DotNetPlugins(List<PluginMetadata> source)
@@ -132,7 +133,7 @@ public static IEnumerable<Task> DotNetPlugins(List<PluginMetadata> source)
132133
}));
133134
}
134135

135-
public static IEnumerable<Task> ExecutablePlugins(IEnumerable<PluginMetadata> source)
136+
public static IEnumerable<Task<PluginPair>> ExecutablePlugins(IEnumerable<PluginMetadata> source)
136137
{
137138
return source
138139
.Where(o => o.Language.Equals(AllowedLanguage.Executable, StringComparison.OrdinalIgnoreCase))
@@ -146,7 +147,7 @@ public static IEnumerable<Task> ExecutablePlugins(IEnumerable<PluginMetadata> so
146147
}));
147148
}
148149

149-
public static IEnumerable<Task> ExecutableV2Plugins(IEnumerable<PluginMetadata> source)
150+
public static IEnumerable<Task<PluginPair>> ExecutableV2Plugins(IEnumerable<PluginMetadata> source)
150151
{
151152
return source
152153
.Where(o => o.Language.Equals(AllowedLanguage.ExecutableV2, StringComparison.OrdinalIgnoreCase))

0 commit comments

Comments
 (0)