@@ -96,12 +96,13 @@ func (d FileItemDelegate) Update(msg tea.Msg, m *list.Model) tea.Cmd {
// Render implements list.ItemDelegate.
func (d FileItemDelegate) Render(w io.Writer, m list.Model, index int, listItem list.Item) {
- s := d.common.Styles.Tree
i, ok := listItem.(FileItem)
if !ok {
return
}
+ s := d.common.Styles.Tree
+
name := i.Title()
size := humanize.Bytes(uint64(i.entry.Size()))
size = strings.ReplaceAll(size, " ", "")
@@ -109,32 +110,32 @@ func (d FileItemDelegate) Render(w io.Writer, m list.Model, index int, listItem
if i.entry.IsTree() {
size = strings.Repeat(" ", sizeLen)
if index == m.Index() {
- name = s.FileDirActive.Render(name)
+ name = s.Active.FileDir.Render(name)
} else {
- name = s.FileDirInactive.Render(name)
+ name = s.Normal.FileDir.Render(name)
}
}
var nameStyle, sizeStyle, modeStyle lipgloss.Style
mode := i.Mode()
if index == m.Index() {
- nameStyle = s.ItemActive
- sizeStyle = s.FileSizeActive
- modeStyle = s.FileModeActive
- fmt.Fprint(w, s.ItemSelector.Render(">"))
+ nameStyle = s.Active.FileName
+ sizeStyle = s.Active.FileSize
+ modeStyle = s.Active.FileMode
+ fmt.Fprint(w, s.Selector.Render(">"))
} else {
- nameStyle = s.ItemInactive
- sizeStyle = s.FileSizeInactive
- modeStyle = s.FileModeInactive
- fmt.Fprint(w, s.ItemSelector.Render(" "))
+ nameStyle = s.Normal.FileName
+ sizeStyle = s.Normal.FileSize
+ modeStyle = s.Normal.FileMode
+ fmt.Fprint(w, s.Selector.Render(" "))
}
sizeStyle = sizeStyle.Copy().
Width(8).
Align(lipgloss.Right).
MarginLeft(1)
- leftMargin := s.ItemSelector.GetMarginLeft() +
- s.ItemSelector.GetWidth() +
- s.FileModeInactive.GetMarginLeft() +
- s.FileModeInactive.GetWidth() +
+ leftMargin := s.Selector.GetMarginLeft() +
+ s.Selector.GetWidth() +
+ s.Normal.FileMode.GetMarginLeft() +
+ s.Normal.FileMode.GetWidth() +
nameStyle.GetMarginLeft() +
sizeStyle.GetHorizontalFrameSize()
name = common.TruncateString(name, m.Width()-leftMargin)
@@ -142,8 +143,8 @@ func (d FileItemDelegate) Render(w io.Writer, m list.Model, index int, listItem
size = sizeStyle.Render(size)
modeStr := modeStyle.Render(mode.String())
truncate := lipgloss.NewStyle().MaxWidth(m.Width() -
- s.ItemSelector.GetHorizontalFrameSize() -
- s.ItemSelector.GetWidth())
+ s.Selector.GetHorizontalFrameSize() -
+ s.Selector.GetWidth())
fmt.Fprint(w,
truncate.Render(fmt.Sprintf("%s%s%s",
modeStr,
@@ -85,18 +85,22 @@ type Styles struct {
}
Tree struct {
- ItemSelector lipgloss.Style
- ItemActive lipgloss.Style
- ItemInactive lipgloss.Style
- FileDirInactive lipgloss.Style
- FileDirActive lipgloss.Style
- FileModeInactive lipgloss.Style
- FileModeActive lipgloss.Style
- FileSizeInactive lipgloss.Style
- FileSizeActive lipgloss.Style
- FileContent lipgloss.Style
- Paginator lipgloss.Style
- NoItems lipgloss.Style
+ Normal struct {
+ FileName lipgloss.Style
+ FileDir lipgloss.Style
+ FileMode lipgloss.Style
+ FileSize lipgloss.Style
+ }
+ Active struct {
+ FileName lipgloss.Style
+ FileDir lipgloss.Style
+ FileMode lipgloss.Style
+ FileSize lipgloss.Style
+ }
+ Selector lipgloss.Style
+ FileContent lipgloss.Style
+ Paginator lipgloss.Style
+ NoItems lipgloss.Style
}
Spinner lipgloss.Style
@@ -312,34 +316,34 @@ func DefaultStyles() *Styles {
s.Ref.Paginator = s.Log.Paginator.Copy()
- s.Tree.ItemSelector = s.Tree.ItemInactive.Copy().
+ s.Tree.Selector = s.Tree.Normal.FileName.Copy().
Width(1).
Foreground(selectorColor)
- s.Tree.ItemInactive = lipgloss.NewStyle().
+ s.Tree.Normal.FileName = lipgloss.NewStyle().
MarginLeft(1)
- s.Tree.ItemActive = s.Tree.ItemInactive.Copy().
+ s.Tree.Active.FileName = s.Tree.Normal.FileName.Copy().
Bold(true).
Foreground(highlightColor)
- s.Tree.FileDirInactive = lipgloss.NewStyle().
+ s.Tree.Normal.FileDir = lipgloss.NewStyle().
Foreground(lipgloss.Color("39"))
- s.Tree.FileDirActive = lipgloss.NewStyle().
+ s.Tree.Active.FileDir = lipgloss.NewStyle().
Foreground(highlightColor)
- s.Tree.FileModeInactive = s.Tree.ItemInactive.Copy().
+ s.Tree.Normal.FileMode = s.Tree.Active.FileName.Copy().
Width(10).
Foreground(lipgloss.Color("243"))
- s.Tree.FileModeActive = s.Tree.FileModeInactive.Copy().
+ s.Tree.Active.FileMode = s.Tree.Normal.FileMode.Copy().
Foreground(highlightColorDim)
- s.Tree.FileSizeInactive = s.Tree.ItemInactive.Copy().
+ s.Tree.Normal.FileSize = s.Tree.Normal.FileName.Copy().
Foreground(lipgloss.Color("243"))
- s.Tree.FileSizeActive = s.Tree.ItemInactive.Copy().
+ s.Tree.Active.FileSize = s.Tree.Normal.FileName.Copy().
Foreground(highlightColorDim)
s.Tree.FileContent = lipgloss.NewStyle()