Update json rpc plugin directory before loading plugins

This commit is contained in:
Jack251970 2025-02-25 10:22:39 +08:00
parent fe86e23dea
commit f8d0981898
2 changed files with 19 additions and 9 deletions

View file

@ -151,11 +151,26 @@ namespace Flow.Launcher.Core.Plugin
_metadatas = PluginConfig.Parse(Directories);
Settings = settings;
Settings.UpdatePluginSettings(_metadatas);
// Update Json RPC plugin directory before loading plugins so that we can pass the correct plugin directory
UpdateJsonRPCPluginDirectory(_metadatas);
AllPlugins = PluginsLoader.Plugins(_metadatas, Settings);
UpdatePluginDirectory(_metadatas);
// Update dotnet plugin directory after loading plugins because we need to get assembly name first
UpdateNotNetPluginDirectory(_metadatas);
}
private static void UpdatePluginDirectory(List<PluginMetadata> metadatas)
private static void UpdateJsonRPCPluginDirectory(List<PluginMetadata> metadatas)
{
foreach (var metadata in metadatas)
{
if (!AllowedLanguage.IsDotNet(metadata.Language))
{
metadata.PluginSettingsDirectoryPath = Path.Combine(DataLocation.PluginSettingsDirectory, metadata.Name);
metadata.PluginCacheDirectoryPath = Path.Combine(DataLocation.PluginCacheDirectory, metadata.Name);
}
}
}
private static void UpdateNotNetPluginDirectory(List<PluginMetadata> metadatas)
{
foreach (var metadata in metadatas)
{
@ -164,11 +179,6 @@ namespace Flow.Launcher.Core.Plugin
metadata.PluginSettingsDirectoryPath = Path.Combine(DataLocation.PluginSettingsDirectory, metadata.AssemblyName);
metadata.PluginCacheDirectoryPath = Path.Combine(DataLocation.PluginCacheDirectory, metadata.AssemblyName);
}
else
{
metadata.PluginSettingsDirectoryPath = Path.Combine(DataLocation.PluginSettingsDirectory, metadata.Name);
metadata.PluginCacheDirectoryPath = Path.Combine(DataLocation.PluginCacheDirectory, metadata.Name);
}
}
}

View file

@ -9,8 +9,6 @@ namespace Flow.Launcher.Plugin
/// </summary>
public class PluginMetadata : BaseModel
{
private string _pluginDirectory;
/// <summary>
/// Plugin ID.
/// </summary>
@ -69,6 +67,8 @@ namespace Flow.Launcher.Plugin
[JsonIgnore]
public string AssemblyName { get; internal set; }
private string _pluginDirectory;
/// <summary>
/// Plugin source directory.
/// </summary>