Skip to content

Commit 300ef94

Browse files
ensure prepare rename does not try to register with vscode (#414)
1 parent e961bdd commit 300ef94

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

src/Protocol/Document/IPrepareRenameHandler.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ namespace OmniSharp.Extensions.LanguageServer.Protocol.Document
1313
[GenerateHandlerMethods]
1414
[GenerateRequestMethods(typeof(ITextDocumentLanguageClient), typeof(ILanguageClient))]
1515
public interface IPrepareRenameHandler : IJsonRpcRequestHandler<PrepareRenameParams, RangeOrPlaceholderRange?>, IRegistration<TextDocumentRegistrationOptions>,
16-
ICapability<RenameCapability>
16+
ICapability<RenameCapability>, IDoesNotParticipateInRegistration
1717
{
1818
}
1919

test/Lsp.Tests/Integration/RenameTests.cs

+15
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
using OmniSharp.Extensions.LanguageServer.Protocol.Models;
1515
using OmniSharp.Extensions.LanguageServer.Server;
1616
using Serilog.Events;
17+
using TestingUtils;
1718
using Xunit;
1819
using Xunit.Abstractions;
1920
using Range = OmniSharp.Extensions.LanguageServer.Protocol.Models.Range;
@@ -192,6 +193,20 @@ public async Task Should_Handle_Prepare_Rename_With_DefaultBehavior()
192193
result!.IsDefaultBehavior.Should().BeTrue();
193194
}
194195

196+
[Fact]
197+
public async Task Should_Not_Register_Prepare_Rename()
198+
{
199+
var (client, _) = await Initialize(ClientOptionsAction, ServerOptionsAction);
200+
await client.DelayUntil(
201+
c => client.RegistrationManager.CurrentRegistrations.Any(z => z.Method == TextDocumentNames.Rename),
202+
CancellationToken
203+
);
204+
205+
await SettleNext();
206+
207+
client.RegistrationManager.CurrentRegistrations.Should().NotContain(z => z.Method == TextDocumentNames.PrepareRename);
208+
}
209+
195210
private void ServerOptionsAction(LanguageServerOptions obj)
196211
{
197212
obj.OnPrepareRename(

0 commit comments

Comments
 (0)