diff --git a/language-server-protocol.sha.txt b/language-server-protocol.sha.txt index 4c2971e67..9f970dfb8 100644 --- a/language-server-protocol.sha.txt +++ b/language-server-protocol.sha.txt @@ -1,4 +1,4 @@ -- This is the last commit we caught up with https://github.com/Microsoft/language-server-protocol/commits/gh-pages -lastSha: 1a69f1270d59cccd7b85e0697450950abd5a0221 +lastSha: 202045f6546ba46b3c4fda08bbb91308f427902a -https://github.com/Microsoft/language-server-protocol/compare/.. +https://github.com/Microsoft/language-server-protocol/compare/..gh-pages diff --git a/src/Protocol/Models/ApplyWorkspaceEditResponse.cs b/src/Protocol/Models/ApplyWorkspaceEditResponse.cs index 0211164aa..d22fa8ee1 100644 --- a/src/Protocol/Models/ApplyWorkspaceEditResponse.cs +++ b/src/Protocol/Models/ApplyWorkspaceEditResponse.cs @@ -1,5 +1,6 @@ using Newtonsoft.Json; using Newtonsoft.Json.Serialization; +using OmniSharp.Extensions.LanguageServer.Protocol.Serialization; namespace OmniSharp.Extensions.LanguageServer.Protocol.Models { @@ -9,5 +10,14 @@ public class ApplyWorkspaceEditResponse /// Indicates whether the edit was applied or not. /// public bool Applied { get; set; } + + /// + /// An optional textual description for why the edit was not applied. + /// This may be used may be used by the server for diagnostic + /// logging or to provide a suitable error for a request that + /// triggered the edit. + /// + [Optional] + public string FailureReason { get; set; } } } diff --git a/src/Protocol/Models/CompletionRegistrationOptions.cs b/src/Protocol/Models/CompletionRegistrationOptions.cs index 8e13ed0b3..ca32c0651 100644 --- a/src/Protocol/Models/CompletionRegistrationOptions.cs +++ b/src/Protocol/Models/CompletionRegistrationOptions.cs @@ -1,4 +1,4 @@ -using Newtonsoft.Json; +using Newtonsoft.Json; using Newtonsoft.Json.Serialization; using OmniSharp.Extensions.LanguageServer.Protocol.Serialization; @@ -18,5 +18,15 @@ public class CompletionRegistrationOptions : TextDocumentRegistrationOptions, IC /// [Optional] public bool ResolveProvider { get; set; } + + /// + /// The list of all possible characters that commit a completion. This field can be used + /// if clients don't support individual commit characters per completion item. See + /// `ClientCapabilities.textDocument.completion.completionItem.commitCharactersSupport` + /// + /// Since 3.2.0 + /// + [Optional] + public Container AllCommitCharacters { get; set; } } } diff --git a/src/Protocol/Models/IDeclarationOptions.cs b/src/Protocol/Models/IDeclarationOptions.cs new file mode 100644 index 000000000..161bdeeca --- /dev/null +++ b/src/Protocol/Models/IDeclarationOptions.cs @@ -0,0 +1,4 @@ +namespace OmniSharp.Extensions.LanguageServer.Protocol.Models +{ + public interface IDeclarationOptions { } +} diff --git a/src/Protocol/Server/Capabilities/DeclarationOptions.cs b/src/Protocol/Server/Capabilities/DeclarationOptions.cs new file mode 100644 index 000000000..fafede62f --- /dev/null +++ b/src/Protocol/Server/Capabilities/DeclarationOptions.cs @@ -0,0 +1,12 @@ +using OmniSharp.Extensions.LanguageServer.Protocol.Models; + +namespace OmniSharp.Extensions.LanguageServer.Protocol.Server.Capabilities +{ + public class DeclarationOptions : StaticTextDocumentRegistrationOptions, IDeclarationOptions + { + public static DeclarationOptions Of(IDeclarationOptions options) + { + return new DeclarationOptions() { }; + } + } +} diff --git a/src/Protocol/Server/Capabilities/ServerCapabilities.cs b/src/Protocol/Server/Capabilities/ServerCapabilities.cs index ea536f6f9..fc6bbc098 100644 --- a/src/Protocol/Server/Capabilities/ServerCapabilities.cs +++ b/src/Protocol/Server/Capabilities/ServerCapabilities.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Newtonsoft.Json.Serialization; @@ -134,6 +134,12 @@ public class ServerCapabilities /// public BooleanOr FoldingRangeProvider { get; set; } /// + /// The server provides folding provider support. + /// + /// Since 3.14.0 + /// + public BooleanOr DeclarationProvider { get; set; } + /// /// Workspace specific server capabilities /// [Optional] diff --git a/src/Server/LanguageServer.cs b/src/Server/LanguageServer.cs index 803c2e6ea..d2c7e20ca 100644 --- a/src/Server/LanguageServer.cs +++ b/src/Server/LanguageServer.cs @@ -428,6 +428,7 @@ async Task IRequestHandler TypeDefinitionProvider = ccp.GetStaticOptions(textDocumentCapabilities.TypeDefinition).Get(TypeDefinitionOptions.Of), ColorProvider = ccp.GetStaticOptions(textDocumentCapabilities.ColorProvider).Get(ColorOptions.Of), FoldingRangeProvider = ccp.GetStaticOptions(textDocumentCapabilities.FoldingRange).Get(FoldingRangeOptions.Of), + DeclarationProvider = ccp.GetStaticOptions(textDocumentCapabilities.Declaration).Get(DeclarationOptions.Of), }; if (_collection.ContainsHandler(typeof(IDidChangeWorkspaceFoldersHandler)))