diff options
author | Axel Beckert <abe@deuxchevaux.org> | 2016-12-04 04:32:03 +0100 |
---|---|---|
committer | Axel Beckert <abe@deuxchevaux.org> | 2016-12-04 04:32:03 +0100 |
commit | 3e439c3863f14c82f70666804c8570a13b3732e6 (patch) | |
tree | 07036c43e0f3f9242bb6dd42cd2a849ec8ea8aca /Completion/Unix/Command/_gsettings | |
parent | 2aedc4b88fd0e87b89583983951b04b96f48efd3 (diff) | |
parent | 7b7e84f0815ed22a0ee348a217776529035dccf3 (diff) | |
download | zsh-3e439c3863f14c82f70666804c8570a13b3732e6.tar.gz zsh-3e439c3863f14c82f70666804c8570a13b3732e6.zip |
Merge tag 'zsh-5.2-test-1' into debian
Diffstat (limited to 'Completion/Unix/Command/_gsettings')
-rw-r--r-- | Completion/Unix/Command/_gsettings | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/Completion/Unix/Command/_gsettings b/Completion/Unix/Command/_gsettings new file mode 100644 index 000000000..72f015729 --- /dev/null +++ b/Completion/Unix/Command/_gsettings @@ -0,0 +1,47 @@ +#compdef gsettings + +local curcontext="$curcontext" state line expl ret=1 +local subcmds + +_arguments \ + '(- 1 *)--version[show version information]' \ + '--schemadir[specify location of schemata]:directory:_directories' \ + ':command:->subcmds' \ + '*::args:->subargs' && ret=0 + +if [[ $state = subargs ]]; then + curcontext="${curcontext%:*}-$words[1]:" + case $words[1] in + help) state=subcmds;; + get|range|reset|writable|monitor) + _arguments ':schema:->schemata' ':key:->keys' + ;; + set) + _arguments ':schema:->schemata' ':key:->keys' ':value' + ;; + (list|reset)-(keys|recursively|children)) state=schemata ;; + *) _default && ret=0 ;; + esac +fi + +case $state in + subcmds) + subcmds=( ${(L)${${(M)${${(f)"$(_call_program commands $service help)"}[(r)Commands:*,-2]}:# *}#??}/ ##/:} ) + _describe -t commands 'command' subcmds -M 'r:?|-=* r:|=*' && ret=0 + state='' + ;; + schemata) + if compset -P 1 '*:'; then + _directories && ret=0 + else + _wanted schemata expl 'schema' compadd -M 'r:|.=* r:|=*' \ + $(_call_program schemata $service list-schemas) && ret=0 + fi + ;; + keys) + _wanted keys expl 'key' compadd \ + $(_call_program keys $service list-keys $words[CURRENT-1]) && ret=0 + ;; +esac + +return ret |