You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdesdk/scripts/completions/bash/dcop

53 lines
1.6 KiB

# dcop completion
#
# Inputs:
# $1 -- name of the command whose arguments are being completed
# $2 -- word being completed
# $3 -- ord preceding the word being completed
# $COMP_LINE -- current command line
# $COMP_PONT -- cursor position
# $COMP_WORDS -- array containing individual words in the current
# command line
# $COMP_CWORD -- index into ${COMP_WORDS} of the word containing the
# current cursor position
# Output:
# COMPREPLY array variable contains possible completions
#
# dcop syntax:
# dcop [ application [object [function [arg1] [arg2] [arg3] ... ] ] ]
#
_complete_dcop ()
{
local wordlist
COMPREPLY=()
wordlist=""
if (( $COMP_CWORD == 1 )); then
#
# Application. This one is easy, just return all names that dcop
# gives us.
#
wordlist=$(dcop)
elif (( $COMP_CWORD == 2 )); then
#
# Object. 'dcop <application>' returns all objects the application
# supports plus (default). The parenthesis in (default) should be
# omitted when using it as an argument so we need to remove them.
#
wordlist=$(dcop ${COMP_WORDS[1]} | sed -e "s,(default),default,")
elif (( $COMP_CWORD == 3 )); then
#
# Function. 'dcop <application> <object>' returns functions of the
# form 'type functionname(arguments)'. We need to return a list with
# the functionnames.
#
wordlist=$(dcop ${COMP_WORDS[1]} ${COMP_WORDS[2]} | sed -e "s,.* \(.*\)(.*,\1,")
fi
COMPREPLY=( $(compgen -W "$wordlist" "$2") )
return 0
}
complete -F _complete_dcop dcop