Skip to content

Commit

Permalink
Add JsonPropertyName to react to dotnet/roslyn#73207.
Browse files Browse the repository at this point in the history
  • Loading branch information
333fred committed May 16, 2024
1 parent ef7a391 commit 0b11f71
Show file tree
Hide file tree
Showing 16 changed files with 69 additions and 68 deletions.
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
global using Microsoft.CodeAnalysis.LanguageServer;
global using Roslyn.LanguageServer.Protocol;
global using System.Text.Json.Serialization;
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ namespace Microsoft.CodeAnalysis.CompilerDeveloperSdk;
[DataContract]
sealed class IOperationChildrenRequest
{
[DataMember(Name = "textDocument")]
[DataMember(Name = "textDocument"), JsonPropertyName("textDocument")]
public required TextDocumentIdentifier TextDocument { get; init; }
[DataMember(Name = "parentSymbolId")]
[DataMember(Name = "parentSymbolId"), JsonPropertyName("parentSymbolId")]
public int ParentSymbolId { get; init; }
[DataMember(Name = "parentIOperationId")]
[DataMember(Name = "parentIOperationId"), JsonPropertyName("parentIOperationId")]
public int? ParentIOperationId { get; init; }
[DataMember(Name = "parentIOperationPropertyName")]
[DataMember(Name = "parentIOperationPropertyName"), JsonPropertyName("parentIOperationPropertyName")]
public string? ParentIOperationPropertyName { get; init; }
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,21 @@ namespace Microsoft.CodeAnalysis.CompilerDeveloperSdk;

[DataContract]
internal readonly record struct OperationChild(
[property: DataMember(Name = "name")]
[property: DataMember(Name = "name"), JsonPropertyName("name")]
string Name,
[property: DataMember(Name = "isArray")]
[property: DataMember(Name = "isArray"), JsonPropertyName("isArray")]
bool IsArray,
[property: DataMember(Name = "isPresent")]
[property: DataMember(Name = "isPresent"), JsonPropertyName("isPresent")]
bool IsPresent);

[DataContract]
sealed class IOperationNodeInformation
{
[DataMember(Name = "parentInfo")]
[DataMember(Name = "parentInfo"), JsonPropertyName("parentInfo")]
public required OperationChild? ParentInfo { get; init; }
[DataMember(Name = "ioperationId")]
[DataMember(Name = "ioperationId"), JsonPropertyName("ioperationId")]
public required int IOperationId { get; init; }
[DataMember(Name = "operationChildrenInfo")]
[DataMember(Name = "operationChildrenInfo"), JsonPropertyName("operationChildrenInfo")]
public required ImmutableArray<OperationChild> OperationChildrenInfo { get; init; }

public static IOperationNodeInformation FromOperation(IOperation operation, int operationId, OperationChild? parentInfo, out IReadOnlyDictionary<string, string> properties)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,20 @@ namespace Microsoft.CodeAnalysis.CompilerDeveloperSdk;
[DataContract]
sealed class IOperationNodeParentRequest
{
[DataMember(Name = "textDocument")]
[DataMember(Name = "textDocument"), JsonPropertyName("textDocument")]
public required TextDocumentIdentifier TextDocument { get; init; }
[DataMember(Name = "childSymbolId")]
[DataMember(Name = "childSymbolId"), JsonPropertyName("childSymbolId")]
public required int ChildSymbolId { get; init; }
[DataMember(Name = "childIOperationId")]
[DataMember(Name = "childIOperationId"), JsonPropertyName("childIOperationId")]
public required int? ChildIOperationId { get; init; }
}

[DataContract]
sealed class IOperationParentResponse : NodeParentResponse<IOperationTreeNode>
{
[DataMember(Name = "parentOperationPropertyName")]
[DataMember(Name = "parentOperationPropertyName"), JsonPropertyName("parentOperationPropertyName")]
public string? ParentOperationPropertyName { get; init; }
[DataMember(Name = "isArray")]
[DataMember(Name = "isArray"), JsonPropertyName("isArray")]
public bool IsArray { get; init; }
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,19 @@ namespace Microsoft.CodeAnalysis.CompilerDeveloperSdk;
[DataContract]
sealed class IOperationTreeNode
{
[DataMember(Name = "nodeType")]
[DataMember(Name = "nodeType"), JsonPropertyName("nodeType")]
public required SymbolAndKind NodeType { get; init; }
[DataMember(Name = "range")]
[DataMember(Name = "range"), JsonPropertyName("range")]
public required LSP.Range Range { get; init; }
[DataMember(Name = "hasSymbolChildren")]
[DataMember(Name = "hasSymbolChildren"), JsonPropertyName("hasSymbolChildren")]
public required bool HasSymbolChildren { get; init; }
[DataMember(Name = "hasIOperationChildren")]
[DataMember(Name = "hasIOperationChildren"), JsonPropertyName("hasIOperationChildren")]
public required bool HasIOperationChildren { get; init; }
[DataMember(Name = "symbolId")]
[DataMember(Name = "symbolId"), JsonPropertyName("symbolId")]
public required int SymbolId { get; init; }
[DataMember(Name = "ioperationInfo")]
[DataMember(Name = "ioperationInfo"), JsonPropertyName("ioperationInfo")]
public required IOperationNodeInformation? IOperationInfo { get; init; }
[DataMember(Name = "properties")]
[DataMember(Name = "properties"), JsonPropertyName("properties")]
public required IReadOnlyDictionary<string, string>? Properties { get; init; }

public static IOperationTreeNode SymbolToTreeItem(ISymbol? symbol, bool hasIOperationChildren, LinePositionSpan originalLocation, int symbolId, ImmutableArray<int> childIds)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,16 @@ namespace Microsoft.CodeAnalysis.CompilerDeveloperSdk;
[DataContract]
sealed class SymbolTreeRequest
{
[DataMember(Name = "textDocument")]
[DataMember(Name = "textDocument"), JsonPropertyName("textDocument")]
public required TextDocumentIdentifier TextDocument { get; init; }
[DataMember(Name = "parentSymbolId")]
[DataMember(Name = "parentSymbolId"), JsonPropertyName("parentSymbolId")]
public int? ParentSymbolId { get; init; }
}

[DataContract]
sealed class IOperationTreeResponse
{
[DataMember(Name = "nodes")]
[DataMember(Name = "nodes"), JsonPropertyName("nodes")]
public required ImmutableArray<IOperationTreeNode> Nodes { get; init; }
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,31 +15,31 @@ namespace Microsoft.CodeAnalysis.CompilerDeveloperSdk;
[DataContract]
sealed class IlForContainingSymbolRequest
{
[DataMember(Name = "textDocument")]
[DataMember(Name = "textDocument"), JsonPropertyName("textDocument")]
public required TextDocumentIdentifier TextDocument { get; init; }
[DataMember(Name = "position")]
[DataMember(Name = "position"), JsonPropertyName("position")]
public required Position Position { get; init; }
}

[DataContract]
sealed class IlForContainingSymbolResponse
{
[DataMember(Name = "il")]
[DataMember(Name = "il"), JsonPropertyName("il")]
public required IlForContainingSymbol? Il { get; init; }
[DataMember(Name = "success")]
[DataMember(Name = "success"), JsonPropertyName("success")]
public required bool Success { get; init; }
[DataMember(Name = "errors")]
[DataMember(Name = "errors"), JsonPropertyName("errors")]
public required string? Errors { get; init; }
}

[DataContract]
sealed class IlForContainingSymbol
{
[DataMember(Name = "fullSymbolName")]
[DataMember(Name = "fullSymbolName"), JsonPropertyName("fullSymbolName")]
public required string FullSymbolName { get; init; }
[DataMember(Name = "il")]
[DataMember(Name = "il"), JsonPropertyName("il")]
public required string Il { get; init; }
[DataMember(Name = "decompiledSource")]
[DataMember(Name = "decompiledSource"), JsonPropertyName("decompiledSource")]
public required string DecompiledSource { get; init; }
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public Position(int line, int character)
/// <summary>
/// Gets or sets the line number.
/// </summary>
[DataMember(Name = "line")]
[DataMember(Name = "line"), JsonPropertyName("line")]
public int Line
{
get;
Expand All @@ -47,7 +47,7 @@ public int Line
/// <summary>
/// Gets or sets the character number.
/// </summary>
[DataMember(Name = "character")]
[DataMember(Name = "character"), JsonPropertyName("character")]
public int Character
{
get;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ internal class Range : IEquatable<Range>
/// <summary>
/// Gets or sets the text start position.
/// </summary>
[DataMember(Name = "start")]
[DataMember(Name = "start"), JsonPropertyName("start")]
[JsonProperty(Required = Required.Always)]
public Position Start
{
Expand All @@ -31,7 +31,7 @@ public Position Start
/// <summary>
/// Gets or sets the text end position.
/// </summary>
[DataMember(Name = "end")]
[DataMember(Name = "end"), JsonPropertyName("end")]
[JsonProperty(Required = Required.Always)]
public Position End
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ internal class TextDocumentIdentifier : IEquatable<TextDocumentIdentifier>
/// <summary>
/// Gets or sets the URI of the text document.
/// </summary>
[DataMember(Name = "uri")]
[DataMember(Name = "uri"), JsonPropertyName("uri")]
[JsonConverter(typeof(DocumentUriConverter))]
public Uri Uri
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,50 +11,50 @@ namespace Microsoft.CodeAnalysis.CompilerDeveloperSdk;
[DataContract]
sealed class SyntaxNodeInfoRequest
{
[DataMember(Name = "textDocument")]
[DataMember(Name = "textDocument"), JsonPropertyName("textDocument")]
public required TextDocumentIdentifier TextDocument { get; init; }
[DataMember(Name = "node")]
[DataMember(Name = "node"), JsonPropertyName("node")]
public required SyntaxTreeNode Node { get; init; }
}

[DataContract]
sealed class SyntaxNodeInfoResponse
{
[DataMember(Name = "nodeType")]
[DataMember(Name = "nodeType"), JsonPropertyName("nodeType")]
public SymbolAndKind NodeType { get; set; }
[DataMember(Name = "nodeSyntaxKind")]
[DataMember(Name = "nodeSyntaxKind"), JsonPropertyName("nodeSyntaxKind")]
public required string NodeSyntaxKind { get; set; }
[DataMember(Name = "semanticClassification")]
[DataMember(Name = "semanticClassification"), JsonPropertyName("semanticClassification")]
public string? SemanticClassification { get; set; }
[DataMember(Name = "nodeSymbolInfo")]
[DataMember(Name = "nodeSymbolInfo"), JsonPropertyName("nodeSymbolInfo")]
public NodeSymbolInfo? NodeSymbolInfo { get; set; }
[DataMember(Name = "nodeTypeInfo")]
[DataMember(Name = "nodeTypeInfo"), JsonPropertyName("nodeTypeInfo")]
public NodeTypeInfo? NodeTypeInfo { get; set; }
[DataMember(Name = "nodeDeclaredSymbol")]
[DataMember(Name = "nodeDeclaredSymbol"), JsonPropertyName("nodeDeclaredSymbol")]
public SymbolAndKind NodeDeclaredSymbol { get; set; } = SymbolAndKind.Null;
[DataMember(Name = "properties")]
[DataMember(Name = "properties"), JsonPropertyName("properties")]
public required ImmutableDictionary<string, string> Properties { get; set; }
}

[DataContract]
sealed class NodeSymbolInfo
{
[DataMember(Name = "symbol")]
[DataMember(Name = "symbol"), JsonPropertyName("symbol")]
public SymbolAndKind Symbol { get; set; }
[DataMember(Name = "candidateReason")]
[DataMember(Name = "candidateReason"), JsonPropertyName("candidateReason")]
public required string CandidateReason { get; set; }
[DataMember(Name = "candidateSymbols")]
[DataMember(Name = "candidateSymbols"), JsonPropertyName("candidateSymbols")]
public ImmutableArray<SymbolAndKind> CandidateSymbols { get; set; }
}

[DataContract]
sealed class NodeTypeInfo
{
[DataMember(Name = "type")]
[DataMember(Name = "type"), JsonPropertyName("type")]
public SymbolAndKind Type { get; set; }
[DataMember(Name = "convertedType")]
[DataMember(Name = "convertedType"), JsonPropertyName("convertedType")]
public SymbolAndKind ConvertedType { get; set; }
[DataMember(Name = "conversion")]
[DataMember(Name = "conversion"), JsonPropertyName("conversion")]
public string? Conversion { get; set; }
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ namespace Microsoft.CodeAnalysis.CompilerDeveloperSdk;
[DataContract]
sealed class SyntaxNodeParentRequest
{
[DataMember(Name = "textDocument")]
[DataMember(Name = "textDocument"), JsonPropertyName("textDocument")]
public required TextDocumentIdentifier TextDocument { get; init; }
[DataMember(Name = "childId")]
[DataMember(Name = "childId"), JsonPropertyName("childId")]
public required int ChildId { get; init; }
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ namespace Microsoft.CodeAnalysis.CompilerDeveloperSdk;
[DataContract]
sealed class SyntaxTreeNode
{
[DataMember(Name = "nodeType")]
[DataMember(Name = "nodeType"), JsonPropertyName("nodeType")]
public required SymbolAndKind NodeType { get; init; }
[DataMember(Name = "range")]
[DataMember(Name = "range"), JsonPropertyName("range")]
public required LSP.Range Range { get; init; }
[DataMember(Name = "hasChildren")]
[DataMember(Name = "hasChildren"), JsonPropertyName("hasChildren")]
public required bool HasChildren { get; init; }
[DataMember(Name = "nodeId")]
[DataMember(Name = "nodeId"), JsonPropertyName("nodeId")]
public required int NodeId { get; init; }

public static SyntaxTreeNode NodeOrTokenOrTriviaToTreeItem(SyntaxNodeOrTokenOrTrivia element, SourceText text, int nodeId)
Expand All @@ -35,9 +35,9 @@ public static SyntaxTreeNode NodeOrTokenOrTriviaToTreeItem(SyntaxNodeOrTokenOrTr
{
public static SymbolAndKind Null { get; } = new() { Symbol = "<null>", SymbolKind = "Unknown" };

[DataMember(Name = "symbol")]
[DataMember(Name = "symbol"), JsonPropertyName("symbol")]
public required string Symbol { get; init; }
[DataMember(Name = "symbolKind")]
[DataMember(Name = "symbolKind"), JsonPropertyName("symbolKind")]
public required string SymbolKind { get; init; }

public override readonly string ToString()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,16 @@ namespace Microsoft.CodeAnalysis.CompilerDeveloperSdk;
[DataContract]
sealed class SyntaxTreeRequest
{
[DataMember(Name = "textDocument")]
[DataMember(Name = "textDocument"), JsonPropertyName("textDocument")]
public required TextDocumentIdentifier TextDocument { get; init; }
[DataMember(Name = "parentNodeId")]
[DataMember(Name = "parentNodeId"), JsonPropertyName("parentNodeId")]
public int? ParentNodeId { get; init; }
}

[DataContract]
sealed class SyntaxTreeResponse
{
[DataMember(Name = "nodes")]
[DataMember(Name = "nodes"), JsonPropertyName("nodes")]
public required ImmutableArray<SyntaxTreeNode> Nodes { get; init; }
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ namespace Microsoft.CodeAnalysis.CompilerDeveloperSdk;
[DataContract]
sealed class NodeAtRangeRequest
{
[DataMember(Name = "textDocument")]
[DataMember(Name = "textDocument"), JsonPropertyName("textDocument")]
public required TextDocumentIdentifier TextDocument { get; init; }
[DataMember(Name = "range")]
[DataMember(Name = "range"), JsonPropertyName("range")]
public required LSP.Range Range { get; init; }
}

[DataContract]
sealed class NodeAtRangeResponse<T>
{
[DataMember(Name = "node")]
[DataMember(Name = "node"), JsonPropertyName("node")]
public required T? Node { get; init; }
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ namespace Microsoft.CodeAnalysis.CompilerDeveloperSdk;
[DataContract]
class NodeParentResponse<T>
{
[DataMember(Name = "parent")]
[DataMember(Name = "parent"), JsonPropertyName("parent")]
public T? Parent { get; init; }
}

0 comments on commit 0b11f71

Please sign in to comment.