Skip to content

Commit 7a157ab

Browse files
Merge pull request OmniSharp#126 from OmniSharp/upgrade/latest-lsp
Upgrade/latest lsp
2 parents 2bc2687 + 705f295 commit 7a157ab

File tree

106 files changed

+1334
-458
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

106 files changed

+1334
-458
lines changed

language-server-protocol.sha.txt

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
-- This is the last commit we caught up with https://github.com/Microsoft/language-server-protocol/commits/gh-pages
2-
9e2713d5f1618b8d5e05a91a4e2c637aa51e1ee0
2+
lastSha: 1a69f1270d59cccd7b85e0697450950abd5a0221
3+
4+
https://github.com/Microsoft/language-server-protocol/compare/<lastSha>..<newSha>

src/Client/LspErrorCodes.cs

+5
Original file line numberDiff line numberDiff line change
@@ -44,5 +44,10 @@ public static class LspErrorCodes
4444
/// Request was cancelled.
4545
/// </summary>
4646
public const int RequestCancelled = -32800;
47+
48+
/// <summary>
49+
/// Request was cancelled.
50+
/// </summary>
51+
public const int ContentModified = -32801;
4752
}
4853
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
using OmniSharp.Extensions.LanguageServer.Protocol.Server;
2+
3+
namespace OmniSharp.Extensions.LanguageServer.Protocol.Client.Capabilities
4+
{
5+
public class DeclarationCapability : LinkSupportCapability, ConnectedCapability<IDeclarationHandler> { }
6+
}

src/Protocol/Client/Capabilities/DefinitionCapability.cs

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

33
namespace OmniSharp.Extensions.LanguageServer.Protocol.Client.Capabilities
44
{
5-
public class DefinitionCapability : DynamicCapability, ConnectedCapability<IDefinitionHandler> { }
5+
public class DefinitionCapability : LinkSupportCapability, ConnectedCapability<IDefinitionHandler> { }
66
}

src/Protocol/Client/Capabilities/ImplementationCapability.cs

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

33
namespace OmniSharp.Extensions.LanguageServer.Protocol.Client.Capabilities
44
{
5-
public class ImplementationCapability : DynamicCapability, ConnectedCapability<IImplementationHandler> {}
5+
public class ImplementationCapability : LinkSupportCapability, ConnectedCapability<IImplementationHandler> {}
66
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
using OmniSharp.Extensions.LanguageServer.Protocol.Serialization;
2+
3+
namespace OmniSharp.Extensions.LanguageServer.Protocol.Client.Capabilities
4+
{
5+
public abstract class LinkSupportCapability : DynamicCapability
6+
{
7+
[Optional]
8+
public bool LinkSupport { get; set; }
9+
}
10+
}

src/Protocol/Client/Capabilities/SignatureInformationCapability.cs

+4-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ public class SignatureInformationCapability
1010
/// Client supports the follow content formats for the content property. The order describes the preferred format of the client.
1111
/// </summary>
1212
[Optional]
13-
public Container<MarkupKind> ContentFormat { get; set; }
13+
public Container<MarkupKind> DocumentationFormat { get; set; }
14+
15+
[Optional]
16+
public SignatureParameterInformationCapability ParameterInformation { get; set; }
1417
}
1518
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
using OmniSharp.Extensions.LanguageServer.Protocol.Serialization;
2+
3+
namespace OmniSharp.Extensions.LanguageServer.Protocol.Client.Capabilities
4+
{
5+
public class SignatureParameterInformationCapability
6+
{
7+
/// <summary>
8+
/// The client supports processing label offsets instead of a
9+
/// simple label string.
10+
/// </summary>
11+
[Optional]
12+
public bool LabelOffsetSupport { get; set; }
13+
}
14+
}

src/Protocol/Client/Capabilities/TextDocumentClientCapabilities.cs

+5
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,11 @@ public class TextDocumentClientCapabilities
5858
/// </summary>
5959
public Supports<DefinitionCapability> Definition { get; set; }
6060

61+
/// <summary>
62+
/// Capabilities specific to the `textDocument/declaration`
63+
/// </summary>
64+
public Supports<DeclarationCapability> Declaration { get; set; }
65+
6166
/// <summary>
6267
/// Capabilities specific to the `textDocument/codeAction`
6368
/// </summary>

src/Protocol/Client/Capabilities/TypeDefinitionCapability.cs

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

