Skip to content

Commit 00a71e2

Browse files
Merge remote-tracking branch 'origin/master' into dap
2 parents 81b7a1c + 2b06e03 commit 00a71e2

29 files changed

+328
-77
lines changed

src/JsonRpc/DelegatingRequestHandler.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,36 +7,36 @@ namespace OmniSharp.Extensions.JsonRpc
77
{
88
public class DelegatingRequestHandler<T, TResponse> : IJsonRpcRequestHandler<DelegatingRequest<T>, JToken>
99
{
10-
private readonly Func<T, Task<TResponse>> _handler;
10+
private readonly Func<T, CancellationToken, Task<TResponse>> _handler;
1111
private readonly ISerializer _serializer;
1212

13-
public DelegatingRequestHandler(ISerializer serializer, Func<T, Task<TResponse>> handler)
13+
public DelegatingRequestHandler(ISerializer serializer, Func<T, CancellationToken, Task<TResponse>> handler)
1414
{
1515
_handler = handler;
1616
_serializer = serializer;
1717
}
1818

1919
public async Task<JToken> Handle(DelegatingRequest<T> request, CancellationToken cancellationToken)
2020
{
21-
var response = await _handler.Invoke(request.Value);
21+
var response = await _handler.Invoke(request.Value, cancellationToken);
2222
return JToken.FromObject(response, _serializer.JsonSerializer);
2323
}
2424
}
2525

2626
public class DelegatingRequestHandler<T> : IJsonRpcRequestHandler<DelegatingRequest<T>, JToken>
2727
{
28-
private readonly Func<T, Task> _handler;
28+
private readonly Func<T, CancellationToken, Task> _handler;
2929
private readonly ISerializer _serializer;
3030

31-
public DelegatingRequestHandler(ISerializer serializer, Func<T, Task> handler)
31+
public DelegatingRequestHandler(ISerializer serializer, Func<T, CancellationToken, Task> handler)
3232
{
3333
_handler = handler;
3434
_serializer = serializer;
3535
}
3636

3737
public async Task<JToken> Handle(DelegatingRequest<T> request, CancellationToken cancellationToken)
3838
{
39-
await _handler.Invoke(request.Value);
39+
await _handler.Invoke(request.Value, cancellationToken);
4040
return JValue.CreateNull();
4141
}
4242
}

src/JsonRpc/JsonRpc.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
33
<TargetFrameworks>netstandard2.0</TargetFrameworks>
44
<PlatformTarget>AnyCPU</PlatformTarget>
@@ -13,7 +13,7 @@
1313
<PackageReference Include="Microsoft.Extensions.DependencyInjection" />
1414
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
1515
<PackageReference Include="Newtonsoft.Json" />
16-
<Compile Include="../../submodules/MediatR/src/MediatR/**/*.cs" Exclude="**/AssemblyInfo.cs" Visible="false" />
17-
<Compile Include="../../submodules/MediatR.Extensions.Microsoft.DependencyInjection/src/MediatR.Extensions.Microsoft.DependencyInjection/**/*.cs" Exclude="**/AssemblyInfo.cs" Visible="false" />
16+
<Compile Include="../../submodules/MediatR/src/MediatR/**/*.cs" Exclude="**/*AssemblyInfo.cs" Visible="false" />
17+
<Compile Include="../../submodules/MediatR.Extensions.Microsoft.DependencyInjection/src/MediatR.Extensions.Microsoft.DependencyInjection/**/*.cs" Exclude="**/*AssemblyInfo.cs" Visible="false" />
1818
</ItemGroup>
1919
</Project>

src/JsonRpc/JsonRpcServerExtensions.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Threading;
23
using System.Threading.Tasks;
34
using Microsoft.Extensions.DependencyInjection;
45

@@ -10,6 +11,14 @@ public static IDisposable OnRequest<T, TResponse>(
1011
this IJsonRpcHandlerRegistry registry,
1112
string method,
1213
Func<T, Task<TResponse>> handler)
14+
{
15+
return registry.AddHandler(method, _ => new DelegatingRequestHandler<T, TResponse>(_.GetRequiredService<ISerializer>(), (x, ct) => handler(x)));
16+
}
17+
18+
public static IDisposable OnRequest<T, TResponse>(
19+
this IJsonRpcHandlerRegistry registry,
20+
string method,
21+
Func<T, CancellationToken, Task<TResponse>> handler)
1322
{
1423
return registry.AddHandler(method, _ => new DelegatingRequestHandler<T, TResponse>(_.GetRequiredService<ISerializer>(), handler));
1524
}
@@ -18,6 +27,14 @@ public static IDisposable OnRequest<T>(
1827
this IJsonRpcHandlerRegistry registry,
1928
string method,
2029
Func<T, Task> handler)
30+
{
31+
return registry.AddHandler(method, _ => new DelegatingRequestHandler<T>(_.GetRequiredService<ISerializer>(), (x, ct) => handler(x)));
32+
}
33+
34+
public static IDisposable OnRequest<T>(
35+
this IJsonRpcHandlerRegistry registry,
36+
string method,
37+
Func<T, CancellationToken, Task> handler)
2138
{
2239
return registry.AddHandler(method, _ => new DelegatingRequestHandler<T>(_.GetRequiredService<ISerializer>(), handler));
2340
}

src/JsonRpc/RequestRouterBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public async Task RouteNotification(TDescriptor descriptor, Notification notific
6565
@params = notification.Params?.ToObject(descriptor.Params, _serializer.JsonSerializer);
6666
}
6767

68-
await HandleNotification(mediator, descriptor, @params ?? EmptyRequest.Instance, token);
68+
await HandleNotification(mediator, descriptor, @params ?? Activator.CreateInstance(descriptor.Params), token);
6969
}
7070
}
7171
catch (Exception e)

