Limit completion size with max
This commit is contained in:
parent
eef27f5251
commit
580cdb454e
30
main.go
30
main.go
@ -26,21 +26,21 @@ func completer(b *prompt.Buffer) []string {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return []string{
|
return []string{
|
||||||
"select",
|
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
|
||||||
"select",
|
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
|
||||||
"select",
|
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
|
||||||
"select",
|
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
|
||||||
"select",
|
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
|
||||||
"select",
|
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
|
||||||
"select",
|
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
|
||||||
"select",
|
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
|
||||||
"select",
|
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
|
||||||
"select",
|
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
|
||||||
"select",
|
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
|
||||||
"select",
|
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
|
||||||
"select",
|
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
|
||||||
"select",
|
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
|
||||||
"select",
|
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ func (r *Render) renderCompletion(buf *Buffer, words []string, chosen int) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
formatted, width := formatCompletions(words)
|
formatted, width := formatCompletions(words, int(r.col) - len(r.Prefix) - 3)
|
||||||
l := len(formatted)
|
l := len(formatted)
|
||||||
r.prepareArea(l)
|
r.prepareArea(l)
|
||||||
|
|
||||||
@ -88,8 +88,7 @@ func (r *Render) renderCompletion(buf *Buffer, words []string, chosen int) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (r *Render) Erase(buffer *Buffer) {
|
func (r *Render) Erase(buffer *Buffer) {
|
||||||
r.out.CursorBackward(len(r.Prefix))
|
r.out.CursorBackward(int(r.col))
|
||||||
r.out.CursorBackward(buffer.CursorPosition + 100)
|
|
||||||
r.out.EraseDown()
|
r.out.EraseDown()
|
||||||
r.renderPrefix()
|
r.renderPrefix()
|
||||||
r.out.Flush()
|
r.out.Flush()
|
||||||
@ -117,7 +116,7 @@ func (r *Render) BreakLine(buffer *Buffer, result string) {
|
|||||||
r.renderPrefix()
|
r.renderPrefix()
|
||||||
}
|
}
|
||||||
|
|
||||||
func formatCompletions(words []string) (new []string, width int) {
|
func formatCompletions(words []string, max int) (new []string, width int) {
|
||||||
num := len(words)
|
num := len(words)
|
||||||
new = make([]string, num)
|
new = make([]string, num)
|
||||||
width = 0
|
width = 0
|
||||||
@ -128,11 +127,21 @@ func formatCompletions(words []string) (new []string, width int) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if width > max {
|
||||||
|
width = max
|
||||||
|
}
|
||||||
|
|
||||||
for i := 0; i < num; i++ {
|
for i := 0; i < num; i++ {
|
||||||
spaces := width - len([]rune(words[i]))
|
if l := len(words[i]); l > width {
|
||||||
new[i] = words[i]
|
new[i] = words[i][:width - 3] + "..."
|
||||||
for j := 0; j < spaces; j++ {
|
} else if l < width {
|
||||||
new[i] += " "
|
spaces := width - len([]rune(words[i]))
|
||||||
|
new[i] = words[i]
|
||||||
|
for j := 0; j < spaces; j++ {
|
||||||
|
new[i] += " "
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
new[i] = words[i]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
Loading…
Reference in New Issue
Block a user