From 680ed77daa2b21d86aed41eb0728991f39490f3e Mon Sep 17 00:00:00 2001 From: Jeremy Date: Wed, 30 Nov 2022 21:06:54 +1100 Subject: [PATCH] add abstract create plugin pair method to handle each plugin type --- .../Environments/AbstractPluginEnvironment.cs | 10 +++------- .../ExternalPlugins/Environments/PythonEnvironment.cs | 10 ++++++++++ .../Environments/TypeScriptEnvironment.cs | 10 ++++++++++ Flow.Launcher.Core/Plugin/NodePlugin.cs | 5 +---- 4 files changed, 24 insertions(+), 11 deletions(-) diff --git a/Flow.Launcher.Core/ExternalPlugins/Environments/AbstractPluginEnvironment.cs b/Flow.Launcher.Core/ExternalPlugins/Environments/AbstractPluginEnvironment.cs index 87a6aa5f3..8e5a7e484 100644 --- a/Flow.Launcher.Core/ExternalPlugins/Environments/AbstractPluginEnvironment.cs +++ b/Flow.Launcher.Core/ExternalPlugins/Environments/AbstractPluginEnvironment.cs @@ -112,6 +112,8 @@ namespace Flow.Launcher.Core.ExternalPlugins.Environments } + internal abstract PluginPair CreatePluginPair(string filePath, PluginMetadata metadata); + private IEnumerable SetPathForPluginPairs(string filePath, string languageToSet) { var pluginPairs = new List(); @@ -119,13 +121,7 @@ namespace Flow.Launcher.Core.ExternalPlugins.Environments foreach (var metadata in PluginMetadataList) { if (metadata.Language.Equals(languageToSet, StringComparison.OrdinalIgnoreCase)) - { - pluginPairs.Add(new PluginPair - { - Plugin = new PythonPlugin(filePath), - Metadata = metadata - }); - } + pluginPairs.Add(CreatePluginPair(filePath, metadata)); } return pluginPairs; diff --git a/Flow.Launcher.Core/ExternalPlugins/Environments/PythonEnvironment.cs b/Flow.Launcher.Core/ExternalPlugins/Environments/PythonEnvironment.cs index 23517e37f..e0eebe30e 100644 --- a/Flow.Launcher.Core/ExternalPlugins/Environments/PythonEnvironment.cs +++ b/Flow.Launcher.Core/ExternalPlugins/Environments/PythonEnvironment.cs @@ -1,4 +1,5 @@ using Droplex; +using Flow.Launcher.Core.Plugin; using Flow.Launcher.Infrastructure.UserSettings; using Flow.Launcher.Plugin; using Flow.Launcher.Plugin.SharedCommands; @@ -34,5 +35,14 @@ namespace Flow.Launcher.Core.ExternalPlugins.Environments PluginsSettingsFilePath = ExecutablePath; } + + internal override PluginPair CreatePluginPair(string filePath, PluginMetadata metadata) + { + return new PluginPair + { + Plugin = new PythonPlugin(filePath), + Metadata = metadata + }; + } } } diff --git a/Flow.Launcher.Core/ExternalPlugins/Environments/TypeScriptEnvironment.cs b/Flow.Launcher.Core/ExternalPlugins/Environments/TypeScriptEnvironment.cs index d70b5dc31..ab021afe3 100644 --- a/Flow.Launcher.Core/ExternalPlugins/Environments/TypeScriptEnvironment.cs +++ b/Flow.Launcher.Core/ExternalPlugins/Environments/TypeScriptEnvironment.cs @@ -4,6 +4,7 @@ using Flow.Launcher.Infrastructure.UserSettings; using Flow.Launcher.Plugin.SharedCommands; using Flow.Launcher.Plugin; using System.IO; +using Flow.Launcher.Core.Plugin; namespace Flow.Launcher.Core.ExternalPlugins.Environments { @@ -30,5 +31,14 @@ namespace Flow.Launcher.Core.ExternalPlugins.Environments PluginsSettingsFilePath = ExecutablePath; } + + internal override PluginPair CreatePluginPair(string filePath, PluginMetadata metadata) + { + return new PluginPair + { + Plugin = new NodePlugin(filePath), + Metadata = metadata + }; + } } } diff --git a/Flow.Launcher.Core/Plugin/NodePlugin.cs b/Flow.Launcher.Core/Plugin/NodePlugin.cs index 6a161029b..fc4186100 100644 --- a/Flow.Launcher.Core/Plugin/NodePlugin.cs +++ b/Flow.Launcher.Core/Plugin/NodePlugin.cs @@ -17,7 +17,6 @@ namespace Flow.Launcher.Core.Plugin { private readonly ProcessStartInfo _startInfo; - // TODO: Remove all, not used public override string SupportedLanguage { get; set; } = AllowedLanguage.Executable; public NodePlugin(string filename) @@ -39,9 +38,7 @@ namespace Flow.Launcher.Core.Plugin } protected override string Request(JsonRPCRequestModel rpcRequest, CancellationToken token = default) - { - // CONTEXT MENU NOT WORKING ?? - + { // since this is not static, request strings will build up in ArgumentList if index is not specified _startInfo.ArgumentList[1] = rpcRequest.ToString(); return Execute(_startInfo);