diff --git a/src/JsonRpc/InputHandler.cs b/src/JsonRpc/InputHandler.cs index aa1b2c577..80142f5e8 100644 --- a/src/JsonRpc/InputHandler.cs +++ b/src/JsonRpc/InputHandler.cs @@ -562,8 +562,6 @@ private SchedulerDelegate RouteNotification(IRequestDescriptor // ITS A RACE! Observable.Amb( - contentModifiedToken - .Do(_ => { _logger.LogTrace("Notification was abandoned due to content be modified"); }), Observable.Timer(_requestTimeout, scheduler) .Select(z => Unit.Default) .Do( diff --git a/src/Protocol/Document/IDocumentFormattingHandler.cs b/src/Protocol/Document/IDocumentFormattingHandler.cs index 318d8f0dc..0ede1c86a 100644 --- a/src/Protocol/Document/IDocumentFormattingHandler.cs +++ b/src/Protocol/Document/IDocumentFormattingHandler.cs @@ -8,7 +8,7 @@ namespace OmniSharp.Extensions.LanguageServer.Protocol.Document { - [Serial] + [Parallel] [Method(TextDocumentNames.DocumentFormatting, Direction.ClientToServer)] [GenerateHandlerMethods] [GenerateRequestMethods(typeof(ITextDocumentLanguageClient), typeof(ILanguageClient))] diff --git a/src/Protocol/Document/IDocumentOnTypeFormattingHandler.cs b/src/Protocol/Document/IDocumentOnTypeFormattingHandler.cs index 60a4ba206..bad6ddf1f 100644 --- a/src/Protocol/Document/IDocumentOnTypeFormattingHandler.cs +++ b/src/Protocol/Document/IDocumentOnTypeFormattingHandler.cs @@ -8,7 +8,7 @@ namespace OmniSharp.Extensions.LanguageServer.Protocol.Document { - [Serial] + [Parallel] [Method(TextDocumentNames.OnTypeFormatting, Direction.ClientToServer)] [GenerateHandlerMethods] [GenerateRequestMethods(typeof(ITextDocumentLanguageClient), typeof(ILanguageClient))] diff --git a/src/Protocol/Document/IDocumentRangeFormattingHandler.cs b/src/Protocol/Document/IDocumentRangeFormattingHandler.cs index a8c4ff379..933474187 100644 --- a/src/Protocol/Document/IDocumentRangeFormattingHandler.cs +++ b/src/Protocol/Document/IDocumentRangeFormattingHandler.cs @@ -8,7 +8,7 @@ namespace OmniSharp.Extensions.LanguageServer.Protocol.Document { - [Serial] + [Parallel] [Method(TextDocumentNames.RangeFormatting, Direction.ClientToServer)] [GenerateHandlerMethods] [GenerateRequestMethods(typeof(ITextDocumentLanguageClient), typeof(ILanguageClient))] diff --git a/src/Protocol/Document/IPrepareRenameHandler.cs b/src/Protocol/Document/IPrepareRenameHandler.cs index 4214c1b82..2382eacfc 100644 --- a/src/Protocol/Document/IPrepareRenameHandler.cs +++ b/src/Protocol/Document/IPrepareRenameHandler.cs @@ -8,7 +8,7 @@ namespace OmniSharp.Extensions.LanguageServer.Protocol.Document { - [Serial] + [Parallel] [Method(TextDocumentNames.PrepareRename, Direction.ClientToServer)] [GenerateHandlerMethods] [GenerateRequestMethods(typeof(ITextDocumentLanguageClient), typeof(ILanguageClient))] diff --git a/src/Protocol/Document/IRenameHandler.cs b/src/Protocol/Document/IRenameHandler.cs index a2ba6bbff..b86e017c1 100644 --- a/src/Protocol/Document/IRenameHandler.cs +++ b/src/Protocol/Document/IRenameHandler.cs @@ -8,7 +8,7 @@ namespace OmniSharp.Extensions.LanguageServer.Protocol.Document { - [Serial] + [Parallel] [Method(TextDocumentNames.Rename, Direction.ClientToServer)] [GenerateHandlerMethods] [GenerateRequestMethods(typeof(ITextDocumentLanguageClient), typeof(ILanguageClient))] diff --git a/src/Protocol/Document/IWillSaveWaitUntilTextDocumentHandler.cs b/src/Protocol/Document/IWillSaveWaitUntilTextDocumentHandler.cs index e90f934f8..8046410a6 100644 --- a/src/Protocol/Document/IWillSaveWaitUntilTextDocumentHandler.cs +++ b/src/Protocol/Document/IWillSaveWaitUntilTextDocumentHandler.cs @@ -8,7 +8,7 @@ namespace OmniSharp.Extensions.LanguageServer.Protocol.Document { - [Serial] + [Parallel] [Method(TextDocumentNames.WillSaveWaitUntil, Direction.ClientToServer)] [GenerateHandlerMethods] [GenerateRequestMethods(typeof(ITextDocumentLanguageClient), typeof(ILanguageClient))] diff --git a/src/Protocol/Models/WorkspaceFolder.cs b/src/Protocol/Models/WorkspaceFolder.cs index f9770bc7a..fb400e06a 100644 --- a/src/Protocol/Models/WorkspaceFolder.cs +++ b/src/Protocol/Models/WorkspaceFolder.cs @@ -20,14 +20,14 @@ public bool Equals(WorkspaceFolder other) { if (ReferenceEquals(null, other)) return false; if (ReferenceEquals(this, other)) return true; - return Uri.Equals(other.Uri) && Name == other.Name; + return Equals(Uri, other.Uri) && Name == other.Name; } public override bool Equals(object obj) { if (ReferenceEquals(null, obj)) return false; if (ReferenceEquals(this, obj)) return true; - if (obj.GetType() != GetType()) return false; + if (obj.GetType() != this.GetType()) return false; return Equals((WorkspaceFolder) obj); } @@ -35,7 +35,7 @@ public override int GetHashCode() { unchecked { - return ( Uri.GetHashCode() * 397 ) ^ Name.GetHashCode(); + return ( ( Uri != null ? Uri.GetHashCode() : 0 ) * 397 ) ^ ( Name != null ? Name.GetHashCode() : 0 ); } } diff --git a/src/Protocol/Window/IShowMessageRequestHandler.cs b/src/Protocol/Window/IShowMessageRequestHandler.cs index 07f311e53..f001e38fa 100644 --- a/src/Protocol/Window/IShowMessageRequestHandler.cs +++ b/src/Protocol/Window/IShowMessageRequestHandler.cs @@ -7,7 +7,7 @@ namespace OmniSharp.Extensions.LanguageServer.Protocol.Window { - [Serial] + [Parallel] [Method(WindowNames.ShowMessageRequest, Direction.ServerToClient)] [GenerateHandlerMethods] [GenerateRequestMethods(typeof(IWindowLanguageServer), typeof(ILanguageServer))] diff --git a/src/Protocol/Workspace/IDidChangeConfigurationHandler.cs b/src/Protocol/Workspace/IDidChangeConfigurationHandler.cs index 966fad989..ed4604ecc 100644 --- a/src/Protocol/Workspace/IDidChangeConfigurationHandler.cs +++ b/src/Protocol/Workspace/IDidChangeConfigurationHandler.cs @@ -9,7 +9,7 @@ namespace OmniSharp.Extensions.LanguageServer.Protocol.Workspace { - [Serial] + [Parallel] [Method(WorkspaceNames.DidChangeConfiguration, Direction.ClientToServer)] [GenerateHandlerMethods] [GenerateRequestMethods(typeof(IWorkspaceLanguageClient), typeof(ILanguageClient))] diff --git a/src/Protocol/Workspace/IDidChangeWatchedFilesHandler.cs b/src/Protocol/Workspace/IDidChangeWatchedFilesHandler.cs index a5b520eca..40852a4a4 100644 --- a/src/Protocol/Workspace/IDidChangeWatchedFilesHandler.cs +++ b/src/Protocol/Workspace/IDidChangeWatchedFilesHandler.cs @@ -9,7 +9,7 @@ namespace OmniSharp.Extensions.LanguageServer.Protocol.Workspace { - [Serial] + [Parallel] [Method(WorkspaceNames.DidChangeWatchedFiles, Direction.ClientToServer)] [GenerateHandlerMethods] [GenerateRequestMethods(typeof(IWorkspaceLanguageClient), typeof(ILanguageClient))] diff --git a/test/Lsp.Tests/RequestProcessIdentifierTests.cs b/test/Lsp.Tests/RequestProcessIdentifierTests.cs index 638ed98f5..1f4d21e8d 100644 --- a/test/Lsp.Tests/RequestProcessIdentifierTests.cs +++ b/test/Lsp.Tests/RequestProcessIdentifierTests.cs @@ -46,6 +46,12 @@ public void ShouldIdentifyAs_Default() [InlineData(typeof(IHoverHandler))] [InlineData(typeof(IReferencesHandler))] [InlineData(typeof(ISignatureHelpHandler))] + [InlineData(typeof(IDocumentFormattingHandler))] + [InlineData(typeof(IDocumentOnTypeFormattingHandler))] + [InlineData(typeof(IDocumentRangeFormattingHandler))] + [InlineData(typeof(IWillSaveWaitUntilTextDocumentHandler))] + [InlineData(typeof(IDidChangeConfigurationHandler))] + [InlineData(typeof(IDidChangeWatchedFilesHandler))] public void ShouldIdentifyAs_Parallel(Type type) { var identifier = new RequestProcessIdentifier(); @@ -61,16 +67,10 @@ public void ShouldIdentifyAs_Parallel(Type type) [InlineData(typeof(IDidChangeTextDocumentHandler))] [InlineData(typeof(IDidOpenTextDocumentHandler))] [InlineData(typeof(IDidSaveTextDocumentHandler))] - [InlineData(typeof(IDocumentFormattingHandler))] - [InlineData(typeof(IDocumentOnTypeFormattingHandler))] - [InlineData(typeof(IDocumentRangeFormattingHandler))] - [InlineData(typeof(IWillSaveWaitUntilTextDocumentHandler))] [InlineData(typeof(IExitHandler))] [InlineData(typeof(IShutdownHandler))] [InlineData(typeof(ILanguageProtocolInitializeHandler))] [InlineData(typeof(ILanguageProtocolInitializedHandler))] - [InlineData(typeof(IDidChangeConfigurationHandler))] - [InlineData(typeof(IDidChangeWatchedFilesHandler))] [InlineData(typeof(IExecuteCommandHandler))] public void ShouldIdentifyAs_Serial(Type type) {