using Microsoft.CommandPalette.Extensions; using System; using System.Runtime.InteropServices; using System.Threading; namespace CmdPalVsCode; [Guid("bf8979d5-eefa-4611-9597-8954f067630d")] public sealed partial class CmdPalVsCode : IExtension, IDisposable { private readonly ManualResetEvent _extensionDisposedEvent; private readonly CmdPalVsCodeCommandsProvider _provider = new(); public CmdPalVsCode(ManualResetEvent extensionDisposedEvent) { this._extensionDisposedEvent = extensionDisposedEvent; } public object? GetProvider(ProviderType providerType) { return providerType switch { ProviderType.Commands => _provider, _ => null, }; } public void Dispose() => this._extensionDisposedEvent.Set(); }