1
0
Fork 0
mirror of https://github.com/helix-editor/helix synced 2024-06-01 07:46:05 +02:00

commands: Handle `t<ENTER>` as till newline

This commit is contained in:
Wojciech Kępka 2021-06-11 09:30:27 +02:00 committed by Blaž Hrastnik
parent a8a5bcd13d
commit 0c2b99327a

View File

@ -348,28 +348,34 @@ fn _find_char<F>(cx: &mut Context, search_fn: F, inclusive: bool, extend: bool)
// need to wait for next key
cx.on_next_key(move |cx, event| {
if let KeyEvent {
code: KeyCode::Char(ch),
..
} = event
{
let (view, doc) = cx.current();
let text = doc.text().slice(..);
let ch = match event {
KeyEvent {
code: KeyCode::Enter,
..
} => '\n',
KeyEvent {
code: KeyCode::Char(ch),
..
} => ch,
_ => return,
};
let selection = doc.selection(view.id).transform(|mut range| {
search_fn(text, ch, range.head, count, inclusive).map_or(range, |pos| {
if extend {
Range::new(range.anchor, pos)
} else {
// select
Range::new(range.head, pos)
}
// or (pos, pos) to move to found val
})
});
let (view, doc) = cx.current();
let text = doc.text().slice(..);
doc.set_selection(view.id, selection);
}
let selection = doc.selection(view.id).transform(|mut range| {
search_fn(text, ch, range.head, count, inclusive).map_or(range, |pos| {
if extend {
Range::new(range.anchor, pos)
} else {
// select
Range::new(range.head, pos)
}
// or (pos, pos) to move to found val
})
});
doc.set_selection(view.id, selection);
})
}