Skip to content

Commit 0191abd

Browse files
more wip on latest spec
1 parent 637de9b commit 0191abd

File tree

9 files changed

+47
-5
lines changed

9 files changed

+47
-5
lines changed

LanguageServer/Protocol/Document/Server/IFoldingRangeHandler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@
66
namespace OmniSharp.Extensions.LanguageServer.Protocol.Server
77
{
88
using static DocumentNames;
9-
[Serial, Method(FoldingRange)]
9+
[Parallel, Method(FoldingRange)]
1010
public interface IFoldingRangeHandler : IJsonRpcRequestHandler<FoldingRangeRequestParam, Container<FoldingRange>>, IRegistration<TextDocumentRegistrationOptions>, ICapability<FoldingRangeCapability> { }
1111
}

language-server-protocol.sha.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
-- This is the last commit we caught up with https://github.com/Microsoft/language-server-protocol
2-
05e3af34464671a788679080f06558db52d1097b
2+
f39afb47038be65431ec684dc11725ff74e71f48

src/Protocol/Client/Capabilities/ColorProviderCapability.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,20 @@
22

33
namespace OmniSharp.Extensions.LanguageServer.Protocol.Client.Capabilities
44
{
5-
public class ColorProviderCapability : DynamicCapability, ConnectedCapability<IDocumentColorHandler>, ConnectedCapability<IColorPresentationHandler> {}
5+
public class ColorProviderCapability : DynamicCapability, ConnectedCapability<IDocumentColorHandler>, ConnectedCapability<IColorPresentationHandler> { }
6+
public class FoldingRangeCapability : DynamicCapability, ConnectedCapability<IFoldingRangeHandler>, ConnectedCapability<IFoldingRangeHandler>
7+
{
8+
/// <summary>
9+
/// The maximum number of folding ranges that the client prefers to receive per document. The value serves as a
10+
/// hint, servers are free to follow the limit.
11+
/// </summary>
12+
[Optional]
13+
public int? RangeLimit { get; set; }
14+
15+
/// <summary>
16+
/// If set, the client signals that it only supports folding complete lines. If set, client will
17+
/// ignore specified `startCharacter` and `endCharacter` properties in a FoldingRange.
18+
/// </summary>
19+
public bool LineFoldingOnly { get; set; }
20+
}
621
}

src/Protocol/Client/Capabilities/DocumentSymbolCapability.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,19 @@
33

44
namespace OmniSharp.Extensions.LanguageServer.Protocol.Client.Capabilities
55
{
6-
public class DocumentSymbolCapability : DynamicCapability, ConnectedCapability<IDocumentSymbolHandler> {
6+
public class DocumentSymbolCapability : DynamicCapability, ConnectedCapability<IDocumentSymbolHandler>
7+
{
78

89
/// <summary>
910
/// Specific capabilities for the `SymbolKind` in the `textDocument/symbol` request.
1011
/// </summary>
1112
[Optional]
1213
public SymbolKindCapability SymbolKind { get; set; }
14+
15+
/// <summary>
16+
/// Whether document symbol supports hierarchical `DocumentSymbol`s.
17+
/// </summary>
18+
[Optional]
19+
public bool? hierarchicalDocumentSymbolSupport { get; set; }
1320
}
1421
}

src/Protocol/Client/Capabilities/TextDocumentClientCapabilities.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,13 @@ public class TextDocumentClientCapabilities
9999
/// </summary>
100100
public Supports<ColorProviderCapability> ColorProvider { get; set; }
101101

102+
/// <summary>
103+
/// The server provides folding provider support.
104+
///
105+
/// Since 3.10.0
106+
/// </summary>
107+
public Supports<FoldingRangeProviderCapability> FoldingRangeProvider { get; set; }
108+
102109
/// <summary>
103110
/// Capabilities specific to `textDocument/publishDiagnostics`.
104111
/// </summary>

src/Protocol/DocumentNames.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,6 @@ public static class DocumentNames
3030
public const string WillSave = "textDocument/willSave";
3131
public const string WillSaveWaitUntil = "textDocument/willSaveWaitUntil";
3232
public const string PublishDiagnostics = "textDocument/publishDiagnostics";
33+
public const string FoldingRange = "textDocument/foldingRange";
3334
}
3435
}

src/Protocol/Models/TextDocumentRegistrationOptions.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,8 @@ public class TextDocumentRegistrationOptions : ITextDocumentRegistrationOptions
1111
/// </summary>
1212
public DocumentSelector DocumentSelector { get; set; } = new DocumentSelector();
1313
}
14+
15+
public class CodeActionRegistrationOptions : TextDocumentRegistrationOptions, ICodeActionOptions {
16+
17+
}
1418
}

src/Protocol/Server/Capabilities/ServerCapabilities.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,13 @@ public class ServerCapabilities
126126
/// </summary>
127127
[Optional]
128128
public BooleanOr<StaticColorOptions> ColorProvider { get; set; }
129+
130+
/// <summary>
131+
/// The server provides folding provider support.
132+
///
133+
/// Since 3.10.0
134+
/// </summary>
135+
public BooleanOr<StaticFoldingRangeOptions> FoldingRangeProvider { get; set; }
129136
/// <summary>
130137
/// Workspace specific server capabilities
131138
/// </summary>
@@ -142,6 +149,6 @@ public class CodeActionOptions
142149
/// may list out every specific kind they provide.
143150
/// </summary>
144151
[Optional]
145-
public Container<CodeActionKind> ProvidedCodeActionKinds { get; set; }
152+
public Container<CodeActionKind> CodeActionKinds { get; set; }
146153
}
147154
}

src/Server/LanguageServer.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,7 @@ async Task<InitializeResult> IRequestHandler<InitializeParams, InitializeResult>
293293
ImplementationProvider = ccp.GetStaticOptions(textDocumentCapabilities.Implementation).Get<IImplementationOptions, ImplementationOptions>(ImplementationOptions.Of),
294294
TypeDefinitionProvider = ccp.GetStaticOptions(textDocumentCapabilities.TypeDefinition).Get<ITypeDefinitionOptions, TypeDefinitionOptions>(TypeDefinitionOptions.Of),
295295
ColorProvider = ccp.GetStaticOptions(textDocumentCapabilities.ColorProvider).Get<IColorOptions, StaticColorOptions>(ColorOptions.Of),
296+
FoldingRangeProvider = ccp.GetStaticOptions(textDocumentCapabilities.FoldingRangeProvider).Get<IColorOptions, StaticFoldingRangeOptions>(FoldingRangeOptions.Of),
296297
};
297298

298299
if (_collection.ContainsHandler(typeof(IDidChangeWorkspaceFoldersHandler)))

0 commit comments

Comments
 (0)