Convert clipboard line ending to document line ending when pasting (#716)

* convert a paste's line-ending to the current doc's line-ending

* move paste regex into paste_impl
This commit is contained in:
Kirawi 2021-09-10 11:12:26 -04:00 committed by GitHub
parent 94abc52b3b
commit 987d8e6dd6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -3462,7 +3462,14 @@ fn paste_impl(
.iter() .iter()
.any(|value| get_line_ending_of_str(value).is_some()); .any(|value| get_line_ending_of_str(value).is_some());
let mut values = values.iter().cloned().map(Tendril::from).chain(repeat); // Only compiled once.
#[allow(clippy::trivial_regex)]
static REGEX: Lazy<Regex> = Lazy::new(|| Regex::new(r"\r\n|\r|\n").unwrap());
let mut values = values
.iter()
.map(|value| REGEX.replace_all(value, doc.line_ending.as_str()))
.map(|value| Tendril::from(value.as_ref()))
.chain(repeat);
let text = doc.text(); let text = doc.text();
let selection = doc.selection(view.id); let selection = doc.selection(view.id);