From bebb62a98167b4127d06d52748e4f4f6534e9093 Mon Sep 17 00:00:00 2001 From: Christian Rocha Date: Tue, 5 Jul 2022 16:48:29 -0700 Subject: [PATCH] feat: also apply keyword styling to inactive log items --- ui/pages/repo/log.go | 16 ++++----- ui/pages/repo/logitem.go | 20 +++++------ ui/styles/styles.go | 75 +++++++++++++++++++++------------------- 3 files changed, 56 insertions(+), 55 deletions(-) diff --git a/ui/pages/repo/log.go b/ui/pages/repo/log.go index ffd5fe2023e41ec3cb562f350161513fff4c9234..44619f9eaca2778021b2a80e49eeae801300b94d 100644 --- a/ui/pages/repo/log.go +++ b/ui/pages/repo/log.go @@ -19,9 +19,7 @@ import ( "github.com/muesli/termenv" ) -var ( - waitBeforeLoading = time.Millisecond * 100 -) +var waitBeforeLoading = time.Millisecond * 100 type logView int @@ -437,10 +435,10 @@ func (l *Log) renderCommit(c *ggit.Commit) string { // sanitize commit message from CRLF msg := strings.ReplaceAll(c.Message, "\r\n", "\n") s.WriteString(fmt.Sprintf("%s\n%s\n%s\n%s\n", - l.common.Styles.LogCommitHash.Render("commit "+c.ID.String()), - l.common.Styles.LogCommitAuthor.Render(fmt.Sprintf("Author: %s <%s>", c.Author.Name, c.Author.Email)), - l.common.Styles.LogCommitDate.Render("Date: "+c.Committer.When.Format(time.UnixDate)), - l.common.Styles.LogCommitBody.Render(msg), + l.common.Styles.Log.CommitHash.Render("commit "+c.ID.String()), + l.common.Styles.Log.CommitAuthor.Render(fmt.Sprintf("Author: %s <%s>", c.Author.Name, c.Author.Email)), + l.common.Styles.Log.CommitDate.Render("Date: "+c.Committer.When.Format(time.UnixDate)), + l.common.Styles.Log.CommitBody.Render(msg), )) return wrap.String(s.String(), l.common.Width-2) } @@ -451,8 +449,8 @@ func (l *Log) renderSummary(diff *ggit.Diff) string { ch := strings.Split(line, "|") if len(ch) > 1 { adddel := ch[len(ch)-1] - adddel = strings.ReplaceAll(adddel, "+", l.common.Styles.LogCommitStatsAdd.Render("+")) - adddel = strings.ReplaceAll(adddel, "-", l.common.Styles.LogCommitStatsDel.Render("-")) + adddel = strings.ReplaceAll(adddel, "+", l.common.Styles.Log.CommitStatsAdd.Render("+")) + adddel = strings.ReplaceAll(adddel, "-", l.common.Styles.Log.CommitStatsDel.Render("-")) stats[i] = strings.Join(ch[:len(ch)-1], "|") + "|" + adddel } } diff --git a/ui/pages/repo/logitem.go b/ui/pages/repo/logitem.go index 4382deadeb91a2c3f8024313fcba81e7e6887336..73d46ad2101b43484de97e5aabe9794d3d24d88f 100644 --- a/ui/pages/repo/logitem.go +++ b/ui/pages/repo/logitem.go @@ -76,7 +76,7 @@ func (d LogItemDelegate) Update(msg tea.Msg, m *list.Model) tea.Cmd { // Render renders the item. Implements list.ItemDelegate. func (d LogItemDelegate) Render(w io.Writer, m list.Model, index int, listItem list.Item) { - styles := d.common.Styles + styles := d.common.Styles.Log i, ok := listItem.(LogItem) if !ok { return @@ -88,17 +88,17 @@ func (d LogItemDelegate) Render(w io.Writer, m list.Model, index int, listItem l var titleStyler, descStyler, keywordStyler func(string) string - style := styles.LogItemInactive + style := styles.ItemInactive if index == m.Index() { - titleStyler = styles.LogItemTitleActive.Render - descStyler = styles.LogItemDescActive.Render - keywordStyler = styles.LogItemKeywordActive.Render - style = styles.LogItemActive + titleStyler = styles.ItemTitleActive.Render + descStyler = styles.ItemDescActive.Render + keywordStyler = styles.ItemKeywordActive.Render + style = styles.ItemActive } else { - titleStyler = styles.LogItemTitleInactive.Render - descStyler = styles.LogItemDescInactive.Render - keywordStyler = styles.LogItemKeywordInactive.Render + titleStyler = styles.ItemTitleInactive.Render + descStyler = styles.ItemDescInactive.Render + keywordStyler = styles.ItemKeywordInactive.Render } hash := i.Commit.ID.String()[:7] @@ -113,7 +113,7 @@ func (d LogItemDelegate) Render(w io.Writer, m list.Model, index int, listItem l // title truncation symbol (1) 9), ) - hashStyle := styles.LogItemHash.Copy(). + hashStyle := styles.ItemHash.Copy(). Align(lipgloss.Right). PaddingLeft(1). Width(m.Width() - diff --git a/ui/styles/styles.go b/ui/styles/styles.go index 2790191f0a9672ca8c7fc245fa6aafcc7d16656a..a8e8f6686de83b5e82017347f0a6ad5c8be97e61 100644 --- a/ui/styles/styles.go +++ b/ui/styles/styles.go @@ -44,25 +44,27 @@ type Styles struct { AboutNoReadme lipgloss.Style - LogItem lipgloss.Style - LogItemSelector lipgloss.Style - LogItemActive lipgloss.Style - LogItemInactive lipgloss.Style - LogItemHash lipgloss.Style - LogItemTitleInactive lipgloss.Style - LogItemTitleActive lipgloss.Style - LogItemDescInactive lipgloss.Style - LogItemDescActive lipgloss.Style - LogItemKeywordActive lipgloss.Style - LogItemKeywordInactive lipgloss.Style - LogCommit lipgloss.Style - LogCommitHash lipgloss.Style - LogCommitAuthor lipgloss.Style - LogCommitDate lipgloss.Style - LogCommitBody lipgloss.Style - LogCommitStatsAdd lipgloss.Style - LogCommitStatsDel lipgloss.Style - LogPaginator lipgloss.Style + Log struct { + Item lipgloss.Style + ItemSelector lipgloss.Style + ItemActive lipgloss.Style + ItemInactive lipgloss.Style + ItemHash lipgloss.Style + ItemTitleInactive lipgloss.Style + ItemTitleActive lipgloss.Style + ItemDescInactive lipgloss.Style + ItemDescActive lipgloss.Style + ItemKeywordActive lipgloss.Style + ItemKeywordInactive lipgloss.Style + Commit lipgloss.Style + CommitHash lipgloss.Style + CommitAuthor lipgloss.Style + CommitDate lipgloss.Style + CommitBody lipgloss.Style + CommitStatsAdd lipgloss.Style + CommitStatsDel lipgloss.Style + Paginator lipgloss.Style + } RefItemSelector lipgloss.Style RefItemActive lipgloss.Style @@ -209,60 +211,61 @@ func DefaultStyles() *Styles { MarginLeft(2). Foreground(lipgloss.Color("#626262")) - s.LogItemInactive = lipgloss.NewStyle(). + s.Log.ItemInactive = lipgloss.NewStyle(). Border(lipgloss.Border{ Left: " ", }, false, false, false, true). PaddingLeft(1) - s.LogItemActive = s.LogItemInactive.Copy(). + s.Log.ItemActive = s.Log.ItemInactive.Copy(). Border(lipgloss.Border{ Left: "┃", }, false, false, false, true). BorderForeground(selectorColor) - s.LogItemSelector = s.LogItemInactive.Copy(). + s.Log.ItemSelector = s.Log.ItemInactive.Copy(). Width(1). Foreground(lipgloss.Color("#B083EA")) - s.LogItemHash = s.LogItemInactive.Copy(). + s.Log.ItemHash = s.Log.ItemInactive.Copy(). Foreground(lipgloss.Color("#A3A322")) - s.LogItemTitleInactive = lipgloss.NewStyle(). + s.Log.ItemTitleInactive = lipgloss.NewStyle(). Foreground(lipgloss.Color("#B083EA")) - s.LogItemTitleActive = lipgloss.NewStyle(). + s.Log.ItemTitleActive = lipgloss.NewStyle(). Foreground(highlightColor). Bold(true) - s.LogItemDescInactive = lipgloss.NewStyle() + s.Log.ItemDescInactive = lipgloss.NewStyle(). + Foreground(lipgloss.Color("246")) - s.LogItemDescActive = lipgloss.NewStyle(). + s.Log.ItemDescActive = lipgloss.NewStyle(). Foreground(lipgloss.Color("95")) - s.LogItemKeywordActive = s.LogItemDescActive.Copy(). + s.Log.ItemKeywordActive = s.Log.ItemDescActive.Copy(). Foreground(highlightColorDim) - s.LogCommit = lipgloss.NewStyle(). + s.Log.Commit = lipgloss.NewStyle(). Margin(0, 2) - s.LogCommitHash = lipgloss.NewStyle(). + s.Log.CommitHash = lipgloss.NewStyle(). Foreground(lipgloss.Color("#A3A322")). Bold(true) - s.LogCommitBody = lipgloss.NewStyle(). + s.Log.CommitBody = lipgloss.NewStyle(). MarginTop(1). MarginLeft(2) - s.LogCommitStatsAdd = lipgloss.NewStyle(). + s.Log.CommitStatsAdd = lipgloss.NewStyle(). Foreground(lipgloss.Color("#00D787")). Bold(true) - s.LogCommitStatsDel = lipgloss.NewStyle(). + s.Log.CommitStatsDel = lipgloss.NewStyle(). Foreground(lipgloss.Color("#FD5B5B")). Bold(true) - s.LogPaginator = lipgloss.NewStyle(). + s.Log.Paginator = lipgloss.NewStyle(). Margin(0). Align(lipgloss.Center) @@ -288,7 +291,7 @@ func DefaultStyles() *Styles { Bold(true). Foreground(highlightColor) - s.RefPaginator = s.LogPaginator.Copy() + s.RefPaginator = s.Log.Paginator.Copy() s.TreeItemSelector = s.TreeItemInactive.Copy(). Width(1). @@ -322,7 +325,7 @@ func DefaultStyles() *Styles { s.TreeFileContent = lipgloss.NewStyle() - s.TreePaginator = s.LogPaginator.Copy() + s.TreePaginator = s.Log.Paginator.Copy() s.TreeNoItems = s.AboutNoReadme.Copy()