summaryrefslogtreecommitdiff
path: root/Completion/Darwin/Command/_mdfind
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Darwin/Command/_mdfind')
-rw-r--r--Completion/Darwin/Command/_mdfind29
1 files changed, 29 insertions, 0 deletions
diff --git a/Completion/Darwin/Command/_mdfind b/Completion/Darwin/Command/_mdfind
new file mode 100644
index 000000000..b38b0ee91
--- /dev/null
+++ b/Completion/Darwin/Command/_mdfind
@@ -0,0 +1,29 @@
+#compdef mdfind
+
+local ret=1
+local -a context line state state_descr tmp
+local -A opt_args val_args
+
+_arguments -s -S : \
+ '(-count)-0[separate result paths by NUL]' \
+ '(-0)-count[display count of results instead of paths]' \
+ '(-literal)-interpret[interpret query as if entered in Spotlight search field]' \
+ '(-interpret)-literal[interpret query as literal query string]' \
+ '-live[provide live updates to query results]' \
+ '-onlyin[limit search to specified directory]: :_directories' \
+ '(: -s)*-name[search for files with names matching specified string]:file name string' \
+ '-reprint[reprint -live results on update]' \
+ '(: -name)-s[show contents of specified smart folder]: :->smart-folders' \
+ '(-s -name)1: :_guard "^-*" "query"' \
+&& ret=0
+
+[[ $state == smart-folders ]] && {
+ tmp=( "$HOME/Library/Saved Searches/"*.savedSearch(-.N:r:t) )
+ if (( $#tmp )); then
+ _values 'smart folder' $tmp && ret=0
+ else
+ _message 'smart folder' && ret=0
+ fi
+}
+
+return ret