diff --git a/src/Cake.VisualStudio.csproj b/src/Cake.VisualStudio.csproj
index bf95ddd..51fbcb0 100644
--- a/src/Cake.VisualStudio.csproj
+++ b/src/Cake.VisualStudio.csproj
@@ -45,7 +45,7 @@
Properties
Cake.VisualStudio
Cake.VisualStudio
- v4.6
+ v4.6.1
true
true
true
@@ -99,6 +99,7 @@
+
@@ -247,6 +248,12 @@
True
+
+ ..\packages\Microsoft.VisualStudio.LanguageServer.Client.15.8.3057\lib\net461\Microsoft.VisualStudio.LanguageServer.Client.dll
+
+
+ ..\packages\Microsoft.VisualStudio.LanguageServer.Protocol.15.8.3057\lib\net461\Microsoft.VisualStudio.LanguageServer.Protocol.dll
+
..\packages\Microsoft.VisualStudio.OLE.Interop.7.10.6070\lib\Microsoft.VisualStudio.OLE.Interop.dll
True
@@ -332,23 +339,27 @@
..\packages\Microsoft.VisualStudio.TextManager.Interop.8.0.8.0.50727\lib\Microsoft.VisualStudio.TextManager.Interop.8.0.dll
True
-
- ..\packages\Microsoft.VisualStudio.Threading.15.0.240\lib\net45\Microsoft.VisualStudio.Threading.dll
- True
+
+ ..\packages\Microsoft.VisualStudio.Threading.15.3.20\lib\net45\Microsoft.VisualStudio.Threading.dll
..\packages\Microsoft.VisualStudio.Utilities.15.0.26201\lib\net45\Microsoft.VisualStudio.Utilities.dll
True
-
- ..\packages\Microsoft.VisualStudio.Validation.15.0.82\lib\net45\Microsoft.VisualStudio.Validation.dll
- True
+
+ ..\packages\Microsoft.VisualStudio.Validation.15.3.15\lib\net45\Microsoft.VisualStudio.Validation.dll
+
+
+ ..\packages\Newtonsoft.Json.6.0.6\lib\net45\Newtonsoft.Json.dll
False
+
+ ..\packages\StreamJsonRpc.1.2.8\lib\net45\StreamJsonRpc.dll
+
@@ -356,6 +367,7 @@
+
diff --git a/src/ContentType/CakeContentTypeDefinition.cs b/src/ContentType/CakeContentTypeDefinition.cs
index 051da27..4c9209e 100644
--- a/src/ContentType/CakeContentTypeDefinition.cs
+++ b/src/ContentType/CakeContentTypeDefinition.cs
@@ -4,6 +4,7 @@
using System.ComponentModel.Composition;
using Cake.VisualStudio.Helpers;
+using Microsoft.VisualStudio.LanguageServer.Client;
using Microsoft.VisualStudio.Utilities;
namespace Cake.VisualStudio.ContentType
@@ -14,6 +15,7 @@ public sealed class CakeContentTypeDefinition
[Name(Constants.CakeContentType)]
[BaseDefinition(Constants.BaseContentType)]
[BaseDefinition(Constants.RoslynContentType)]
+ [BaseDefinition(CodeRemoteContentDefinition.CodeRemoteContentTypeName)]
public ContentTypeDefinition ICakeContentTypeDefinitionContentType { get; set; }
[Export(typeof(FileExtensionToContentTypeDefinition))]
diff --git a/src/LanguageClient/LanguageClient.cs b/src/LanguageClient/LanguageClient.cs
new file mode 100644
index 0000000..cbed99b
--- /dev/null
+++ b/src/LanguageClient/LanguageClient.cs
@@ -0,0 +1,73 @@
+using Cake.VisualStudio.Helpers;
+using Microsoft.VisualStudio.LanguageServer.Client;
+using Microsoft.VisualStudio.Threading;
+using Microsoft.VisualStudio.Utilities;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.Composition;
+using System.Diagnostics;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace Cake.VisualStudio.LanguageClient
+{
+ [ContentType(Constants.CakeContentType)]
+ [Export(typeof(ILanguageClient))]
+ public class LanguageClient : ILanguageClient
+ {
+ public string Name => "Cake Language Extension";
+
+ public IEnumerable ConfigurationSections => null;
+
+ public object InitializationOptions => null;
+
+ public IEnumerable FilesToWatch => null;
+
+ public event AsyncEventHandler StartAsync;
+ public event AsyncEventHandler StopAsync;
+
+ public async Task ActivateAsync(CancellationToken token)
+ {
+ await Task.Yield();
+
+ var info = new ProcessStartInfo
+ {
+ FileName = @"C:\temp\omnisharp\omnisharp.exe",
+ Arguments = $@"-lsp",
+ RedirectStandardInput = true,
+ RedirectStandardOutput = true,
+ UseShellExecute = false,
+ CreateNoWindow = true
+ };
+
+ var process = new Process
+ {
+ StartInfo = info
+ };
+
+ if (process.Start())
+ {
+ return new Connection(process.StandardOutput.BaseStream, process.StandardInput.BaseStream);
+ }
+
+ return null;
+ }
+
+ public async Task OnLoadedAsync()
+ {
+ await StartAsync?.InvokeAsync(this, EventArgs.Empty);
+ }
+
+ public Task OnServerInitializedAsync()
+ {
+ return Task.CompletedTask;
+ }
+
+ public Task OnServerInitializeFailedAsync(Exception e)
+ {
+ return Task.CompletedTask;
+ }
+ }
+}
diff --git a/src/app.config b/src/app.config
index bb10a4c..df66d64 100644
--- a/src/app.config
+++ b/src/app.config
@@ -28,12 +28,24 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
\ No newline at end of file
+
diff --git a/src/packages.config b/src/packages.config
index 25e3245..d5487a4 100644
--- a/src/packages.config
+++ b/src/packages.config
@@ -5,6 +5,8 @@
+
+
@@ -23,10 +25,12 @@
-
+
-
+
+
+