diff --git a/src/Protocol/Document/IPrepareRenameHandler.cs b/src/Protocol/Document/IPrepareRenameHandler.cs index 4d8b7f160..dec61240b 100644 --- a/src/Protocol/Document/IPrepareRenameHandler.cs +++ b/src/Protocol/Document/IPrepareRenameHandler.cs @@ -13,7 +13,7 @@ namespace OmniSharp.Extensions.LanguageServer.Protocol.Document [GenerateHandlerMethods] [GenerateRequestMethods(typeof(ITextDocumentLanguageClient), typeof(ILanguageClient))] public interface IPrepareRenameHandler : IJsonRpcRequestHandler, IRegistration, - ICapability + ICapability, IDoesNotParticipateInRegistration { } diff --git a/test/Lsp.Tests/Integration/RenameTests.cs b/test/Lsp.Tests/Integration/RenameTests.cs index dd8726f39..bab37f116 100644 --- a/test/Lsp.Tests/Integration/RenameTests.cs +++ b/test/Lsp.Tests/Integration/RenameTests.cs @@ -14,6 +14,7 @@ using OmniSharp.Extensions.LanguageServer.Protocol.Models; using OmniSharp.Extensions.LanguageServer.Server; using Serilog.Events; +using TestingUtils; using Xunit; using Xunit.Abstractions; using Range = OmniSharp.Extensions.LanguageServer.Protocol.Models.Range; @@ -192,6 +193,20 @@ public async Task Should_Handle_Prepare_Rename_With_DefaultBehavior() result!.IsDefaultBehavior.Should().BeTrue(); } + [Fact] + public async Task Should_Not_Register_Prepare_Rename() + { + var (client, _) = await Initialize(ClientOptionsAction, ServerOptionsAction); + await client.DelayUntil( + c => client.RegistrationManager.CurrentRegistrations.Any(z => z.Method == TextDocumentNames.Rename), + CancellationToken + ); + + await SettleNext(); + + client.RegistrationManager.CurrentRegistrations.Should().NotContain(z => z.Method == TextDocumentNames.PrepareRename); + } + private void ServerOptionsAction(LanguageServerOptions obj) { obj.OnPrepareRename(