Skip to content

Commit f942d26

Browse files
fixes #122
1 parent b94bfd5 commit f942d26

15 files changed

+83
-183
lines changed

src/Protocol/Models/DocumentSymbolInformationContainer.cs

+7-7
Original file line numberDiff line numberDiff line change
@@ -4,31 +4,31 @@
44

55
namespace OmniSharp.Extensions.LanguageServer.Protocol.Models
66
{
7-
public class DocumentSymbolInformationContainer : Container<DocumentSymbolInformation>
7+
public class DocumentSymbolInformationContainer : Container<SymbolInformationOrDocumentSymbol>
88
{
9-
public DocumentSymbolInformationContainer() : this(Enumerable.Empty<DocumentSymbolInformation>())
9+
public DocumentSymbolInformationContainer() : this(Enumerable.Empty<SymbolInformationOrDocumentSymbol>())
1010
{
1111
}
1212

13-
public DocumentSymbolInformationContainer(IEnumerable<DocumentSymbolInformation> items) : base(items)
13+
public DocumentSymbolInformationContainer(IEnumerable<SymbolInformationOrDocumentSymbol> items) : base(items)
1414
{
1515
}
1616

17-
public DocumentSymbolInformationContainer(params DocumentSymbolInformation[] items) : base(items)
17+
public DocumentSymbolInformationContainer(params SymbolInformationOrDocumentSymbol[] items) : base(items)
1818
{
1919
}
2020

21-
public static implicit operator DocumentSymbolInformationContainer(DocumentSymbolInformation[] items)
21+
public static implicit operator DocumentSymbolInformationContainer(SymbolInformationOrDocumentSymbol[] items)
2222
{
2323
return new DocumentSymbolInformationContainer(items);
2424
}
2525

26-
public static implicit operator DocumentSymbolInformationContainer(Collection<DocumentSymbolInformation> items)
26+
public static implicit operator DocumentSymbolInformationContainer(Collection<SymbolInformationOrDocumentSymbol> items)
2727
{
2828
return new DocumentSymbolInformationContainer(items);
2929
}
3030

31-
public static implicit operator DocumentSymbolInformationContainer(List<DocumentSymbolInformation> items)
31+
public static implicit operator DocumentSymbolInformationContainer(List<SymbolInformationOrDocumentSymbol> items)
3232
{
3333
return new DocumentSymbolInformationContainer(items);
3434
}
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,34 @@
11
namespace OmniSharp.Extensions.LanguageServer.Protocol.Models
22
{
3-
public struct DocumentSymbolInformationOrDocumentSymbol
3+
public struct SymbolInformationOrDocumentSymbol
44
{
55
private DocumentSymbol _documentSymbol;
6-
private DocumentSymbolInformation _command;
7-
public DocumentSymbolInformationOrDocumentSymbol(DocumentSymbol value)
6+
private SymbolInformation _symbolInformation;
7+
public SymbolInformationOrDocumentSymbol(DocumentSymbol documentSymbol)
88
{
9-
_documentSymbol = value;
10-
_command = default;
9+
_documentSymbol = documentSymbol;
10+
_symbolInformation = default;
1111
}
12-
public DocumentSymbolInformationOrDocumentSymbol(DocumentSymbolInformation value)
12+
public SymbolInformationOrDocumentSymbol(SymbolInformation symbolInformation)
1313
{
1414
_documentSymbol = default;
15-
_command = value;
15+
_symbolInformation = symbolInformation;
1616
}
1717

18-
public bool IsDocumentSymbolInformation => this._command != null;
19-
public DocumentSymbolInformation DocumentSymbolInformation
20-
{
21-
get { return this._command; }
22-
set
23-
{
24-
this._command = value;
25-
this._documentSymbol = null;
26-
}
27-
}
18+
public bool IsDocumentSymbolInformation => _symbolInformation != null;
19+
public SymbolInformation SymbolInformation => _symbolInformation;
2820

29-
public bool IsDocumentSymbol => this._documentSymbol != null;
30-
public DocumentSymbol DocumentSymbol
31-
{
32-
get { return this._documentSymbol; }
33-
set
34-
{
35-
this._command = default;
36-
this._documentSymbol = value;
37-
}
38-
}
39-
public object RawValue
40-
{
41-
get
42-
{
43-
if (IsDocumentSymbolInformation) return DocumentSymbolInformation;
44-
if (IsDocumentSymbol) return DocumentSymbol;
45-
return default;
46-
}
47-
}
21+
public bool IsDocumentSymbol => _documentSymbol != null;
22+
public DocumentSymbol DocumentSymbol => _documentSymbol;
4823

49-
public static implicit operator DocumentSymbolInformationOrDocumentSymbol(DocumentSymbolInformation value)
24+
public static implicit operator SymbolInformationOrDocumentSymbol(SymbolInformation value)
5025
{
51-
return new DocumentSymbolInformationOrDocumentSymbol(value);
26+
return new SymbolInformationOrDocumentSymbol(value);
5227
}
5328

54-
public static implicit operator DocumentSymbolInformationOrDocumentSymbol(DocumentSymbol value)
29+
public static implicit operator SymbolInformationOrDocumentSymbol(DocumentSymbol value)
5530
{
56-
return new DocumentSymbolInformationOrDocumentSymbol(value);
31+
return new SymbolInformationOrDocumentSymbol(value);
5732
}
5833
}
5934
}

src/Protocol/Models/ISymbolInformation.cs

-40
This file was deleted.

src/Protocol/Models/DocumentSymbolInformation.cs renamed to src/Protocol/Models/SymbolInformation.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace OmniSharp.Extensions.LanguageServer.Protocol.Models
44
{
5-
public class DocumentSymbolInformation : ISymbolInformation
5+
public class SymbolInformation
66
{
77
/// <summary>
88
/// The name of this symbol.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
using System.Collections.Generic;
2+
using System.Collections.ObjectModel;
3+
using System.Linq;
4+
5+
namespace OmniSharp.Extensions.LanguageServer.Protocol.Models
6+
{
7+
public class SymbolInformationContainer : Container<SymbolInformation>
8+
{
9+
public SymbolInformationContainer() : this(Enumerable.Empty<SymbolInformation>())
10+
{
11+
}
12+
13+
public SymbolInformationContainer(IEnumerable<SymbolInformation> items) : base(items)
14+
{
15+
}
16+
17+
public SymbolInformationContainer(params SymbolInformation[] items) : base(items)
18+
{
19+
}
20+
21+
public static implicit operator SymbolInformationContainer(SymbolInformation[] items)
22+
{
23+
return new SymbolInformationContainer(items);
24+
}
25+
26+
public static implicit operator SymbolInformationContainer(Collection<SymbolInformation> items)
27+
{
28+
return new SymbolInformationContainer(items);
29+
}
30+
31+
public static implicit operator SymbolInformationContainer(List<SymbolInformation> items)
32+
{
33+
return new SymbolInformationContainer(items);
34+
}
35+
}
36+
}

src/Protocol/Models/WorkspaceSymbolInformation.cs

-34
This file was deleted.

src/Protocol/Models/WorkspaceSymbolInformationContainer.cs

-36
This file was deleted.

src/Protocol/Models/WorkspaceSymbolParams.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace OmniSharp.Extensions.LanguageServer.Protocol.Models
77
/// <summary>
88
/// The parameters of a Workspace Symbol Request.
99
/// </summary>
10-
public class WorkspaceSymbolParams : IRequest<WorkspaceSymbolInformationContainer>
10+
public class WorkspaceSymbolParams : IRequest<SymbolInformationContainer>
1111
{
1212
/// <summary>
1313
/// A non-empty query string

src/Protocol/Serialization/Converters/DocumentSymbolInformationOrDocumentSymbolConverter.cs renamed to src/Protocol/Serialization/Converters/SymbolInformationOrDocumentSymbolConverter.cs

+6-7
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55

66
namespace OmniSharp.Extensions.LanguageServer.Protocol.Serialization.Converters
77
{
8-
public class DocumentSymbolInformationOrDocumentSymbolConverter : JsonConverter<DocumentSymbolInformationOrDocumentSymbol>
8+
public class SymbolInformationOrDocumentSymbolConverter : JsonConverter<SymbolInformationOrDocumentSymbol>
99
{
10-
public override void WriteJson(JsonWriter writer, DocumentSymbolInformationOrDocumentSymbol value, JsonSerializer serializer)
10+
public override void WriteJson(JsonWriter writer, SymbolInformationOrDocumentSymbol value, JsonSerializer serializer)
1111
{
1212
if (value.IsDocumentSymbolInformation)
1313
{
14-
serializer.Serialize(writer, value.DocumentSymbolInformation);
14+
serializer.Serialize(writer, value.SymbolInformation);
1515
}
1616
else if (value.IsDocumentSymbol)
1717
{
@@ -23,22 +23,21 @@ public override void WriteJson(JsonWriter writer, DocumentSymbolInformationOrDoc
2323
}
2424
}
2525

26-
public override DocumentSymbolInformationOrDocumentSymbol ReadJson(JsonReader reader, Type objectType, DocumentSymbolInformationOrDocumentSymbol existingValue, bool hasExistingValue, JsonSerializer serializer)
26+
public override SymbolInformationOrDocumentSymbol ReadJson(JsonReader reader, Type objectType, SymbolInformationOrDocumentSymbol existingValue, bool hasExistingValue, JsonSerializer serializer)
2727
{
2828
var result = JObject.Load(reader);
2929

3030
// Commands have a name, CodeActions do not
3131
if (result["location"].Type == JTokenType.Object)
3232
{
33-
return new DocumentSymbolInformationOrDocumentSymbol(result.ToObject<DocumentSymbolInformation>());
33+
return new SymbolInformationOrDocumentSymbol(result.ToObject<SymbolInformation>());
3434
}
3535
else
3636
{
37-
return new DocumentSymbolInformationOrDocumentSymbol(result.ToObject<DocumentSymbol>());
37+
return new SymbolInformationOrDocumentSymbol(result.ToObject<DocumentSymbol>());
3838
}
3939
}
4040

4141
public override bool CanRead => true;
4242
}
43-
//DocumentSymbolInformationOrDocumentSymbolConverter
4443
}

src/Protocol/Workspace/Client/WorkspaceSymbolsExtensions.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ namespace OmniSharp.Extensions.LanguageServer.Protocol.Client
77
{
88
public static class WorkspaceSymbolsExtensions
99
{
10-
public static Task<WorkspaceSymbolInformationContainer> WorkspaceSymbol(this ILanguageClientWorkspace router, WorkspaceSymbolParams @params)
10+
public static Task<SymbolInformationContainer> WorkspaceSymbol(this ILanguageClientWorkspace router, WorkspaceSymbolParams @params)
1111
{
12-
return router.SendRequest<WorkspaceSymbolParams, WorkspaceSymbolInformationContainer>(WorkspaceNames.WorkspaceSymbol, @params);
12+
return router.SendRequest<WorkspaceSymbolParams, SymbolInformationContainer>(WorkspaceNames.WorkspaceSymbol, @params);
1313
}
1414
}
1515
}

src/Protocol/Workspace/Server/IWorkspaceSymbolsHandler.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ namespace OmniSharp.Extensions.LanguageServer.Protocol.Server
99
using static WorkspaceNames;
1010

1111
[Parallel, Method(WorkspaceSymbol)]
12-
public interface IWorkspaceSymbolsHandler : IJsonRpcRequestHandler<WorkspaceSymbolParams, WorkspaceSymbolInformationContainer>, ICapability<WorkspaceSymbolCapability>, IRegistration<object> { }
12+
public interface IWorkspaceSymbolsHandler : IJsonRpcRequestHandler<WorkspaceSymbolParams, SymbolInformationContainer>, ICapability<WorkspaceSymbolCapability>, IRegistration<object> { }
1313
}

test/Lsp.Tests/DocumentSymbolKindTests.cs

+5-5
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ public class DocumentSymbolKindTests
1313
public void DefaultBehavior_Should_Only_Support_InitialKinds()
1414
{
1515
var serializer = new Serializer();
16-
var json = serializer.SerializeObject(new DocumentSymbolInformation() {
16+
var json = serializer.SerializeObject(new SymbolInformation() {
1717
Kind = SymbolKind.Event
1818
});
1919

20-
var result = serializer.DeserializeObject<DocumentSymbolInformation>(json);
20+
var result = serializer.DeserializeObject<SymbolInformation>(json);
2121
result.Kind.Should().Be(SymbolKind.File);
2222
}
2323

@@ -36,12 +36,12 @@ public void CustomBehavior_When_Defined_By_Client()
3636
}
3737
});
3838

39-
var json = serializer.SerializeObject(new DocumentSymbolInformation() {
39+
var json = serializer.SerializeObject(new SymbolInformation() {
4040
Kind = SymbolKind.Event
4141
});
4242

43-
var result = serializer.DeserializeObject<DocumentSymbolInformation>(json);
43+
var result = serializer.DeserializeObject<SymbolInformation>(json);
4444
result.Kind.Should().Be(SymbolKind.Class);
4545
}
4646
}
47-
}
47+
}

test/Lsp.Tests/Models/DocumentSymbolInformationTests.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public class DocumentSymbolInformationTests
1414
[Theory, JsonFixture]
1515
public void SimpleTest(string expected)
1616
{
17-
var model = new DocumentSymbolInformation() {
17+
var model = new SymbolInformation() {
1818
ContainerName = "abc",
1919
Kind = SymbolKind.Boolean,
2020
Location = new Location() {
@@ -27,7 +27,7 @@ public void SimpleTest(string expected)
2727

2828
result.Should().Be(expected);
2929

30-
var deresult = new Serializer(ClientVersion.Lsp3).DeserializeObject<DocumentSymbolInformation>(expected);
30+
var deresult = new Serializer(ClientVersion.Lsp3).DeserializeObject<SymbolInformation>(expected);
3131
deresult.Should().BeEquivalentTo(model);
3232
}
3333
}

0 commit comments

Comments
 (0)