commands: add * as selection search.
This commit is contained in:
parent
61ce2c9cfe
commit
33c67f1388
3 changed files with 12 additions and 2 deletions
|
@ -120,7 +120,7 @@ impl Range {
|
||||||
// groupAt
|
// groupAt
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn fragment<'a>(&'a self, text: RopeSlice<'a>) -> Cow<'a, str> {
|
pub fn fragment<'a, 'b: 'a>(&'a self, text: RopeSlice<'b>) -> Cow<'b, str> {
|
||||||
Cow::from(text.slice(self.from()..self.to() + 1))
|
Cow::from(text.slice(self.from()..self.to() + 1))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
use helix_core::{
|
use helix_core::{
|
||||||
comment, graphemes,
|
comment, graphemes,
|
||||||
indent::TAB_WIDTH,
|
indent::TAB_WIDTH,
|
||||||
regex::Regex,
|
regex::{self, Regex},
|
||||||
register, selection,
|
register, selection,
|
||||||
state::{Direction, Granularity, State},
|
state::{Direction, Granularity, State},
|
||||||
ChangeSet, Range, Selection, Tendril, Transaction,
|
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
|
// TODO: N -> search_prev
|
||||||
// need to loop around buffer also and show a message
|
// need to loop around buffer also and show a message
|
||||||
// same for no matches
|
// same for no matches
|
||||||
|
|
|
@ -170,6 +170,7 @@ pub fn default() -> Keymaps {
|
||||||
vec![key!('x')] => commands::select_line,
|
vec![key!('x')] => commands::select_line,
|
||||||
vec![key!('/')] => commands::search,
|
vec![key!('/')] => commands::search,
|
||||||
vec![key!('n')] => commands::search_next,
|
vec![key!('n')] => commands::search_next,
|
||||||
|
vec![key!('*')] => commands::search_selection,
|
||||||
vec![key!('u')] => commands::undo,
|
vec![key!('u')] => commands::undo,
|
||||||
vec![shift!('U')] => commands::redo,
|
vec![shift!('U')] => commands::redo,
|
||||||
vec![key!('y')] => commands::yank,
|
vec![key!('y')] => commands::yank,
|
||||||
|
|
Loading…
Add table
Reference in a new issue