summaryrefslogtreecommitdiff
path: root/completion/_flatpak
diff options
context:
space:
mode:
Diffstat (limited to 'completion/_flatpak')
-rw-r--r--completion/_flatpak27
1 files changed, 27 insertions, 0 deletions
diff --git a/completion/_flatpak b/completion/_flatpak
new file mode 100644
index 00000000..e2995a2c
--- /dev/null
+++ b/completion/_flatpak
@@ -0,0 +1,27 @@
+#compdef flatpak
+
+emulate -L zsh
+
+local index
+(( index = ${(c)#words[0,CURRENT]} + $#PREFIX + 1 ))
+
+
+local resp=($(flatpak complete "$words" $index "$words[CURRENT]"))
+
+_description options opt_expl option
+_description arguments arg_expl argument
+
+local match
+for match in $resp; do
+ case $match in
+ __FLATPAK_FILE) _files;;
+ __FLATPAK_BUNDLE_FILE) _path_files -g '*.flatpak';;
+ __FLATPAK_BUNDLE_OR_REF_FILE) _path_files -g '*.flatpak(|ref)';;
+ __FLATPAK_DIR) _path_files -/;;
+ -*=) compadd $opt_expl[@] -S "" -- $match;;
+ -*) compadd $opt_expl[@] -- $match;;
+ *) compadd $arg_expl[@] $match;;
+ esac
+done
+
+# vim: ft=zsh