Skip to content

Commit a0f0bcb

Browse files
Added JsonConverter attributes where appropriate to allow for more ad… (#271)
* Added JsonConverter attributes where appropriate to allow for more adhoc serialziation in things like commands for example * Updated converters
1 parent bfe5f1c commit a0f0bcb

24 files changed

+123
-48
lines changed

src/Protocol/DocumentUri.cs

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

68
namespace OmniSharp.Extensions.LanguageServer.Protocol
79
{
@@ -25,6 +27,7 @@ namespace OmniSharp.Extensions.LanguageServer.Protocol
2527
/// This class describes a document uri as defined by https://microsoft.github.io/language-server-protocol/specifications/specification-current/#uri
2628
/// </summary>
2729
/// <remarks>This exists because of some non-standard serialization in vscode around uris and .NET's behavior when deserializing those uris</remarks>
30+
[JsonConverter(typeof(DocumentUriConverter))]
2831
public partial class DocumentUri : IEquatable<DocumentUri>
2932
{
3033
/// <summary>

src/Protocol/Models/BooleanNumberString.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1+
using Newtonsoft.Json;
2+
using OmniSharp.Extensions.LanguageServer.Protocol.Serialization.Converters;
3+
14
namespace OmniSharp.Extensions.LanguageServer.Protocol.Models
25
{
6+
[JsonConverter(typeof(BooleanNumberStringConverter))]
37
public struct BooleanNumberString
48
{
59
private long? _long;

src/Protocol/Models/BooleanString.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1+
using Newtonsoft.Json;
2+
using OmniSharp.Extensions.LanguageServer.Protocol.Serialization.Converters;
3+
14
namespace OmniSharp.Extensions.LanguageServer.Protocol.Models
25
{
6+
[JsonConverter(typeof(BooleanStringConverter))]
37
public struct BooleanString
48
{
59
private string _string;

src/Protocol/Models/CommandOrCodeAction.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
using System.Diagnostics;
2+
using Newtonsoft.Json;
3+
using OmniSharp.Extensions.LanguageServer.Protocol.Serialization.Converters;
24

35
namespace OmniSharp.Extensions.LanguageServer.Protocol.Models
46
{
7+
[JsonConverter(typeof(CommandOrCodeActionConverter))]
58
[DebuggerDisplay("{" + nameof(DebuggerDisplay) + ",nq}")]
69
public struct CommandOrCodeAction
710
{

src/Protocol/Models/CompletionList.cs

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

79
namespace OmniSharp.Extensions.LanguageServer.Protocol.Models
810
{
911
/// <summary>
1012
/// Represents a collection of [completion items](#CompletionItem) to be presented
1113
/// in the editor.
1214
/// </summary>
15+
[JsonConverter(typeof(CompletionListConverter))]
1316
public class CompletionList : Container<CompletionItem>
1417
{
1518
public CompletionList() : base(Enumerable.Empty<CompletionItem>()) { }

src/Protocol/Models/DiagnosticCode.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1+
using Newtonsoft.Json;
2+
using OmniSharp.Extensions.LanguageServer.Protocol.Serialization.Converters;
3+
14
namespace OmniSharp.Extensions.LanguageServer.Protocol.Models
25
{
6+
[JsonConverter(typeof(DiagnosticCodeConverter))]
37
public struct DiagnosticCode
48
{
59
public DiagnosticCode(long value)

src/Protocol/Models/LocationOrLocationLink.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1+
using Newtonsoft.Json;
2+
using OmniSharp.Extensions.LanguageServer.Protocol.Serialization.Converters;
3+
14
namespace OmniSharp.Extensions.LanguageServer.Protocol.Models
25
{
6+
[JsonConverter(typeof(LocationOrLocationLinkConverter))]
37
public struct LocationOrLocationLink {
48

59
public LocationOrLocationLink(Location location)

src/Protocol/Models/LocationOrLocationLinks.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
using System.Collections.Generic;
22
using System.Collections.ObjectModel;
33
using System.Linq;
4+
using Newtonsoft.Json;
5+
using OmniSharp.Extensions.LanguageServer.Protocol.Serialization.Converters;
46

57
namespace OmniSharp.Extensions.LanguageServer.Protocol.Models
68
{
9+
[JsonConverter(typeof(LocationOrLocationLinksConverter))]
710
public class LocationOrLocationLinks : Container<LocationOrLocationLink>
811
{
912
public LocationOrLocationLinks() : this(Enumerable.Empty<LocationOrLocationLink>())

src/Protocol/Models/MarkedString.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
using System.Diagnostics;
2+
using Newtonsoft.Json;
23
using OmniSharp.Extensions.LanguageServer.Protocol.Serialization;
4+
using OmniSharp.Extensions.LanguageServer.Protocol.Serialization.Converters;
35

46
namespace OmniSharp.Extensions.LanguageServer.Protocol.Models
57
{
@@ -16,6 +18,7 @@ namespace OmniSharp.Extensions.LanguageServer.Protocol.Models
1618
///
1719
/// Note that markdown strings will be sanitized - that means html will be escaped.
1820
/// </summary>
21+
[JsonConverter(typeof(MarkedStringConverter))]
1922
[DebuggerDisplay("{" + nameof(DebuggerDisplay) + ",nq}")]
2023
public class MarkedString
2124
{

src/Protocol/Models/MarkedStringsOrMarkupContent.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
using System.Collections.Generic;
22
using System.Diagnostics;
33
using System.Linq;
4+
using Newtonsoft.Json;
5+
using OmniSharp.Extensions.LanguageServer.Protocol.Serialization.Converters;
46

57
namespace OmniSharp.Extensions.LanguageServer.Protocol.Models
68
{
9+
[JsonConverter(typeof(MarkedStringsOrMarkupContentConverter))]
710
[DebuggerDisplay("{" + nameof(DebuggerDisplay) + ",nq}")]
811
public class MarkedStringsOrMarkupContent
912
{

0 commit comments

Comments
 (0)