Skip to content

Commit d9894ed

Browse files
committed
Add specific key bindings to stage / unstage items
Feature requested by Issue gitui-org#909.
1 parent d359fab commit d9894ed

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

src/components/changes.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,12 @@ impl Component for ChangesComponent {
233233

234234
if self.focused() {
235235
if let Event::Key(e) = ev {
236-
return if e == self.key_config.enter {
236+
let stage_or_reset_key = if self.is_working_dir {
237+
self.key_config.stage_item
238+
} else {
239+
self.key_config.unstage_item
240+
};
241+
return if e == stage_or_reset_key {
237242
try_or_popup!(
238243
self,
239244
"staging error:",

src/keys.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@ pub struct KeyConfig {
8888
pub pull: KeyEvent,
8989
pub abort_merge: KeyEvent,
9090
pub undo_commit: KeyEvent,
91+
pub stage_item: KeyEvent,
92+
pub unstage_item: KeyEvent,
9193
}
9294

9395
#[rustfmt::skip]
@@ -161,6 +163,8 @@ impl Default for KeyConfig {
161163
abort_merge: KeyEvent { code: KeyCode::Char('A'), modifiers: KeyModifiers::SHIFT},
162164
open_file_tree: KeyEvent { code: KeyCode::Char('F'), modifiers: KeyModifiers::SHIFT},
163165
file_find: KeyEvent { code: KeyCode::Char('f'), modifiers: KeyModifiers::empty()},
166+
stage_item: KeyEvent { code: KeyCode::Enter, modifiers: KeyModifiers::empty()},
167+
unstage_item: KeyEvent { code: KeyCode::Enter, modifiers: KeyModifiers::empty()},
164168
}
165169
}
166170
}

0 commit comments

Comments
 (0)