mirror of
https://github.com/junegunn/fzf.git
synced 2025-11-16 23:33:39 -05:00
Header and footer should not be wider than the list
Example:
WIDE=$(printf 'x%.0s' {1..1000})
(echo $WIDE; echo $WIDE) |
fzf --header-lines 1 --style full --ellipsis XX --header "$WIDE" \
--no-header-lines-border --footer "$WIDE" --no-footer-border
This commit is contained in:
@@ -2490,6 +2490,8 @@ func (t *Terminal) resizeWindows(forcePreview bool, redrawBorder bool) {
|
|||||||
if shape.HasRight() {
|
if shape.HasRight() {
|
||||||
width++
|
width++
|
||||||
}
|
}
|
||||||
|
// Make sure that the width does not exceed the list width
|
||||||
|
width = util.Min(t.window.Width()+t.headerIndentImpl(0, shape), width)
|
||||||
height := b.Height() - borderLines(shape)
|
height := b.Height() - borderLines(shape)
|
||||||
return t.tui.NewWindow(top, left, width, height, windowType, noBorder, true)
|
return t.tui.NewWindow(top, left, width, height, windowType, noBorder, true)
|
||||||
}
|
}
|
||||||
@@ -3107,7 +3109,11 @@ func (t *Terminal) printFooter() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (t *Terminal) headerIndent(borderShape tui.BorderShape) int {
|
func (t *Terminal) headerIndent(borderShape tui.BorderShape) int {
|
||||||
indentSize := t.pointerLen + t.markerLen
|
return t.headerIndentImpl(t.pointerLen+t.markerLen, borderShape)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t *Terminal) headerIndentImpl(base int, borderShape tui.BorderShape) int {
|
||||||
|
indentSize := base
|
||||||
if t.listBorderShape.HasLeft() {
|
if t.listBorderShape.HasLeft() {
|
||||||
indentSize += 1 + t.borderWidth
|
indentSize += 1 + t.borderWidth
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1215,6 +1215,15 @@ class TestLayout < TestInteractive
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_header_and_footer_should_not_be_wider_than_list
|
||||||
|
tmux.send_keys %(WIDE=$(printf 'x%.0s' {1..1000}); (echo $WIDE; echo $WIDE) | fzf --header-lines 1 --style full --header-border bottom --header-lines-border top --ellipsis XX --header "$WIDE" --footer "$WIDE" --no-footer-border), :Enter
|
||||||
|
tmux.until do |lines|
|
||||||
|
matches = lines.filter_map { |line| line[/x+XX/] }
|
||||||
|
assert_equal 4, matches.length
|
||||||
|
assert_equal 1, matches.uniq.length
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_combinations
|
def test_combinations
|
||||||
skip unless ENV['LONGTEST']
|
skip unless ENV['LONGTEST']
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user