Add field Alternative to gui.Binding

Document and use alternative keybinding for generating cheatsheet. Add
alt keybinding fn+up/down for scroll up/down actions.

Also run `go run scripts/generate_cheatsheet.go`.
This commit is contained in:
Suhas Karanth 2019-05-03 10:33:25 +05:30 committed by Jesse Duffield
parent 357b8fa98f
commit 97f060d38d
5 changed files with 50 additions and 32 deletions

View file

@ -22,6 +22,7 @@
<pre> <pre>
<kbd>c</kbd>: commit changes <kbd>c</kbd>: commit changes
<kbd>w</kbd>: commit changes without pre-commit hook
<kbd>A</kbd>: amend last commit <kbd>A</kbd>: amend last commit
<kbd>C</kbd>: commit changes using git editor <kbd>C</kbd>: commit changes using git editor
<kbd>space</kbd>: toggle staged <kbd>space</kbd>: toggle staged
@ -36,6 +37,7 @@
<kbd>D</kbd>: view reset options <kbd>D</kbd>: view reset options
<kbd>enter</kbd>: stage individual hunks/lines <kbd>enter</kbd>: stage individual hunks/lines
<kbd>f</kbd>: fetch <kbd>f</kbd>: fetch
<kbd>X</kbd>: execute custom command
</pre> </pre>
## Branches ## Branches
@ -60,6 +62,8 @@
<kbd>R</kbd>: rename commit with editor <kbd>R</kbd>: rename commit with editor
<kbd>g</kbd>: reset to this commit <kbd>g</kbd>: reset to this commit
<kbd>f</kbd>: fixup commit <kbd>f</kbd>: fixup commit
<kbd>F</kbd>: create fixup commit for this commit
<kbd>S</kbd>: squash above commits
<kbd>d</kbd>: delete commit <kbd>d</kbd>: delete commit
<kbd>J</kbd>: move commit down one <kbd>J</kbd>: move commit down one
<kbd>K</kbd>: move commit up one <kbd>K</kbd>: move commit up one
@ -71,7 +75,7 @@
<kbd>C</kbd>: copy commit range (cherry-pick) <kbd>C</kbd>: copy commit range (cherry-pick)
<kbd>v</kbd>: paste commits (cherry-pick) <kbd>v</kbd>: paste commits (cherry-pick)
<kbd>enter</kbd>: view commit's files <kbd>enter</kbd>: view commit's files
<kbd>space</kbd>: diff specific commits <kbd>space</kbd>: select commit to diff with another commit
</pre> </pre>
## Stash ## Stash

View file

