bash-completion: fix completion of complete verbs
When doing 'command verb<TAB>', the arguments for verb would be proposed, but it is too early. We should complete verb first. https://bugs.freedesktop.org/show_bug.cgi?id=74596
This commit is contained in:
parent
97e0691f85
commit
3ce09b7da2
|
@ -53,7 +53,7 @@ _busctl() {
|
||||||
[STANDALONE]='list monitor'
|
[STANDALONE]='list monitor'
|
||||||
)
|
)
|
||||||
|
|
||||||
for ((i=0; i <= COMP_CWORD; i++)); do
|
for ((i=0; i < COMP_CWORD; i++)); do
|
||||||
if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]} &&
|
if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]} &&
|
||||||
! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then
|
! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then
|
||||||
verb=${COMP_WORDS[i]}
|
verb=${COMP_WORDS[i]}
|
||||||
|
|
|
@ -41,7 +41,7 @@ _hostnamectl() {
|
||||||
[NAME]='set-hostname'
|
[NAME]='set-hostname'
|
||||||
)
|
)
|
||||||
|
|
||||||
for ((i=0; i <= COMP_CWORD; i++)); do
|
for ((i=0; i < COMP_CWORD; i++)); do
|
||||||
if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]}; then
|
if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]}; then
|
||||||
verb=${COMP_WORDS[i]}
|
verb=${COMP_WORDS[i]}
|
||||||
break
|
break
|
||||||
|
|
|
@ -52,7 +52,7 @@ _localectl() {
|
||||||
[X11]='set-x11-keymap'
|
[X11]='set-x11-keymap'
|
||||||
)
|
)
|
||||||
|
|
||||||
for ((i=0; i <= COMP_CWORD; i++)); do
|
for ((i=0; i < COMP_CWORD; i++)); do
|
||||||
if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]}; then
|
if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]}; then
|
||||||
verb=${COMP_WORDS[i]}
|
verb=${COMP_WORDS[i]}
|
||||||
break
|
break
|
||||||
|
|
|
@ -70,7 +70,7 @@ _loginctl () {
|
||||||
[ATTACH]='attach'
|
[ATTACH]='attach'
|
||||||
)
|
)
|
||||||
|
|
||||||
for ((i=0; i <= COMP_CWORD; i++)); do
|
for ((i=0; i < COMP_CWORD; i++)); do
|
||||||
if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]} &&
|
if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]} &&
|
||||||
! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then
|
! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then
|
||||||
verb=${COMP_WORDS[i]}
|
verb=${COMP_WORDS[i]}
|
||||||
|
|
|
@ -146,7 +146,7 @@ _systemctl () {
|
||||||
[TARGETS]='set-default'
|
[TARGETS]='set-default'
|
||||||
)
|
)
|
||||||
|
|
||||||
for ((i=0; i <= COMP_CWORD; i++)); do
|
for ((i=0; i < COMP_CWORD; i++)); do
|
||||||
if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]} &&
|
if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]} &&
|
||||||
! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then
|
! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then
|
||||||
verb=${COMP_WORDS[i]}
|
verb=${COMP_WORDS[i]}
|
||||||
|
|
|
@ -39,7 +39,7 @@ _systemd_analyze() {
|
||||||
|
|
||||||
_init_completion || return
|
_init_completion || return
|
||||||
|
|
||||||
for ((i=0; i <= COMP_CWORD; i++)); do
|
for ((i=0; i < COMP_CWORD; i++)); do
|
||||||
if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]} &&
|
if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]} &&
|
||||||
! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then
|
! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then
|
||||||
verb=${COMP_WORDS[i]}
|
verb=${COMP_WORDS[i]}
|
||||||
|
|
|
@ -52,7 +52,7 @@ _timedatectl() {
|
||||||
[TIME]='set-time'
|
[TIME]='set-time'
|
||||||
)
|
)
|
||||||
|
|
||||||
for ((i=0; i <= COMP_CWORD; i++)); do
|
for ((i=0; i < COMP_CWORD; i++)); do
|
||||||
if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]}; then
|
if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]}; then
|
||||||
verb=${COMP_WORDS[i]}
|
verb=${COMP_WORDS[i]}
|
||||||
break
|
break
|
||||||
|
|
|
@ -36,7 +36,7 @@ _udevadm() {
|
||||||
|
|
||||||
local verbs=(info trigger settle control monitor hwdb test-builtin test)
|
local verbs=(info trigger settle control monitor hwdb test-builtin test)
|
||||||
|
|
||||||
for ((i=0; i <= COMP_CWORD; i++)); do
|
for ((i=0; i < COMP_CWORD; i++)); do
|
||||||
if __contains_word "${COMP_WORDS[i]}" "${verbs[@]}" &&
|
if __contains_word "${COMP_WORDS[i]}" "${verbs[@]}" &&
|
||||||
! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then
|
! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then
|
||||||
verb=${COMP_WORDS[i]}
|
verb=${COMP_WORDS[i]}
|
||||||
|
|
Loading…
Reference in a new issue