diff --git a/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/Extensions/IServiceCollectionExtensions.cs b/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/Extensions/IServiceCollectionExtensions.cs index 7544d4cd184..91b59c51e62 100644 --- a/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/Extensions/IServiceCollectionExtensions.cs +++ b/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/Extensions/IServiceCollectionExtensions.cs @@ -43,7 +43,7 @@ public static void AddLifeCycleServices(this IServiceCollection services, RazorL services.AddSingleton(razorLifeCycleManager); services.AddSingleton(); services.AddSingleton, CapabilitiesManager>(sp => sp.GetRequiredService()); - services.AddSingleton, RazorRequestContextFactory>(); + services.AddSingleton, RazorRequestContextFactory>(); services.AddSingleton(); diff --git a/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/RazorLanguageServer.cs b/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/RazorLanguageServer.cs index 9a0d5a4cf3e..4f277fd9cc0 100644 --- a/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/RazorLanguageServer.cs +++ b/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/RazorLanguageServer.cs @@ -46,7 +46,7 @@ internal partial class RazorLanguageServer : AbstractLanguageServer ConstructRequestExecutionQueue() { - var handlerProvider = this.HandlerProvider; + var handlerProvider = GetHandlerProvider(); var queue = new RazorRequestExecutionQueue(this, _logger, handlerProvider); queue.Start(); return queue; @@ -199,14 +199,11 @@ static void AddHandlers(IServiceCollection services, LanguageServerFeatureOption } } - protected override AbstractHandlerProvider HandlerProvider + protected override IHandlerProvider GetHandlerProvider() { - get - { - _handlerProvider ??= base.HandlerProvider; + _handlerProvider ??= base.GetHandlerProvider(); - return _handlerProvider; - } + return _handlerProvider; } internal T GetRequiredService() where T : notnull @@ -231,7 +228,10 @@ public TestAccessor(RazorLanguageServer server) _server = server; } - public AbstractHandlerProvider HandlerProvider => _server.HandlerProvider; + public IHandlerProvider GetHandlerProvider() + { + return _server.GetHandlerProvider(); + } public RazorRequestExecutionQueue GetRequestExecutionQueue() { diff --git a/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/RazorRequestContextFactory.cs b/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/RazorRequestContextFactory.cs index 767aee55759..5a182465136 100644 --- a/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/RazorRequestContextFactory.cs +++ b/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/RazorRequestContextFactory.cs @@ -13,16 +13,16 @@ namespace Microsoft.AspNetCore.Razor.LanguageServer; -internal class RazorRequestContextFactory(ILspServices lspServices) : AbstractRequestContextFactory +internal class RazorRequestContextFactory(ILspServices lspServices) : IRequestContextFactory { private readonly ILspServices _lspServices = lspServices; - public override Task CreateRequestContextAsync(IQueueItem queueItem, IMethodHandler methodHandler, TRequestParams @params, CancellationToken cancellationToken) + public Task CreateRequestContextAsync(IQueueItem queueItem, TRequestParams @params, CancellationToken cancellationToken) { var logger = _lspServices.GetRequiredService().CreateLogger(); VersionedDocumentContext? documentContext = null; - var textDocumentHandler = methodHandler as ITextDocumentIdentifierHandler; + var textDocumentHandler = queueItem.MethodHandler as ITextDocumentIdentifierHandler; Uri? uri = null; var documentContextFactory = _lspServices.GetRequiredService(); diff --git a/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/RazorRequestExecutionQueue.cs b/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/RazorRequestExecutionQueue.cs index 0926cf2c168..a22d5b03b2e 100644 --- a/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/RazorRequestExecutionQueue.cs +++ b/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/RazorRequestExecutionQueue.cs @@ -13,7 +13,7 @@ internal class RazorRequestExecutionQueue : RequestExecutionQueue languageServer, ILspLogger logger, AbstractHandlerProvider handlerProvider) + public RazorRequestExecutionQueue(AbstractLanguageServer languageServer, ILspLogger logger, IHandlerProvider handlerProvider) : base(languageServer, logger, handlerProvider) { _capabilitiesManager = languageServer.GetLspServices().GetRequiredService(); diff --git a/src/Razor/test/Microsoft.AspNetCore.Razor.LanguageServer.Test/Hover/HoverInfoServiceTest.cs b/src/Razor/test/Microsoft.AspNetCore.Razor.LanguageServer.Test/Hover/HoverInfoServiceTest.cs index d20c1b4a767..d1a7cd6c04d 100644 --- a/src/Razor/test/Microsoft.AspNetCore.Razor.LanguageServer.Test/Hover/HoverInfoServiceTest.cs +++ b/src/Razor/test/Microsoft.AspNetCore.Razor.LanguageServer.Test/Hover/HoverInfoServiceTest.cs @@ -18,6 +18,7 @@ using Microsoft.AspNetCore.Razor.ProjectSystem; using Microsoft.AspNetCore.Razor.Test.Common.LanguageServer; using Microsoft.AspNetCore.Razor.Test.Common.Mef; +using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.Razor.ProjectSystem; using Microsoft.CodeAnalysis.Razor.Workspaces; using Microsoft.CodeAnalysis.Razor.Workspaces.Extensions; diff --git a/src/Razor/test/Microsoft.AspNetCore.Razor.LanguageServer.Test/RazorLanguageServerTest.cs b/src/Razor/test/Microsoft.AspNetCore.Razor.LanguageServer.Test/RazorLanguageServerTest.cs index 48f8a43d253..32a4e9e7615 100644 --- a/src/Razor/test/Microsoft.AspNetCore.Razor.LanguageServer.Test/RazorLanguageServerTest.cs +++ b/src/Razor/test/Microsoft.AspNetCore.Razor.LanguageServer.Test/RazorLanguageServerTest.cs @@ -57,7 +57,7 @@ public void AllHandlersRegisteredAsync() using var server = RazorLanguageServerWrapper.Create(serverStream, serverStream, LoggerFactory, NoOpTelemetryReporter.Instance); var innerServer = server.GetInnerLanguageServerForTesting(); - var handlerProvider = innerServer.GetTestAccessor().HandlerProvider; + var handlerProvider = innerServer.GetTestAccessor().GetHandlerProvider(); var registeredMethods = handlerProvider.GetRegisteredMethods(); var handlerTypes = typeof(RazorLanguageServerWrapper).Assembly.GetTypes()