Przeglądaj źródła

Merge pull request #6322 from alexpusch/fix/zsh-autocomplete

Fix ZSH autocomplete for multiple -f flags
Joffrey F 7 lat temu
rodzic
commit
f009de025c
1 zmienionych plików z 17 dodań i 4 usunięć
  1. 17 4
      contrib/completion/zsh/_docker-compose

+ 17 - 4
contrib/completion/zsh/_docker-compose

@@ -354,7 +354,7 @@ _docker-compose() {
         '(-): :->command' \
         '(-)*:: :->option-or-argument' && ret=0
 
-    local -a relevant_compose_flags relevant_docker_flags compose_options docker_options
+    local -a relevant_compose_flags relevant_compose_repeatable_flags relevant_docker_flags compose_options docker_options
 
     relevant_compose_flags=(
         "--file" "-f"
@@ -368,6 +368,10 @@ _docker-compose() {
         "--skip-hostname-check"
     )
 
+    relevant_compose_repeatable_flags=(
+        "--file" "-f"
+    )
+
     relevant_docker_flags=(
         "--host" "-H"
         "--tls"
@@ -385,9 +389,18 @@ _docker-compose() {
             fi
         fi
         if [[ -n "${relevant_compose_flags[(r)$k]}" ]]; then
-            compose_options+=$k
-            if [[ -n "$opt_args[$k]" ]]; then
-                compose_options+=$opt_args[$k]
+            if [[ -n "${relevant_compose_repeatable_flags[(r)$k]}"  ]]; then
+                values=("${(@s/:/)opt_args[$k]}")
+                for value in $values
+                do
+                    compose_options+=$k
+                    compose_options+=$value
+                done
+            else
+                compose_options+=$k
+                if [[ -n "$opt_args[$k]" ]]; then
+                    compose_options+=$opt_args[$k]
+                fi
             fi
         fi
     done