summaryrefslogtreecommitdiff
path: root/cli/lsp/language_server.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/lsp/language_server.rs')
-rw-r--r--cli/lsp/language_server.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs
index 667df74bb..6f0c96746 100644
--- a/cli/lsp/language_server.rs
+++ b/cli/lsp/language_server.rs
@@ -112,6 +112,8 @@ use crate::npm::CliNpmResolverManagedPackageJsonInstallerOption;
use crate::npm::CliNpmResolverManagedSnapshotOption;
use crate::tools::fmt::format_file;
use crate::tools::fmt::format_parsed_source;
+use crate::tools::upgrade::check_for_upgrades_for_lsp;
+use crate::tools::upgrade::upgrade_check_enabled;
use crate::util::fs::remove_dir_all_if_exists;
use crate::util::path::is_importable_ext;
use crate::util::path::specifier_to_file_path;
@@ -3189,6 +3191,25 @@ impl tower_lsp::LanguageServer for LanguageServer {
}
lsp_log!("Server ready.");
+
+ if upgrade_check_enabled() {
+ let http_client = self.0.read().await.http_client.clone();
+ match check_for_upgrades_for_lsp(http_client).await {
+ Ok(version_info) => {
+ client.send_did_upgrade_check_notification(
+ lsp_custom::DidUpgradeCheckNotificationParams {
+ upgrade_available: version_info.map(
+ |(latest_version, is_canary)| lsp_custom::UpgradeAvailable {
+ latest_version,
+ is_canary,
+ },
+ ),
+ },
+ );
+ }
+ Err(err) => lsp_warn!("Failed to check for upgrades: {err}"),
+ }
+ }
}
async fn shutdown(&self) -> LspResult<()> {