aboutsummaryrefslogtreecommitdiffstats
path: root/commands/bug/bug.go
diff options
context:
space:
mode:
authorMichael Muré <batolettre@gmail.com>2023-01-14 20:02:52 +0100
committerMichael Muré <batolettre@gmail.com>2023-01-17 20:19:54 +0100
commit9fc8dbf4e167ae3d3a5fd602df74645e07d79679 (patch)
tree0372489d26994489fa3e7c29c069cac2094575e6 /commands/bug/bug.go
parente689cc506775ec1daccaae9ec35c7a28b48b2f05 (diff)
downloadgit-bug-9fc8dbf4e167ae3d3a5fd602df74645e07d79679.tar.gz
command: adapt the output of the bug list to the terminal size
Diffstat (limited to 'commands/bug/bug.go')
-rw-r--r--commands/bug/bug.go25
1 files changed, 22 insertions, 3 deletions
diff --git a/commands/bug/bug.go b/commands/bug/bug.go
index a5ce11ed..46b00d3d 100644
--- a/commands/bug/bug.go
+++ b/commands/bug/bug.go
@@ -15,6 +15,7 @@ import (
"github.com/MichaelMure/git-bug/commands/execenv"
"github.com/MichaelMure/git-bug/entities/bug"
"github.com/MichaelMure/git-bug/entities/common"
+ "github.com/MichaelMure/git-bug/entity"
"github.com/MichaelMure/git-bug/query"
"github.com/MichaelMure/git-bug/util/colors"
)
@@ -233,6 +234,24 @@ func bugsIDFormatter(env *execenv.Env, bugExcerpts []*cache.BugExcerpt) error {
}
func bugsDefaultFormatter(env *execenv.Env, bugExcerpts []*cache.BugExcerpt) error {
+ width := env.Out.Width()
+ widthId := entity.HumanIdLength
+ widthStatus := len("closed")
+ widthComment := 6
+
+ widthRemaining := width -
+ widthId - 1 -
+ widthStatus - 1 -
+ widthComment - 1
+
+ widthTitle := int(float32(widthRemaining-3) * 0.7)
+ if widthTitle < 0 {
+ widthTitle = 0
+ }
+
+ widthRemaining = widthRemaining - widthTitle - 3 - 2
+ widthAuthor := widthRemaining
+
for _, b := range bugExcerpts {
author, err := env.Backend.Identities().ResolveExcerpt(b.AuthorId)
if err != nil {
@@ -249,8 +268,8 @@ func bugsDefaultFormatter(env *execenv.Env, bugExcerpts []*cache.BugExcerpt) err
// truncate + pad if needed
labelsFmt := text.TruncateMax(labelsTxt.String(), 10)
- titleFmt := text.LeftPadMaxLine(strings.TrimSpace(b.Title), 50-text.Len(labelsFmt), 0)
- authorFmt := text.LeftPadMaxLine(author.DisplayName(), 15, 0)
+ titleFmt := text.LeftPadMaxLine(strings.TrimSpace(b.Title), widthTitle-text.Len(labelsFmt), 0)
+ authorFmt := text.LeftPadMaxLine(author.DisplayName(), widthAuthor, 0)
comments := fmt.Sprintf("%3d 💬", b.LenComments-1)
if b.LenComments-1 <= 0 {
@@ -260,7 +279,7 @@ func bugsDefaultFormatter(env *execenv.Env, bugExcerpts []*cache.BugExcerpt) err
comments = " ∞ 💬"
}
- env.Out.Printf("%s\t%s\t%s\t%s\t%s\n",
+ env.Out.Printf("%s\t%s\t%s %s %s\n",
colors.Cyan(b.Id().Human()),
colors.Yellow(b.Status),
titleFmt+labelsFmt,