From 906602090dc0530dabb79aee62e1975e33b652e1 Mon Sep 17 00:00:00 2001 From: Mike Griese Date: Thu, 7 Aug 2025 16:09:57 -0500 Subject: [PATCH] warning - extreme stupid levels detected MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (98%) ■■■■■■■■■□ --- .../CommandProviderWrapper.cs | 13 +++++++++++++ .../SamplePagesCommandsProvider.cs | 8 ++++++-- .../Microsoft.CommandPalette.Extensions.idl | 6 +++++- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/CommandProviderWrapper.cs b/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/CommandProviderWrapper.cs index 852babe4b7..04e2abef76 100644 --- a/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/CommandProviderWrapper.cs +++ b/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/CommandProviderWrapper.cs @@ -153,6 +153,19 @@ public sealed class CommandProviderWrapper // On a BG thread here fallbacks = model.FallbackCommands(); + if (model is ICommandProvider2 two) + { + var apiExtensions = two.GetApiExtensionStubs(); + Logger.LogDebug($"Found extensions {apiExtensions.Select(a => a.ToString())}"); + foreach (var a in apiExtensions) + { + if (a is ICommand2 command2) + { + Logger.LogDebug($"Found an ICommand2"); + } + } + } + Id = model.Id; DisplayName = model.DisplayName; Icon = new(model.Icon); diff --git a/src/modules/cmdpal/ext/SamplePagesExtension/SamplePagesCommandsProvider.cs b/src/modules/cmdpal/ext/SamplePagesExtension/SamplePagesCommandsProvider.cs index 7e2301d74b..b7f82369d1 100644 --- a/src/modules/cmdpal/ext/SamplePagesExtension/SamplePagesCommandsProvider.cs +++ b/src/modules/cmdpal/ext/SamplePagesExtension/SamplePagesCommandsProvider.cs @@ -9,7 +9,7 @@ using Windows.Foundation.Collections; namespace SamplePagesExtension; -public partial class SamplePagesCommandsProvider : CommandProvider +public partial class SamplePagesCommandsProvider : CommandProvider, ICommandProvider2 { public SamplePagesCommandsProvider() { @@ -18,7 +18,6 @@ public partial class SamplePagesCommandsProvider : CommandProvider } private readonly ICommandItem[] _commands = [ - new CommandItem(new SupportCommandsWithProperties()), new CommandItem(new SamplesListPage()) { Title = "Sample Pages", @@ -31,6 +30,11 @@ public partial class SamplePagesCommandsProvider : CommandProvider return _commands; } + public object[] GetApiExtensionStubs() + { + return [new SupportCommandsWithProperties()]; + } + private sealed partial class SupportCommandsWithProperties : ICommand2 { public IPropertySet OtherProperties => null; diff --git a/src/modules/cmdpal/extensionsdk/Microsoft.CommandPalette.Extensions/Microsoft.CommandPalette.Extensions.idl b/src/modules/cmdpal/extensionsdk/Microsoft.CommandPalette.Extensions/Microsoft.CommandPalette.Extensions.idl index dbd76c0b46..16aabf06c3 100644 --- a/src/modules/cmdpal/extensionsdk/Microsoft.CommandPalette.Extensions/Microsoft.CommandPalette.Extensions.idl +++ b/src/modules/cmdpal/extensionsdk/Microsoft.CommandPalette.Extensions/Microsoft.CommandPalette.Extensions.idl @@ -374,5 +374,9 @@ namespace Microsoft.CommandPalette.Extensions void InitializeWithHost(IExtensionHost host); }; - + [contract(Microsoft.CommandPalette.Extensions.ExtensionsContract, 1)] + interface ICommandProvider2 requires ICommandProvider + { + Object[] GetApiExtensionStubs(); + }; }