mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-14 07:46:12 +03:00
feat: add support for file paths starts with ../
./
and /
To implement this I extended the existing regex variable in the `src/config` dir. In a few test cases, extra space is added intentionally to verify we don't include space in the URL as it looks & feels odd.
This commit is contained in:
@ -24,7 +24,7 @@ const oni = @import("oniguruma");
|
||||
/// handling them well requires a non-regex approach.
|
||||
pub const regex =
|
||||
"(?:" ++ url_schemes ++
|
||||
\\)(?:[\w\-.~:/?#@!$&*+,;=%]+(?:[\(\[]\w*[\)\]])?)+(?<![,.])
|
||||
\\)(?:[\w\-.~:/?#@!$&*+,;=%]+(?:[\(\[]\w*[\)\]])?)+(?<![,.])|(?:\.\.\/|\.\/*|\/)[\w\-.~:\/?#@!$&*+,;=%]+(?:\/[\w\-.~:\/?#@!$&*+,;=%]*)*
|
||||
;
|
||||
const url_schemes =
|
||||
\\https?://|mailto:|ftp://|file:|ssh:|git://|ssh://|tel:|magnet:|ipfs://|ipns://|gemini://|gopher://|news:
|
||||
@ -166,6 +166,34 @@ test "url regex" {
|
||||
.input = "match news:comp.infosystems.www.servers.unix news links",
|
||||
.expect = "news:comp.infosystems.www.servers.unix",
|
||||
},
|
||||
.{
|
||||
.input = "/Users/ghostty.user/code/example.py",
|
||||
.expect = "/Users/ghostty.user/code/example.py",
|
||||
},
|
||||
.{
|
||||
.input = "/Users/ghostty.user/code/../example.py",
|
||||
.expect = "/Users/ghostty.user/code/../example.py",
|
||||
},
|
||||
.{
|
||||
.input = "/Users/ghostty.user/code/../example.py hello world",
|
||||
.expect = "/Users/ghostty.user/code/../example.py",
|
||||
},
|
||||
.{
|
||||
.input = "../example.py",
|
||||
.expect = "../example.py",
|
||||
},
|
||||
.{
|
||||
.input = "../example.py ",
|
||||
.expect = "../example.py",
|
||||
},
|
||||
.{
|
||||
.input = "first time ../example.py contributor ",
|
||||
.expect = "../example.py",
|
||||
},
|
||||
.{
|
||||
.input = "[link](/home/user/ghostty.user/example)",
|
||||
.expect = "/home/user/ghostty.user/example",
|
||||
},
|
||||
};
|
||||
|
||||
for (cases) |case| {
|
||||
|
Reference in New Issue
Block a user