Skip to content

Commit 6ae5b5e

Browse files
Add specific key bindings to stage / unstage items (#930)
* Add specific key bindings to stage / unstage items Feature requested by Issue #909. * Updating Help popup with stage / unstage keys * Merging staging and unstaging into a single `stage_unstage_item` key * Add/remove hunk now use the `stage_unstage_item` key
1 parent 8486233 commit 6ae5b5e

File tree

6 files changed

+11
-6
lines changed

6 files changed

+11
-6
lines changed

Diff for: CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
## Added
1111
- support rebasing branches with conflicts ([#895](https://github.com/extrawurst/gitui/issues/895))
12+
- add a key binding to stage / unstage items [[@alessandroasm](https://github.com/alessandroasm)] ([#909](https://github.com/extrawurst/gitui/issues/909))
1213
- switch to status tab after merging or rebasing with conflicts ([#926](https://github.com/extrawurst/gitui/issues/926))
1314

1415
## Fixed

Diff for: src/components/changes.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ 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+
return if e == self.key_config.stage_unstage_item {
237237
try_or_popup!(
238238
self,
239239
"staging error:",

Diff for: src/components/diff.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -738,7 +738,7 @@ impl Component for DiffComponent {
738738
} else if e == self.key_config.page_down {
739739
self.move_selection(ScrollType::PageDown);
740740
Ok(EventState::Consumed)
741-
} else if e == self.key_config.enter
741+
} else if e == self.key_config.stage_unstage_item
742742
&& !self.is_immutable
743743
{
744744
try_or_popup!(

Diff for: src/keys.rs

+2
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ pub struct KeyConfig {
8888
pub pull: KeyEvent,
8989
pub abort_merge: KeyEvent,
9090
pub undo_commit: KeyEvent,
91+
pub stage_unstage_item: KeyEvent,
9192
}
9293

9394
#[rustfmt::skip]
@@ -161,6 +162,7 @@ impl Default for KeyConfig {
161162
abort_merge: KeyEvent { code: KeyCode::Char('A'), modifiers: KeyModifiers::SHIFT},
162163
open_file_tree: KeyEvent { code: KeyCode::Char('F'), modifiers: KeyModifiers::SHIFT},
163164
file_find: KeyEvent { code: KeyCode::Char('f'), modifiers: KeyModifiers::empty()},
165+
stage_unstage_item: KeyEvent { code: KeyCode::Enter, modifiers: KeyModifiers::empty()},
164166
}
165167
}
166168
}

Diff for: src/strings.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -526,7 +526,7 @@ pub mod commands {
526526
CommandText::new(
527527
format!(
528528
"Add hunk [{}]",
529-
key_config.get_hint(key_config.enter),
529+
key_config.get_hint(key_config.stage_unstage_item),
530530
),
531531
"adds selected hunk to stage",
532532
CMD_GROUP_DIFF,
@@ -586,7 +586,7 @@ pub mod commands {
586586
CommandText::new(
587587
format!(
588588
"Remove hunk [{}]",
589-
key_config.get_hint(key_config.enter),
589+
key_config.get_hint(key_config.stage_unstage_item),
590590
),
591591
"removes selected hunk from stage",
592592
CMD_GROUP_DIFF,
@@ -751,7 +751,7 @@ pub mod commands {
751751
CommandText::new(
752752
format!(
753753
"Stage [{}]",
754-
key_config.get_hint(key_config.enter),
754+
key_config.get_hint(key_config.stage_unstage_item),
755755
),
756756
"stage currently selected file or entire path",
757757
CMD_GROUP_CHANGES,
@@ -771,7 +771,7 @@ pub mod commands {
771771
CommandText::new(
772772
format!(
773773
"Unstage [{}]",
774-
key_config.get_hint(key_config.enter),
774+
key_config.get_hint(key_config.stage_unstage_item),
775775
),
776776
"unstage currently selected file or entire path",
777777
CMD_GROUP_CHANGES,

Diff for: vim_style_key_config.ron

+2
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,8 @@
100100
open_file_tree: ( code: Char('F'), modifiers: ( bits: 1,),),
101101
file_find: ( code: Char('f'), modifiers: ( bits: 0,),),
102102

103+
stage_unstage_item: ( code: Enter, modifiers: ( bits: 0,),),
104+
103105
//removed in 0.11
104106
//tab_toggle_reverse_windows: ( code: BackTab, modifiers: ( bits: 1,),),
105107
)

0 commit comments

Comments
 (0)