diff options
| author | Ibrahim Serdar Acikgoz <serdaracikgoz86@gmail.com> | 2018-12-05 02:01:42 +0300 |
|---|---|---|
| committer | Ibrahim Serdar Acikgoz <serdaracikgoz86@gmail.com> | 2018-12-05 02:01:42 +0300 |
| commit | b04018029aa9dd0e1118a4bafdd0a9755a047be4 (patch) | |
| tree | 2bb94bf7201114528d229b34a5e7d7207c21a083 | |
| parent | select all feature added (diff) | |
| download | gitbatch-b04018029aa9dd0e1118a4bafdd0a9755a047be4.tar.gz | |
code reuse improved and added scrolling to controls view
| -rw-r--r-- | pkg/gui/cheatsheet.go | 3 | ||||
| -rw-r--r-- | pkg/gui/diffview.go | 33 | ||||
| -rw-r--r-- | pkg/gui/gui-util.go | 33 | ||||
| -rw-r--r-- | pkg/gui/keybindings.go | 40 |
4 files changed, 70 insertions, 39 deletions
diff --git a/pkg/gui/cheatsheet.go b/pkg/gui/cheatsheet.go index af6d7d9..43020a5 100644 --- a/pkg/gui/cheatsheet.go +++ b/pkg/gui/cheatsheet.go @@ -17,10 +17,9 @@ func (gui *Gui) openCheatSheetView(g *gocui.Gui, v *gocui.View) error { return err } v.Title = cheatSheetViewFeature.Title - fmt.Fprintln(v, " ") for _, k := range gui.KeyBindings { if k.View == mainViewFeature.Name || k.View == "" { - binding := " " + k.Display + ": " + k.Description + binding := " " + cyan.Sprint(k.Display) + ": " + k.Description fmt.Fprintln(v, binding) } } diff --git a/pkg/gui/diffview.go b/pkg/gui/diffview.go index 06038d8..6f512ce 100644 --- a/pkg/gui/diffview.go +++ b/pkg/gui/diffview.go @@ -54,39 +54,6 @@ func (gui *Gui) closeCommitDiffView(g *gocui.Gui, v *gocui.View) error { return nil } -// cursor down acts like half-page down for faster scrolling -func (gui *Gui) commitCursorDown(g *gocui.Gui, v *gocui.View) error { - if v != nil { - ox, oy := v.Origin() - _, vy := v.Size() - - // TODO: do something when it hits bottom - if err := v.SetOrigin(ox, oy+vy/2); err != nil { - return err - } - } - return nil -} - -// cursor up acts like half-page up for faster scrolling -func (gui *Gui) commitCursorUp(g *gocui.Gui, v *gocui.View) error { - if v != nil { - ox, oy := v.Origin() - _, vy := v.Size() - - if oy-vy/2 > 0 { - if err := v.SetOrigin(ox, oy-vy/2); err != nil { - return err - } - } else if oy-vy/2 <= 0 { - if err := v.SetOrigin(0, 0); err != nil { - return err - } - } - } - return nil -} - // colorize the plain diff text collected from system output // the style is near to original diff command func colorizeDiff(original string) (colorized []string) { diff --git a/pkg/gui/gui-util.go b/pkg/gui/gui-util.go index d3f0934..2ae8cae 100644 --- a/pkg/gui/gui-util.go +++ b/pkg/gui/gui-util.go @@ -132,3 +132,36 @@ func (gui *Gui) refreshAfterSort(g *gocui.Gui) error { gui.refreshViews(g, entity) return nil } + +// cursor down acts like half-page down for faster scrolling +func (gui *Gui) fastCursorDown(g *gocui.Gui, v *gocui.View) error { + if v != nil { + ox, oy := v.Origin() + _, vy := v.Size() + + // TODO: do something when it hits bottom + if err := v.SetOrigin(ox, oy+vy/2); err != nil { + return err + } + } + return nil +} + +// cursor up acts like half-page up for faster scrolling +func (gui *Gui) fastCursorUp(g *gocui.Gui, v *gocui.View) error { + if v != nil { + ox, oy := v.Origin() + _, vy := v.Size() + + if oy-vy/2 > 0 { + if err := v.SetOrigin(ox, oy-vy/2); err != nil { + return err + } + } else if oy-vy/2 <= 0 { + if err := v.SetOrigin(0, 0); err != nil { + return err + } + } + } + return nil +} diff --git a/pkg/gui/keybindings.go b/pkg/gui/keybindings.go index 5905f2f..a388b51 100644 --- a/pkg/gui/keybindings.go +++ b/pkg/gui/keybindings.go @@ -193,7 +193,7 @@ func (gui *Gui) generateKeybindings() error { View: commitDiffViewFeature.Name, Key: gocui.KeyArrowUp, Modifier: gocui.ModNone, - Handler: gui.commitCursorUp, + Handler: gui.fastCursorUp, Display: "↑", Description: "Page up", Vital: true, @@ -201,7 +201,7 @@ func (gui *Gui) generateKeybindings() error { View: commitDiffViewFeature.Name, Key: gocui.KeyArrowDown, Modifier: gocui.ModNone, - Handler: gui.commitCursorDown, + Handler: gui.fastCursorDown, Display: "↓", Description: "Page down", Vital: true, @@ -209,7 +209,7 @@ func (gui *Gui) generateKeybindings() error { View: commitDiffViewFeature.Name, Key: 'k', Modifier: gocui.ModNone, - Handler: gui.commitCursorUp, + Handler: gui.fastCursorUp, Display: "k", Description: "Page up", Vital: false, @@ -217,7 +217,7 @@ func (gui *Gui) generateKeybindings() error { View: commitDiffViewFeature.Name, Key: 'j', Modifier: gocui.ModNone, - Handler: gui.commitCursorDown, + Handler: gui.fastCursorDown, Display: "j", Description: "Page down", Vital: false, @@ -230,6 +230,38 @@ func (gui *Gui) generateKeybindings() error { Description: "close/cancel", Vital: true, }, { + View: cheatSheetViewFeature.Name, + Key: gocui.KeyArrowUp, + Modifier: gocui.ModNone, + Handler: gui.fastCursorUp, + Display: "↑", + Description: "Up", + Vital: true, + }, { + View: cheatSheetViewFeature.Name, + Key: gocui.KeyArrowDown, + Modifier: gocui.ModNone, + Handler: gui.fastCursorDown, + Display: "↓", + Description: "Down", + Vital: true, + }, { + View: cheatSheetViewFeature.Name, + Key: 'k', + Modifier: gocui.ModNone, + Handler: gui.fastCursorUp, + Display: "k", + Description: "Up", + Vital: false, + }, { + View: cheatSheetViewFeature.Name, + Key: 'j', + Modifier: gocui.ModNone, + Handler: gui.fastCursorDown, + Display: "j", + Description: "Down", + Vital: false, + }, { View: errorViewFeature.Name, Key: 'c', Modifier: gocui.ModNone, |
