await fs.mkdir(config.globalStoragePath, { recursive: true });
if (config.package.releaseTag != NIGHTLY_TAG) {
- await state.removeReleaseId();
+ await state.removeNightlyReleaseId();
}
await bootstrapExtension(config, state);
const path = await bootstrapServer(config, state);
const lastCheck = state.lastCheck;
const anHour = 60 * 60 * 1000;
- const shouldCheckForNewNightly = state.releaseId === undefined || (now - (lastCheck ?? 0)) > anHour;
+ const shouldCheckForNewNightly = state.nightlyReleaseId === undefined || (now - (lastCheck ?? 0)) > anHour;
if (!shouldCheckForNewNightly) return;
}
return await fetchRelease("nightly", state.githubToken, config.httpProxy);
}).catch(async (e) => {
log.error(e);
- if (state.releaseId === undefined) { // Show error only for the initial download
+ if (state.nightlyReleaseId === undefined) { // Show error only for the initial download
await vscode.window.showErrorMessage(`Failed to download rust-analyzer nightly: ${e}`);
}
return;
});
if (release === undefined) {
- if (state.releaseId === undefined) { // Show error only for the initial download
+ if (state.nightlyReleaseId === undefined) { // Show error only for the initial download
await vscode.window.showErrorMessage("Failed to download rust-analyzer nightly: empty release contents returned");
}
return;
}
- // If currently used extension is nightly and its release id matches the downloaded release id, we're already on the latest nightly version
- if (config.package.releaseTag === NIGHTLY_TAG && release.id === state.releaseId) return;
+ if (config.package.releaseTag === NIGHTLY_TAG && release.id === state.nightlyReleaseId) return;
const userResponse = await vscode.window.showInformationMessage(
"New version of rust-analyzer (nightly) is available (requires reload).",
await vscode.commands.executeCommand("workbench.extensions.installExtension", vscode.Uri.file(dest));
await fs.unlink(dest);
- await state.updateReleaseId(release.id);
+ await state.updateNightlyReleaseId(release.id);
await state.updateLastCheck(now);
await vscode.commands.executeCommand("workbench.action.reloadWindow");
}
export class PersistentState {
constructor(private readonly globalState: vscode.Memento) {
- const { lastCheck, releaseId, serverVersion } = this;
- log.info("PersistentState:", { lastCheck, releaseId, serverVersion });
+ const { lastCheck, nightlyReleaseId, serverVersion } = this;
+ log.info("PersistentState:", { lastCheck, nightlyReleaseId, serverVersion });
}
/**
* Release id of the *nightly* extension.
* Used to check if we should update.
*/
- get releaseId(): number | undefined {
+ get nightlyReleaseId(): number | undefined {
return this.globalState.get("releaseId");
}
- async updateReleaseId(value: number) {
+ async updateNightlyReleaseId(value: number) {
await this.globalState.update("releaseId", value);
}
- async removeReleaseId() {
+ async removeNightlyReleaseId() {
await this.globalState.update("releaseId", undefined);
}