Documentation ¶
Index ¶
- Constants
- Variables
- func LoaderString(loader Loader) string
- func SetDefault(sh, pg, ed string)
- type BaseColumn
- type BaseFileList
- type BaseFilter
- type BaseMarker
- type BaseSelector
- func (co *BaseSelector) Current() int
- func (co *BaseSelector) CurrentFile() (FileItem, error)
- func (co *BaseSelector) Move(delta int) bool
- func (co *BaseSelector) Select(idx int) bool
- func (co *BaseSelector) SelectByName(name string) bool
- func (co *BaseSelector) SelectFirst() bool
- func (co *BaseSelector) SelectLast() bool
- type BatchTask
- type Bookmark
- type CloseResult
- type Column
- type DefaultBatchTask
- type DefaultProgresser
- type DefaultTask
- type DirOp
- type FileItem
- type FileList
- type FileOp
- type Filterer
- type Group
- type Link
- type Loader
- type LocalColumn
- type LocalGroup
- func (g *LocalGroup) CloseDir() (CloseResult, error)
- func (g *LocalGroup) Columns() []Column
- func (g *LocalGroup) Current() Column
- func (g *LocalGroup) JumpTo(colIdx, fileIdx int) bool
- func (g *LocalGroup) OpenDir() error
- func (g *LocalGroup) OpenRoot(root string) error
- func (g *LocalGroup) Path() string
- func (g *LocalGroup) Record()
- func (g *LocalGroup) Refresh() error
- func (g *LocalGroup) Restore()
- func (g *LocalGroup) Shift() bool
- type Marker
- type Op
- type Order
- type PathItem
- type ProgressListener
- type Progresser
- type Remover
- type Request
- type Selector
- type Task
- type TaskListener
- type TaskManager
- type Workspace
- func (w *Workspace) CurrentGroup() Group
- func (w *Workspace) IsShowBookmark() bool
- func (w *Workspace) IsShowClipDetail() bool
- func (w *Workspace) IsShowTaskDetail() bool
- func (w *Workspace) ShowClipDetail(show bool)
- func (w *Workspace) ShowTaskDetail(show bool)
- func (w *Workspace) SwitchTo(idx int) Group
- func (w *Workspace) ToggleBookmark()
Constants ¶
const ( HomeName = "Home[~]" RootName = "Root[/]" )
Default bookmark names
Variables ¶
var ( // RequestCh request user input RequestCh = make(chan *Request) // ResponseCh user response for request ResponseCh = make(chan string) )
Functions ¶
Types ¶
type BaseColumn ¶
BaseColumn is a column in local file systems
func (*BaseColumn) MarkedOrSelected ¶
func (bc *BaseColumn) MarkedOrSelected() []FileItem
MarkedOrSelected if have marks return marked else return selected
func (*BaseColumn) ToggleMarkAll ¶
func (bc *BaseColumn) ToggleMarkAll()
ToggleMarkAll if have marked files clear them, else mark all
type BaseFileList ¶
type BaseFileList struct {
// contains filtered or unexported fields
}
BaseFileList a file list with back list
func (*BaseFileList) Files ¶
func (fl *BaseFileList) Files() []FileItem
Files the files of file list
func (*BaseFileList) IsShowDetail ¶
func (fl *BaseFileList) IsShowDetail() bool
IsShowDetail is detail shown
func (*BaseFileList) ToggleDetail ¶
func (fl *BaseFileList) ToggleDetail()
ToggleDetail toggle show detail
type BaseFilter ¶
type BaseFilter struct { *BaseFileList // contains filtered or unexported fields }
BaseFilter base filter
func (*BaseFilter) IsShowHidden ¶
func (bf *BaseFilter) IsShowHidden() bool
IsShowHidden if to show hidden file
func (*BaseFilter) SetFilter ¶
func (bf *BaseFilter) SetFilter(filter string)
SetFilter set the filter
func (*BaseFilter) ToggleHidden ¶
func (bf *BaseFilter) ToggleHidden()
ToggleHidden toggle show hidden file
type BaseMarker ¶
type BaseMarker struct { *BaseSelector // contains filtered or unexported fields }
BaseMarker base marker
func (*BaseMarker) IsMarked ¶
func (bm *BaseMarker) IsMarked(idx int) bool
IsMarked determine if the idx is selected
func (*BaseMarker) ToggleMark ¶
func (bm *BaseMarker) ToggleMark()
ToggleMark toggle mark current file
type BaseSelector ¶
type BaseSelector struct { *BaseFileList // contains filtered or unexported fields }
BaseSelector base selector
func (*BaseSelector) CurrentFile ¶
func (co *BaseSelector) CurrentFile() (FileItem, error)
CurrentFile current selected file/dir
func (*BaseSelector) Move ¶
func (co *BaseSelector) Move(delta int) bool
Move current select index by delta(can be negtive)
func (*BaseSelector) SelectByName ¶
func (co *BaseSelector) SelectByName(name string) bool
SelectByName select by name
func (*BaseSelector) SelectFirst ¶
func (co *BaseSelector) SelectFirst() bool
SelectFirst move select to first
func (*BaseSelector) SelectLast ¶
func (co *BaseSelector) SelectLast() bool
SelectLast move select to last
type CloseResult ¶
type CloseResult uint8
CloseResult of Group.CloseDir
const ( CloseSuccess CloseResult = iota CloseToParent CloseNothing )
Close types
type Column ¶
type Column interface { File() FileItem Path() string Update() Refresh(FileItem) error MarkedOrSelected() []FileItem ToggleMarkAll() FileList Filterer Marker Selector }
Column represent a directory
func NewLocalColumn ¶
NewLocalColumn create column
type DefaultBatchTask ¶
type DefaultBatchTask struct { *DefaultTask // contains filtered or unexported fields }
DefaultBatchTask default batch task
func (*DefaultBatchTask) CurrentTask ¶
func (bt *DefaultBatchTask) CurrentTask() Task
CurrentTask the current task
func (*DefaultBatchTask) Start ¶
func (bt *DefaultBatchTask) Start(quit <-chan bool, err chan<- error)
Start task one by one
type DefaultProgresser ¶
type DefaultProgresser struct {
// contains filtered or unexported fields
}
DefaultProgresser a progress notifier
func (*DefaultProgresser) Attach ¶
func (dp *DefaultProgresser) Attach(listener ProgressListener) Remover
Attach attach notifier
func (*DefaultProgresser) Current ¶
func (dp *DefaultProgresser) Current() int
Current current progress
func (*DefaultProgresser) Progress ¶
func (dp *DefaultProgresser) Progress(c int)
Progress set the progress
type DefaultTask ¶
type DefaultTask struct { *DefaultProgresser // contains filtered or unexported fields }
DefaultTask default task
func (*DefaultTask) Start ¶
func (dt *DefaultTask) Start(quit <-chan bool, err chan<- error)
Start start the task
type DirOp ¶
type DirOp interface { Read() ([]FileItem, error) Write([]FileItem) (Task, error) Move([]FileItem) error NewFile(string) error NewDir(string) error To(string) (FileItem, error) Shell() error Op }
DirOp dir operators
type FileItem ¶
type FileItem interface { Path() string Name() string Size() int64 ModTime() time.Time Mode() os.FileMode IsDir() bool Link() (Link, bool) Sys() interface{} }
FileItem represent a file, with absolute path
type FileList ¶
type FileList interface { Files() []FileItem Sort(order Order) Order() Order ToggleDetail() IsShowDetail() bool }
FileList sortable file list
type FileOp ¶
type FileOp interface { Reader() (io.ReadCloser, error) Writer(int) (io.WriteCloser, error) View() error Edit() error Op }
FileOp file operators
type Filterer ¶
type Filterer interface { ToggleHidden() IsShowHidden() bool Filter() string SetFilter(filter string) DoFilter() }
Filterer content can be filtered
type Group ¶
type Group interface { Path() string Columns() []Column Current() Column Shift() bool OpenDir() error OpenRoot(root string) error CloseDir() (CloseResult, error) JumpTo(colIdx, fileIdx int) bool Refresh() error Record() Restore() }
Group is a column group
func NewLocalGroup ¶
NewLocalGroup create local group
type Loader ¶
type Loader interface { Name() string Seperator() string Support(FileItem) bool Create(FileItem) (FileItem, error) }
Loader such as ssh, zip, tar, tgz
type LocalColumn ¶
type LocalColumn struct { *BaseColumn // contains filtered or unexported fields }
LocalColumn use local file system
func (*LocalColumn) Refresh ¶
func (bc *LocalColumn) Refresh(item FileItem) error
Refresh the specified path
type LocalGroup ¶
type LocalGroup struct {
// contains filtered or unexported fields
}
LocalGroup local group
func (*LocalGroup) CloseDir ¶
func (g *LocalGroup) CloseDir() (CloseResult, error)
CloseDir close current dir
func (*LocalGroup) OpenRoot ¶
func (g *LocalGroup) OpenRoot(root string) error
OpenRoot open path in first column
type Marker ¶
type Marker interface { Mark(idx int) Unmark(idx int) ToggleMark() Marked() []FileItem IsMarked(idx int) bool ClearMark() }
Marker content can be marked
type ProgressListener ¶
type ProgressListener interface { Notify(int) End() }
ProgressListener listener for progresser
func NewListener ¶
func NewListener(notifier func(int), end func()) ProgressListener
NewListener create listener
type Progresser ¶
type Progresser interface { Count() int Current() int Progress(int) Attach(ProgressListener) Remover End() }
Progresser a progress notifier
type Selector ¶
type Selector interface { Current() int Select(idx int) bool SelectByName(name string) bool SelectFirst() bool SelectLast() bool Move(delta int) bool CurrentFile() (FileItem, error) }
Selector content can be selected
type Task ¶
type Task interface { Name() string Start(<-chan bool, chan<- error) Progresser }
Task a task
type TaskListener ¶
TaskListener listener for task manager
func NewTaskListener ¶
func NewTaskListener(submitted, finished, progress func(Task)) TaskListener
NewTaskListener create task listener
type TaskManager ¶
type TaskManager struct { Tasks []Task // contains filtered or unexported fields }
TaskManager manage tasks
func (*TaskManager) Submit ¶
func (tm *TaskManager) Submit(task Task) <-chan string
Submit a task to execute
type Workspace ¶
type Workspace struct { Groups []Group Clip []FileItem Tm *TaskManager Current int Bookmark *Bookmark // contains filtered or unexported fields }
Workspace hold all state
func NewWorkspace ¶
NewWorkspace create workspace
func (*Workspace) CurrentGroup ¶
CurrentGroup get the current group in use
func (*Workspace) IsShowBookmark ¶
IsShowBookmark if to show bookmark
func (*Workspace) IsShowClipDetail ¶
IsShowClipDetail if to show clip detail
func (*Workspace) IsShowTaskDetail ¶
IsShowTaskDetail if to show clip detail
func (*Workspace) ShowClipDetail ¶
ShowClipDetail if to show clip detail
func (*Workspace) ShowTaskDetail ¶
ShowTaskDetail if to show task detail
func (*Workspace) ToggleBookmark ¶
func (w *Workspace) ToggleBookmark()
ToggleBookmark toggle bookmark