@ -3,7 +3,7 @@
## Global ## Global
<pre> <pre>
<kbd>m</kbd>: view merge/rebase options <kbd>m</kbd>: bekijk merge/rebase opties
<kbd>P</kbd>: push <kbd>P</kbd>: push
<kbd>p</kbd>: pull <kbd>p</kbd>: pull
<kbd>R</kbd>: verversen <kbd>R</kbd>: verversen
@ -22,10 +22,11 @@
<pre> <pre>
<kbd>c</kbd>: Commit veranderingen <kbd>c</kbd>: Commit veranderingen
<kbd>w</kbd>: commit veranderingen zonder pre-commit hook
<kbd>A</kbd>: wijzig laatste commit <kbd>A</kbd>: wijzig laatste commit
<kbd>C</kbd>: commit veranderingen met de git editor <kbd>C</kbd>: commit veranderingen met de git editor
<kbd>space</kbd>: toggle staged <kbd>space</kbd>: toggle staged
<kbd>d</kbd>: bekijk 'ongedaan maken' opties <kbd>d</kbd>: bekijk 'veranderingen ongedaan maken' opties
<kbd>e</kbd>: verander bestand <kbd>e</kbd>: verander bestand
<kbd>o</kbd>: open bestand <kbd>o</kbd>: open bestand
<kbd>i</kbd>: voeg toe aan .gitignore <kbd>i</kbd>: voeg toe aan .gitignore
@ -33,9 +34,10 @@
<kbd>S</kbd>: stash-bestanden <kbd>S</kbd>: stash-bestanden
<kbd>a</kbd>: toggle staged alle <kbd>a</kbd>: toggle staged alle
<kbd>t</kbd>: bewerkingen toevoegen <kbd>t</kbd>: bewerkingen toevoegen
<kbd>D</kbd>: view reset options <kbd>D</kbd>: bekijk reset opties
<kbd>enter</kbd>: stage individuele hunks/lijnen <kbd>enter</kbd>: stage individuele hunks/lijnen
<kbd>f</kbd>: fetch <kbd>f</kbd>: fetch
<kbd>X</kbd>: voor aangepast commando uit
</pre> </pre>
## Branches ## Branches
@ -57,68 +59,70 @@
<pre> <pre>
<kbd>s</kbd>: squash beneden <kbd>s</kbd>: squash beneden
<kbd>r</kbd>: hernoem commit <kbd>r</kbd>: hernoem commit
<kbd>R</kbd>: hernoem commit met editor <kbd>R</kbd>: rename commit with editor
<kbd>g</kbd>: reset naar deze commit <kbd>g</kbd>: reset naar deze commit
<kbd>f</kbd>: Fixup commit <kbd>f</kbd>: Fixup commit
<kbd>F</kbd>: creëer fixup commit voor deze commit
<kbd>S</kbd>: squash bovenstaande commits
<kbd>d</kbd>: verwijder commit <kbd>d</kbd>: verwijder commit
<kbd>J</kbd>: verplaats commit 1 omlaag <kbd>J</kbd>: verplaats commit 1 omlaag
<kbd>K</kbd>: verplaats commit 1 omhoog <kbd>K</kbd>: verplaats commit 1 omhoog
<kbd>e</kbd>: wijzig commit <kbd>e</kbd>: verander commit
<kbd>A</kbd>: Wijzig commit met opgeslagen verandering <kbd>A</kbd>: wijzig commit met staged veranderingen
<kbd>p</kbd>: pick commit (when mid-rebase) <kbd>p</kbd>: pick commit (when mid-rebase)
<kbd>t</kbd>: Maak commit ongedaan <kbd>t</kbd>: commit omgedaan maken
<kbd>c</kbd>: kopiëer commit (cherry-pick) <kbd>c</kbd>: kopiëer commit (cherry-pick)
<kbd>C</kbd>: kopiëer commit range (cherry-pick) <kbd>C</kbd>: kopiëer commit reeks (cherry-pick)
<kbd>v</kbd>: plak commits (cherry-pick) <kbd>v</kbd>: plak commits (cherry-pick)
<kbd>enter</kbd>: bekijk gecommite bestanden <kbd>enter</kbd>: bekijk gecommite bestanden
<kbd>space</kbd>: Bekijk verschillen tussen specifieke commits <kbd>space</kbd>: select commit to diff with another commit
</pre> </pre>
## Stash ## Stash
<pre> <pre>
<kbd>space</kbd>: toepassen <kbd>space</kbd>: toepassen
<kbd>g</kbd>: poppen <kbd>g</kbd>: pop
<kbd>d</kbd>: drop <kbd>d</kbd>: drop
</pre> </pre>
## Commit files ## Commit bestanden
<pre> <pre>
<kbd>esc</kbd>: ga terug <kbd>esc</kbd>: ga terug
<kbd>c</kbd>: checkout bestand <kbd>c</kbd>: bestand uitchecken
<kbd>d</kbd>: Verwijder wijzigingen van dit bestand <kbd>d</kbd>: uitsluit deze commit zijn veranderingen aan dit bestand
<kbd>o</kbd>: open bestand <kbd>o</kbd>: open bestand
</pre> </pre>
## Main (Normal) ## Hoofd (Normaal)
<pre> <pre>
<kbd>PgDn</kbd>: scroll omlaag <kbd>PgDn</kbd>: scroll omlaag
<kbd>PgUp</kbd>: scroll omhoog <kbd>PgUp</kbd>: scroll omhoog
</pre> </pre>
## Main (Stage Lines/Hunks) ## Hoofd (Stage Lines/Hunks)
<pre> <pre>
<kbd>esc</kbd>: ga terug naar het bestanden paneel <kbd>esc</kbd>: ga terug naar het bestanden paneel
<kbd></kbd>: selecteer vorige line <kbd></kbd>: selecteer de vorige lijn
<kbd></kbd>: selecteer volgende line <kbd></kbd>: selecteer de volgende lijn
<kbd></kbd>: selecteer vorige hunk <kbd></kbd>: selecteer de vorige hunk
<kbd></kbd>: selecteer volgende hunk <kbd></kbd>: selecteer de volgende hunk
<kbd>space</kbd>: stage lijn <kbd>space</kbd>: stage lijn
<kbd>a</kbd>: stage hunk <kbd>a</kbd>: stage hunk
</pre> </pre>
## Main (Merging) ## Hoofd (Merging)
<pre> <pre>
<kbd>esc</kbd>: ga terug naar het bestanden paneel <kbd>esc</kbd>: ga terug naar het bestanden paneel
<kbd>space</kbd>: pick hunk <kbd>space</kbd>: pick hunk
<kbd>b</kbd>: pick beide hunks <kbd>b</kbd>: pick beide hunks
<kbd></kbd>: selecteer vorige conflict <kbd></kbd>: selecteer voorgaand conflict
<kbd></kbd>: selecteer volgende conflict <kbd></kbd>: selecteer volgende conflict
<kbd></kbd>: selecteer bovenste hunk <kbd></kbd>: selecteer bovenste hunk
<kbd></kbd>: selecteer laatste hunk <kbd></kbd>: selecteer onderste hunk
<kbd>z</kbd>: ongedaan maken <kbd>z</kbd>: ongedaan maken
</pre> </pre>

