mirror of
https://github.com/Llewellynvdm/fzf.git
synced 2024-12-23 03:19:01 +00:00
parent
87fc1c84b8
commit
d7b61ede07
@ -1,8 +1,14 @@
|
|||||||
CHANGELOG
|
CHANGELOG
|
||||||
=========
|
=========
|
||||||
|
|
||||||
0.44.2
|
0.45.0
|
||||||
------
|
------
|
||||||
|
- Added support for negative height
|
||||||
|
```sh
|
||||||
|
# Terminal height minus 1, so you can still see the command line
|
||||||
|
fzf --height=-1
|
||||||
|
```
|
||||||
|
- This handles a terminal resize better than `--height=$(($(tput lines) - 1))`
|
||||||
- Added `accept-or-print-query` action that acts like `accept` but prints the
|
- Added `accept-or-print-query` action that acts like `accept` but prints the
|
||||||
current query when there's no match for the query
|
current query when there's no match for the query
|
||||||
```sh
|
```sh
|
||||||
|
@ -21,7 +21,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
THE SOFTWARE.
|
THE SOFTWARE.
|
||||||
..
|
..
|
||||||
.TH fzf 1 "Nov 2023" "fzf 0.44.1" "fzf - a command-line fuzzy finder"
|
.TH fzf 1 "Dec 2023" "fzf 0.45.0" "fzf - a command-line fuzzy finder"
|
||||||
|
|
||||||
.SH NAME
|
.SH NAME
|
||||||
fzf - a command-line fuzzy finder
|
fzf - a command-line fuzzy finder
|
||||||
@ -192,9 +192,21 @@ Label characters for \fBjump\fR and \fBjump-accept\fR
|
|||||||
.TP
|
.TP
|
||||||
.BI "--height=" "[~]HEIGHT[%]"
|
.BI "--height=" "[~]HEIGHT[%]"
|
||||||
Display fzf window below the cursor with the given height instead of using
|
Display fzf window below the cursor with the given height instead of using
|
||||||
the full screen. When prefixed with \fB~\fR, fzf will automatically determine
|
the full screen.
|
||||||
the height in the range according to the input size. Note that adaptive height
|
|
||||||
is not compatible with top/bottom margin and padding given in percent size.
|
If a negative value is specified, the height is calculated as the terminal
|
||||||
|
height minus the given value.
|
||||||
|
|
||||||
|
fzf --height=-1
|
||||||
|
|
||||||
|
When prefixed with \fB~\fR, fzf will automatically determine the height in the
|
||||||
|
range according to the input size. Note that adaptive height is not compatible
|
||||||
|
with top/bottom margin and padding given in percent size. It is also not
|
||||||
|
compatible with a negative height value.
|
||||||
|
|
||||||
|
# Will not take up 100% of the screen
|
||||||
|
seq 5 | fzf --height=~100%
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.BI "--min-height=" "HEIGHT"
|
.BI "--min-height=" "HEIGHT"
|
||||||
Minimum height when \fB--height\fR is given in percent (default: 10).
|
Minimum height when \fB--height\fR is given in percent (default: 10).
|
||||||
|
@ -200,7 +200,7 @@ func Run(opts *Options, version string, revision string) {
|
|||||||
padHeight := 0
|
padHeight := 0
|
||||||
heightUnknown := opts.Height.auto
|
heightUnknown := opts.Height.auto
|
||||||
if heightUnknown {
|
if heightUnknown {
|
||||||
maxFit, padHeight = terminal.MaxFitAndPad(opts)
|
maxFit, padHeight = terminal.MaxFitAndPad()
|
||||||
}
|
}
|
||||||
deferred := opts.Select1 || opts.Exit0
|
deferred := opts.Select1 || opts.Exit0
|
||||||
go terminal.Loop()
|
go terminal.Loop()
|
||||||
|
@ -57,6 +57,8 @@ const usage = `usage: fzf [options]
|
|||||||
Layout
|
Layout
|
||||||
--height=[~]HEIGHT[%] Display fzf window below the cursor with the given
|
--height=[~]HEIGHT[%] Display fzf window below the cursor with the given
|
||||||
height instead of using fullscreen.
|
height instead of using fullscreen.
|
||||||
|
A negative value is calcalated as the terminal height
|
||||||
|
minus the given value.
|
||||||
If prefixed with '~', fzf will determine the height
|
If prefixed with '~', fzf will determine the height
|
||||||
according to the input size.
|
according to the input size.
|
||||||
--min-height=HEIGHT Minimum height when --height is given in percent
|
--min-height=HEIGHT Minimum height when --height is given in percent
|
||||||
@ -157,6 +159,7 @@ type heightSpec struct {
|
|||||||
size float64
|
size float64
|
||||||
percent bool
|
percent bool
|
||||||
auto bool
|
auto bool
|
||||||
|
inverse bool
|
||||||
}
|
}
|
||||||
|
|
||||||
type sizeSpec struct {
|
type sizeSpec struct {
|
||||||
@ -1386,6 +1389,13 @@ func parseHeight(str string) heightSpec {
|
|||||||
heightSpec.auto = true
|
heightSpec.auto = true
|
||||||
str = str[1:]
|
str = str[1:]
|
||||||
}
|
}
|
||||||
|
if strings.HasPrefix(str, "-") {
|
||||||
|
if heightSpec.auto {
|
||||||
|
errorExit("negative(-) height is not compatible with adaptive(~) height")
|
||||||
|
}
|
||||||
|
heightSpec.inverse = true
|
||||||
|
str = str[1:]
|
||||||
|
}
|
||||||
|
|
||||||
size := parseSize(str, 100, "height")
|
size := parseSize(str, 100, "height")
|
||||||
heightSpec.size = size.size
|
heightSpec.size = size.size
|
||||||
|
@ -594,10 +594,17 @@ func makeSpinner(unicode bool) []string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func evaluateHeight(opts *Options, termHeight int) int {
|
func evaluateHeight(opts *Options, termHeight int) int {
|
||||||
|
size := opts.Height.size
|
||||||
if opts.Height.percent {
|
if opts.Height.percent {
|
||||||
return util.Max(int(opts.Height.size*float64(termHeight)/100.0), opts.MinHeight)
|
if opts.Height.inverse {
|
||||||
|
size = 100 - size
|
||||||
|
}
|
||||||
|
return util.Max(int(size*float64(termHeight)/100.0), opts.MinHeight)
|
||||||
}
|
}
|
||||||
return int(opts.Height.size)
|
if opts.Height.inverse {
|
||||||
|
size = float64(termHeight) - size
|
||||||
|
}
|
||||||
|
return int(size)
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewTerminal returns new Terminal object
|
// NewTerminal returns new Terminal object
|
||||||
@ -819,7 +826,7 @@ func (t *Terminal) extraLines() int {
|
|||||||
return extra
|
return extra
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *Terminal) MaxFitAndPad(opts *Options) (int, int) {
|
func (t *Terminal) MaxFitAndPad() (int, int) {
|
||||||
_, screenHeight, marginInt, paddingInt := t.adjustMarginAndPadding()
|
_, screenHeight, marginInt, paddingInt := t.adjustMarginAndPadding()
|
||||||
padHeight := marginInt[0] + marginInt[2] + paddingInt[0] + paddingInt[2]
|
padHeight := marginInt[0] + marginInt[2] + paddingInt[0] + paddingInt[2]
|
||||||
fit := screenHeight - padHeight - t.extraLines()
|
fit := screenHeight - padHeight - t.extraLines()
|
||||||
|
Loading…
Reference in New Issue
Block a user