From 437539d232990edd6e60f53fc3c331329806b409 Mon Sep 17 00:00:00 2001 From: Manuel Martinez Date: Thu, 31 Jul 2025 17:27:58 -0700 Subject: [PATCH] feat: vscode protocol for vscode users --- src/term.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/term.rs b/src/term.rs index b7dcd9f101..e1be5c6a9b 100644 --- a/src/term.rs +++ b/src/term.rs @@ -5,7 +5,7 @@ use crossterm::{ terminal::{Clear, ClearType}, }; use std::{ - fmt, fs, + env, fmt, fs, io::{self, BufRead, StdoutLock, Write}, }; @@ -282,7 +282,13 @@ pub fn terminal_file_link<'a>( .stdout() .queue(SetForegroundColor(color))? .queue(SetAttribute(Attribute::Underlined))?; - writer.stdout().write_all(b"\x1b]8;;file://")?; + let protocol = if env::var("TERM_PROGRAM") == Ok("vscode".to_string()) { + "vscode://file" + } else { + "file://" + }; + writer.stdout().write_all(b"\x1b]8;;")?; + writer.stdout().write_all(protocol.as_bytes())?; writer.stdout().write_all(canonical_path.as_bytes())?; writer.stdout().write_all(b"\x1b\\")?; // Only this part is visible.