mirror of https://github.com/helix-editor/helix
Implement gt/gm/gb, remap goto tYpe to gy
parent
f2e554d761
commit
4f0e3aa948
|
@ -118,8 +118,11 @@ Jumps to various locations.
|
||||||
|-----|-----------|
|
|-----|-----------|
|
||||||
| g | Go to the start of the file |
|
| g | Go to the start of the file |
|
||||||
| e | Go to the end of the file |
|
| e | Go to the end of the file |
|
||||||
|
| t | Go to the top of the screen |
|
||||||
|
| m | Go to the middle of the screen |
|
||||||
|
| b | Go to the bottom of the screen |
|
||||||
| d | Go to definition |
|
| d | Go to definition |
|
||||||
| t | Go to type definition |
|
| y | Go to type definition |
|
||||||
| r | Go to references |
|
| r | Go to references |
|
||||||
| i | Go to implementation |
|
| i | Go to implementation |
|
||||||
|
|
||||||
|
|
|
@ -1270,9 +1270,32 @@ pub fn goto_mode(cx: &mut Context) {
|
||||||
'g' => move_file_start(cx),
|
'g' => move_file_start(cx),
|
||||||
'e' => move_file_end(cx),
|
'e' => move_file_end(cx),
|
||||||
'd' => goto_definition(cx),
|
'd' => goto_definition(cx),
|
||||||
't' => goto_type_definition(cx),
|
'y' => goto_type_definition(cx),
|
||||||
'r' => goto_reference(cx),
|
'r' => goto_reference(cx),
|
||||||
'i' => goto_implementation(cx),
|
'i' => goto_implementation(cx),
|
||||||
|
|
||||||
|
't' | 'm' | 'b' => {
|
||||||
|
let (view, doc) = cx.current();
|
||||||
|
|
||||||
|
let pos = doc.selection(view.id).cursor();
|
||||||
|
let line = doc.text().char_to_line(pos);
|
||||||
|
|
||||||
|
let scrolloff = PADDING.min(view.area.height as usize / 2); // TODO: user pref
|
||||||
|
|
||||||
|
let last_line = view.last_line(doc);
|
||||||
|
|
||||||
|
let line = match ch {
|
||||||
|
't' => (view.first_line + scrolloff),
|
||||||
|
'm' => (view.first_line + (view.area.height as usize / 2)),
|
||||||
|
'b' => last_line.saturating_sub(scrolloff),
|
||||||
|
_ => unreachable!(),
|
||||||
|
}
|
||||||
|
.min(last_line.saturating_sub(scrolloff));
|
||||||
|
|
||||||
|
let pos = doc.text().line_to_char(line);
|
||||||
|
|
||||||
|
doc.set_selection(view.id, Selection::point(pos));
|
||||||
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue