Use OR of all selections in search_selection command (#3138)

Closes #2312
This commit is contained in:
MilanVasko 2022-07-27 11:02:19 +02:00 committed by GitHub
parent 846a6b65c3
commit 9a49623721
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1748,10 +1748,16 @@ fn extend_search_prev(cx: &mut Context) {
fn search_selection(cx: &mut Context) { fn search_selection(cx: &mut Context) {
let (view, doc) = current!(cx.editor); let (view, doc) = current!(cx.editor);
let contents = doc.text().slice(..); let contents = doc.text().slice(..);
let query = doc.selection(view.id).primary().fragment(contents);
let regex = regex::escape(&query); let regex = doc
.selection(view.id)
.iter()
.map(|selection| regex::escape(&selection.fragment(contents)))
.collect::<Vec<_>>()
.join("|");
let msg = format!("register '{}' set to '{}'", '/', &regex);
cx.editor.registers.get_mut('/').push(regex); cx.editor.registers.get_mut('/').push(regex);
let msg = format!("register '{}' set to '{}'", '/', query);
cx.editor.set_status(msg); cx.editor.set_status(msg);
} }