Skip to content

ensure facade interfaces get registered in external service collection #477

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 15, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions src/Client/LanguageClientServiceCollectionExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -113,13 +113,18 @@ public static IServiceCollection AddLanguageClient(this IServiceCollection servi
{
services.RemoveAll<LanguageClient>();
services.RemoveAll<ILanguageClient>();
services.RemoveAll<ILanguageClientFacade>();
services.AddSingleton<ILanguageClient>(
_ =>
throw new NotSupportedException("LanguageClient has been registered multiple times, you must use LanguageClient instead")
throw new NotSupportedException("LanguageClient has been registered multiple times, you must use LanguageClientResolver instead")
);
services.AddSingleton<ILanguageClientFacade>(
_ =>
throw new NotSupportedException("LanguageClient has been registered multiple times, you must use LanguageClientResolver instead")
);
services.AddSingleton<LanguageClient>(
_ =>
throw new NotSupportedException("LanguageClient has been registered multiple times, you must use LanguageClient instead")
throw new NotSupportedException("LanguageClient has been registered multiple times, you must use LanguageClientResolver instead")
);
}

Expand All @@ -129,6 +134,7 @@ public static IServiceCollection AddLanguageClient(this IServiceCollection servi
services.TryAddSingleton<LanguageClientResolver>();
services.TryAddSingleton(_ => _.GetRequiredService<LanguageClientResolver>().Get(name));
services.TryAddSingleton<ILanguageClient>(_ => _.GetRequiredService<LanguageClientResolver>().Get(name));
services.TryAddSingleton<ILanguageClientFacade>(_ => _.GetRequiredService<LanguageClientResolver>().Get(name));

if (configureOptions != null)
{
Expand Down
10 changes: 8 additions & 2 deletions src/Dap.Client/DebugAdapterClientServiceCollectionExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -97,13 +97,18 @@ public static IServiceCollection AddDebugAdapterClient(this IServiceCollection s
{
services.RemoveAll<DebugAdapterClient>();
services.RemoveAll<IDebugAdapterClient>();
services.RemoveAll<IDebugAdapterClientFacade>();
services.AddSingleton<IDebugAdapterClient>(
_ =>
throw new NotSupportedException("DebugAdapterClient has been registered multiple times, you must use DebugAdapterClient instead")
throw new NotSupportedException("DebugAdapterClient has been registered multiple times, you must use DebugAdapterClientResolver instead")
);
services.AddSingleton<IDebugAdapterClientFacade>(
_ =>
throw new NotSupportedException("DebugAdapterClient has been registered multiple times, you must use DebugAdapterClientResolver instead")
);
services.AddSingleton<DebugAdapterClient>(
_ =>
throw new NotSupportedException("DebugAdapterClient has been registered multiple times, you must use DebugAdapterClient instead")
throw new NotSupportedException("DebugAdapterClient has been registered multiple times, you must use DebugAdapterClientResolver instead")
);
}

Expand All @@ -113,6 +118,7 @@ public static IServiceCollection AddDebugAdapterClient(this IServiceCollection s
services.TryAddSingleton<DebugAdapterClientResolver>();
services.TryAddSingleton(_ => _.GetRequiredService<DebugAdapterClientResolver>().Get(name));
services.TryAddSingleton<IDebugAdapterClient>(_ => _.GetRequiredService<DebugAdapterClientResolver>().Get(name));
services.TryAddSingleton<IDebugAdapterClientFacade>(_ => _.GetRequiredService<DebugAdapterClientResolver>().Get(name));

if (configureOptions != null)
{
Expand Down
3 changes: 1 addition & 2 deletions src/Dap.Protocol/Client/IDebugAdapterClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,8 @@

namespace OmniSharp.Extensions.DebugAdapter.Protocol.Client
{
public interface IDebugAdapterClient : IDebugAdapterClientProxy, IDisposable
public interface IDebugAdapterClient : IDebugAdapterClientFacade, IDisposable
{
Task Initialize(CancellationToken token);
IDebugAdapterClientProgressManager ProgressManager { get; }
}
}
10 changes: 8 additions & 2 deletions src/Dap.Server/DebugAdapterServerServiceCollectionExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -81,13 +81,18 @@ public static IServiceCollection AddDebugAdapterServer(this IServiceCollection s
{
services.RemoveAll<DebugAdapterServer>();
services.RemoveAll<IDebugAdapterServer>();
services.RemoveAll<IDebugAdapterServerFacade>();
services.AddSingleton<IDebugAdapterServer>(
_ =>
throw new NotSupportedException("DebugAdapterServer has been registered multiple times, you must use DebugAdapterServer instead")
throw new NotSupportedException("DebugAdapterServer has been registered multiple times, you must use DebugAdapterServerResolver instead")
);
services.AddSingleton<IDebugAdapterServerFacade>(
_ =>
throw new NotSupportedException("DebugAdapterServer has been registered multiple times, you must use DebugAdapterServerResolver instead")
);
services.AddSingleton<DebugAdapterServer>(
_ =>
throw new NotSupportedException("DebugAdapterServer has been registered multiple times, you must use DebugAdapterServer instead")
throw new NotSupportedException("DebugAdapterServer has been registered multiple times, you must use DebugAdapterServerResolver instead")
);
}

Expand All @@ -97,6 +102,7 @@ public static IServiceCollection AddDebugAdapterServer(this IServiceCollection s
services.TryAddSingleton<DebugAdapterServerResolver>();
services.TryAddSingleton(_ => _.GetRequiredService<DebugAdapterServerResolver>().Get(name));
services.TryAddSingleton<IDebugAdapterServer>(_ => _.GetRequiredService<DebugAdapterServerResolver>().Get(name));
services.TryAddSingleton<IDebugAdapterServerFacade>(_ => _.GetRequiredService<DebugAdapterServerResolver>().Get(name));

if (configureOptions != null)
{
Expand Down
10 changes: 8 additions & 2 deletions src/Server/LanguageServerServiceCollectionExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -125,13 +125,18 @@ public static IServiceCollection AddLanguageServer(this IServiceCollection servi
{
services.RemoveAll<LanguageServer>();
services.RemoveAll<ILanguageServer>();
services.RemoveAll<ILanguageServerFacade>();
services.AddSingleton<ILanguageServer>(
_ =>
throw new NotSupportedException("LanguageServer has been registered multiple times, you must use LanguageServer instead")
throw new NotSupportedException("LanguageServer has been registered multiple times, you must use LanguageServerResolver instead")
);
services.AddSingleton<ILanguageServerFacade>(
_ =>
throw new NotSupportedException("LanguageServer has been registered multiple times, you must use LanguageServerResolver instead")
);
services.AddSingleton<LanguageServer>(
_ =>
throw new NotSupportedException("LanguageServer has been registered multiple times, you must use LanguageServer instead")
throw new NotSupportedException("LanguageServer has been registered multiple times, you must use LanguageServerResolver instead")
);
}

Expand All @@ -141,6 +146,7 @@ public static IServiceCollection AddLanguageServer(this IServiceCollection servi
services.TryAddSingleton<LanguageServerResolver>();
services.TryAddSingleton(_ => _.GetRequiredService<LanguageServerResolver>().Get(name));
services.TryAddSingleton<ILanguageServer>(_ => _.GetRequiredService<LanguageServerResolver>().Get(name));
services.TryAddSingleton<ILanguageServerFacade>(_ => _.GetRequiredService<LanguageServerResolver>().Get(name));

if (configureOptions != null)
{
Expand Down