bebb62a98167b4127d06d52748e4f4f6534e9093

Author
Christian Rocha <christian@rocha.is>
Committer
Ayman Bagabas <ayman.bagabas@gmail.com>
Date

Message

feat: also apply keyword styling to inactive log items

Diff

This diff is truncated to protect this page.

  1diff --git a/ui/pages/repo/log.go b/ui/pages/repo/log.go
  2index ffd5fe2023e41ec3cb562f350161513fff4c9234..44619f9eaca2778021b2a80e49eeae801300b94d 100644
  3--- a/ui/pages/repo/log.go
  4+++ b/ui/pages/repo/log.go
  5@@ -19,9 +19,7 @@ import (
  6 	"github.com/muesli/termenv"
  7 )
  8 
  9-var (
 10-	waitBeforeLoading = time.Millisecond * 100
 11-)
 12+var waitBeforeLoading = time.Millisecond * 100
 13 
 14 type logView int
 15 
 16@@ -437,10 +435,10 @@ func (l *Log) renderCommit(c *ggit.Commit) string {
 17 	// sanitize commit message from CRLF
 18 	msg := strings.ReplaceAll(c.Message, "\r\n", "\n")
 19 	s.WriteString(fmt.Sprintf("%s\n%s\n%s\n%s\n",
 20-		l.common.Styles.LogCommitHash.Render("commit "+c.ID.String()),
 21-		l.common.Styles.LogCommitAuthor.Render(fmt.Sprintf("Author: %s <%s>", c.Author.Name, c.Author.Email)),
 22-		l.common.Styles.LogCommitDate.Render("Date:   "+c.Committer.When.Format(time.UnixDate)),
 23-		l.common.Styles.LogCommitBody.Render(msg),
 24+		l.common.Styles.Log.CommitHash.Render("commit "+c.ID.String()),
 25+		l.common.Styles.Log.CommitAuthor.Render(fmt.Sprintf("Author: %s <%s>", c.Author.Name, c.Author.Email)),
 26+		l.common.Styles.Log.CommitDate.Render("Date:   "+c.Committer.When.Format(time.UnixDate)),
 27+		l.common.Styles.Log.CommitBody.Render(msg),
 28 	))
 29 	return wrap.String(s.String(), l.common.Width-2)
 30 }
 31@@ -451,8 +449,8 @@ func (l *Log) renderSummary(diff *ggit.Diff) string {
 32 		ch := strings.Split(line, "|")
 33 		if len(ch) > 1 {
 34 			adddel := ch[len(ch)-1]
 35-			adddel = strings.ReplaceAll(adddel, "+", l.common.Styles.LogCommitStatsAdd.Render("+"))
 36-			adddel = strings.ReplaceAll(adddel, "-", l.common.Styles.LogCommitStatsDel.Render("-"))
 37+			adddel = strings.ReplaceAll(adddel, "+", l.common.Styles.Log.CommitStatsAdd.Render("+"))
 38+			adddel = strings.ReplaceAll(adddel, "-", l.common.Styles.Log.CommitStatsDel.Render("-"))
 39 			stats[i] = strings.Join(ch[:len(ch)-1], "|") + "|" + adddel
 40 		}
 41 	}
 42diff --git a/ui/pages/repo/logitem.go b/ui/pages/repo/logitem.go
 43index 4382deadeb91a2c3f8024313fcba81e7e6887336..73d46ad2101b43484de97e5aabe9794d3d24d88f 100644
 44--- a/ui/pages/repo/logitem.go
 45+++ b/ui/pages/repo/logitem.go
 46@@ -76,7 +76,7 @@ func (d LogItemDelegate) Update(msg tea.Msg, m *list.Model) tea.Cmd {
 47 
 48 // Render renders the item. Implements list.ItemDelegate.
 49 func (d LogItemDelegate) Render(w io.Writer, m list.Model, index int, listItem list.Item) {
 50-	styles := d.common.Styles
 51+	styles := d.common.Styles.Log
 52 	i, ok := listItem.(LogItem)
 53 	if !ok {
 54 		return
 55@@ -88,17 +88,17 @@ func (d LogItemDelegate) Render(w io.Writer, m list.Model, index int, listItem l
 56 	var titleStyler,
 57 		descStyler,
 58 		keywordStyler func(string) string
 59-	style := styles.LogItemInactive
 60+	style := styles.ItemInactive
 61 
 62 	if index == m.Index() {
 63-		titleStyler = styles.LogItemTitleActive.Render
 64-		descStyler = styles.LogItemDescActive.Render
 65-		keywordStyler = styles.LogItemKeywordActive.Render
 66-		style = styles.LogItemActive
 67+		titleStyler = styles.ItemTitleActive.Render
 68+		descStyler = styles.ItemDescActive.Render
 69+		keywordStyler = styles.ItemKeywordActive.Render
 70+		style = styles.ItemActive
 71 	} else {
 72-		titleStyler = styles.LogItemTitleInactive.Render
 73-		descStyler = styles.LogItemDescInactive.Render
 74-		keywordStyler = styles.LogItemKeywordInactive.Render
 75+		titleStyler = styles.ItemTitleInactive.Render
 76+		descStyler = styles.ItemDescInactive.Render
 77+		keywordStyler = styles.ItemKeywordInactive.Render
 78 	}
 79 
 80 	hash := i.Commit.ID.String()[:7]
 81@@ -113,7 +113,7 @@ func (d LogItemDelegate) Render(w io.Writer, m list.Model, index int, listItem l
 82 				// title truncation symbol (1)
 83 				9),
 84 	)
 85-	hashStyle := styles.LogItemHash.Copy().
 86+	hashStyle := styles.ItemHash.Copy().
 87 		Align(lipgloss.Right).
 88 		PaddingLeft(1).
 89 		Width(m.Width() -
 90diff --git a/ui/styles/styles.go b/ui/styles/styles.go
 91index 2790191f0a9672ca8c7fc245fa6aafcc7d16656a..a8e8f6686de83b5e82017347f0a6ad5c8be97e61 100644
 92--- a/ui/styles/styles.go
 93+++ b/ui/styles/styles.go
 94@@ -44,25 +44,27 @@ type Styles struct {
 95 
 96 	AboutNoReadme lipgloss.Style
 97 
 98-	LogItem                lipgloss.Style
 99-	LogItemSelector        lipgloss.Style
100-	LogItemActive          lipgloss.Style
101-	LogItemInactive        lipgloss.Style
102-	LogItemHash            lipgloss.Style
103-	LogItemTitleInactive   lipgloss.Style
104-	LogItemTitleActive     lipgloss.Style
105-	LogItemDescInactive    lipgloss.Style
106-	LogItemDescActive      lipgloss.Style
107-	LogItemKeywordActive   lipgloss.Style
108-	LogItemKeywordInactive lipgloss.Style
109-	LogCommit              lipgloss.Style
110-	LogCommitHash          lipgloss.Style
111-	LogCommitAuthor        lipgloss.Style
112-	LogCommitDate          lipgloss.Style
113-	LogCommitBody          lipgloss.Style
114-	LogCommitStatsAdd      lipgloss.Style
115-	LogCommitStatsDel      lipgloss.Style
116-	LogPaginator           lipgloss.Style
117+	Log struct {
118+		Item                lipgloss.Style
119+		ItemSelector        lipgloss.Style
120+		ItemActive          lipgloss.Style
121+		ItemInactive        lipgloss.Style
122+		ItemHash            lipgloss.Style
123+		ItemTitleInactive   lipgloss.Style
124+		ItemTitleActive     lipgloss.Style
125+		ItemDescInactive    lipgloss.Style
126+		ItemDescActive      lipgloss.Style
127+		ItemKeywordActive   lipgloss.Style
128+		ItemKeywordInactive lipgloss.Style
129+		Commit              lipgloss.Style
130+		CommitHash          lipgloss.Style
131+		CommitAuthor        lipgloss.Style
132+		CommitDate          lipgloss.Style
133+		CommitBody          lipgloss.Style
134+		CommitStatsAdd      lipgloss.Style
135+		CommitStatsDel      lipgloss.Style
136+		Paginator           lipgloss.Style
137+	}
138 
139 	RefItemSelector    lipgloss.Style
140 	RefItemActive      lipgloss.Style
141@@ -209,60 +211,61 @@ func DefaultStyles() *Styles {
142 		MarginLeft(2).
143 		Foreground(lipgloss.Color("#626262"))
144 
145-	s.LogItemInactive = lipgloss.NewStyle().
146+	s.Log.ItemInactive = lipgloss.NewStyle().
147 		Border(lipgloss.Border{
148 			Left: " ",
149 		}, false, false, false, true).
150 		PaddingLeft(1)
151 
152-	s.LogItemActive = s.LogItemInactive.Copy().
153+	s.Log.ItemActive = s.Log.ItemInactive.Copy().
154 		Border(lipgloss.Border{
155 			Left: "┃",
156 		}, false, false, false, true).
157 		BorderForeground(selectorColor)
158 
159-	s.LogItemSelector = s.LogItemInactive.Copy().
160+	s.Log.ItemSelector = s.Log.ItemInactive.Copy().
161 		Width(1).
162 		Foreground(lipgloss.Color("#B083EA"))
163 
164-	s.LogItemHash = s.LogItemInactive.Copy().
165+	s.Log.ItemHash = s.Log.ItemInactive.Copy().
166 		Foreground(lipgloss.Color("#A3A322"))
167 
168-	s.LogItemTitleInactive = lipgloss.NewStyle().
169+	s.Log.ItemTitleInactive = lipgloss.NewStyle().
170 		Foreground(lipgloss.Color("#B083EA"))
171 
172-	s.LogItemTitleActive = lipgloss.NewStyle().
173+	s.Log.ItemTitleActive = lipgloss.NewStyle().
174 		Foreground(highlightColor).
175 		Bold(true)
176 
177-	s.LogItemDescInactive = lipgloss.NewStyle()
178+	s.Log.ItemDescInactive = lipgloss.NewStyle().
179+		Foreground(lipgloss.Color("246"))
180 
181-	s.LogItemDescActive = lipgloss.NewStyle().
182+	s.Log.ItemDescActive = lipgloss.NewStyle().
183 		Foreground(lipgloss.Color("95"))
184 
185-	s.LogItemKeywordActive = s.LogItemDescActive.Copy().
186+	s.Log.ItemKeywordActive = s.Log.ItemDescActive.Copy().
187 		Foreground(highlightColorDim)
188 
189-	s.LogCommit = lipgloss.NewStyle().
190+	s.Log.Commit = lipgloss.NewStyle().
191 		Margin(0, 2)
192 
193-	s.LogCommitHash = lipgloss.NewStyle().