Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
PATCH: gsettings completion
- X-seq: zsh-workers 38986
- From: Oliver Kiddle <okiddle@xxxxxxxxxxx>
- To: Zsh workers <zsh-workers@xxxxxxx>
- Subject: PATCH: gsettings completion
- Date: Mon, 01 Aug 2016 22:57:10 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.co.uk; s=s2048; t=1470085031; bh=4VJEPROoJKTk9JSPxoW5lxfOdDqmrBTlQkwebpGQy+0=; h=From:To:Subject:Date:From:Subject; b=QcUgVWiTc0zm2O2cU+buDehdPYmBxqlvf9OAaygMLAVJXpkHJaq2+ZOzumc42KbYPzjIqfceg8m8lZC+EQxZmrpBV2F6He/lOeG8wucn0fI1jvvHKEusnP87ZPdBHvNfW/YZ096LDwY9wZP4979rHhtPfGyTE/ZepnN/Z5sdq/mLPVPe3u26OgYjzrQlkc0+4jG6M8/QUpIwB8hA2ljqglAqmFS571BJYltyOoyBbWO6EhPpl+RA0KJC96MkxudqTgkGAmUJNTKlb8yqmGnWz+iI91tAfN+Wy2HD4dBd+rOTPwAGuhe0va+30pTqb3MEF+fWkoPouKOVXUwXbT5jug==
- List-help: <mailto:zsh-workers-help@zsh.org>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
New completion for gsettings.
Oliver
diff --git a/Completion/Unix/Command/_gsettings b/Completion/Unix/Command/_gsettings
new file mode 100644
index 0000000..f47bbc6
--- /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 '*:'; 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
Messages sorted by:
Reverse Date,
Date,
Thread,
Author