From 13082bb159361d1c0807eb7e5577f4c670cb0f88 Mon Sep 17 00:00:00 2001
From: Till Backhaus <tback@users.noreply.github.com>
Date: Fri, 16 Dec 2022 12:46:34 +0100
Subject: feat(watson): add completion (#10886)

Co-authored-by: Carlo Sala <carlosalag@protonmail.com>
---
 plugins/watson/README.md |  9 +++++++++
 plugins/watson/_watson   | 34 ++++++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+)
 create mode 100644 plugins/watson/README.md
 create mode 100644 plugins/watson/_watson

(limited to 'plugins')

diff --git a/plugins/watson/README.md b/plugins/watson/README.md
new file mode 100644
index 000000000..ef734ec63
--- /dev/null
+++ b/plugins/watson/README.md
@@ -0,0 +1,9 @@
+# Watson
+
+This plugin provides completion for [Watson](https://tailordev.github.io/Watson/).
+
+To use it add `watson` to the plugins array in your zshrc file.
+
+```zsh
+plugins=(... watson)
+```
diff --git a/plugins/watson/_watson b/plugins/watson/_watson
new file mode 100644
index 000000000..0f599bd66
--- /dev/null
+++ b/plugins/watson/_watson
@@ -0,0 +1,34 @@
+#compdef watson
+
+_watson_completion() {
+    local -a completions
+    local -a completions_with_descriptions
+    local -a response
+    (( ! $+commands[watson] )) && return 1
+
+    response=("${(@f)$(env COMP_WORDS="${words[*]}" COMP_CWORD=$((CURRENT-1)) _WATSON_COMPLETE=zsh_complete watson)}")
+
+    for type key descr in ${response}; do
+        if [[ "$type" == "plain" ]]; then
+            if [[ "$descr" == "_" ]]; then
+                completions+=("$key")
+            else
+                completions_with_descriptions+=("$key":"$descr")
+            fi
+        elif [[ "$type" == "dir" ]]; then
+            _path_files -/
+        elif [[ "$type" == "file" ]]; then
+            _path_files -f
+        fi
+    done
+
+    if [ -n "$completions_with_descriptions" ]; then
+        _describe -V unsorted completions_with_descriptions -U
+    fi
+
+    if [ -n "$completions" ]; then
+        compadd -U -V unsorted -a completions
+    fi
+}
+
+compdef _watson_completion watson;
-- 
cgit v1.2.3-70-g09d2