From 33c67f138835d4407e076ebcf2d29322fda44114 Mon Sep 17 00:00:00 2001 From: Blaž Hrastnik Date: Mon, 22 Feb 2021 15:14:02 +0900 Subject: commands: add * as selection search. --- helix-term/src/commands.rs | 11 ++++++++++- helix-term/src/keymap.rs | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) (limited to 'helix-term/src') diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs index b6d8d818..c048ff9a 100644 --- a/helix-term/src/commands.rs +++ b/helix-term/src/commands.rs @@ -1,7 +1,7 @@ use helix_core::{ comment, graphemes, indent::TAB_WIDTH, - regex::Regex, + regex::{self, Regex}, register, selection, state::{Direction, Granularity, State}, ChangeSet, Range, Selection, Tendril, Transaction, @@ -412,6 +412,15 @@ pub fn search_next(cx: &mut Context) { } } +pub fn search_selection(cx: &mut Context) { + let doc = cx.doc(); + let contents = doc.text().slice(..); + let query = doc.selection().primary().fragment(contents); + let regex = regex::escape(&query); + register::set('\\', vec![regex]); + search_next(cx); +} + // TODO: N -> search_prev // need to loop around buffer also and show a message // same for no matches diff --git a/helix-term/src/keymap.rs b/helix-term/src/keymap.rs index 124456c9..69c8e48c 100644 --- a/helix-term/src/keymap.rs +++ b/helix-term/src/keymap.rs @@ -170,6 +170,7 @@ pub fn default() -> Keymaps { vec![key!('x')] => commands::select_line, vec![key!('/')] => commands::search, vec![key!('n')] => commands::search_next, + vec![key!('*')] => commands::search_selection, vec![key!('u')] => commands::undo, vec![shift!('U')] => commands::redo, vec![key!('y')] => commands::yank, -- cgit v1.2.3-70-g09d2