summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormjarkk <mkopenga@gmail.com>2019-04-26 08:24:14 +0200
committermjarkk <mkopenga@gmail.com>2019-04-26 08:24:14 +0200
commit492614ebc7a02e3445099ade301103b306050f19 (patch)
treef44724d6715335b8c9ae18e78941b2c00dc586ca
parentd31f0ed39b4be113104c38442ee1215d715bd71d (diff)
Made the ui even smaller
-rw-r--r--pkg/gui/gui.go18
-rw-r--r--vendor/github.com/jesseduffield/gocui/README.md110
-rw-r--r--vendor/github.com/jesseduffield/gocui/gui.go9
-rw-r--r--vendor/vendor.json14
4 files changed, 141 insertions, 10 deletions
diff --git a/pkg/gui/gui.go b/pkg/gui/gui.go
index cb9ba394e..3578202f7 100644
--- a/pkg/gui/gui.go
+++ b/pkg/gui/gui.go
@@ -303,7 +303,7 @@ func (gui *Gui) layout(g *gocui.Gui) error {
information = donate + " " + information
}
- minimumHeight := 16
+ minimumHeight := 9
minimumWidth := 10
if height < minimumHeight || width < minimumWidth {
v, err := g.SetView("limit", 0, 0, max(width-1, 2), max(height-1, 2), 0)
@@ -345,23 +345,23 @@ func (gui *Gui) layout(g *gocui.Gui) error {
}
if height < 21 {
- statusFilesBoundary = optionsTop - 8
- filesBranchesBoundary = optionsTop - 6
- commitsBranchesBoundary = optionsTop - 4
- commitsStashBoundary = optionsTop - 2
+ statusFilesBoundary = optionsTop - 4
+ filesBranchesBoundary = optionsTop - 3
+ commitsBranchesBoundary = optionsTop - 2
+ commitsStashBoundary = optionsTop - 1
switch currentCyclebleView {
case "stash":
- commitsStashBoundary = 7
+ commitsStashBoundary = 3
fallthrough
case "commits":
- commitsBranchesBoundary = 5
+ commitsBranchesBoundary = 2
fallthrough
case "branches":
- filesBranchesBoundary = 3
+ filesBranchesBoundary = 1
fallthrough
case "files":
- statusFilesBoundary = 1
+ statusFilesBoundary = 0
}
} else {
statusFilesBoundary = optionsTop - 12
diff --git a/vendor/github.com/jesseduffield/gocui/README.md b/vendor/github.com/jesseduffield/gocui/README.md
new file mode 100644
index 000000000..d7b55a3bc
--- /dev/null
+++ b/vendor/github.com/jesseduffield/gocui/README.md
@@ -0,0 +1,110 @@
+# GOCUI - Go Console User Interface
+
+[![GoDoc](https://godoc.org/github.com/jroimartin/gocui?status.svg)](https://godoc.org/github.com/jroimartin/gocui)
+
+Minimalist Go package aimed at creating Console User Interfaces.
+
+## Features
+
+* Minimalist API.
+* Views (the "windows" in the GUI) implement the interface io.ReadWriter.
+* Support for overlapping views.
+* The GUI can be modified at runtime (concurrent-safe).
+* Global and view-level keybindings.
+* Mouse support.
+* Colored text.
+* Customizable edition mode.
+* Easy to build reusable widgets, complex layouts...
+
+## Installation
+
+Execute:
+
+```
+$ go get github.com/jroimartin/gocui
+```
+
+## Documentation
+
+Execute:
+
+```
+$ go doc github.com/jroimartin/gocui
+```
+
+Or visit [godoc.org](https://godoc.org/github.com/jroimartin/gocui) to read it
+online.
+
+## Example
+
+```go
+package main
+
+import (
+ "fmt"
+ "log"
+
+ "github.com/jroimartin/gocui"
+)
+
+func main() {
+ g, err := gocui.NewGui(gocui.OutputNormal)
+ if err != nil {
+ log.Panicln(err)
+ }
+ defer g.Close()
+
+ g.SetManagerFunc(layout)
+
+ if err := g.SetKeybinding("", gocui.KeyCtrlC, gocui.ModNone, quit); err != nil {
+ log.Panicln(err)
+ }
+
+ if err := g.MainLoop(); err != nil && err != gocui.ErrQuit {
+ log.Panicln(err)
+ }
+}
+
+func layout(g *gocui.Gui) error {
+ maxX, maxY := g.Size()
+ if v, err := g.SetView("hello", maxX/2-7, maxY/2, maxX/2+7, maxY/2+2); err != nil {
+ if err != gocui.ErrUnknownView {
+ return err
+ }
+ fmt.Fprintln(v, "Hello world!")
+ }
+ return nil
+}
+
+func quit(g *gocui.Gui, v *gocui.View) error {
+ return gocui.ErrQuit
+}
+```
+
+## Screenshots
+
+![r2cui](https://cloud.githubusercontent.com/assets/1223476/19418932/63645052-93ce-11e6-867c-da5e97e37237.png)
+
+![_examples/demo.go](https://cloud.githubusercontent.com/assets/1223476/5992750/720b84f0-aa36-11e4-88ec-296fa3247b52.png)
+
+![_examples/dynamic.go](https://cloud.githubusercontent.com/assets/1223476/5992751/76ad5cc2-aa36-11e4-8204-6a90269db827.png)
+
+## Projects using gocui
+
+* [komanda-cli](https://github.com/mephux/komanda-cli): IRC Client For Developers.
+* [vuls](https://github.com/future-architect/vuls): Agentless vulnerability scanner for Linux/FreeBSD.
+* [wuzz](https://github.com/asciimoo/wuzz): Interactive cli tool for HTTP inspection.
+* [httplab](https://github.com/gchaincl/httplab): Interactive web server.
+* [domainr](https://github.com/MichaelThessel/domainr): Tool that checks the availability of domains based on keywords.
+* [gotime](https://github.com/nanohard/gotime): Time tracker for projects and tasks.
+* [claws](https://github.com/thehowl/claws): Interactive command line client for testing websockets.
+* [terminews](http://github.com/antavelos/terminews): Terminal based RSS reader.
+* [diagram](https://github.com/esimov/diagram): Tool to convert ascii arts into hand drawn diagrams.
+* [pody](https://github.com/JulienBreux/pody): CLI app to manage Pods in a Kubernetes cluster.
+* [kubexp](https://github.com/alitari/kubexp): Kubernetes client.
+* [kcli](https://github.com/cswank/kcli): Tool for inspecting kafka topics/partitions/messages.
+* [fac](https://github.com/mkchoi212/fac): git merge conflict resolver
+* [jsonui](https://github.com/gulyasm/jsonui): Interactive JSON explorer for your terminal.
+* [cointop](https://github.com/miguelmota/cointop): Interactive terminal based UI application for tracking cryptocurrencies.
+
+Note: if your project is not listed here, let us know! :)
diff --git a/vendor/github.com/jesseduffield/gocui/gui.go b/vendor/github.com/jesseduffield/gocui/gui.go
index 630250727..d607f1e35 100644
--- a/vendor/github.com/jesseduffield/gocui/gui.go
+++ b/vendor/github.com/jesseduffield/gocui/gui.go
@@ -151,7 +151,7 @@ func (g *Gui) Rune(x, y int) (rune, error) {
// ErrUnknownView is returned, which allows to assert if the View must
// be initialized. It checks if the position is valid.
func (g *Gui) SetView(name string, x0, y0, x1, y1 int, overlaps byte) (*View, error) {
- if x0 >= x1 || y0 >= y1 {
+ if x0 >= x1 {
return nil, errors.New("invalid dimensions")
}
if name == "" {
@@ -471,6 +471,9 @@ func (g *Gui) flush() error {
}
}
for _, v := range g.views {
+ if v.y1 < v.y0 {
+ continue
+ }
if v.Frame {
var fgColor, bgColor Attribute
if g.Highlight && v == g.currentView {
@@ -557,6 +560,10 @@ func corner(v *View, directions byte) rune {
// drawFrameCorners draws the corners of the view.
func (g *Gui) drawFrameCorners(v *View, fgColor, bgColor Attribute) error {
+ if v.y0 == v.y1 {
+ return nil
+ }
+
runeTL, runeTR, runeBL, runeBR := '┌', '┐', '└', '┘'
if g.SupportOverlaps {
runeTL = corner(v, BOTTOM|RIGHT)
diff --git a/vendor/vendor.json b/vendor/vendor.json
new file mode 100644
index 000000000..8c744823d
--- /dev/null
+++ b/vendor/vendor.json
@@ -0,0 +1,14 @@
+{
+ "comment": "",
+ "ignore": "",
+ "package": [
+ {
+ "checksumSHA1": "dCLAQjvVss19hSDdcLATFHKiqFI=",
+ "origin": "github.com/jesseduffield/lazygit/vendor/github.com/jesseduffield/gocui",
+ "path": "github.com/jesseduffield/gocui",
+ "revision": "af5a758d6c8637e4f2fdad4c0aed1c5362fc4d99",
+ "revisionTime": "2019-04-26T03:40:05Z"
+ }
+ ],
+ "rootPath": "github.com/jesseduffield/lazygit"
+}