diff options
author | Nayeem Rahman <nayeemrmn99@gmail.com> | 2023-11-14 22:10:51 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-14 22:10:51 +0000 |
commit | 4913274a6508a5e5ad6c8babf2e90a4a84bf98ec (patch) | |
tree | 687e2b6846a8288b4bc9c2896a947b68007731f3 /cli/lsp/language_server.rs | |
parent | ab0c637425c3219c2a5f59c25ae8ea593018568b (diff) |
feat(lsp): upgrade check on init and notification (#21105)
Diffstat (limited to 'cli/lsp/language_server.rs')
-rw-r--r-- | cli/lsp/language_server.rs | 21 |
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<()> { |