Unnamed repository; edit this file 'description' to name the repository.
Don't show '$saved_file' literally in IDE status updates
We've had a few users get confused when VS Code shows `my_custom_check --args $saved_file`, as it looks like substitution didn't occur. Instead, show `my_custom_check --args ...` in the display output. This is also shorter, and the VS Code status bar generally works best with short text.
Wilfred Hughes 9 months ago
parent 922e04a · commit 58fc69a
-rw-r--r--crates/rust-analyzer/src/flycheck.rs13
1 files changed, 12 insertions, 1 deletions
diff --git a/crates/rust-analyzer/src/flycheck.rs b/crates/rust-analyzer/src/flycheck.rs
index bec57a4bed..512ce0b9de 100644
--- a/crates/rust-analyzer/src/flycheck.rs
+++ b/crates/rust-analyzer/src/flycheck.rs
@@ -111,7 +111,18 @@ impl fmt::Display for FlycheckConfig {
match self {
FlycheckConfig::CargoCommand { command, .. } => write!(f, "cargo {command}"),
FlycheckConfig::CustomCommand { command, args, .. } => {
- write!(f, "{command} {}", args.join(" "))
+ // Don't show `my_custom_check --foo $saved_file` literally to the user, as it
+ // looks like we've forgotten to substitute $saved_file.
+ //
+ // Instead, show `my_custom_check --foo ...`. The
+ // actual path is often too long to be worth showing
+ // in the IDE (e.g. in the VS Code status bar).
+ let display_args = args
+ .iter()
+ .map(|arg| if arg == SAVED_FILE_PLACEHOLDER { "..." } else { arg })
+ .collect::<Vec<_>>();
+
+ write!(f, "{command} {}", display_args.join(" "))
}
}
}