33
namespace OmniSharp.Extensions.LanguageServer.Protocol.Client.Capabilities
44
{
5-
public class TypeDefinitionCapability : DynamicCapability, ConnectedCapability<ITypeDefinitionHandler> {}
5+
public class TypeDefinitionCapability : LinkSupportCapability, ConnectedCapability<ITypeDefinitionHandler> {}
66
}

src/Protocol/Client/Capabilities/WorkspaceEditCapability.cs

+13
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using Newtonsoft.Json;
22
using Newtonsoft.Json.Serialization;
3+
using OmniSharp.Extensions.LanguageServer.Protocol.Models;
34
using OmniSharp.Extensions.LanguageServer.Protocol.Serialization;
45

56
namespace OmniSharp.Extensions.LanguageServer.Protocol.Client.Capabilities
@@ -11,5 +12,17 @@ public class WorkspaceEditCapability
1112
/// </summary>
1213
[Optional]
1314
public bool DocumentChanges { get; set; }
15+
/// <summary>
16+
/// The resource operations the client supports. Clients should at least
17+
/// support 'create', 'rename' and 'delete' files and folders.
18+
/// </summary>
19+
[Optional]
20+
public ResourceOperationKind[] ResourceOperations { get; set; }
21+
/// <summary>
22+
/// The failure handling strategy of a client if applying the workspace edit
23+
/// fails.
24+
/// </summary>
25+
[Optional]
26+
public FailureHandlingKind? FailureHandling { get; set; }
1427
}
1528
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using System.Threading.Tasks;
2+
using OmniSharp.Extensions.JsonRpc;
3+
using OmniSharp.Extensions.LanguageServer.Protocol.Client.Capabilities;
4+
using OmniSharp.Extensions.LanguageServer.Protocol.Models;
5+
6+
// ReSharper disable CheckNamespace
7+
8+
namespace OmniSharp.Extensions.LanguageServer.Protocol.Client
9+
{
10+
public static class DeclarationExtensions
11+
{
12+
public static Task<LocationOrLocationLinks> Declaration(this ILanguageClientDocument mediator, DeclarationParams @params)
13+
{
14+
return mediator.SendRequest<DeclarationParams, LocationOrLocationLinks>(DocumentNames.Declaration, @params);
15+
}
16+
}
17+
}

src/Protocol/Document/Client/DefinitionExtensions.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ namespace OmniSharp.Extensions.LanguageServer.Protocol.Client
99
{
1010
public static class DefinitionExtensions
1111
{
12-
public static Task<LocationOrLocations> Definition(this ILanguageClientDocument mediator, DefinitionParams @params)
12+
public static Task<LocationOrLocationLinks> Definition(this ILanguageClientDocument mediator, DefinitionParams @params)
1313
{
14-
return mediator.SendRequest<DefinitionParams, LocationOrLocations>(DocumentNames.Definition, @params);
14+
return mediator.SendRequest<DefinitionParams, LocationOrLocationLinks>(DocumentNames.Definition, @params);
1515
}
1616
}
1717
}

src/Protocol/Document/Client/DocumentSymbolExtensions.cs

+2-2
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<DocumentSymbolInformationOrDocumentSymbolContainer> DocumentSymbol(this ILanguageClientDocument mediator, DocumentSymbolParams @params)
12+
public static Task<SymbolInformationOrDocumentSymbolContainer> DocumentSymbol(this ILanguageClientDocument mediator, DocumentSymbolParams @params)
1313
{
14-
return mediator.SendRequest<DocumentSymbolParams, DocumentSymbolInformationOrDocumentSymbolContainer>(DocumentNames.DocumentSymbol, @params);
14+
return mediator.SendRequest<DocumentSymbolParams, SymbolInformationOrDocumentSymbolContainer>(DocumentNames.DocumentSymbol, @params);
1515
}
1616
}
1717
}

src/Protocol/Document/Client/ImplementationExtensions.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ namespace OmniSharp.Extensions.LanguageServer.Protocol.Client
99
{
1010
public static class ImplementationExtensions
1111
{
12-
public static Task<LocationOrLocations> Implementation(this ILanguageClientDocument mediator, ImplementationParams @params)
12+
public static Task<LocationOrLocationLinks> Implementation(this ILanguageClientDocument mediator, ImplementationParams @params)
1313
{
14-
return mediator.SendRequest<ImplementationParams, LocationOrLocations>(DocumentNames.Implementation, @params);
14+
return mediator.SendRequest<ImplementationParams, LocationOrLocationLinks>(DocumentNames.Implementation, @params);
1515
}
1616
}
1717
}

