Skip to content
This repository was archived by the owner on Jul 10, 2024. It is now read-only.

Commit c602ace

Browse files
committed
improve autodownload
1 parent bf428f5 commit c602ace

File tree

3 files changed

+21
-7
lines changed

3 files changed

+21
-7
lines changed

src/OneWare.Essentials/LanguageService/LanguageServiceLsp.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ public abstract class LanguageServiceLsp(string name, string? workspace) : Langu
3535

3636
public override async Task ActivateAsync()
3737
{
38-
//return;
3938
if (IsActivated) return;
4039
IsActivated = true;
4140

src/OneWare.Essentials/LanguageService/LanguageServiceLspAutoDownload.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,18 @@ protected LanguageServiceLspAutoDownload(IObservable<string> executablePath, Pac
2323
executablePath.Subscribe(x =>
2424
{
2525
ExecutablePath = x;
26+
if(File.Exists(ExecutablePath))
27+
{
28+
_ = ActivateAsync();
29+
}
2630
});
2731
}
2832

2933
public override async Task ActivateAsync()
3034
{
31-
if (_packageService.GetPackageModel(_package) is {Status: PackageStatus.Available or PackageStatus.UpdateAvailable or PackageStatus.Installing})
35+
if (!File.Exists(ExecutablePath) && _enableAutoDownload)
3236
{
33-
if (!_enableAutoDownload) return;
34-
if(!await _packageService.InstallAsync(_package)) return;
35-
await Task.Delay(100);
37+
await _packageService.InstallAsync(_package);
3638
}
3739
await base.ActivateAsync();
3840
}

src/OneWare.Essentials/Models/PackageModel.cs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ public float Progress
6666

6767
protected string PackageType { get; }
6868

69+
public event EventHandler<Task<bool>>? Installing;
70+
6971
public event EventHandler? Installed;
7072

7173
public event EventHandler? Removed;
@@ -93,7 +95,16 @@ public async Task<bool> UpdateAsync(PackageVersion version)
9395
return target;
9496
}
9597

96-
public async Task<bool> DownloadAsync(PackageVersion version)
98+
public Task<bool> DownloadAsync(PackageVersion version)
99+
{
100+
var task = PerformDownloadAsync(version);
101+
102+
Installing?.Invoke(this, task);
103+
104+
return task;
105+
}
106+
107+
private async Task<bool> PerformDownloadAsync(PackageVersion version)
97108
{
98109
try
99110
{
@@ -130,6 +141,8 @@ public async Task<bool> DownloadAsync(PackageVersion version)
130141
InstalledVersion = version;
131142

132143
Installed?.Invoke(this, EventArgs.Empty);
144+
145+
await Task.Delay(100);
133146
}
134147
else
135148
{
@@ -144,7 +157,7 @@ public async Task<bool> DownloadAsync(PackageVersion version)
144157
}
145158
return true;
146159
}
147-
160+
148161
/// <summary>
149162
/// Gets called after downloading and extracting
150163
/// Make sure to set Status after completing

0 commit comments

Comments
 (0)