mirror of
https://github.com/zed-industries/zed.git
synced 2026-04-18 07:47:53 +00:00
Fix terminal path click failing when path is prefixed with '0:' (#50663)
The path hyperlink regex's middle-char pattern [[:(][^0-9()]](cci:2://file:///d:/zed/crates/fs/src/fs.rs:89:0-157:1) allowed colon+space because space was not in the exclusion set. This caused `0: foo/bar.txt` to be matched as a single path instead of just `foo/bar.txt`. Fix: add space to the exclusion class: [[:(][^0-9()\\ ]](cci:2://file:///d:/zed/crates/fs/src/fs.rs:89:0-157:1) Closes #50531 - [x] Added a solid test coverage and/or screenshots from doing manual testing - [x] Done a self-review taking into account security and performance aspects - [ ] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) (N/A) Release Notes: - Fixed terminal Ctrl-click path detection failing when path is preceded by a prefix like `0:` (#50531)
This commit is contained in:
@@ -1831,8 +1831,8 @@
|
||||
" (",
|
||||
" # multi-char path: first char (not opening delimiter, space, or box drawing char)",
|
||||
" [^({\\[<\"'`\\ \\u2500-\\u257F]",
|
||||
" # middle chars: non-space, and colon/paren only if not followed by digit/paren",
|
||||
" ([^\\ :(]|[:(][^0-9()])*",
|
||||
" # middle chars: non-space, and colon/paren only if not followed by digit/paren/space",
|
||||
" ([^\\ :(]|[:(][^0-9()\\ ])*",
|
||||
" # last char: not closing delimiter or colon",
|
||||
" [^()}\\]>\"'`.,;:\\ ]",
|
||||
" |",
|
||||
|
||||
@@ -905,6 +905,18 @@ mod tests {
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
// <https://github.com/zed-industries/zed/issues/50531>
|
||||
fn issue_50531() {
|
||||
// Paths preceded by "N:" prefix (e.g. grep output line numbers)
|
||||
// should still be clickable
|
||||
test_path!("0: ‹«foo/👉bar.txt»›");
|
||||
test_path!("0: ‹«👉foo/bar.txt»›");
|
||||
test_path!("42: ‹«👉foo/bar.txt»›");
|
||||
test_path!("1: ‹«/👉test/cool.rs»›");
|
||||
test_path!("1: ‹«/👉test/cool.rs»:«4»:«2»›");
|
||||
}
|
||||
|
||||
#[test]
|
||||
// <https://github.com/zed-industries/zed/issues/46795>
|
||||
fn issue_46795() {
|
||||
|
||||
Reference in New Issue
Block a user