src/Protocol/Document/Client/TypeDefinitionExtensions.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ namespace OmniSharp.Extensions.LanguageServer.Protocol.Client
99
{
1010
public static class TypeDefinitionExtensions
1111
{
12-
public static Task<LocationOrLocations> TypeDefinition(this ILanguageClientDocument mediator, TypeDefinitionParams @params)
12+
public static Task<LocationOrLocationLinks> TypeDefinition(this ILanguageClientDocument mediator, TypeDefinitionParams @params)
1313
{
14-
return mediator.SendRequest<TypeDefinitionParams, LocationOrLocations>(DocumentNames.TypeDefinition, @params);
14+
return mediator.SendRequest<TypeDefinitionParams, LocationOrLocationLinks>(DocumentNames.TypeDefinition, @params);
1515
}
1616
}
1717
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using OmniSharp.Extensions.JsonRpc;
2+
using OmniSharp.Extensions.LanguageServer.Protocol.Client.Capabilities;
3+
using OmniSharp.Extensions.LanguageServer.Protocol.Models;
4+
5+
// ReSharper disable CheckNamespace
6+
7+
namespace OmniSharp.Extensions.LanguageServer.Protocol.Server
8+
{
9+
using static DocumentNames;
10+
[Parallel, Method(Declaration)]
11+
public interface IDeclarationHandler : IJsonRpcRequestHandler<DeclarationParams, LocationOrLocationLinks>, IRegistration<TextDocumentRegistrationOptions>, ICapability<DeclarationCapability> { }
12+
}

src/Protocol/Document/Server/IDefinitionHandler.cs

+1-1
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(Definition)]
11-
public interface IDefinitionHandler : IJsonRpcRequestHandler<DefinitionParams, LocationOrLocations>, IRegistration<TextDocumentRegistrationOptions>, ICapability<DefinitionCapability> { }
11+
public interface IDefinitionHandler : IJsonRpcRequestHandler<DefinitionParams, LocationOrLocationLinks>, IRegistration<TextDocumentRegistrationOptions>, ICapability<DefinitionCapability> { }
1212
}

src/Protocol/Document/Server/IDocumentSymbolHandler.cs

+1-1
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, DocumentSymbolInformationOrDocumentSymbolContainer>, IRegistration<TextDocumentRegistrationOptions>, ICapability<DocumentSymbolCapability> { }
11+
public interface IDocumentSymbolHandler : IJsonRpcRequestHandler<DocumentSymbolParams, SymbolInformationOrDocumentSymbolContainer>, IRegistration<TextDocumentRegistrationOptions>, ICapability<DocumentSymbolCapability> { }
1212
}

src/Protocol/Document/Server/IImplementationDefinitionHandler.cs renamed to src/Protocol/Document/Server/IImplementationHandler.cs

+1-1
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(Implementation)]
11-
public interface IImplementationHandler : IJsonRpcRequestHandler<ImplementationParams, LocationOrLocations>, IRegistration<TextDocumentRegistrationOptions>, ICapability<ImplementationCapability> { }
11+
public interface IImplementationHandler : IJsonRpcRequestHandler<ImplementationParams, LocationOrLocationLinks>, IRegistration<TextDocumentRegistrationOptions>, ICapability<ImplementationCapability> { }
1212
}

src/Protocol/Document/Server/ITypeDefinitionHandler.cs

+1-1
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(TypeDefinition)]
11-
public interface ITypeDefinitionHandler : IJsonRpcRequestHandler<TypeDefinitionParams, LocationOrLocations>, IRegistration<TextDocumentRegistrationOptions>, ICapability<TypeDefinitionCapability> { }
11+
public interface ITypeDefinitionHandler : IJsonRpcRequestHandler<TypeDefinitionParams, LocationOrLocationLinks>, IRegistration<TextDocumentRegistrationOptions>, ICapability<TypeDefinitionCapability> { }
1212
}

src/Protocol/DocumentNames.cs

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ public static class DocumentNames
99
public const string Completion = "textDocument/completion";
1010
public const string CompletionResolve = "completionItem/resolve";
1111
public const string Definition = "textDocument/definition";
12+
public const string Declaration = "textDocument/declaration";
1213
public const string DidChange = "textDocument/didChange";
1314
public const string DidClose = "textDocument/didClose";
1415
public const string DidOpen = "textDocument/didOpen";

src/Protocol/Models/BooleanNumberString.cs

