Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Completion functions for Mac OS X



Hi Ryan,

On 2005/01/16, at 1:59, lists wrote:

defaults read /Applications/TextEdit.app/Contents/Info

will normally display the contents of /Applications/TextEdit.app/Contents/Info.plist
Heh. I didn't know that. Is this a hidden feature? I can't find any documents about that.

If I use the _defaults completion, this doesn't work (and neither does TAB completion: 'defaults read /App<TAB>'). Could _defaults be modified to allow for viewing of xml files which aren't registered as a defaults domain? I'd love to help but haven't been able to get the hang of writing completions yet.
Here is a patch to complete plist files.

--
Motoi Washida

Index: Completion/Darwin/Command/_defaults
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Darwin/Command/_defaults,v
retrieving revision 1.1
diff -d -u -r1.1 _defaults
--- Completion/Darwin/Command/_defaults	23 Jul 2004 13:38:12 -0000	1.1
+++ Completion/Darwin/Command/_defaults	16 Jan 2005 15:43:35 -0000
@@ -1,12 +1,16 @@
 #compdef defaults

 _defaults_domains(){
-  local str="$(_call_program domains defaults domains 2>/dev/null)"
-  local expl
-  local -a list
-  list=( ${(s/, /)str} -g -globalDomain )
-  _wanted domains expl 'defaults database domain' \
-      compadd -M 'r:|.=* r:|=*' -a list
+  if [[ "`eval echo $PREFIX`" != [/~]* ]]; then
+    local str="$(_call_program domains defaults domains 2>/dev/null)"
+    local expl
+    local -a list
+    list=( ${(s/, /)str} -g -globalDomain )
+    _wanted domains expl 'defaults database domain' \
+        compadd -M 'r:|.=* r:|=*' -a list
+  else
+    _files -g '*.plist(e:"reply=\${REPLY%.plist}":)'
+  fi
 }

 _defaults_keys(){



Messages sorted by: Reverse Date, Date, Thread, Author