mirror of
https://github.com/Llewellynvdm/fzf.git
synced 2024-09-22 02:09:02 +00:00
55 lines
1.0 KiB
Go
55 lines
1.0 KiB
Go
package fzf
|
|
|
|
import (
|
|
"github.com/junegunn/fzf/src/util"
|
|
)
|
|
|
|
// Item represents each input line
|
|
type Item struct {
|
|
index int32
|
|
trimLength int32
|
|
text util.Chars
|
|
origText *[]byte
|
|
colors *[]ansiOffset
|
|
transformed []Token
|
|
}
|
|
|
|
// Index returns ordinal index of the Item
|
|
func (item *Item) Index() int32 {
|
|
return item.index
|
|
}
|
|
|
|
var nilItem = Item{index: -1}
|
|
|
|
func (item *Item) Nil() bool {
|
|
return item.index < 0
|
|
}
|
|
|
|
func (item *Item) TrimLength() int32 {
|
|
if item.trimLength >= 0 {
|
|
return item.trimLength
|
|
}
|
|
item.trimLength = int32(item.text.TrimLength())
|
|
return item.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()
|
|
}
|