|
1 | | -using System; |
2 | 1 | using System.Collections.Generic; |
3 | 2 | using System.IO; |
4 | 3 | using System.Threading; |
|
7 | 6 | using Microsoft.Extensions.Logging; |
8 | 7 | using OmniSharp.Extensions.LanguageServer.Protocol; |
9 | 8 | using OmniSharp.Extensions.LanguageServer.Protocol.Client.Capabilities; |
| 9 | +using OmniSharp.Extensions.LanguageServer.Protocol.Document; |
10 | 10 | using OmniSharp.Extensions.LanguageServer.Protocol.Models; |
| 11 | +using OmniSharp.Extensions.LanguageServer.Protocol.Progress; |
11 | 12 | using OmniSharp.Extensions.LanguageServer.Protocol.Server; |
12 | 13 | using OmniSharp.Extensions.LanguageServer.Protocol.Server.Capabilities; |
13 | | -using OmniSharp.Extensions.LanguageServer.Server; |
| 14 | +using OmniSharp.Extensions.LanguageServer.Protocol.Server.WorkDone; |
| 15 | +using OmniSharp.Extensions.LanguageServer.Protocol.Workspace; |
14 | 16 |
|
15 | 17 | namespace SampleServer |
16 | 18 | { |
@@ -104,11 +106,11 @@ public TextDocumentAttributes GetTextDocumentAttributes(DocumentUri uri) |
104 | 106 | } |
105 | 107 | } |
106 | 108 |
|
107 | | - class MyDocumentSymbolHandler : OmniSharp.Extensions.LanguageServer.Protocol.Server.DocumentSymbolHandler |
| 109 | + class MyDocumentSymbolHandler : DocumentSymbolHandler |
108 | 110 | { |
109 | | - public MyDocumentSymbolHandler(ProgressManager progressManager) : base(new DocumentSymbolRegistrationOptions() { |
| 111 | + public MyDocumentSymbolHandler() : base(new DocumentSymbolRegistrationOptions() { |
110 | 112 | DocumentSelector = DocumentSelector.ForLanguage("csharp") |
111 | | - }, progressManager) |
| 113 | + }) |
112 | 114 | { |
113 | 115 | } |
114 | 116 |
|
@@ -155,26 +157,31 @@ public override async Task<SymbolInformationOrDocumentSymbolContainer> Handle(Do |
155 | 157 | } |
156 | 158 | } |
157 | 159 |
|
158 | | - class MyWorkspaceSymbolsHandler : OmniSharp.Extensions.LanguageServer.Protocol.Server.WorkspaceSymbolsHandler |
| 160 | + class MyWorkspaceSymbolsHandler : WorkspaceSymbolsHandler |
159 | 161 | { |
| 162 | + private readonly IServerWorkDoneManager _manager; |
| 163 | + private readonly IServerWorkDoneManager _serverWorkDoneManager; |
| 164 | + private readonly IProgressManager _progressManager; |
160 | 165 | private readonly ILogger<MyWorkspaceSymbolsHandler> logger; |
161 | 166 |
|
162 | | - public MyWorkspaceSymbolsHandler(ProgressManager progressManager, ILogger<MyWorkspaceSymbolsHandler> logger) : |
163 | | - base(new WorkspaceSymbolRegistrationOptions() { }, progressManager) |
| 167 | + public MyWorkspaceSymbolsHandler(IServerWorkDoneManager serverWorkDoneManager, IProgressManager progressManager, ILogger<MyWorkspaceSymbolsHandler> logger) : |
| 168 | + base(new WorkspaceSymbolRegistrationOptions() { }) |
164 | 169 | { |
| 170 | + _serverWorkDoneManager = serverWorkDoneManager; |
| 171 | + _progressManager = progressManager; |
165 | 172 | this.logger = logger; |
166 | 173 | } |
167 | 174 |
|
168 | 175 | public override async Task<Container<SymbolInformation>> Handle(WorkspaceSymbolParams request, |
169 | 176 | CancellationToken cancellationToken) |
170 | 177 | { |
171 | | - using var reporter = ProgressManager.WorkDone(request, new WorkDoneProgressBegin() { |
| 178 | + using var reporter = _serverWorkDoneManager.For(request, new WorkDoneProgressBegin() { |
172 | 179 | Cancellable = true, |
173 | 180 | Message = "This might take a while...", |
174 | 181 | Title = "Some long task....", |
175 | 182 | Percentage = 0 |
176 | 183 | }); |
177 | | - using var partialResults = ProgressManager.For(request, cancellationToken); |
| 184 | + using var partialResults = _progressManager.For(request, cancellationToken); |
178 | 185 | if (partialResults != null) |
179 | 186 | { |
180 | 187 | await Task.Delay(2000, cancellationToken); |
|
0 commit comments