mirror of
https://github.com/charmbracelet/gum
synced 2026-03-14 13:45:45 +01:00
docs: document gum table, file, pager
This commit documents `gum table`, `gum file`, and `gum pager` with demonstration GIFs and sample scripts.
This commit is contained in:
parent
2bea4dc030
commit
995bd04e38
12 changed files with 85 additions and 48 deletions
|
|
@ -17,7 +17,7 @@ func (o Options) Run() error {
|
|||
|
||||
path, err := filepath.Abs(o.Path)
|
||||
if err != nil {
|
||||
return err
|
||||
return fmt.Errorf("file not found: %w", err)
|
||||
}
|
||||
|
||||
m := model{
|
||||
|
|
@ -43,7 +43,7 @@ func (o Options) Run() error {
|
|||
|
||||
tm, err := tea.NewProgram(&m, tea.WithOutput(os.Stderr)).StartReturningModel()
|
||||
if err != nil {
|
||||
return err
|
||||
return fmt.Errorf("unable to pick selection: %w", err)
|
||||
}
|
||||
|
||||
m = tm.(model)
|
||||
|
|
|
|||
32
file/file.go
32
file/file.go
|
|
@ -196,30 +196,34 @@ func (m model) View() string {
|
|||
isSymlink := info.Mode()&fs.ModeSymlink != 0
|
||||
size := humanize.Bytes(uint64(info.Size()))
|
||||
name := f.Name()
|
||||
|
||||
if isSymlink {
|
||||
symlinkPath, _ = filepath.EvalSymlinks(filepath.Join(m.path, name))
|
||||
}
|
||||
|
||||
if m.selected == i {
|
||||
selected := fmt.Sprintf(" %s %"+fmt.Sprint(m.fileSizeStyle.GetWidth())+"s %s", info.Mode().String(), size, name)
|
||||
if isSymlink {
|
||||
selected = fmt.Sprintf("%s → %s", selected, symlinkPath)
|
||||
}
|
||||
s.WriteString(m.cursorStyle.Render(m.cursor) + m.selectedStyle.Render(selected))
|
||||
} else {
|
||||
var style = m.fileStyle
|
||||
if f.IsDir() {
|
||||
style = m.directoryStyle
|
||||
} else if isSymlink {
|
||||
style = m.symlinkStyle
|
||||
}
|
||||
|
||||
fileName := style.Render(name)
|
||||
if isSymlink {
|
||||
fileName = fmt.Sprintf("%s → %s", fileName, symlinkPath)
|
||||
}
|
||||
s.WriteString(fmt.Sprintf(" %s %s %s", m.permissionStyle.Render(info.Mode().String()), m.fileSizeStyle.Render(size), fileName))
|
||||
s.WriteRune('\n')
|
||||
continue
|
||||
}
|
||||
s.WriteString("\n")
|
||||
|
||||
var style = m.fileStyle
|
||||
if f.IsDir() {
|
||||
style = m.directoryStyle
|
||||
} else if isSymlink {
|
||||
style = m.symlinkStyle
|
||||
}
|
||||
|
||||
fileName := style.Render(name)
|
||||
if isSymlink {
|
||||
fileName = fmt.Sprintf("%s → %s", fileName, symlinkPath)
|
||||
}
|
||||
s.WriteString(fmt.Sprintf(" %s %s %s", m.permissionStyle.Render(info.Mode().String()), m.fileSizeStyle.Render(size), fileName))
|
||||
s.WriteRune('\n')
|
||||
}
|
||||
|
||||
return s.String()
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ package file
|
|||
|
||||
import "strings"
|
||||
|
||||
// IsHidden reports whether a file is hidden or not
|
||||
// IsHidden reports whether a file is hidden or not.
|
||||
func IsHidden(file string) (bool, error) {
|
||||
return strings.HasPrefix(file, "."), nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@ type Options struct {
|
|||
DirectoryStyle style.Styles `embed:"" prefix:"directory." help:"The style to use for directories" set:"defaultForeground=99" envprefix:"GUM_FILE_DIRECTORY_"`
|
||||
FileStyle style.Styles `embed:"" prefix:"file." help:"The style to use for files" envprefix:"GUM_FILE_FILE_"`
|
||||
PermissionsStyle style.Styles `embed:"" prefix:"permissions." help:"The style to use for permissions" set:"defaultForeground=244" envprefix:"GUM_FILE_PERMISSIONS_"`
|
||||
SelectedStyle style.Styles `embed:"" prefix:"selected." help:"The style to use for the selected item" set:"defaultBold=true" set:"defaultForeground=212" envprefix:"GUM_FILE_SELECTED_"`
|
||||
FileSizeStyle style.Styles `embed:"" prefix:"file-size." help:"The style to use for file sizes" set:"defaultWidth=8" set:"defaultAlign=right" set:"defaultForeground=240" envprefix:"GUM_FILE_FILE_SIZE_"`
|
||||
//nolint:staticcheck
|
||||
SelectedStyle style.Styles `embed:"" prefix:"selected." help:"The style to use for the selected item" set:"defaultBold=true" set:"defaultForeground=212" envprefix:"GUM_FILE_SELECTED_"`
|
||||
//nolint:staticcheck
|
||||
FileSizeStyle style.Styles `embed:"" prefix:"file-size." help:"The style to use for file sizes" set:"defaultWidth=8" set:"defaultAlign=right" set:"defaultForeground=240" envprefix:"GUM_FILE_FILE_SIZE_"`
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue