Skip to content

Commit 6b50650

Browse files
move to omnisharp 0.17.0 (#1283)
* move to omnisharp 0.17.0 (wip) * use real version * small type change
1 parent 241ed02 commit 6b50650

26 files changed

+181
-118
lines changed

src/PowerShellEditorServices/Extensions/Api/EditorContextService.cs

+11-8
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
//
55

66
using System;
7+
using System.Threading;
78
using System.Threading.Tasks;
89
using Microsoft.PowerShell.EditorServices.Handlers;
910
using OmniSharp.Extensions.LanguageServer.Protocol.Server;
@@ -94,16 +95,18 @@ internal EditorContextService(
9495
public async Task<ILspCurrentFileContext> GetCurrentLspFileContextAsync()
9596
{
9697
ClientEditorContext clientContext =
97-
await _languageServer.SendRequest<GetEditorContextRequest, ClientEditorContext>(
98+
await _languageServer.SendRequest<GetEditorContextRequest>(
9899
"editor/getEditorContext",
99-
new GetEditorContextRequest()).ConfigureAwait(false);
100+
new GetEditorContextRequest())
101+
.Returning<ClientEditorContext>(CancellationToken.None)
102+
.ConfigureAwait(false);
100103

101104
return new LspCurrentFileContext(clientContext);
102105
}
103106

104107
public Task OpenNewUntitledFileAsync()
105108
{
106-
return _languageServer.SendRequest<string>("editor/newFile", null);
109+
return _languageServer.SendRequest<string>("editor/newFile", null).ReturningVoid(CancellationToken.None);
107110
}
108111

109112
public Task OpenFileAsync(Uri fileUri) => OpenFileAsync(fileUri, preview: false);
@@ -114,12 +117,12 @@ public Task OpenFileAsync(Uri fileUri, bool preview)
114117
{
115118
FilePath = fileUri.LocalPath,
116119
Preview = preview,
117-
});
120+
}).ReturningVoid(CancellationToken.None);
118121
}
119122

120123
public Task CloseFileAsync(Uri fileUri)
121124
{
122-
return _languageServer.SendRequest("editor/closeFile", fileUri.LocalPath);
125+
return _languageServer.SendRequest("editor/closeFile", fileUri.LocalPath).ReturningVoid(CancellationToken.None);
123126
}
124127

125128
public Task SaveFileAsync(Uri fileUri) => SaveFileAsync(fileUri, null);
@@ -130,15 +133,15 @@ public Task SaveFileAsync(Uri oldFileUri, Uri newFileUri)
130133
{
131134
FilePath = oldFileUri.LocalPath,
132135
NewPath = newFileUri?.LocalPath,
133-
});
136+
}).ReturningVoid(CancellationToken.None);
134137
}
135138

136139
public Task SetSelectionAsync(ILspFileRange range)
137140
{
138141
return _languageServer.SendRequest("editor/setSelection", new SetSelectionRequest
139142
{
140143
SelectionRange = range.ToOmnisharpRange()
141-
});
144+
}).ReturningVoid(CancellationToken.None);
142145
}
143146

144147
public Task InsertTextAsync(Uri fileUri, string text, ILspFileRange range)
@@ -148,7 +151,7 @@ public Task InsertTextAsync(Uri fileUri, string text, ILspFileRange range)
148151
FilePath = fileUri.LocalPath,
149152
InsertText = text,
150153
InsertRange = range.ToOmnisharpRange(),
151-
});
154+
}).ReturningVoid(CancellationToken.None);
152155
}
153156
}
154157
}

src/PowerShellEditorServices/Extensions/Api/EditorUIService.cs

+7-6
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using System;
77
using System.Collections.Generic;
88
using System.Linq;
9+
using System.Threading;
910
using System.Threading.Tasks;
1011
using Microsoft.PowerShell.EditorServices.Services.PowerShellContext;
1112
using OmniSharp.Extensions.LanguageServer.Protocol.Server;
@@ -112,12 +113,12 @@ public EditorUIService(ILanguageServer languageServer)
112113
public async Task<string> PromptInputAsync(string message)
113114
{
114115
// The VSCode client currently doesn't use the Label field, so we ignore it
115-
ShowInputPromptResponse response = await _languageServer.SendRequest<ShowInputPromptRequest, ShowInputPromptResponse>(
116+
ShowInputPromptResponse response = await _languageServer.SendRequest<ShowInputPromptRequest>(
116117
"powerShell/showInputPrompt",
117118
new ShowInputPromptRequest
118119
{
119120
Name = message,
120-
});
121+
}).Returning<ShowInputPromptResponse>(CancellationToken.None);
121122

