fix(avalonia): update PluginManager API calls for Release build
Some checks failed
Build / build (push) Has been cancelled

- Replace PluginManager.AllPlugins with GetAllLoadedPlugins()
- Replace PluginManager.NonGlobalPlugins with GetNonGlobalPlugins()
- Fix InitializePluginsAsync to pass IResultUpdateRegister parameter
- Fix QueryBuilder.Build to pass required 3 parameters
- Implement IResultUpdateRegister interface on MainViewModel
This commit is contained in:
Shengkai Lin 2026-02-01 18:01:46 +08:00
parent c51c029263
commit 5e1ec2b3e9
3 changed files with 16 additions and 5 deletions

View file

@ -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

View file

@ -28,7 +28,7 @@ public enum ActiveView
/// <summary>
/// MainViewModel for Avalonia - minimal implementation for plugin queries.
/// </summary>
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();
}
/// <summary>
/// Register a plugin to receive results updated event.
/// Required by IResultUpdateRegister for plugin initialization.
/// </summary>
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();
/// <summary>
@ -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();

View file

@ -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));