Documentation
¶
Index ¶
- Constants
- Variables
- type BuilderBase
- type Command
- type ConfigAPI
- type Delete
- type DeleteBuilder
- type Insert
- type InsertBuilder
- func (b *InsertBuilder) AddColumnLocator(id column.Locator)
- func (b *InsertBuilder) AddPreposition(arg string)
- func (b *InsertBuilder) Command() (Command, error)
- func (b *InsertBuilder) Name() string
- func (b *InsertBuilder) SetKeyword(kw string)
- func (b *InsertBuilder) WantColumn() bool
- func (b *InsertBuilder) WantPreposition(arg string) bool
- type Keyword
- type Keywords
- type Move
- type MoveBuilder
- func (b *MoveBuilder) AddColumnLocator(loc column.Locator)
- func (b *MoveBuilder) AddPreposition(arg string)
- func (b *MoveBuilder) Command() (Command, error)
- func (b *MoveBuilder) Name() string
- func (b *MoveBuilder) SetKeyword(kw string)
- func (b *MoveBuilder) WantColumn() bool
- func (b *MoveBuilder) WantPreposition(arg string) bool
- type Parser
- type Prefix
- type PrefixBuilder
- type Sort
- type SortBuilder
Constants ¶
View Source
const ( PositionOnlyPrefix = '.' NameOnlyPrefix = ':' )
Variables ¶
View Source
var ( ErrNoKeywords = errors.New("no keywords") ErrEmptyKeyword = errors.New("empty keyword") ErrDuplicateKeyword = errors.New("duplicate keyword definition") ErrUnknownCommand = errors.New("unknown command") ErrUnexpectedPreposition = errors.New("unexpected preposition") ErrUnexpectedArgument = errors.New("unexpected argument") ErrDanglingPreposition = errors.New("dangling preposition") ErrMissingColumns = errors.New("missing columns") )
View Source
var DefaultKeywords = Keywords{ Move: Keyword{"move", "mv"}, Insert: Keyword{"insert", "ins", "prepend"}, Append: Keyword{"append", "add"}, Delete: Keyword{"delete", "del", "remove", "rm"}, Sort: Keyword{"sort"}, Before: Keyword{"before"}, After: Keyword{"after"}, With: Keyword{"with"}, First: Keyword{"first"}, Last: Keyword{"last"}, }
Functions ¶
This section is empty.
Types ¶
type BuilderBase ¶
type BuilderBase struct {
Keywords
}
func (*BuilderBase) AddArg ¶
func (b *BuilderBase) AddArg(string)
func (*BuilderBase) AddColumnLocator ¶
func (b *BuilderBase) AddColumnLocator(column.Locator)
func (*BuilderBase) AddPreposition ¶
func (b *BuilderBase) AddPreposition(string)
func (*BuilderBase) WantArg ¶
func (b *BuilderBase) WantArg() bool
func (*BuilderBase) WantColumn ¶
func (b *BuilderBase) WantColumn() bool
func (*BuilderBase) WantPreposition ¶
func (b *BuilderBase) WantPreposition(string) bool
type DeleteBuilder ¶
type DeleteBuilder struct {
BuilderBase
// contains filtered or unexported fields
}
func (*DeleteBuilder) AddColumnLocator ¶
func (b *DeleteBuilder) AddColumnLocator(loc column.Locator)
func (*DeleteBuilder) Command ¶
func (b *DeleteBuilder) Command() (Command, error)
func (*DeleteBuilder) Name ¶
func (b *DeleteBuilder) Name() string
func (*DeleteBuilder) SetKeyword ¶
func (b *DeleteBuilder) SetKeyword(kw string)
func (*DeleteBuilder) WantColumn ¶
func (b *DeleteBuilder) WantColumn() bool
type Insert ¶
type Insert struct {
Keyword string // keyword used to trigger command
Preposition string // preposition used on this command
ColumnLocators []column.Locator // column names to insert
After bool // position +1 (after search) if true
Target column.Locator // "first", "last" or column name
// contains filtered or unexported fields
}
prepend == Insert{Columns: ..., Verb: "before", Target: ...} append == Insert{Columns: ..., Verb: "after", Target: ...}
type InsertBuilder ¶
type InsertBuilder struct {
BuilderBase
// contains filtered or unexported fields
}
func (*InsertBuilder) AddColumnLocator ¶
func (b *InsertBuilder) AddColumnLocator(id column.Locator)
func (*InsertBuilder) AddPreposition ¶
func (b *InsertBuilder) AddPreposition(arg string)
func (*InsertBuilder) Command ¶
func (b *InsertBuilder) Command() (Command, error)
func (*InsertBuilder) Name ¶
func (b *InsertBuilder) Name() string
func (*InsertBuilder) SetKeyword ¶
func (b *InsertBuilder) SetKeyword(kw string)
func (*InsertBuilder) WantColumn ¶
func (b *InsertBuilder) WantColumn() bool
func (*InsertBuilder) WantPreposition ¶
func (b *InsertBuilder) WantPreposition(arg string) bool
type Keywords ¶
type Keywords struct {
// commands
Move Keyword `json:"move"`
Insert Keyword `json:"insert"`
Append Keyword `json:"append"`
Delete Keyword `json:"delete"`
Sort Keyword `json:"sort"`
// Prefix Keyword `json:"prefix"` // TODO: 2026-02-23 needs to be applied before parsing - currently commands only affect rendering
// Fill Keyword `json:"fill"` // TODO: 2026-02-23 Not Yet Implemented
// Clear Keyword `json:"clear"` // TODO: 2026-02-23 Not Yet Implemented
// prepositions
Before Keyword `json:"before"`
After Keyword `json:"after"`
With Keyword `json:"with"`
// column locators
First Keyword `json:"first"`
Last Keyword `json:"last"`
}
type Move ¶
type Move struct {
Keyword string
Preposition string
ColumnLocators []column.Locator // columns to be moved
After bool // move before (default, false) or after (true) the target
Target column.Locator // insertion point (default: first column)
}
Move shifts a number of columns to a new position while rendering a table.
Example: psv mv wip todo done before first
- would move the "wip", "todo" and "done" columns to the left of the table
- the words "mv", "before" and "first" are keywords
Algorithm:
psv mv e a d before c | a | b | c | d | e | | 0 | 1 | 2 | 3 | 4 | 1. locate target - "c" => 2 2. locate movers - [ 4, 0, 3 ] 3. build new index - pos < target && pos not in movers => keep - pos == target => insert movers - pos > target && pos not in movers => keep
type MoveBuilder ¶
type MoveBuilder struct {
BuilderBase
// contains filtered or unexported fields
}
func (*MoveBuilder) AddColumnLocator ¶
func (b *MoveBuilder) AddColumnLocator(loc column.Locator)
func (*MoveBuilder) AddPreposition ¶
func (b *MoveBuilder) AddPreposition(arg string)
func (*MoveBuilder) Command ¶
func (b *MoveBuilder) Command() (Command, error)
func (*MoveBuilder) Name ¶
func (b *MoveBuilder) Name() string
func (*MoveBuilder) SetKeyword ¶
func (b *MoveBuilder) SetKeyword(kw string)
func (*MoveBuilder) WantColumn ¶
func (b *MoveBuilder) WantColumn() bool
func (*MoveBuilder) WantPreposition ¶
func (b *MoveBuilder) WantPreposition(arg string) bool
type Prefix ¶
type PrefixBuilder ¶
type PrefixBuilder struct {
BuilderBase
// contains filtered or unexported fields
}
func (*PrefixBuilder) AddArg ¶
func (b *PrefixBuilder) AddArg(arg string)
func (*PrefixBuilder) Command ¶
func (b *PrefixBuilder) Command() (Command, error)
func (*PrefixBuilder) Name ¶
func (b *PrefixBuilder) Name() string
func (*PrefixBuilder) SetKeyword ¶
func (b *PrefixBuilder) SetKeyword(kw string)
func (*PrefixBuilder) WantArg ¶
func (b *PrefixBuilder) WantArg() bool
type Sort ¶
Sort resets the sorting flags of the columns in a column index.
Steps:
- remove all sorting flags from all columns
- prepare a list of column indexes - Sort by requested columns first, then by all remaining columns in their present order
- enable sorting and prioritize columns according to their position in the column index - contiguous column indexes share the same priority - priorities are only set if there is more than 1 contiguous group of columns
type SortBuilder ¶
type SortBuilder struct {
BuilderBase
// contains filtered or unexported fields
}
func (*SortBuilder) AddColumnLocator ¶
func (b *SortBuilder) AddColumnLocator(loc column.Locator)
func (*SortBuilder) Command ¶
func (b *SortBuilder) Command() (Command, error)
func (*SortBuilder) Name ¶
func (b *SortBuilder) Name() string
func (*SortBuilder) SetKeyword ¶
func (b *SortBuilder) SetKeyword(kw string)
func (*SortBuilder) WantColumn ¶
func (b *SortBuilder) WantColumn() bool
Click to show internal directories.
Click to hide internal directories.