Skip to content

Commit 1b846dc

Browse files
authored
Merge pull request #26 from Exafunction/rahul/support-airgapped-mode
Download language server from enterprise portal in enterprise mode.
2 parents 3bd95df + e38b9e6 commit 1b846dc

File tree

5 files changed

+39
-9
lines changed

5 files changed

+39
-9
lines changed

Diff for: .gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,9 @@ node_modules/
302302
**/*.Server/ModelManifest.xml
303303
_Pvt_Extensions
304304

305+
# VsixSignTool
306+
vsixsigntool.exe
307+
305308
# Paket dependency manager
306309
.paket/paket.exe
307310
paket-files/

Diff for: CodeiumVS/CodeiumVSPackage.cs

+6-1
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,12 @@ public string GetLanguageServerFolder()
236236

237237
public string GetLanguageServerPath()
238238
{
239-
return Path.Combine(GetLanguageServerFolder(), "language_server_windows_x64.exe");
239+
string binaryName = "language_server_windows_x64.exe";
240+
if (SettingsPage.EnterpriseMode)
241+
{
242+
binaryName = "language_server_windows_x64_enterprise.exe";
243+
}
244+
return Path.Combine(GetLanguageServerFolder(), binaryName);
240245
}
241246

242247
public string GetDatabaseDirectory()

Diff for: CodeiumVS/LanguageServer/LanguageServer.cs

+28-6
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ namespace CodeiumVS;
2121

2222
public class LanguageServer
2323
{
24-
private const string Version = "1.6.7";
24+
private const string Version = "1.6.10";
2525

2626
private int Port = 0;
2727
private Process process;
@@ -192,9 +192,31 @@ public async Task PrepareAsync()
192192
var waitDialogFactory = (IVsThreadedWaitDialogFactory)await VS.Services.GetThreadedWaitDialogAsync();
193193
IVsThreadedWaitDialog4 progDialog = waitDialogFactory.CreateInstance();
194194

195+
196+
197+
string extensionBaseUrl = "https://github.com/Exafunction/codeium/releases/download";
198+
string languageServerVersion = Version;
199+
if (Package.SettingsPage.EnterpriseMode)
200+
{
201+
// Get the contents of /api/extension_base_url
202+
try
203+
{
204+
string portalUrl = Package.SettingsPage.PortalUrl.TrimEnd('/');
205+
string result = await new HttpClient().GetStringAsync(portalUrl + "/api/extension_base_url");
206+
extensionBaseUrl = result.Trim().TrimEnd('/');
207+
languageServerVersion = await new HttpClient().GetStringAsync(portalUrl + "/api/version");
208+
}
209+
catch (Exception)
210+
{
211+
await Package.LogAsync("Failed to get extension base url");
212+
extensionBaseUrl = "https://github.com/Exafunction/codeium/releases/download";
213+
}
214+
}
215+
Metadata.extension_version = languageServerVersion;
216+
195217
progDialog.StartWaitDialog(
196-
"Codeium", $"Downloading language server v{Version}", "", null,
197-
$"Codeium: Downloading language server v{Version}", 0, false, true
218+
"Codeium", $"Downloading language server v{languageServerVersion}", "", null,
219+
$"Codeium: Downloading language server v{languageServerVersion}", 0, false, true
198220
);
199221

200222
// the language server is downloaded in a thread so that it doesn't block the UI
@@ -208,7 +230,7 @@ void ThreadDownloadLanguageServer()
208230
Directory.CreateDirectory(langServerFolder);
209231
if (File.Exists(downloadDest)) File.Delete(downloadDest);
210232

211-
Uri url = new($"https://github.com/Exafunction/codeium/releases/download/language-server-v{Version}/language_server_windows_x64.exe.gz");
233+
Uri url = new($"{extensionBaseUrl}/language-server-v{languageServerVersion}/language_server_windows_x64.exe.gz");
212234

213235
WebClient webClient = new();
214236

@@ -227,9 +249,9 @@ void ThreadDownloadLanguageServer()
227249
double recievedBytesMb = e.BytesReceived / 1024.0 / 1024.0;
228250

229251
progDialog.UpdateProgress(
230-
$"Downloading language server v{Version} ({e.ProgressPercentage}%)",
252+
$"Downloading language server v{languageServerVersion} ({e.ProgressPercentage}%)",
231253
$"{recievedBytesMb:f2}Mb / {totalBytesMb:f2}Mb",
232-
$"Codeium: Downloading language server v{Version} ({e.ProgressPercentage}%)",
254+
$"Codeium: Downloading language server v{languageServerVersion} ({e.ProgressPercentage}%)",
233255
(int)e.BytesReceived, (int)e.TotalBytesToReceive, true, out _
234256
);
235257

Diff for: CodeiumVS/source.extension.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ internal sealed partial class Vsix
1111
public const string Name = "Codeium";
1212
public const string Description = @"The modern coding superpower: free AI code acceleration plugin for your favorite languages. Type less. Code more. Ship faster.";
1313
public const string Language = "en-US";
14-
public const string Version = "1.6.7";
14+
public const string Version = "1.6.10";
1515
public const string Author = "Codeium";
1616
public const string Tags = "";
1717
}

Diff for: CodeiumVS/source.extension.vsixmanifest

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
33
<Metadata>
4-
<Identity Id="Codeium.VisualStudio" Version="1.6.7" Language="en-US" Publisher="Codeium" />
4+
<Identity Id="Codeium.VisualStudio" Version="1.6.10" Language="en-US" Publisher="Codeium" />
55
<DisplayName>Codeium</DisplayName>
66
<Description xml:space="preserve">The modern coding superpower: free AI code acceleration plugin for your favorite languages. Type less. Code more. Ship faster.</Description>
77
<MoreInfo>https://www.codeium.com</MoreInfo>

0 commit comments

Comments
 (0)