diff --git a/Flow.Launcher.Avalonia/App.axaml.cs b/Flow.Launcher.Avalonia/App.axaml.cs
index 4afb52982..d116a8a57 100644
--- a/Flow.Launcher.Avalonia/App.axaml.cs
+++ b/Flow.Launcher.Avalonia/App.axaml.cs
@@ -128,9 +128,9 @@ public partial class App : Application
{
Log.Info(ClassName, "Loading plugins...");
PluginManager.LoadPlugins(_settings!.PluginSettings);
- Log.Info(ClassName, $"Loaded {PluginManager.AllPlugins.Count} plugins");
+ Log.Info(ClassName, $"Loaded {PluginManager.GetAllLoadedPlugins().Count} plugins");
- await PluginManager.InitializePluginsAsync();
+ await PluginManager.InitializePluginsAsync(_mainVM!);
Log.Info(ClassName, "Plugins initialized");
// Update plugin translations after they are initialized
diff --git a/Flow.Launcher.Avalonia/ViewModel/MainViewModel.cs b/Flow.Launcher.Avalonia/ViewModel/MainViewModel.cs
index ac1cb02ae..15a7d9153 100644
--- a/Flow.Launcher.Avalonia/ViewModel/MainViewModel.cs
+++ b/Flow.Launcher.Avalonia/ViewModel/MainViewModel.cs
@@ -28,7 +28,7 @@ public enum ActiveView
///
/// MainViewModel for Avalonia - minimal implementation for plugin queries.
///
-public partial class MainViewModel : ObservableObject
+public partial class MainViewModel : ObservableObject, IResultUpdateRegister
{
private static readonly string ClassName = nameof(MainViewModel);
private readonly Settings _settings;
@@ -190,6 +190,17 @@ public partial class MainViewModel : ObservableObject
_ = QueryAsync();
}
+ ///
+ /// Register a plugin to receive results updated event.
+ /// Required by IResultUpdateRegister for plugin initialization.
+ ///
+ public void RegisterResultsUpdatedEvent(PluginPair pair)
+ {
+ // Avalonia uses a simplified result update model - plugins that implement
+ // IResultUpdated will have their events registered here when needed.
+ // For now, this is a stub as the basic query flow handles result updates.
+ }
+
public void RequestHide() => HideRequested?.Invoke();
///
@@ -277,7 +288,7 @@ public partial class MainViewModel : ObservableObject
try
{
- var query = QueryBuilder.Build(queryText, PluginManager.NonGlobalPlugins);
+ var query = QueryBuilder.Build(QueryText, queryText, PluginManager.GetNonGlobalPlugins());
if (query == null)
{
Results.Clear();
diff --git a/Flow.Launcher.Avalonia/ViewModel/SettingPages/PluginsSettingsViewModel.cs b/Flow.Launcher.Avalonia/ViewModel/SettingPages/PluginsSettingsViewModel.cs
index 5de3fd8cb..21afb6c20 100644
--- a/Flow.Launcher.Avalonia/ViewModel/SettingPages/PluginsSettingsViewModel.cs
+++ b/Flow.Launcher.Avalonia/ViewModel/SettingPages/PluginsSettingsViewModel.cs
@@ -64,7 +64,7 @@ public partial class PluginsSettingsViewModel : ObservableObject
private void LoadPlugins()
{
- var allPlugins = PluginManager.AllPlugins;
+ var allPlugins = PluginManager.GetAllLoadedPlugins();
foreach (var plugin in allPlugins.OrderBy(p => p.Metadata.Disabled).ThenBy(p => p.Metadata.Name))
{
Plugins.Add(new PluginItemViewModel(plugin, _settings));