我正在寻找确定最后一个字符是否是空格。
$ mycli fl[TAB] # no space
flag flare
$ mycli flare [TAB] # yes space
A B C D
原因
如果是空格,则每个参数用于确定完成提示,但如果不是空格,则前一个参数将用于确定最后一个完成提示。我只需要知道在我用来计算完成度的 Python 脚本中采用哪条路线。
_mycli () {
COMPREPLY=();
local cur=${COMP_WORDS[COMP_CWORD]}
local opts=$(mycli tabcompletion $COMP_LINE)
COMPREPLY=($(compgen -W "${opts}" $cur))
return 0
}
complete -F _mycli -o bashdefault mycli
这可能超出了问题的范围,这就是 Python 脚本的一部分。
@mycli.command()
@click.argument("arguments", nargs=-1, required=False)
def tabcompletion(arguments):
# Discard `mycli tabcompletion`
arguments = list(arguments)[2:]
complete = False
if ???:
complete = True
我正在寻找以某种方式确定(???-部分)参数是否完成,或者是否提供完成。