split_selection
This commit is contained in:
parent
f92998a14b
commit
2bfdcede32
2 changed files with 19 additions and 16 deletions
helix-term/src
|
@ -262,23 +262,26 @@ pub fn split_selection(cx: &mut Context) {
|
|||
// # update state
|
||||
// }
|
||||
|
||||
let prompt = Prompt::new(
|
||||
"split:".to_string(),
|
||||
|input: &str| Vec::new(), // TODO: use Option here?
|
||||
|editor: &mut Editor, input: &str| {
|
||||
match Regex::new(input) {
|
||||
Ok(regex) => {
|
||||
let view = editor.view_mut().unwrap();
|
||||
let text = &view.doc.text().slice(..);
|
||||
let selection = selection::split_on_matches(text, view.doc.selection(), ®ex);
|
||||
view.doc.set_selection(selection);
|
||||
cx.callback = Some(Box::new(|compositor: &mut Compositor| {
|
||||
let prompt = Prompt::new(
|
||||
"split:".to_string(),
|
||||
|input: &str| Vec::new(), // this is fine because Vec::new() doesn't allocate
|
||||
|editor: &mut Editor, input: &str| {
|
||||
match Regex::new(input) {
|
||||
Ok(regex) => {
|
||||
let view = editor.view_mut().unwrap();
|
||||
let text = &view.doc.text().slice(..);
|
||||
let selection =
|
||||
selection::split_on_matches(text, view.doc.selection(), ®ex);
|
||||
view.doc.set_selection(selection);
|
||||
}
|
||||
Err(_) => (), // TODO: mark command line as error
|
||||
}
|
||||
Err(_) => (), // TODO: mark command line as error
|
||||
}
|
||||
},
|
||||
);
|
||||
},
|
||||
);
|
||||
|
||||
unimplemented!()
|
||||
compositor.push(Box::new(prompt));
|
||||
}));
|
||||
}
|
||||
|
||||
pub fn split_selection_on_newline(cx: &mut Context) {
|
||||
|
|
|
@ -156,8 +156,8 @@ pub fn default() -> Keymaps {
|
|||
vec![key!('o')] => commands::open_below,
|
||||
vec![key!('d')] => commands::delete_selection,
|
||||
vec![key!('c')] => commands::change_selection,
|
||||
vec![shift!('S')] => commands::split_selection,
|
||||
vec![key!('s')] => commands::split_selection_on_newline,
|
||||
vec![shift!('S')] => commands::split_selection,
|
||||
vec![key!(';')] => commands::collapse_selection,
|
||||
// TODO should be alt(;)
|
||||
vec![key!('%')] => commands::flip_selections,
|
||||
|
|
Loading…
Add table
Reference in a new issue