src/Protocol/Models/BooleanOr.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public BooleanOr(bool value)
1515
_bool = value;
1616
}
1717

18-
public bool IsValue => this._value != null;
18+
public bool IsValue => this._value != default;
1919
public T Value
2020
{
2121
get { return this._value; }

src/Protocol/Models/FileEvent.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using Newtonsoft.Json;
33
using Newtonsoft.Json.Serialization;
4+
using OmniSharp.Extensions.LanguageServer.Protocol.Serialization.Converters;
45

56
namespace OmniSharp.Extensions.LanguageServer.Protocol.Models
67
{
@@ -12,7 +13,9 @@ public class FileEvent
1213
/// <summary>
1314
/// The file's URI.
1415
/// </summary>
16+
[JsonConverter(typeof(AbsoluteUriConverter))]
1517
public Uri Uri { get; set; }
18+
1619
/// <summary>
1720
/// The change type.
1821
/// </summary>

src/Protocol/Models/Location.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Collections.Generic;
33
using Newtonsoft.Json;
44
using Newtonsoft.Json.Serialization;
5+
using OmniSharp.Extensions.LanguageServer.Protocol.Serialization.Converters;
56

67
namespace OmniSharp.Extensions.LanguageServer.Protocol.Models
78
{
@@ -10,6 +11,7 @@ public class Location : IEquatable<Location>
1011
/// <summary>
1112
/// The uri of the document
1213
/// </summary>
14+
[JsonConverter(typeof(AbsoluteUriConverter))]
1315
public Uri Uri { get; set; }
1416

1517
/// <summary>

src/Protocol/Models/PublishDiagnosticsParams.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using OmniSharp.Extensions.Embedded.MediatR;
33
using Newtonsoft.Json;
44
using Newtonsoft.Json.Serialization;
5+
using OmniSharp.Extensions.LanguageServer.Protocol.Serialization.Converters;
56

67
namespace OmniSharp.Extensions.LanguageServer.Protocol.Models
78
{
@@ -10,6 +11,7 @@ public class PublishDiagnosticsParams : IRequest
1011
/// <summary>
1112
/// The URI for which diagnostic information is reported.
1213
/// </summary>
14+
[JsonConverter(typeof(AbsoluteUriConverter))]
1315
public Uri Uri { get; set; }
1416

1517
/// <summary>

src/Protocol/Models/Registration.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using Newtonsoft.Json;
1+
using Newtonsoft.Json;
22
using Newtonsoft.Json.Serialization;
33
using OmniSharp.Extensions.LanguageServer.Protocol.Serialization;
44

src/Protocol/Models/TextDocumentIdentifier.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using Newtonsoft.Json;
33
using Newtonsoft.Json.Serialization;
4+
using OmniSharp.Extensions.LanguageServer.Protocol.Serialization.Converters;
45

56
namespace OmniSharp.Extensions.LanguageServer.Protocol.Models
67
{
@@ -15,9 +16,11 @@ public TextDocumentIdentifier(Uri uri)
1516
{
1617
Uri = uri;
1718
}
19+
1820
/// <summary>
1921
/// The text document's URI.
2022
/// </summary>
23+
[JsonConverter(typeof(AbsoluteUriConverter))]
2124
public Uri Uri { get; set; }
2225
}
2326
}

0 commit comments

Comments
 (0)