|
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