From 5f3e08eb96219e5ba0f6f6540b1732bfa292af90 Mon Sep 17 00:00:00 2001 From: David Wilson Date: Thu, 24 Mar 2016 08:06:40 -0700 Subject: [PATCH 1/4] DRAFT: Initial "code actions" support --- .../LanguageServer/CodeAction.cs | 32 +++++++ .../LanguageServer/ServerCapabilities.cs | 2 + .../PowerShellEditorServices.Protocol.csproj | 3 +- .../Server/LanguageServer.cs | 88 ++++++++++++++++--- .../Analysis/AnalysisService.cs | 18 ++-- .../Workspace/ScriptFileMarker.cs | 60 +++++++++++-- 6 files changed, 175 insertions(+), 28 deletions(-) create mode 100644 src/PowerShellEditorServices.Protocol/LanguageServer/CodeAction.cs diff --git a/src/PowerShellEditorServices.Protocol/LanguageServer/CodeAction.cs b/src/PowerShellEditorServices.Protocol/LanguageServer/CodeAction.cs new file mode 100644 index 000000000..deb0cb17f --- /dev/null +++ b/src/PowerShellEditorServices.Protocol/LanguageServer/CodeAction.cs @@ -0,0 +1,32 @@ +using Microsoft.PowerShell.EditorServices.Protocol.MessageProtocol; +using Newtonsoft.Json.Linq; + +namespace Microsoft.PowerShell.EditorServices.Protocol.LanguageServer +{ + public class CodeActionRequest + { + public static readonly + RequestType Type = + RequestType.Create("textDocument/codeAction"); + + public TextDocumentIdentifier TextDocument { get; set; } + + public Range Range { get; set; } + + public CodeActionContext Context { get; set; } + } + + public class CodeActionContext + { + public Diagnostic[] Diagnostics { get; set; } + } + + public class CodeActionCommand + { + public string Title { get; set; } + + public string Command { get; set; } + + public JArray Arguments { get; set; } + } +} diff --git a/src/PowerShellEditorServices.Protocol/LanguageServer/ServerCapabilities.cs b/src/PowerShellEditorServices.Protocol/LanguageServer/ServerCapabilities.cs index 34ba312f8..aeebb411d 100644 --- a/src/PowerShellEditorServices.Protocol/LanguageServer/ServerCapabilities.cs +++ b/src/PowerShellEditorServices.Protocol/LanguageServer/ServerCapabilities.cs @@ -24,6 +24,8 @@ public class ServerCapabilities public bool? DocumentSymbolProvider { get; set; } public bool? WorkspaceSymbolProvider { get; set; } + + public bool? CodeActionProvider { get; set; } } /// diff --git a/src/PowerShellEditorServices.Protocol/PowerShellEditorServices.Protocol.csproj b/src/PowerShellEditorServices.Protocol/PowerShellEditorServices.Protocol.csproj index 64fb6726c..c26ab8381 100644 --- a/src/PowerShellEditorServices.Protocol/PowerShellEditorServices.Protocol.csproj +++ b/src/PowerShellEditorServices.Protocol/PowerShellEditorServices.Protocol.csproj @@ -56,6 +56,7 @@ + @@ -155,7 +156,7 @@ -