package fzf import ( "github.com/junegunn/fzf/src/util" ) // Item represents each input line. 56 bytes. type Item struct { text util.Chars // 32 = 24 + 1 + 1 + 2 + 4 transformed *[]Token // 8 origText *[]byte // 8 colors *[]ansiOffset // 8 } // Index returns ordinal index of the Item func (item *Item) Index() int32 { return item.text.Index } var minItem = Item{text: util.Chars{Index: -1}} func (item *Item) TrimLength() uint16 { return item.text.TrimLength() } // Colors returns ansiOffsets of the Item func (item *Item) Colors() []ansiOffset { if item.colors == nil { return []ansiOffset{} } return *item.colors } // AsString returns the original string func (item *Item) AsString(stripAnsi bool) string { if item.origText != nil { if stripAnsi { trimmed, _, _ := extractColor(string(*item.origText), nil, nil) return trimmed } return string(*item.origText) } return item.text.ToString() }