summaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2018-09-05 20:42:11 +1000
committerJesse Duffield <jessedduffield@gmail.com>2018-09-05 20:43:45 +1000
commit986774e5c7ddf5c1de1e1adb831baac84a2dae66 (patch)
tree63c0af0ec32cfd39615d8212bdc3a707e5e30d5b /pkg
parent98763e98cb4c0af033b5276423e451f1f8cd11ee (diff)
add commit count via gocui subtitle
Diffstat (limited to 'pkg')
-rw-r--r--pkg/gui/commit_message_panel.go35
-rw-r--r--pkg/gui/confirmation_panel.go17
-rw-r--r--pkg/gui/files_panel.go58
-rw-r--r--pkg/gui/gui.go9
4 files changed, 35 insertions, 84 deletions
diff --git a/pkg/gui/commit_message_panel.go b/pkg/gui/commit_message_panel.go
index 88a011c76..7ac566b3f 100644
--- a/pkg/gui/commit_message_panel.go
+++ b/pkg/gui/commit_message_panel.go
@@ -1,6 +1,9 @@
package gui
import (
+ "strconv"
+ "strings"
+
"github.com/jesseduffield/gocui"
)
@@ -30,7 +33,6 @@ func (gui *Gui) handleCommitConfirm(g *gocui.Gui, v *gocui.View) error {
func (gui *Gui) handleCommitClose(g *gocui.Gui, v *gocui.View) error {
g.SetViewOnBottom("commitMessage")
- g.SetViewOnBottom("commitMessageCount")
return gui.switchFocus(g, v, gui.getFilesView(g))
}
@@ -44,3 +46,34 @@ func (gui *Gui) handleCommitFocused(g *gocui.Gui, v *gocui.View) error {
)
return gui.renderString(g, "options", message)
}
+
+func (gui *Gui) simpleEditor(v *gocui.View, key gocui.Key, ch rune, mod gocui.Modifier) {
+ switch {
+ case key == gocui.KeyBackspace || key == gocui.KeyBackspace2:
+ v.EditDelete(true)
+ case key == gocui.KeyDelete:
+ v.EditDelete(false)
+ case key == gocui.KeyArrowDown:
+ v.MoveCursor(0, 1, false)
+ case key == gocui.KeyArrowUp:
+ v.MoveCursor(0, -1, false)
+ case key == gocui.KeyArrowLeft:
+ v.MoveCursor(-1, 0, false)
+ case key == gocui.KeyArrowRight:
+ v.MoveCursor(1, 0, false)
+ case key == gocui.KeyTab:
+ v.EditNewLine()
+ case key == gocui.KeySpace:
+ v.EditWrite(' ')
+ case key == gocui.KeyInsert:
+ v.Overwrite = !v.Overwrite
+ default:
+ v.EditWrite(ch)
+ }
+
+ v.Subtitle = gui.getBufferLength(v)
+}
+
+func (gui *Gui) getBufferLength(view *gocui.View) string {
+ return " " + strconv.Itoa(strings.Count(view.Buffer(), "")-1) + " "
+}
diff --git a/pkg/gui/confirmation_panel.go b/pkg/gui/confirmation_panel.go
index 0bb633f32..58577e430 100644
--- a/pkg/gui/confirmation_panel.go
+++ b/pkg/gui/confirmation_panel.go
@@ -115,20 +115,6 @@ func (gui *Gui) createConfirmationPanel(g *gocui.Gui, currentView *gocui.View, t
return nil
}
-func (gui *Gui) handleNewline(g *gocui.Gui, v *gocui.View) error {
- // resising ahead of time so that the top line doesn't get hidden to make
- // room for the cursor on the second line
- x0, y0, x1, y1 := gui.getConfirmationPanelDimensions(g, v.Buffer())
- if _, err := g.SetView("confirmation", x0, y0, x1, y1+1, 0); err != nil {
- if err != gocui.ErrUnknownView {
- return err
- }
- }
-
- v.EditNewLine()
- return nil
-}
-
func (gui *Gui) setKeyBindings(g *gocui.Gui, handleConfirm, handleClose func(*gocui.Gui, *gocui.View) error) error {
actions := gui.Tr.TemplateLocalize(
"CloseConfirm",
@@ -143,9 +129,6 @@ func (gui *Gui) setKeyBindings(g *gocui.Gui, handleConfirm, handleClose func(*go
if err := g.SetKeybinding("confirmation", gocui.KeyEnter, gocui.ModNone, gui.wrappedConfirmationFunction(handleConfirm)); err != nil {
return err
}
- if err := g.SetKeybinding("confirmation", gocui.KeyTab, gocui.ModNone, gui.handleNewline); err != nil {
- return err
- }
return g.SetKeybinding("confirmation", gocui.KeyEsc, gocui.ModNone, gui.wrappedConfirmationFunction(handleClose))
}
diff --git a/pkg/gui/files_panel.go b/pkg/gui/files_panel.go
index 43f7e5831..f85ff9d33 100644
--- a/pkg/gui/files_panel.go
+++ b/pkg/gui/files_panel.go
@@ -12,7 +12,6 @@ import (
"github.com/fatih/color"
"github.com/jesseduffield/gocui"
"github.com/jesseduffield/lazygit/pkg/commands"
- "strconv"
)
func (gui *Gui) stagedFiles() []commands.File {
@@ -219,60 +218,6 @@ func (gui *Gui) handleFileSelect(g *gocui.Gui, v *gocui.View) error {
return gui.renderString(g, "main", content)
}
-func (gui *Gui) simpleEditor(v *gocui.View, key gocui.Key, ch rune, mod gocui.Modifier) {
- switch {
- case key == gocui.KeyBackspace || key == gocui.KeyBackspace2:
- v.EditDelete(true)
- case key == gocui.KeyDelete:
- v.EditDelete(false)
- case key == gocui.KeyArrowDown:
- v.MoveCursor(0, 1, false)
- case key == gocui.KeyArrowUp:
- v.MoveCursor(0, -1, false)
- case key == gocui.KeyArrowLeft:
- v.MoveCursor(-1, 0, false)
- case key == gocui.KeyArrowRight:
- v.MoveCursor(1, 0, false)
- case key == gocui.KeyTab:
- v.EditNewLine()
- case key == gocui.KeySpace:
- v.EditWrite(' ')
- case key == gocui.KeyInsert:
- v.Overwrite = !v.Overwrite
- default:
- v.EditWrite(ch)
- }
-
- gui.renderCommitCount(v)
-}
-
-func (gui *Gui) getCommitCount(view *gocui.View) int {
- return strings.Count(view.Buffer(), "") - 1
-}
-
-func (gui *Gui) renderCommitCount(view *gocui.View) error {
- num := 0
- offset := 5
- count := gui.getCommitCount(view)
- _, y0, x1, _ := gui.getConfirmationPanelDimensions(gui.g, view.Buffer())
-
- if count > 99 {
- num = 3
- } else if count > 9 {
- num = 2
- } else {
- num = 1
- }
-
- if _, err := gui.g.SetView("commitMessageCount", x1-num-offset, y0-1, x1-offset+1, y0+1, 0); err != nil {
- if err != gocui.ErrUnknownView {
- return err
- }
- }
-
- return gui.renderString(gui.g, "commitMessageCount", strconv.Itoa(count))
-}
-
func (gui *Gui) handleCommitPress(g *gocui.Gui, filesView *gocui.View) error {
if len(gui.stagedFiles()) == 0 && !gui.State.HasMergeConflicts {
return gui.createErrorPanel(g, gui.Tr.SLocalize("NoStagedFilesToCommit"))
@@ -280,9 +225,8 @@ func (gui *Gui) handleCommitPress(g *gocui.Gui, filesView *gocui.View) error {
commitMessageView := gui.getCommitMessageView(g)
g.Update(func(g *gocui.Gui) error {
g.SetViewOnTop("commitMessage")
- g.SetViewOnTop("commitMessageCount")
gui.switchFocus(g, filesView, commitMessageView)
- gui.renderCommitCount(commitMessageView)
+ commitMessageView.Subtitle = gui.getBufferLength(commitMessageView)
return nil
})
return nil
diff --git a/pkg/gui/gui.go b/pkg/gui/gui.go
index 6c35f9dca..bb395f9d2 100644
--- a/pkg/gui/gui.go
+++ b/pkg/gui/gui.go
@@ -264,15 +264,6 @@ func (gui *Gui) layout(g *gocui.Gui) error {
commitMessageView.Editable = true
commitMessageView.Editor = gocui.EditorFunc(gui.simpleEditor)
}
- if commitMessageCountView, err := g.SetView("commitMessageCount", 0, 0, width/2, height/2, 0); err != nil {
- if err != gocui.ErrUnknownView {
- return err
- }
- g.SetViewOnBottom("commitMessageCount")
- commitMessageCountView.Frame = false
- commitMessageCountView.BgColor = gocui.ColorDefault
- commitMessageCountView.FgColor = gocui.ColorWhite
- }
}
if appStatusView, err := g.SetView("appStatus", -1, optionsTop, width, optionsTop+2, 0); err != nil {