This commit is contained in:
Artemiy Romanovich Pospelov 2025-03-24 12:37:11 +00:00 committed by GitHub
commit 3835d74937
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -247,12 +247,16 @@ pub fn terminal_file_link<'a>(
canonical_path: &str,
color: Color,
) -> io::Result<()> {
let encoded_spaces_canonical_path = encode_spaces(canonical_path);
writer
.stdout()
.queue(SetForegroundColor(color))?
.queue(SetAttribute(Attribute::Underlined))?;
writer.stdout().write_all(b"\x1b]8;;file://")?;
writer.stdout().write_all(canonical_path.as_bytes())?;
writer
.stdout()
.write_all(encoded_spaces_canonical_path.as_bytes())?;
writer.stdout().write_all(b"\x1b\\")?;
// Only this part is visible.
writer.write_str(path)?;
@ -265,6 +269,10 @@ pub fn terminal_file_link<'a>(
Ok(())
}
fn encode_spaces(path: &str) -> String {
path.replace(" ", "%20")
}
pub fn write_ansi(output: &mut Vec<u8>, command: impl Command) {
struct FmtWriter<'a>(&'a mut Vec<u8>);