about summary refs log tree commit diff
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