Skip to content

Commit 2bc2687

Browse files
Merge pull request OmniSharp#123 from mholo65/feature/OmniSharpGH-122
GH122: DocumentSymbol returns DocumentSymbol[] or SymbolInformation[]
2 parents 6288515 + fa5fd9e commit 2bc2687

File tree

4 files changed

+40
-4
lines changed

4 files changed

+40
-4
lines changed

src/Protocol/Document/Client/DocumentSymbolExtensions.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ namespace OmniSharp.Extensions.LanguageServer.Protocol.Client
99
{
1010
public static class DocumentSymbolExtensions
1111
{
12-
public static Task<DocumentSymbolInformationContainer> DocumentSymbol(this ILanguageClientDocument mediator, DocumentSymbolParams @params)
12+
public static Task<DocumentSymbolInformationOrDocumentSymbolContainer> DocumentSymbol(this ILanguageClientDocument mediator, DocumentSymbolParams @params)
1313
{
14-
return mediator.SendRequest<DocumentSymbolParams, DocumentSymbolInformationContainer>(DocumentNames.DocumentSymbol, @params);
14+
return mediator.SendRequest<DocumentSymbolParams, DocumentSymbolInformationOrDocumentSymbolContainer>(DocumentNames.DocumentSymbol, @params);
1515
}
1616
}
1717
}

src/Protocol/Document/Server/IDocumentSymbolHandler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ namespace OmniSharp.Extensions.LanguageServer.Protocol.Server
88
{
99
using static DocumentNames;
1010
[Parallel, Method(DocumentSymbol)]
11-
public interface IDocumentSymbolHandler : IJsonRpcRequestHandler<DocumentSymbolParams, DocumentSymbolInformationContainer>, IRegistration<TextDocumentRegistrationOptions>, ICapability<DocumentSymbolCapability> { }
11+
public interface IDocumentSymbolHandler : IJsonRpcRequestHandler<DocumentSymbolParams, DocumentSymbolInformationOrDocumentSymbolContainer>, IRegistration<TextDocumentRegistrationOptions>, ICapability<DocumentSymbolCapability> { }
1212
}
Lines changed: 36 additions & 0 deletions
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 DocumentSymbolInformationOrDocumentSymbolContainer : Container<DocumentSymbolInformationOrDocumentSymbol>
8+
{
9+
public DocumentSymbolInformationOrDocumentSymbolContainer() : this(Enumerable.Empty<DocumentSymbolInformationOrDocumentSymbol>())
10+
{
11+
}
12+
13+
public DocumentSymbolInformationOrDocumentSymbolContainer(IEnumerable<DocumentSymbolInformationOrDocumentSymbol> items) : base(items)
14+
{
15+
}
16+
17+
public DocumentSymbolInformationOrDocumentSymbolContainer(params DocumentSymbolInformationOrDocumentSymbol[] items) : base(items)
18+
{
19+
}
20+
21+
public static implicit operator DocumentSymbolInformationOrDocumentSymbolContainer(DocumentSymbolInformationOrDocumentSymbol[] items)
22+
{
23+
return new DocumentSymbolInformationOrDocumentSymbolContainer(items);
24+
}
25+
26+
public static implicit operator DocumentSymbolInformationOrDocumentSymbolContainer(Collection<DocumentSymbolInformationOrDocumentSymbol> items)
27+
{
28+
return new DocumentSymbolInformationOrDocumentSymbolContainer(items);
29+
}
30+
31+
public static implicit operator DocumentSymbolInformationOrDocumentSymbolContainer(List<DocumentSymbolInformationOrDocumentSymbol> items)
32+
{
33+
return new DocumentSymbolInformationOrDocumentSymbolContainer(items);
34+
}
35+
}
36+
}

src/Protocol/Models/DocumentSymbolParams.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
namespace OmniSharp.Extensions.LanguageServer.Protocol.Models
66
{
7-
public class DocumentSymbolParams : ITextDocumentIdentifierParams, IRequest<DocumentSymbolInformationContainer>
7+
public class DocumentSymbolParams : ITextDocumentIdentifierParams, IRequest<DocumentSymbolInformationOrDocumentSymbolContainer>
88
{
99
/// <summary>
1010
/// The text document.

0 commit comments

Comments
 (0)