aloxaf.fzf-tab/test/select
Aloxaf acdc37214b
feat: prefix completion (#413)
* feat: complete prefix

* fix: normal completion

* fix: follow zsh menu setting

* fix: tests

* fix: multiple selection

* test: force list

* fix: don't complete unambiguous prefix in continous completion

* fix: clear intermediate variables

* fix: -ftb-complete-apply -> _fzf-tab-apply

* test: docs
2024-02-26 11:02:09 +08:00

37 lines
709 B
Bash
Executable file

#!/usr/bin/env zsh
zmodload zsh/zutil
local -A headers range query expect
# -h: lines of headers
# -n: selection index, if it is QUERY, query string will be used
# -q: query string
# -e: expect key
zparseopts -E h:=headers n:=range q:=query e:=expect
print -r -- "${query//\"/}"
print -r -- "$expect"
print -r -- "<QUERY>${query//\"/}</QUERY>" >&2
local -a lines=()
while read input; do
lines+=(${input%$'\033[00m'})
done
for ((i = 1; i <= headers; i++)); do
print -r -- $lines[i] >&2
done
lines[1,headers]=()
for i in {1..$#lines}; do
print -r -- ${lines[i]//$'\0'}"<EC>" >&2
done
if [[ $range != QUERY ]]; then
for i in ${(s:,:)range}; do
print -r -- $lines[i]
done
fi