From 47c585d53b86ee42297dcd2cf334d87916d64f2f Mon Sep 17 00:00:00 2001 From: Rahul Sridhar Date: Wed, 13 Dec 2023 19:31:30 -0800 Subject: [PATCH 1/5] Download language server from enterprise portal in enterprise mode. --- .gitignore | 3 ++ CodeiumVS/LanguageServer/LanguageServer.cs | 32 ++++++++++++++++++---- CodeiumVS/source.extension.cs | 2 +- CodeiumVS/source.extension.vsixmanifest | 2 +- 4 files changed, 31 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 9491a2f..dc8ee0d 100644 --- a/.gitignore +++ b/.gitignore @@ -302,6 +302,9 @@ node_modules/ **/*.Server/ModelManifest.xml _Pvt_Extensions +# VsixSignTool +vsixsigntool.exe + # Paket dependency manager .paket/paket.exe paket-files/ diff --git a/CodeiumVS/LanguageServer/LanguageServer.cs b/CodeiumVS/LanguageServer/LanguageServer.cs index bc09702..d0d8b9a 100644 --- a/CodeiumVS/LanguageServer/LanguageServer.cs +++ b/CodeiumVS/LanguageServer/LanguageServer.cs @@ -21,7 +21,7 @@ namespace CodeiumVS; public class LanguageServer { - private const string Version = "1.6.7"; + private const string Version = "1.6.10"; private int Port = 0; private Process process; @@ -192,9 +192,29 @@ public async Task PrepareAsync() var waitDialogFactory = (IVsThreadedWaitDialogFactory)await VS.Services.GetThreadedWaitDialogAsync(); IVsThreadedWaitDialog4 progDialog = waitDialogFactory.CreateInstance(); + + + string extensionBaseUrl = "https://github.com/Exafunction/codeium/releases/download"; + string languageServerVersion = Version; + if (Package.SettingsPage.EnterpriseMode) + { + // Get the contents of /api/extension_base_url + try + { + string portalUrl = Package.SettingsPage.PortalUrl.TrimEnd('/'); + string result = await new HttpClient().GetStringAsync(portalUrl + "/api/extension_base_url"); + extensionBaseUrl = result.Trim().TrimEnd('/'); + languageServerVersion = await new HttpClient().GetStringAsync(portalUrl + "/api/version"); + } + catch (Exception) + { + await Package.LogAsync("Failed to get extension base url"); + } + } + progDialog.StartWaitDialog( - "Codeium", $"Downloading language server v{Version}", "", null, - $"Codeium: Downloading language server v{Version}", 0, false, true + "Codeium", $"Downloading language server v{languageServerVersion}", "", null, + $"Codeium: Downloading language server v{languageServerVersion}", 0, false, true ); // the language server is downloaded in a thread so that it doesn't block the UI @@ -208,7 +228,7 @@ void ThreadDownloadLanguageServer() Directory.CreateDirectory(langServerFolder); if (File.Exists(downloadDest)) File.Delete(downloadDest); - Uri url = new($"https://github.com/Exafunction/codeium/releases/download/language-server-v{Version}/language_server_windows_x64.exe.gz"); + Uri url = new($"{extensionBaseUrl}/language-server-v{languageServerVersion}/language_server_windows_x64.exe.gz"); WebClient webClient = new(); @@ -227,9 +247,9 @@ void ThreadDownloadLanguageServer() double recievedBytesMb = e.BytesReceived / 1024.0 / 1024.0; progDialog.UpdateProgress( - $"Downloading language server v{Version} ({e.ProgressPercentage}%)", + $"Downloading language server v{languageServerVersion} ({e.ProgressPercentage}%)", $"{recievedBytesMb:f2}Mb / {totalBytesMb:f2}Mb", - $"Codeium: Downloading language server v{Version} ({e.ProgressPercentage}%)", + $"Codeium: Downloading language server v{languageServerVersion} ({e.ProgressPercentage}%)", (int)e.BytesReceived, (int)e.TotalBytesToReceive, true, out _ ); diff --git a/CodeiumVS/source.extension.cs b/CodeiumVS/source.extension.cs index fec538a..5f6c8fc 100644 --- a/CodeiumVS/source.extension.cs +++ b/CodeiumVS/source.extension.cs @@ -11,7 +11,7 @@ internal sealed partial class Vsix public const string Name = "Codeium"; public const string Description = @"The modern coding superpower: free AI code acceleration plugin for your favorite languages. Type less. Code more. Ship faster."; public const string Language = "en-US"; - public const string Version = "1.6.7"; + public const string Version = "1.6.10"; public const string Author = "Codeium"; public const string Tags = ""; } diff --git a/CodeiumVS/source.extension.vsixmanifest b/CodeiumVS/source.extension.vsixmanifest index a88e547..576cf8c 100644 --- a/CodeiumVS/source.extension.vsixmanifest +++ b/CodeiumVS/source.extension.vsixmanifest @@ -1,7 +1,7 @@ - + Codeium The modern coding superpower: free AI code acceleration plugin for your favorite languages. Type less. Code more. Ship faster. https://www.codeium.com From 32a0a44965f94ba7c5c1af4ddb61114acee0b4e8 Mon Sep 17 00:00:00 2001 From: Rahul Sridhar Date: Wed, 13 Dec 2023 19:33:25 -0800 Subject: [PATCH 2/5] fix vsix version --- CodeiumVS/source.extension.vsixmanifest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CodeiumVS/source.extension.vsixmanifest b/CodeiumVS/source.extension.vsixmanifest index 576cf8c..dd030fc 100644 --- a/CodeiumVS/source.extension.vsixmanifest +++ b/CodeiumVS/source.extension.vsixmanifest @@ -1,7 +1,7 @@ - + Codeium The modern coding superpower: free AI code acceleration plugin for your favorite languages. Type less. Code more. Ship faster. https://www.codeium.com From 088d0da20c6bf80b67cebd921691df8e18dddb22 Mon Sep 17 00:00:00 2001 From: Rahul Sridhar Date: Wed, 13 Dec 2023 19:49:29 -0800 Subject: [PATCH 3/5] Set metadata version --- CodeiumVS/LanguageServer/LanguageServer.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/CodeiumVS/LanguageServer/LanguageServer.cs b/CodeiumVS/LanguageServer/LanguageServer.cs index d0d8b9a..e5d1173 100644 --- a/CodeiumVS/LanguageServer/LanguageServer.cs +++ b/CodeiumVS/LanguageServer/LanguageServer.cs @@ -211,6 +211,7 @@ public async Task PrepareAsync() await Package.LogAsync("Failed to get extension base url"); } } + Metadata.extension_version = languageServerVersion; progDialog.StartWaitDialog( "Codeium", $"Downloading language server v{languageServerVersion}", "", null, From 70ddfc1bfcf5f606075350d52e29742fdcadc4f3 Mon Sep 17 00:00:00 2001 From: Rahul Sridhar Date: Thu, 14 Dec 2023 18:16:03 -0800 Subject: [PATCH 4/5] Update CodeiumVS/LanguageServer/LanguageServer.cs Co-authored-by: thedemons --- CodeiumVS/LanguageServer/LanguageServer.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/CodeiumVS/LanguageServer/LanguageServer.cs b/CodeiumVS/LanguageServer/LanguageServer.cs index e5d1173..8fb1b4a 100644 --- a/CodeiumVS/LanguageServer/LanguageServer.cs +++ b/CodeiumVS/LanguageServer/LanguageServer.cs @@ -209,6 +209,7 @@ public async Task PrepareAsync() catch (Exception) { await Package.LogAsync("Failed to get extension base url"); + extensionBaseUrl = "https://github.com/Exafunction/codeium/releases/download"; } } Metadata.extension_version = languageServerVersion; From e38b9e6320c574a21428ad377ebf3da1f32697c4 Mon Sep 17 00:00:00 2001 From: Rahul Sridhar Date: Thu, 14 Dec 2023 18:25:21 -0800 Subject: [PATCH 5/5] Rename language server if in enterprise mode. --- CodeiumVS/CodeiumVSPackage.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CodeiumVS/CodeiumVSPackage.cs b/CodeiumVS/CodeiumVSPackage.cs index a321712..f73bf69 100644 --- a/CodeiumVS/CodeiumVSPackage.cs +++ b/CodeiumVS/CodeiumVSPackage.cs @@ -236,7 +236,12 @@ public string GetLanguageServerFolder() public string GetLanguageServerPath() { - return Path.Combine(GetLanguageServerFolder(), "language_server_windows_x64.exe"); + string binaryName = "language_server_windows_x64.exe"; + if (SettingsPage.EnterpriseMode) + { + binaryName = "language_server_windows_x64_enterprise.exe"; + } + return Path.Combine(GetLanguageServerFolder(), binaryName); } public string GetDatabaseDirectory()