Open paths starting with ~ from terminal click

This commit is contained in:
Kirill Bulatov 2023-07-22 01:34:25 +03:00
parent 7788eabec0
commit dcaf8a9af8
2 changed files with 11 additions and 1 deletions

View File

@ -76,7 +76,7 @@ lazy_static! {
// Regex Copied from alacritty's ui_config.rs // Regex Copied from alacritty's ui_config.rs
static ref URL_REGEX: RegexSearch = RegexSearch::new(r#"(ipfs:|ipns:|magnet:|mailto:|gemini://|gopher://|https://|http://|news:|file://|git://|ssh:|ftp://)[^\u{0000}-\u{001F}\u{007F}-\u{009F}<>"\s{-}\^⟨⟩`]+"#).unwrap(); static ref URL_REGEX: RegexSearch = RegexSearch::new(r#"(ipfs:|ipns:|magnet:|mailto:|gemini://|gopher://|https://|http://|news:|file://|git://|ssh:|ftp://)[^\u{0000}-\u{001F}\u{007F}-\u{009F}<>"\s{-}\^⟨⟩`]+"#).unwrap();
static ref WORD_REGEX: RegexSearch = RegexSearch::new("[\\w.:/@-]+").unwrap(); static ref WORD_REGEX: RegexSearch = RegexSearch::new("[\\w.:/@-~]+").unwrap();
} }
///Upward flowing events, for changing the title and such ///Upward flowing events, for changing the title and such

View File

@ -425,6 +425,16 @@ fn possible_open_targets(
let maybe_path = path_like.path_like; let maybe_path = path_like.path_like;
let potential_abs_paths = if maybe_path.is_absolute() { let potential_abs_paths = if maybe_path.is_absolute() {
vec![maybe_path] vec![maybe_path]
} else if maybe_path.starts_with("~") {
if let Some(abs_path) = maybe_path
.strip_prefix("~")
.ok()
.and_then(|maybe_path| Some(dirs::home_dir()?.join(maybe_path)))
{
vec![abs_path]
} else {
Vec::new()
}
} else if let Some(workspace) = workspace.upgrade(cx) { } else if let Some(workspace) = workspace.upgrade(cx) {
workspace.update(cx, |workspace, cx| { workspace.update(cx, |workspace, cx| {
workspace workspace