View file

@ -22,6 +22,7 @@
<pre> <pre>
<kbd>c</kbd>: commituj zmiany <kbd>c</kbd>: commituj zmiany
<kbd>w</kbd>: commit changes without pre-commit hook
<kbd>A</kbd>: zmień ostatnie zatwierdzenie <kbd>A</kbd>: zmień ostatnie zatwierdzenie
<kbd>C</kbd>: commituj zmiany używając edytora z gita <kbd>C</kbd>: commituj zmiany używając edytora z gita
<kbd>space</kbd>: przełącz zatwierdzenie <kbd>space</kbd>: przełącz zatwierdzenie
@ -36,6 +37,7 @@
<kbd>D</kbd>: view reset options <kbd>D</kbd>: view reset options
<kbd>enter</kbd>: zatwierdź pojedyncze linie <kbd>enter</kbd>: zatwierdź pojedyncze linie
<kbd>f</kbd>: fetch <kbd>f</kbd>: fetch
<kbd>X</kbd>: execute custom command
</pre> </pre>
## Gałęzie ## Gałęzie
@ -60,6 +62,8 @@
<kbd>R</kbd>: przemianuj commit w edytorze <kbd>R</kbd>: przemianuj commit w edytorze
<kbd>g</kbd>: zresetuj do tego commita <kbd>g</kbd>: zresetuj do tego commita
<kbd>f</kbd>: napraw commit <kbd>f</kbd>: napraw commit
<kbd>F</kbd>: create fixup commit for this commit
<kbd>S</kbd>: squash above commits
<kbd>d</kbd>: delete commit <kbd>d</kbd>: delete commit
<kbd>J</kbd>: move commit down one <kbd>J</kbd>: move commit down one
<kbd>K</kbd>: move commit up one <kbd>K</kbd>: move commit up one
@ -71,7 +75,7 @@
<kbd>C</kbd>: copy commit range (cherry-pick) <kbd>C</kbd>: copy commit range (cherry-pick)
<kbd>v</kbd>: paste commits (cherry-pick) <kbd>v</kbd>: paste commits (cherry-pick)
<kbd>enter</kbd>: view commit's files <kbd>enter</kbd>: view commit's files
<kbd>space</kbd>: diff specific commits <kbd>space</kbd>: select commit to diff with another commit
</pre> </pre>
## Schowek ## Schowek

View file

@ -13,6 +13,7 @@ type Binding struct {
Key interface{} // FIXME: find out how to get `gocui.Key | rune` Key interface{} // FIXME: find out how to get `gocui.Key | rune`
Modifier gocui.Modifier Modifier gocui.Modifier
Description string Description string
Alternative string
} }
// GetDisplayStrings returns the display string of a file // GetDisplayStrings returns the display string of a file
@ -79,11 +80,13 @@ func (gui *Gui) GetInitialKeybindings() []*Binding {
Key: gocui.KeyPgup, Key: gocui.KeyPgup,
Modifier: gocui.ModNone, Modifier: gocui.ModNone,
Handler: gui.scrollUpMain, Handler: gui.scrollUpMain,
Alternative: "fn+up",
}, { }, {
ViewName: "", ViewName: "",
Key: gocui.KeyPgdn, Key: gocui.KeyPgdn,
Modifier: gocui.ModNone, Modifier: gocui.ModNone,
Handler: gui.scrollDownMain, Handler: gui.scrollDownMain,
Alternative: "fn+down",
}, { }, {
ViewName: "", ViewName: "",
Key: gocui.KeyCtrlU, Key: gocui.KeyCtrlU,

View file

@ -59,6 +59,9 @@ func formatTitle(title string) string {
} }
func formatBinding(binding *gui.Binding) string { func formatBinding(binding *gui.Binding) string {
if binding.Alternative != "" {
return fmt.Sprintf(" <kbd>%s</kbd>: %s (%s)\n", binding.GetKey(), binding.Description, binding.Alternative)
}
return fmt.Sprintf(" <kbd>%s</kbd>: %s\n", binding.GetKey(), binding.Description) return fmt.Sprintf(" <kbd>%s</kbd>: %s\n", binding.GetKey(), binding.Description)
} }