From 5ce62d890c5bc09faebf2a260b91f3f5fdf4f708 Mon Sep 17 00:00:00 2001 From: Andy Jordan Date: Mon, 28 Nov 2022 13:29:43 -0800 Subject: [PATCH 1/2] Revert manual pin of Newtonsoft.Json --- src/PowerShellEditorServices/PowerShellEditorServices.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/PowerShellEditorServices/PowerShellEditorServices.csproj b/src/PowerShellEditorServices/PowerShellEditorServices.csproj index c7e9f761e..6d2b5e3d5 100644 --- a/src/PowerShellEditorServices/PowerShellEditorServices.csproj +++ b/src/PowerShellEditorServices/PowerShellEditorServices.csproj @@ -28,8 +28,8 @@ - - + + From 142b7f495a9631dce5703e1c7e04e5d99aa36eb0 Mon Sep 17 00:00:00 2001 From: Andy Jordan Date: Mon, 28 Nov 2022 13:59:33 -0800 Subject: [PATCH 2/2] Use the `LspSerializer` in `CodeActions` and `SendTelemetry` --- src/PowerShellEditorServices/Server/PsesDebugServer.cs | 4 +++- .../Services/CodeLens/ReferencesCodeLensProvider.cs | 6 +++--- .../Services/TextDocument/Handlers/CodeActionHandler.cs | 8 +++++++- .../Services/Workspace/WorkspaceService.cs | 1 + 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/PowerShellEditorServices/Server/PsesDebugServer.cs b/src/PowerShellEditorServices/Server/PsesDebugServer.cs index 0e79946ef..6aca82e04 100644 --- a/src/PowerShellEditorServices/Server/PsesDebugServer.cs +++ b/src/PowerShellEditorServices/Server/PsesDebugServer.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. +// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. using System; @@ -89,6 +89,8 @@ public async Task StartAsync() { // Start the host if not already started, and enable debug mode (required // for remote debugging). + // + // TODO: We might need to fill in HostStartOptions here. _startedPses = !await _psesHost.TryStartAsync(new HostStartOptions(), cancellationToken).ConfigureAwait(false); _psesHost.DebugContext.EnableDebugMode(); diff --git a/src/PowerShellEditorServices/Services/CodeLens/ReferencesCodeLensProvider.cs b/src/PowerShellEditorServices/Services/CodeLens/ReferencesCodeLensProvider.cs index 02cff641d..eb50ce2d5 100644 --- a/src/PowerShellEditorServices/Services/CodeLens/ReferencesCodeLensProvider.cs +++ b/src/PowerShellEditorServices/Services/CodeLens/ReferencesCodeLensProvider.cs @@ -154,9 +154,9 @@ public async Task ResolveCodeLens( Title = GetReferenceCountHeader(referenceLocations.Length), Arguments = JArray.FromObject(new object[] { - scriptFile.DocumentUri, - codeLens.Range.Start, - referenceLocations + scriptFile.DocumentUri, + codeLens.Range.Start, + referenceLocations }, LspSerializer.Instance.JsonSerializer) } diff --git a/src/PowerShellEditorServices/Services/TextDocument/Handlers/CodeActionHandler.cs b/src/PowerShellEditorServices/Services/TextDocument/Handlers/CodeActionHandler.cs index 8ea7eca70..2681baa19 100644 --- a/src/PowerShellEditorServices/Services/TextDocument/Handlers/CodeActionHandler.cs +++ b/src/PowerShellEditorServices/Services/TextDocument/Handlers/CodeActionHandler.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; +using Newtonsoft.Json.Linq; using Microsoft.Extensions.Logging; using Microsoft.PowerShell.EditorServices.Services; using Microsoft.PowerShell.EditorServices.Services.TextDocument; @@ -12,6 +13,7 @@ using OmniSharp.Extensions.LanguageServer.Protocol.Client.Capabilities; using OmniSharp.Extensions.LanguageServer.Protocol.Document; using OmniSharp.Extensions.LanguageServer.Protocol.Models; +using OmniSharp.Extensions.LanguageServer.Protocol.Serialization; namespace Microsoft.PowerShell.EditorServices.Handlers { @@ -131,7 +133,11 @@ public override async Task Handle(CodeActionParams { Title = title, Name = "PowerShell.ShowCodeActionDocumentation", - Arguments = Newtonsoft.Json.Linq.JArray.FromObject(new[] { diagnostic.Code?.String }) + Arguments = JArray.FromObject(new object[] + { + diagnostic.Code?.String + }, + LspSerializer.Instance.JsonSerializer) } }); } diff --git a/src/PowerShellEditorServices/Services/Workspace/WorkspaceService.cs b/src/PowerShellEditorServices/Services/Workspace/WorkspaceService.cs index ee76bfd99..0d9a614e4 100644 --- a/src/PowerShellEditorServices/Services/Workspace/WorkspaceService.cs +++ b/src/PowerShellEditorServices/Services/Workspace/WorkspaceService.cs @@ -506,6 +506,7 @@ internal static bool IsPathInMemory(string filePath) internal string ResolveRelativeScriptPath(string baseFilePath, string relativePath) { + // TODO: Sometimes the `baseFilePath` (even when its `WorkspacePath`) is null. string combinedPath = null; Exception resolveException = null;