diff --git a/src/cli/global/sync.rs b/src/cli/global/sync.rs
index c5320ba2d4..8e235cdeb3 100644
--- a/src/cli/global/sync.rs
+++ b/src/cli/global/sync.rs
@@ -22,8 +22,12 @@ pub async fn execute(args: Args) -> miette::Result<()> {
// Prune environments that are not listed
let state_change = project.prune_old_environments().await?;
- // Prune broken completions
- project.completions_dir.prune_old_completions()?;
+ #[cfg(unix)]
+ {
+ // Prune broken completions
+ let completions_dir = crate::global::completions::CompletionsDir::from_env().await?;
+ completions_dir.prune_old_completions()?;
+ }
if state_change.has_changed() {
has_changed = true;
diff --git a/src/cli/global/update.rs b/src/cli/global/update.rs
index 24a81739b5..dd0df7a88a 100644
--- a/src/cli/global/update.rs
+++ b/src/cli/global/update.rs
@@ -86,7 +86,11 @@ pub async fn execute(args: Args) -> miette::Result<()> {
// prune old environments and completions
let state_changes = project_original.prune_old_environments().await?;
state_changes.report();
- project_original.completions_dir.prune_old_completions()?;
+ #[cfg(unix)]
+ {
+ let completions_dir = global::completions::CompletionsDir::from_env().await?;
+ completions_dir.prune_old_completions()?;
+ }
project_original.environments().keys().cloned().collect()
}
};
diff --git a/src/global/common.rs b/src/global/common.rs
index 6de61a239b..7519911a67 100644
--- a/src/global/common.rs
+++ b/src/global/common.rs
@@ -356,6 +356,7 @@ pub(crate) enum StateChange {
UninstalledShortcut(String),
#[allow(dead_code)] // This variant is not used on Windows
AddedCompletion(String),
+ #[allow(dead_code)] // This variant is not used on Windows
RemovedCompletion(String),
}
diff --git a/src/global/completions.rs b/src/global/completions.rs
index ba4823b0fd..07f8c328de 100644
--- a/src/global/completions.rs
+++ b/src/global/completions.rs
@@ -71,7 +71,6 @@ impl CompletionsDir {
#[derive(Debug, Clone)]
pub struct Completion {
name: String,
- #[allow(dead_code)] // This member variable is not used on Windows
source: PathBuf,
destination: PathBuf,
}
@@ -85,12 +84,7 @@ impl Completion {
}
}
- pub fn name(&self) -> &str {
- &self.name
- }
-
/// Install the shell completion
- #[cfg(unix)]
pub async fn install(&self) -> miette::Result