diff options
| author | Carlo Sala <carlosalag@protonmail.com> | 2023-07-20 10:43:56 +0200 | 
|---|---|---|
| committer | Carlo Sala <carlosalag@protonmail.com> | 2023-07-20 10:43:56 +0200 | 
| commit | 7d5e12500a2ba0b575ffafcbb516568973528730 (patch) | |
| tree | 90854b8aa4bdbdc46d372ce0a15b9781a385e2b4 /plugins | |
| parent | c4392a4da31efee36f29a62d3951d5c0fcd7d4e6 (diff) | |
| download | zsh-7d5e12500a2ba0b575ffafcbb516568973528730.tar.gz zsh-7d5e12500a2ba0b575ffafcbb516568973528730.tar.bz2 zsh-7d5e12500a2ba0b575ffafcbb516568973528730.zip  | |
feat(docker): add `legacy-completion` option
Diffstat (limited to 'plugins')
| -rw-r--r-- | plugins/docker/README.md | 11 | ||||
| -rw-r--r-- | plugins/docker/docker.plugin.zsh | 27 | 
2 files changed, 24 insertions, 14 deletions
diff --git a/plugins/docker/README.md b/plugins/docker/README.md index 512b5d17c..0ab2e41fb 100644 --- a/plugins/docker/README.md +++ b/plugins/docker/README.md @@ -30,6 +30,15 @@ file**, but be aware of the side effects:  > zstyle ':completion:*:*:docker-*:*' option-stacking yes  > ``` +### Use old-style completion + +If the current completion does not work well for you, you can enable legacy completion instead with the +following setting. See https://github.com/ohmyzsh/ohmyzsh/issues/11789 for more information. + +```zsh +zstyle ':omz:plugins:docker' legacy-completion yes +``` +  ## Aliases  | Alias   | Command                       | Description                                                                              | @@ -58,7 +67,7 @@ file**, but be aware of the side effects:  | drm     | `docker container rm`         | Remove the specified container(s)                                                        |  | drm!    | `docker container rm -f`      | Force the removal of a running container (uses SIGKILL)                                  |  | dst     | `docker container start`      | Start one or more stopped containers                                                     | -| drs     | `docker container restart`    | Restart one or more containers +| drs     | `docker container restart`    | Restart one or more containers                                                           |  | dsta    | `docker stop $(docker ps -q)` | Stop all running containers                                                              |  | dstp    | `docker container stop`       | Stop one or more running containers                                                      |  | dtop    | `docker top`                  | Display the running processes of a container                                             | diff --git a/plugins/docker/docker.plugin.zsh b/plugins/docker/docker.plugin.zsh index 7777048a3..7e657f2df 100644 --- a/plugins/docker/docker.plugin.zsh +++ b/plugins/docker/docker.plugin.zsh @@ -41,21 +41,22 @@ fi  0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}"  0="${${(M)0:#/*}:-$PWD/$0}" +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `docker`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_docker" ]]; then +  typeset -g -A _comps +  autoload -Uz _docker +  _comps[docker]=_docker +fi +  { +  # `docker completion` is only available from 23.0.0 on    # docker version returns `Docker version 24.0.2, build cb74dfcd85`    # with `s:,:` remove the comma after the version, and select third word of it -  local _docker_version=${${(s:,:z)"$(command docker --version)"}[3]} -  # `docker completion` is only available from 23.0.0 on -  if is-at-least 23.0.0 $_docker_version; then -    # If the completion file doesn't exist yet, we need to autoload it and -    # bind it to `docker`. Otherwise, compinit will have already done that. -    if [[ ! -f "$ZSH_CACHE_DIR/completions/_docker" ]]; then -      typeset -g -A _comps -      autoload -Uz _docker -      _comps[docker]=_docker -    fi -    command docker completion zsh >| "$ZSH_CACHE_DIR/completions/_docker" -  else -    command cp "${0:h}/completions/_docker" "$ZSH_CACHE_DIR/completions/_docker" +  if zstyle -t ':omz:plugins:docker' legacy-completion || \ +    ! is-at-least 23.0.0 ${${(s:,:z)"$(command docker --version)"}[3]}; then +        command cp "${0:h}/completions/_docker" "$ZSH_CACHE_DIR/completions/_docker" +      else +        command docker completion zsh >| "$ZSH_CACHE_DIR/completions/_docker"    fi  } &|  | 