+15-25
Original file line numberDiff line numberDiff line change
@@ -27,49 +27,39 @@ public BooleanNumberString(bool value)
2727
_bool = value;
2828
}
2929

30-
public bool IsLong => this._long.HasValue;
30+
public bool IsLong => _long.HasValue;
3131
public long Long
3232
{
33-
get { return _long ?? 0; }
33+
get => _long ?? 0;
3434
set
3535
{
36-
this.String = null;
37-
this._long = value;
38-
this._bool = null;
36+
String = null;
37+
_long = value;
38+
_bool = null;
3939
}
4040
}
4141

42-
public bool IsString => this._string != null;
42+
public bool IsString => _string != null;
4343
public string String
4444
{
45-
get { return this._string; }
45+
get => _string;
4646
set
4747
{
48-
this._string = value;
49-
this._long = null;
50-
this._bool = null;
48+
_string = value;
49+
_long = null;
50+
_bool = null;
5151
}
5252
}
5353

54-
public bool IsBool => this._bool.HasValue;
54+
public bool IsBool => _bool.HasValue;
5555
public bool Bool
5656
{
57-
get { return this._bool.HasValue && this._bool.Value; }
57+
get => _bool.HasValue && _bool.Value;
5858
set
5959
{
60-
this.String = null;
61-
this._long = null;
62-
this._bool = value;
63-
}
64-
}
65-
public object Value
66-
{
67-
get
68-
{
69-
if (IsBool) return Bool;
70-
if (IsLong) return Long;
71-
if (IsString) return String;
72-
return null;
60+
String = null;
61+
_long = null;
62+
_bool = value;
7363
}
7464
}
7565

src/Protocol/Models/BooleanString.cs

+8-17
Original file line numberDiff line numberDiff line change
@@ -15,34 +15,25 @@ public BooleanString(bool value)
1515
_bool = value;
1616
}
1717

18-
public bool IsString => this._string != null;
18+
public bool IsString => _string != null;
1919
public string String
2020
{
21-
get { return this._string; }
21+
get => _string;
2222
set
2323
{
24-
this._string = value;
25-
this._bool = null;
24+
_string = value;
25+
_bool = null;
2626
}
2727
}
2828

29-
public bool IsBool => this._bool.HasValue;
29+
public bool IsBool => _bool.HasValue;
3030
public bool Bool
3131
{
32-
get { return this._bool.HasValue && this._bool.Value; }
32+
get => _bool.HasValue && _bool.Value;
3333
set
3434
{
35-
this.String = null;
36-
this._bool = value;
37-
}
38-
}
39-
public object Value
40-
{
41-
get
42-
{
43-
if (IsBool) return Bool;
44-
if (IsString) return String;
45-
return null;
35+
String = null;
36+
_bool = value;
4637
}
4738
}
4839

src/Protocol/Models/CodeActionKind.cs

-1
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,5 @@ public CodeActionKind(string kind)
7676
}
7777

7878
public string Kind { get; }
79-
8079
}
8180
}

src/Protocol/Models/CreateFile.cs

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
using OmniSharp.Extensions.LanguageServer.Protocol.Serialization;
2+
3+
namespace OmniSharp.Extensions.LanguageServer.Protocol.Models
4+
{
5+
/// <summary>
6+
/// Create file operation
7+
/// </summary>
8+
public class CreateFile : IFile
9+
{
10+
/// <summary>
11+
/// A create
12+
/// </summary>
13+
public ResourceOperationKind Kind { get; } = ResourceOperationKind.Create;
14+
/// <summary>
15+
/// The resource to create.
16+
/// </summary>
17+
public string Uri { get; set; }
18+
/// <summary>
19+
/// Additional Options
20+
/// </summary>
21+
[Optional]
22+
public CreateFileOptions Options { get; set; }
23+
}
24+
}
+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using OmniSharp.Extensions.LanguageServer.Protocol.Serialization;
2+
3+
namespace OmniSharp.Extensions.LanguageServer.Protocol.Models
4+
{
5+
/// <summary>
6+
/// Options to create a file.
7+
/// </summary>
8+
public class CreateFileOptions
9+
{
10+
/// <summary>
11+
/// Overwrite existing file. Overwrite wins over `ignoreIfExists`
12+
/// </summary>
13+
[Optional]
14+
public bool Overwrite { get; set; }
15+
/// <summary>
16+
/// Ignore if exists.
17+
/// </summary>
18+
[Optional]
19+
public bool IgnoreIfExists { get; set; }
20+
}
21+
}

0 commit comments

Comments
 (0)