122123
if (response.PromptCancelled)
123124
{
@@ -134,7 +135,7 @@ public async Task<IReadOnlyList<string>> PromptMultipleSelectionAsync(string mes
134135
{
135136
ChoiceDetails[] choiceDetails = GetChoiceDetails(choices);
136137

137-
ShowChoicePromptResponse response = await _languageServer.SendRequest<ShowChoicePromptRequest, ShowChoicePromptResponse>(
138+
ShowChoicePromptResponse response = await _languageServer.SendRequest<ShowChoicePromptRequest>(
138139
"powerShell/showChoicePrompt",
139140
new ShowChoicePromptRequest
140141
{
@@ -143,7 +144,7 @@ public async Task<IReadOnlyList<string>> PromptMultipleSelectionAsync(string mes
143144
Message = message,
144145
Choices = choiceDetails,
145146
DefaultChoices = defaultChoiceIndexes?.ToArray(),
146-
});
147+
}).Returning<ShowChoicePromptResponse>(CancellationToken.None);
147148

148149
if (response.PromptCancelled)
149150
{
@@ -160,7 +161,7 @@ public async Task<string> PromptSelectionAsync(string message, IReadOnlyList<Pro
160161
{
161162
ChoiceDetails[] choiceDetails = GetChoiceDetails(choices);
162163

163-
ShowChoicePromptResponse response = await _languageServer.SendRequest<ShowChoicePromptRequest, ShowChoicePromptResponse>(
164+
ShowChoicePromptResponse response = await _languageServer.SendRequest<ShowChoicePromptRequest>(
164165
"powerShell/showChoicePrompt",
165166
new ShowChoicePromptRequest
166167
{
@@ -169,7 +170,7 @@ public async Task<string> PromptSelectionAsync(string message, IReadOnlyList<Pro
169170
Message = message,
170171
Choices = choiceDetails,
171172
DefaultChoices = defaultChoiceIndex > -1 ? new[] { defaultChoiceIndex } : null,
172-
});
173+
}).Returning<ShowChoicePromptResponse>(CancellationToken.None);
173174

174175
if (response.PromptCancelled)
175176
{

src/PowerShellEditorServices/Extensions/Api/LanguageServerService.cs

+6-5
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
using MediatR;
77
using OmniSharp.Extensions.LanguageServer.Protocol.Server;
8+
using System.Threading;
89
using System.Threading.Tasks;
910

1011
namespace Microsoft.PowerShell.EditorServices.Extensions.Services
@@ -89,27 +90,27 @@ public void SendNotification(string method, object parameters)
8990

9091
public Task SendRequestAsync(string method)
9192
{
92-
return _languageServer.SendRequest<Unit>(method);
93+
return _languageServer.SendRequest(method).ReturningVoid(CancellationToken.None);
9394
}
9495

9596
public Task SendRequestAsync<T>(string method, T parameters)
9697
{
97-
return _languageServer.SendRequest<T, Unit>(method, parameters);
98+
return _languageServer.SendRequest<T>(method, parameters).ReturningVoid(CancellationToken.None);
9899
}
99100

100101
public Task<TResponse> SendRequestAsync<TResponse>(string method)
101102
{
102-
return _languageServer.SendRequest<TResponse>(method);
103+
return _languageServer.SendRequest(method).Returning<TResponse>(CancellationToken.None);
103104
}
104105

105106
public Task<TResponse> SendRequestAsync<T, TResponse>(string method, T parameters)
106107
{
107-
return _languageServer.SendRequest<T, TResponse>(method, parameters);
108+
return _languageServer.SendRequest<T>(method, parameters).Returning<TResponse>(CancellationToken.None);
108109
}
109110

110111
public Task<object> SendRequestAsync(string method, object parameters)
111112
{
112-
return _languageServer.SendRequest<object, object>(method, parameters);
113+
return _languageServer.SendRequest<object>(method, parameters).Returning<object>(CancellationToken.None);
113114
}
114115
}
115116
}

src/PowerShellEditorServices/Extensions/EditorFileRanges.cs

+8-8
Original file line numberDiff line numberDiff line change
@@ -204,12 +204,12 @@ public interface ILspFilePosition
204204
/// <summary>
205205
/// The line index of the position within the file.
206206
/// </summary>
207-
long Line { get; }
207+
int Line { get; }
208208

209209
/// <summary>
210210
/// The character offset from the line of the position.
211211
/// </summary>
212-
long Character { get; }
212+
int Character { get; }
213213
}
214214

215215
/// <summary>
@@ -260,9 +260,9 @@ public OmnisharpLspPosition(Position position)
260260
_position = position;
261261
}
262262

263-
public long Line => _position.Line;
263+
public int Line => _position.Line;
264264

265-
public long Character => _position.Character;
265+
public int Character => _position.Character;
266266

267267
public bool Equals(OmnisharpLspPosition other)
268268
{
@@ -350,15 +350,15 @@ public FilePosition(int line, int column)
350350
/// </summary>
351351
public class LspFilePosition : ILspFilePosition
352352
{
353-
public LspFilePosition(long line, long column)
353+
public LspFilePosition(int line, int column)
354354
{
355355
Line = line;
356356
Character = column;
357357
}
358358

359-
public long Line { get; }
359+
public int Line { get; }
360360

361-
public long Character { get; }
361+
public int Character { get; }
362362
}
363363

364364
/// <summary>
@@ -455,7 +455,7 @@ public static ILspFileRange ToLspRange(this IFileRange range)
455455
/// <returns>An equivalent 1-based file position.</returns>
456456
public static IFilePosition ToFilePosition(this ILspFilePosition position)
457457
{
458-
return new FilePosition((int)position.Line + 1, (int)position.Character + 1);
458+
return new FilePosition(position.Line + 1, position.Character + 1);
459459
}
460460

461461
/// <summary>

src/PowerShellEditorServices/PowerShellEditorServices.csproj

+2-2
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
4040
<PackageReference Include="Microsoft.Extensions.FileSystemGlobbing" Version="3.1.3" />
4141
<PackageReference Include="Microsoft.Extensions.Logging" Version="3.1.3" />
42-
<PackageReference Include="OmniSharp.Extensions.LanguageServer" Version="0.16.0" />
42+
<PackageReference Include="OmniSharp.Extensions.LanguageServer" Version="0.17.0-*" />
4343
<PackageReference Include="PowerShellStandard.Library" Version="5.1.1" />
4444
<PackageReference Include="Serilog" Version="2.9.0" />
4545
<PackageReference Include="Serilog.Extensions.Logging" Version="3.0.1" />
@@ -49,7 +49,7 @@
4949
<PackageReference Include="System.Security.Principal" Version="4.3.0" />
5050
<PackageReference Include="System.Security.Principal.Windows" Version="4.7.0" />
5151
<PackageReference Include="UnixConsoleEcho" Version="0.1.0" />
52-
<PackageReference Include="OmniSharp.Extensions.DebugAdapter.Server" Version="0.16.0" />
52+
<PackageReference Include="OmniSharp.Extensions.DebugAdapter.Server" Version="0.17.0-*" />
5353
</ItemGroup>
5454

5555
<ItemGroup>

src/PowerShellEditorServices/Server/PsesLanguageServer.cs

+12-2
Original file line numberDiff line numberDiff line change
@@ -92,15 +92,25 @@ public async Task StartAsync()
9292
.WithHandler<ShowHelpHandler>()
9393
.WithHandler<ExpandAliasHandler>()
9494
.OnInitialize(
95-
async (languageServer, request) =>
95+
async (languageServer, request, cancellationToken) =>
9696
{
9797
var serviceProvider = languageServer.Services;
9898
var workspaceService = serviceProvider.GetService<WorkspaceService>();
9999

100100
// Grab the workspace path from the parameters
101101
if (request.RootUri != null)
102102
{
103-
workspaceService.WorkspacePath = workspaceService.ResolveFileUri(request.RootUri).LocalPath;
103+
workspaceService.WorkspacePath = request.RootUri.GetFileSystemPath();
104+
}
105+
else
106+
{
107+
// If RootUri isn't set, try to use the first WorkspaceFolder.
108+
// TODO: Support multi-workspace.
109+
foreach (var workspaceFolder in request.WorkspaceFolders)
110+
{
111+
workspaceService.WorkspacePath = workspaceFolder.Uri.GetFileSystemPath();
112+
break;
113+
}
104114
}
105115

106116
// Set the working directory of the PowerShell session to the workspace path

src/PowerShellEditorServices/Services/Analysis/AnalysisService.cs

+3-2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
using Microsoft.PowerShell.EditorServices.Services.Analysis;
1818
using Microsoft.PowerShell.EditorServices.Services.Configuration;
1919
using Microsoft.PowerShell.EditorServices.Services.TextDocument;
20+
using OmniSharp.Extensions.LanguageServer.Protocol;
2021
using OmniSharp.Extensions.LanguageServer.Protocol.Models;
2122
using OmniSharp.Extensions.LanguageServer.Protocol.Server;
2223

@@ -41,7 +42,7 @@ internal static string GetUniqueIdFromDiagnostic(Diagnostic diagnostic)
4142
var sb = new StringBuilder(256)
4243
.Append(diagnostic.Source ?? "?")
4344
.Append("_")
44-
.Append(diagnostic.Code.IsString ? diagnostic.Code.String : diagnostic.Code.Long.ToString())
45+
.Append(diagnostic.Code?.IsString ?? true ? diagnostic.Code?.String : diagnostic.Code?.Long.ToString())
4546
.Append("_")
4647
.Append(diagnostic.Severity?.ToString() ?? "?")
4748
.Append("_")
@@ -421,7 +422,7 @@ private void PublishScriptDiagnostics(ScriptFile scriptFile, IReadOnlyList<Scrip
421422

422423
_languageServer.Document.PublishDiagnostics(new PublishDiagnosticsParams
423424
{
424-
Uri = new Uri(scriptFile.DocumentUri),
425+
Uri = DocumentUri.From(scriptFile.DocumentUri),
425426
Diagnostics = new Container<Diagnostic>(diagnostics)
426427
});
427428
}

src/PowerShellEditorServices/Services/CodeLens/ReferencesCodeLensProvider.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,8 @@ public CodeLens ResolveCodeLens(CodeLens codeLens, ScriptFile scriptFile)
8888

8989
SymbolReference foundSymbol = _symbolsService.FindFunctionDefinitionAtLocation(
9090
scriptFile,
91-
(int)codeLens.Range.Start.Line + 1,
92-
(int)codeLens.Range.Start.Character + 1);
91+
codeLens.Range.Start.Line + 1,
92+
codeLens.Range.Start.Character + 1);
9393

9494
List<SymbolReference> referencesResult = _symbolsService.FindReferencesOfSymbol(
9595
foundSymbol,

src/PowerShellEditorServices/Services/DebugAdapter/Handlers/BreakpointHandlers.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -181,8 +181,8 @@ public async Task<SetBreakpointsResponse> Handle(SetBreakpointsArguments request
181181
BreakpointDetails[] breakpointDetails = request.Breakpoints
182182
.Select((srcBreakpoint) => BreakpointDetails.Create(
183183
scriptFile.FilePath,
184-
(int)srcBreakpoint.Line,
185-
(int?)srcBreakpoint.Column,
184+
srcBreakpoint.Line,
185+
srcBreakpoint.Column,
186186
srcBreakpoint.Condition,
187187
srcBreakpoint.HitCondition,
188188
srcBreakpoint.LogMessage))

src/PowerShellEditorServices/Services/DebugAdapter/Handlers/ConfigurationDoneHandler.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public ConfigurationDoneHandler(
4646
_workspaceService = workspaceService;
4747
}
4848

49-
public async Task<ConfigurationDoneResponse> Handle(ConfigurationDoneArguments request, CancellationToken cancellationToken)
49+
public Task<ConfigurationDoneResponse> Handle(ConfigurationDoneArguments request, CancellationToken cancellationToken)
5050
{
5151
_debugService.IsClientAttached = true;
5252

@@ -90,7 +90,7 @@ public async Task<ConfigurationDoneResponse> Handle(ConfigurationDoneArguments r
9090
}
9191
}
9292

93-
return new ConfigurationDoneResponse();
93+
return Task.FromResult(new ConfigurationDoneResponse());
9494
}
9595

9696
private async Task LaunchScriptAsync(string scriptToLaunch)

0 commit comments

Comments
 (0)