Fix --long-opt= completion
Commit #64282f3f broke that somehow so I need to force the match on an empty string after the equal sign, not the equal sign itself. I think that _init_completion() does a bit more than I need...
This commit is contained in:
parent
9569cfc8f3
commit
357a78e7bf
@ -179,8 +179,12 @@ _hledger_compgen() {
|
|||||||
quoted[i++]=$word
|
quoted[i++]=$word
|
||||||
done <<< "$wordlist"
|
done <<< "$wordlist"
|
||||||
|
|
||||||
|
if (( $# < 3 )); then
|
||||||
|
match=${cur:${#prefix}}
|
||||||
|
fi
|
||||||
|
|
||||||
local IFS=$'\n'
|
local IFS=$'\n'
|
||||||
compgen -P "$prefix" -W "${quoted[*]}" -- "${match:-${cur:${#prefix}}}"
|
compgen -P "$prefix" -W "${quoted[*]}" -- "$match"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Try required option argument completion. Set COMPREPLY and return 0 on
|
# Try required option argument completion. Set COMPREPLY and return 0 on
|
||||||
@ -190,43 +194,47 @@ _hledger_compreply_optarg() {
|
|||||||
local recursionLevel=${2:-0}
|
local recursionLevel=${2:-0}
|
||||||
local wordlist
|
local wordlist
|
||||||
local error=0
|
local error=0
|
||||||
|
local match
|
||||||
|
|
||||||
|
# Match the empty string on --file=<TAB>
|
||||||
|
[[ $cur == = ]] || match=$cur
|
||||||
|
|
||||||
case ${words[optionIndex]} in
|
case ${words[optionIndex]} in
|
||||||
--alias)
|
--alias)
|
||||||
compopt -o nospace
|
compopt -o nospace
|
||||||
_hledger_compreply "$(_hledger_compgen "$(_hledger accounts --flat)")"
|
_hledger_compreply "$(_hledger_compgen "$(_hledger accounts --flat)" "" "$match")"
|
||||||
;;
|
;;
|
||||||
-f|--file|--rules-file|-o|--output-file)
|
-f|--file|--rules-file|-o|--output-file)
|
||||||
_hledger_compreply "$(compgen -f -- "$cur")"
|
_hledger_compreply "$(compgen -f -- "$match")"
|
||||||
;;
|
;;
|
||||||
--pivot)
|
--pivot)
|
||||||
compopt -o nosort
|
compopt -o nosort
|
||||||
wordlist="code description note payee"
|
wordlist="code description note payee"
|
||||||
_hledger_compreply "$(compgen -W "$wordlist" -- "$cur")"
|
_hledger_compreply "$(compgen -W "$wordlist" -- "$match")"
|
||||||
_hledger_compreply_append "$(_hledger_compgen "$(_hledger tags)")"
|
_hledger_compreply_append "$(_hledger_compgen "$(_hledger tags)" "" "$match")"
|
||||||
;;
|
;;
|
||||||
--value)
|
--value)
|
||||||
wordlist="cost then end now"
|
wordlist="cost then end now"
|
||||||
_hledger_compreply "$(compgen -W "$wordlist" -- "$cur")"
|
_hledger_compreply "$(compgen -W "$wordlist" -- "$match")"
|
||||||
;;
|
;;
|
||||||
-X|--exchange)
|
-X|--exchange)
|
||||||
_hledger_compreply "$(_hledger_compgen "$(_hledger commodities)")"
|
_hledger_compreply "$(_hledger_compgen "$(_hledger commodities)" "" "$match")"
|
||||||
;;
|
;;
|
||||||
--color|--colour)
|
--color|--colour)
|
||||||
compopt -o nosort
|
compopt -o nosort
|
||||||
wordlist="auto always yes never no"
|
wordlist="auto always yes never no"
|
||||||
_hledger_compreply "$(compgen -W "$wordlist" -- "$cur")"
|
_hledger_compreply "$(compgen -W "$wordlist" -- "$match")"
|
||||||
;;
|
;;
|
||||||
-O|--output-format)
|
-O|--output-format)
|
||||||
wordlist="txt csv json sql"
|
wordlist="txt csv json sql"
|
||||||
_hledger_compreply "$(compgen -W "$wordlist" -- "$cur")"
|
_hledger_compreply "$(compgen -W "$wordlist" -- "$match")"
|
||||||
;;
|
;;
|
||||||
--close-acct|--open-acct)
|
--close-acct|--open-acct)
|
||||||
compopt -o nospace
|
compopt -o nospace
|
||||||
_hledger_compreply "$(_hledger_compgen "$(_hledger accounts --flat)")"
|
_hledger_compreply "$(_hledger_compgen "$(_hledger accounts --flat)" "" "$match")"
|
||||||
;;
|
;;
|
||||||
--debug)
|
--debug)
|
||||||
_hledger_compreply "$(compgen -W "{1..9}" -- "$cur")"
|
_hledger_compreply "$(compgen -W "{1..9}" -- "$match")"
|
||||||
;;
|
;;
|
||||||
# Argument required, but no handler (yet)
|
# Argument required, but no handler (yet)
|
||||||
-b|--begin|-e|--end|-p|--period|--depth|--drop)
|
-b|--begin|-e|--end|-p|--period|--depth|--drop)
|
||||||
|
|||||||
@ -179,8 +179,12 @@ _hledger_compgen() {
|
|||||||
quoted[i++]=$word
|
quoted[i++]=$word
|
||||||
done <<< "$wordlist"
|
done <<< "$wordlist"
|
||||||
|
|
||||||
|
if (( $# < 3 )); then
|
||||||
|
match=${cur:${#prefix}}
|
||||||
|
fi
|
||||||
|
|
||||||
local IFS=$'\n'
|
local IFS=$'\n'
|
||||||
compgen -P "$prefix" -W "${quoted[*]}" -- "${match:-${cur:${#prefix}}}"
|
compgen -P "$prefix" -W "${quoted[*]}" -- "$match"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Try required option argument completion. Set COMPREPLY and return 0 on
|
# Try required option argument completion. Set COMPREPLY and return 0 on
|
||||||
@ -190,43 +194,47 @@ _hledger_compreply_optarg() {
|
|||||||
local recursionLevel=${2:-0}
|
local recursionLevel=${2:-0}
|
||||||
local wordlist
|
local wordlist
|
||||||
local error=0
|
local error=0
|
||||||
|
local match
|
||||||
|
|
||||||
|
# Match the empty string on --file=<TAB>
|
||||||
|
[[ $cur == = ]] || match=$cur
|
||||||
|
|
||||||
case ${words[optionIndex]} in
|
case ${words[optionIndex]} in
|
||||||
--alias)
|
--alias)
|
||||||
compopt -o nospace
|
compopt -o nospace
|
||||||
_hledger_compreply "$(_hledger_compgen "$(_hledger accounts --flat)")"
|
_hledger_compreply "$(_hledger_compgen "$(_hledger accounts --flat)" "" "$match")"
|
||||||
;;
|
;;
|
||||||
-f|--file|--rules-file|-o|--output-file)
|
-f|--file|--rules-file|-o|--output-file)
|
||||||
_hledger_compreply "$(compgen -f -- "$cur")"
|
_hledger_compreply "$(compgen -f -- "$match")"
|
||||||
;;
|
;;
|
||||||
--pivot)
|
--pivot)
|
||||||
compopt -o nosort
|
compopt -o nosort
|
||||||
wordlist="code description note payee"
|
wordlist="code description note payee"
|
||||||
_hledger_compreply "$(compgen -W "$wordlist" -- "$cur")"
|
_hledger_compreply "$(compgen -W "$wordlist" -- "$match")"
|
||||||
_hledger_compreply_append "$(_hledger_compgen "$(_hledger tags)")"
|
_hledger_compreply_append "$(_hledger_compgen "$(_hledger tags)" "" "$match")"
|
||||||
;;
|
;;
|
||||||
--value)
|
--value)
|
||||||
wordlist="cost then end now"
|
wordlist="cost then end now"
|
||||||
_hledger_compreply "$(compgen -W "$wordlist" -- "$cur")"
|
_hledger_compreply "$(compgen -W "$wordlist" -- "$match")"
|
||||||
;;
|
;;
|
||||||
-X|--exchange)
|
-X|--exchange)
|
||||||
_hledger_compreply "$(_hledger_compgen "$(_hledger commodities)")"
|
_hledger_compreply "$(_hledger_compgen "$(_hledger commodities)" "" "$match")"
|
||||||
;;
|
;;
|
||||||
--color|--colour)
|
--color|--colour)
|
||||||
compopt -o nosort
|
compopt -o nosort
|
||||||
wordlist="auto always yes never no"
|
wordlist="auto always yes never no"
|
||||||
_hledger_compreply "$(compgen -W "$wordlist" -- "$cur")"
|
_hledger_compreply "$(compgen -W "$wordlist" -- "$match")"
|
||||||
;;
|
;;
|
||||||
-O|--output-format)
|
-O|--output-format)
|
||||||
wordlist="txt csv json sql"
|
wordlist="txt csv json sql"
|
||||||
_hledger_compreply "$(compgen -W "$wordlist" -- "$cur")"
|
_hledger_compreply "$(compgen -W "$wordlist" -- "$match")"
|
||||||
;;
|
;;
|
||||||
--close-acct|--open-acct)
|
--close-acct|--open-acct)
|
||||||
compopt -o nospace
|
compopt -o nospace
|
||||||
_hledger_compreply "$(_hledger_compgen "$(_hledger accounts --flat)")"
|
_hledger_compreply "$(_hledger_compgen "$(_hledger accounts --flat)" "" "$match")"
|
||||||
;;
|
;;
|
||||||
--debug)
|
--debug)
|
||||||
_hledger_compreply "$(compgen -W "{1..9}" -- "$cur")"
|
_hledger_compreply "$(compgen -W "{1..9}" -- "$match")"
|
||||||
;;
|
;;
|
||||||
# Argument required, but no handler (yet)
|
# Argument required, but no handler (yet)
|
||||||
-b|--begin|-e|--end|-p|--period|--depth|--drop)
|
-b|--begin|-e|--end|-p|--period|--depth|--drop)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user