From f2df79e254d4c981b9fe3d7c9f9c6d8facc0bc7e Mon Sep 17 00:00:00 2001 From: graelo Date: Fri, 2 Jun 2023 22:22:06 +0200 Subject: [PATCH] fix(regex): add s3 & gs to uri --- src/textbuf/mod.rs | 11 +++++++++-- src/textbuf/regexes.rs | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/textbuf/mod.rs b/src/textbuf/mod.rs index 278ab96..0dd6377 100644 --- a/src/textbuf/mod.rs +++ b/src/textbuf/mod.rs @@ -320,7 +320,10 @@ mod tests { #[test] fn match_urls() { - let buffer = "Lorem ipsum https://www.rust-lang.org/tools lorem\n Lorem ipsumhttps://crates.io lorem https://github.io?foo=bar lorem ssh://github.io"; + let buffer = "Lorem ipsum https://www.rust-lang.org/tools lorem\ + Lorem ipsumhttps://crates.io lorem https://github.io?foo=bar \ + lorem ssh://github.io lorem s3://mybucket/mypath \ + lorem gs://mybucket.domain/mypath lorem"; let lines = buffer.split('\n').collect::>(); let use_all_patterns = true; let named_pat = vec![]; @@ -339,7 +342,7 @@ mod tests { ) .spans; - assert_eq!(spans.len(), 4); + assert_eq!(spans.len(), 6); assert_eq!( spans.get(0).unwrap().text, "https://www.rust-lang.org/tools" @@ -351,6 +354,10 @@ mod tests { assert_eq!(spans.get(2).unwrap().pattern, "url"); assert_eq!(spans.get(3).unwrap().text, "ssh://github.io"); assert_eq!(spans.get(3).unwrap().pattern, "url"); + assert_eq!(spans.get(4).unwrap().text, "s3://mybucket/mypath"); + assert_eq!(spans.get(4).unwrap().pattern, "url"); + assert_eq!(spans.get(5).unwrap().text, "gs://mybucket.domain/mypath"); + assert_eq!(spans.get(5).unwrap().pattern, "url"); } #[test] diff --git a/src/textbuf/regexes.rs b/src/textbuf/regexes.rs index 2c2dc5e..06c1d21 100644 --- a/src/textbuf/regexes.rs +++ b/src/textbuf/regexes.rs @@ -15,7 +15,7 @@ pub(super) const PATTERNS: [(&str, &str); 20] = [ ("markdown-url", r"\[[^]]*\]\(([^)]+)\)"), ( "url", - r#"((https?://|git@|git://|ssh://|ftp://|file:///)[^ '"`\(\)\[\]\{\}>]+)"#, + r#"((https?://|git@|git://|ssh://|s3://|gs://|ftp://|file:///)[^ '"`\(\)\[\]\{\}>]+)"#, ), ("email", r"\b([A-z0-9._%+-]+@[A-z0-9.-]+\.[A-z]{2,})\b"), ("diff-a", r"--- a/([^ ]+)"),