From c21ff38b8fda0584208ffd697dac0502e2327466 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Wed, 15 Sep 2021 17:44:36 +0200 Subject: fix(docker): remove unwanted asterisk in completed docker commands Also update upstream completion to version fe2008d04e80fafd. NOTE: this fix means the version bundled within Oh My Zsh has diverged from the upstream version. --- plugins/docker/_docker | 100 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 97 insertions(+), 3 deletions(-) (limited to 'plugins') diff --git a/plugins/docker/_docker b/plugins/docker/_docker index 7fe204313..8ee35abcf 100644 --- a/plugins/docker/_docker +++ b/plugins/docker/_docker @@ -1343,7 +1343,7 @@ __docker_node_complete_ls_filters() { ;; esac else - opts=('id' 'label' 'membership' 'name' 'role') + opts=('id' 'label' 'membership' 'name' 'node.label' 'role') _describe -t filter-opts "filter options" opts -qS "=" && ret=0 fi @@ -2544,6 +2544,82 @@ __docker_volume_subcommand() { # EO volume +# BO context + +__docker_complete_contexts() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + declare -a contexts + + contexts=(${(f)${:-"$(_call_program commands docker $docker_options context ls -q)"$'\n'}}) + + _describe -t context-list "context" contexts && ret=0 + return ret +} + +__docker_context_commands() { + local -a _docker_context_subcommands + _docker_context_subcommands=( + "create:Create new context" + "inspect:Display detailed information on one or more contexts" + "list:List available contexts" + "rm:Remove one or more contexts" + "show:Print the current context" + "update:Update a context" + "use:Set the default context" + ) + _describe -t docker-context-commands "docker context command" _docker_context_subcommands +} + +__docker_context_subcommand() { + local -a _command_args opts_help + local expl help="--help" + integer ret=1 + + opts_help=("(: -)--help[Print usage]") + + case "$words[1]" in + (create) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)--default-stack-orchestrator=[Default orchestrator for stack operations to use with this context]:default-stack-orchestrator:(swarm kubernetes all)" \ + "($help)--description=[Description of the context]:description:" \ + "($help)--docker=[Set the docker endpoint]:docker:" \ + "($help)--kubernetes=[Set the kubernetes endpoint]:kubernetes:" \ + "($help)--from=[Create context from a named context]:from:__docker_complete_contexts" \ + "($help -):name: " && ret=0 + ;; + (use) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -)1:context:__docker_complete_contexts" && ret=0 + ;; + (inspect) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -)1:context:__docker_complete_contexts" && ret=0 + ;; + (rm) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -)1:context:__docker_complete_contexts" && ret=0 + ;; + (update) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)--default-stack-orchestrator=[Default orchestrator for stack operations to use with this context]:default-stack-orchestrator:(swarm kubernetes all)" \ + "($help)--description=[Description of the context]:description:" \ + "($help)--docker=[Set the docker endpoint]:docker:" \ + "($help)--kubernetes=[Set the kubernetes endpoint]:kubernetes:" \ + "($help -):name:" && ret=0 + ;; + esac + + return ret +} + +# EO context + __docker_caching_policy() { oldp=( "$1"(Nmh+1) ) # 1 hour (( $#oldp )) @@ -2576,7 +2652,7 @@ __docker_commands() { then local -a lines lines=(${(f)"$(_call_program commands docker 2>&1)"}) - _docker_subcommands=(${${${(M)${lines[$((${lines[(i)*Commands:]} + 1)),-1]}:# *}## #}/ ##/:}) + _docker_subcommands=(${${${(M)${lines[$((${lines[(i)*Commands:]} + 1)),-1]}:# *}## #}/\*# ##/:}) _docker_subcommands=($_docker_subcommands 'daemon:Enable daemon mode' 'help:Show help for a command') (( $#_docker_subcommands > 2 )) && _store_cache docker_subcommands _docker_subcommands fi @@ -2631,6 +2707,23 @@ __docker_subcommand() { ;; esac ;; + (context) + local curcontext="$curcontext" state + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -): :->command" \ + "($help -)*:: :->option-or-argument" && ret=0 + + case $state in + (command) + __docker_context_commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*:*}:docker-${words[-1]}: + __docker_context_subcommand && ret=0 + ;; + esac + ;; (daemon) _arguments $(__docker_arguments) \ $opts_help \ @@ -2698,7 +2791,8 @@ __docker_subcommand() { "($help)--tlsverify[Use TLS and verify the remote]" \ "($help)--userns-remap=[User/Group setting for user namespaces]:user\:group:->users-groups" \ "($help)--userland-proxy[Use userland proxy for loopback traffic]" \ - "($help)--userland-proxy-path=[Path to the userland proxy binary]:binary:_files" && ret=0 + "($help)--userland-proxy-path=[Path to the userland proxy binary]:binary:_files" \ + "($help)--validate[Validate daemon configuration and exit]" && ret=0 case $state in (cluster-store) -- cgit v1.2.3-70-g09d2 From 4e6e49652b69557c01ef1ce81c96da7eb9b34e6e Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Wed, 15 Sep 2021 18:18:25 +0200 Subject: fix(plugins): fix `_comps` error in completion generation plugins (#10190) Fixes #10190 --- plugins/cargo/cargo.plugin.zsh | 17 +++++++++++------ plugins/deno/deno.plugin.zsh | 16 +++++++++++----- plugins/fnm/fnm.plugin.zsh | 17 +++++++++++------ plugins/gh/gh.plugin.zsh | 17 +++++++++++------ plugins/rustup/rustup.plugin.zsh | 18 +++++++++++------- 5 files changed, 55 insertions(+), 30 deletions(-) (limited to 'plugins') diff --git a/plugins/cargo/cargo.plugin.zsh b/plugins/cargo/cargo.plugin.zsh index 92eae5359..b636d492f 100644 --- a/plugins/cargo/cargo.plugin.zsh +++ b/plugins/cargo/cargo.plugin.zsh @@ -1,11 +1,16 @@ -# COMPLETION FUNCTION if (( $+commands[rustup] && $+commands[cargo] )); then - if [[ ! -f $ZSH_CACHE_DIR/cargo_version ]] \ - || [[ "$(cargo --version)" != "$(< "$ZSH_CACHE_DIR/cargo_version")" ]] \ - || [[ ! -f $ZSH/plugins/cargo/_cargo ]]; then - rustup completions zsh cargo > $ZSH/plugins/cargo/_cargo - cargo --version > $ZSH_CACHE_DIR/cargo_version + ver="$(cargo --version)" + ver_file="$ZSH_CACHE_DIR/cargo_version" + comp_file="$ZSH/plugins/cargo/_cargo" + + if [[ ! -f "$comp_file" || ! -f "$ver_file" || "$ver" != "$(< "$ver_file")" ]]; then + rustup completions zsh cargo >| "$comp_file" + echo "$ver" >| "$ver_file" fi + + declare -A _comps autoload -Uz _cargo _comps[cargo]=_cargo + + unset ver ver_file comp_file fi diff --git a/plugins/deno/deno.plugin.zsh b/plugins/deno/deno.plugin.zsh index a37b3bec4..71749f4a0 100644 --- a/plugins/deno/deno.plugin.zsh +++ b/plugins/deno/deno.plugin.zsh @@ -12,12 +12,18 @@ alias dup='deno upgrade' # COMPLETION FUNCTION if (( $+commands[deno] )); then - if [[ ! -f $ZSH_CACHE_DIR/deno_version ]] \ - || [[ "$(deno --version)" != "$(< "$ZSH_CACHE_DIR/deno_version")" ]] \ - || [[ ! -f $ZSH/plugins/deno/_deno ]]; then - deno completions zsh > $ZSH/plugins/deno/_deno - deno --version > $ZSH_CACHE_DIR/deno_version + ver="$(deno --version)" + ver_file="$ZSH_CACHE_DIR/deno_version" + comp_file="$ZSH/plugins/deno/_deno" + + if [[ ! -f "$comp_file" || ! -f "$ver_file" || "$ver" != "$(< "$ver_file")" ]]; then + deno completions zsh >| "$comp_file" + echo "$ver" >| "$ver_file" fi + + declare -A _comps autoload -Uz _deno _comps[deno]=_deno + + unset ver ver_file comp_file fi diff --git a/plugins/fnm/fnm.plugin.zsh b/plugins/fnm/fnm.plugin.zsh index 5ce558dcb..29b759abb 100644 --- a/plugins/fnm/fnm.plugin.zsh +++ b/plugins/fnm/fnm.plugin.zsh @@ -1,12 +1,17 @@ -# COMPLETION FUNCTION if (( $+commands[fnm] )); then - if [[ ! -f $ZSH_CACHE_DIR/fnm_version ]] \ - || [[ "$(fnm --version)" != "$(< "$ZSH_CACHE_DIR/fnm_version")" ]] \ - || [[ ! -f $ZSH/plugins/fnm/_fnm ]]; then - fnm completions --shell=zsh > $ZSH/plugins/fnm/_fnm - fnm --version > $ZSH_CACHE_DIR/fnm_version + ver="$(fnm --version)" + ver_file="$ZSH_CACHE_DIR/fnm_version" + comp_file="$ZSH/plugins/fnm/_fnm" + + if [[ ! -f "$comp_file" || ! -f "$ver_file" || "$ver" != "$(< "$ver_file")" ]]; then + fnm completions --shell=zsh >| "$comp_file" + echo "$ver" >| "$ver_file" fi + + declare -A _comps autoload -Uz _fnm _comps[fnm]=_fnm + + unset ver ver_file comp_file fi diff --git a/plugins/gh/gh.plugin.zsh b/plugins/gh/gh.plugin.zsh index 8e055ec35..c3d87848d 100644 --- a/plugins/gh/gh.plugin.zsh +++ b/plugins/gh/gh.plugin.zsh @@ -1,13 +1,18 @@ # Autocompletion for the GitHub CLI (gh). - if (( $+commands[gh] )); then - if [[ ! -r "$ZSH_CACHE_DIR/gh_version" \ - || "$(gh --version)" != "$(< "$ZSH_CACHE_DIR/gh_version")" - || ! -f "$ZSH/plugins/gh/_gh" ]]; then - gh completion --shell zsh > $ZSH/plugins/gh/_gh - gh --version > $ZSH_CACHE_DIR/gh_version + ver="$(gh --version)" + ver_file="$ZSH_CACHE_DIR/gh_version" + comp_file="$ZSH/plugins/gh/_gh" + + if [[ ! -f "$comp_file" || ! -f "$ver_file" || "$ver" != "$(< "$ver_file")" ]]; then + gh completion --shell zsh >| "$comp_file" + echo "$ver" >| "$ver_file" fi + + declare -A _comps autoload -Uz _gh _comps[gh]=_gh + + unset ver ver_file comp_file fi diff --git a/plugins/rustup/rustup.plugin.zsh b/plugins/rustup/rustup.plugin.zsh index c7a9b3060..e709f41bd 100644 --- a/plugins/rustup/rustup.plugin.zsh +++ b/plugins/rustup/rustup.plugin.zsh @@ -1,12 +1,16 @@ -# COMPLETION FUNCTION if (( $+commands[rustup] )); then - if [[ ! -f $ZSH_CACHE_DIR/rustup_version ]] \ - || [[ "$(rustup --version 2> /dev/null)" \ - != "$(< "$ZSH_CACHE_DIR/rustup_version")" ]] \ - || [[ ! -f $ZSH/plugins/rustup/_rustup ]]; then - rustup completions zsh > $ZSH/plugins/rustup/_rustup - rustup --version 2> /dev/null > $ZSH_CACHE_DIR/rustup_version + ver="$(rustup --version 2>/dev/null)" + ver_file="$ZSH_CACHE_DIR/rustup_version" + comp_file="$ZSH/plugins/rustup/_rustup" + + if [[ ! -f "$comp_file" || ! -f "$ver_file" || "$ver" != "$(< "$ver_file")" ]]; then + rustup completions zsh >| "$comp_file" + echo "$ver" >| "$ver_file" fi + + declare -A _comps autoload -Uz _rustup _comps[rustup]=_rustup + + unset ver ver_file comp_file fi -- cgit v1.2.3-70-g09d2 From d2269180b074263f4a0d3df3f9de15a1abae8110 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Wed, 15 Sep 2021 18:41:44 +0200 Subject: fix(core): move plugin-generated completion files to `$ZSH_CACHE_DIR/completions` Fixes #10183 --- oh-my-zsh.sh | 4 ++++ plugins/cargo/cargo.plugin.zsh | 5 ++++- plugins/deno/deno.plugin.zsh | 5 ++++- plugins/fnm/fnm.plugin.zsh | 5 ++++- plugins/gh/gh.plugin.zsh | 5 ++++- plugins/rustup/rustup.plugin.zsh | 5 ++++- 6 files changed, 24 insertions(+), 5 deletions(-) (limited to 'plugins') diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 16e244be5..442972a9a 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -7,6 +7,10 @@ if [[ -z "$ZSH_CACHE_DIR" ]]; then ZSH_CACHE_DIR="$ZSH/cache" fi +# Create completions cache dir and add to $fpath +mkdir -p "$ZSH_CACHE_DIR/completions" +(( ${fpath[(Ie)$ZSH_CACHE_DIR/completions]} )) || fpath=("$ZSH_CACHE_DIR/completions" $fpath) + # Check for updates on initial load... if [ "$DISABLE_AUTO_UPDATE" != "true" ]; then source $ZSH/tools/check_for_upgrade.sh diff --git a/plugins/cargo/cargo.plugin.zsh b/plugins/cargo/cargo.plugin.zsh index b636d492f..95e63dd3c 100644 --- a/plugins/cargo/cargo.plugin.zsh +++ b/plugins/cargo/cargo.plugin.zsh @@ -1,7 +1,10 @@ if (( $+commands[rustup] && $+commands[cargo] )); then ver="$(cargo --version)" ver_file="$ZSH_CACHE_DIR/cargo_version" - comp_file="$ZSH/plugins/cargo/_cargo" + comp_file="$ZSH_CACHE_DIR/completions/_cargo" + + mkdir -p "${comp_file:h}" + (( ${fpath[(Ie)${comp_file:h}]} )) || fpath=("${comp_file:h}" $fpath) if [[ ! -f "$comp_file" || ! -f "$ver_file" || "$ver" != "$(< "$ver_file")" ]]; then rustup completions zsh cargo >| "$comp_file" diff --git a/plugins/deno/deno.plugin.zsh b/plugins/deno/deno.plugin.zsh index 71749f4a0..e22c4e4c8 100644 --- a/plugins/deno/deno.plugin.zsh +++ b/plugins/deno/deno.plugin.zsh @@ -14,7 +14,10 @@ alias dup='deno upgrade' if (( $+commands[deno] )); then ver="$(deno --version)" ver_file="$ZSH_CACHE_DIR/deno_version" - comp_file="$ZSH/plugins/deno/_deno" + comp_file="$ZSH_CACHE_DIR/completions/_deno" + + mkdir -p "${comp_file:h}" + (( ${fpath[(Ie)${comp_file:h}]} )) || fpath=("${comp_file:h}" $fpath) if [[ ! -f "$comp_file" || ! -f "$ver_file" || "$ver" != "$(< "$ver_file")" ]]; then deno completions zsh >| "$comp_file" diff --git a/plugins/fnm/fnm.plugin.zsh b/plugins/fnm/fnm.plugin.zsh index 29b759abb..efb81a6fa 100644 --- a/plugins/fnm/fnm.plugin.zsh +++ b/plugins/fnm/fnm.plugin.zsh @@ -1,7 +1,10 @@ if (( $+commands[fnm] )); then ver="$(fnm --version)" ver_file="$ZSH_CACHE_DIR/fnm_version" - comp_file="$ZSH/plugins/fnm/_fnm" + comp_file="$ZSH_CACHE_DIR/completions/_fnm" + + mkdir -p "${comp_file:h}" + (( ${fpath[(Ie)${comp_file:h}]} )) || fpath=("${comp_file:h}" $fpath) if [[ ! -f "$comp_file" || ! -f "$ver_file" || "$ver" != "$(< "$ver_file")" ]]; then fnm completions --shell=zsh >| "$comp_file" diff --git a/plugins/gh/gh.plugin.zsh b/plugins/gh/gh.plugin.zsh index c3d87848d..a346ccf65 100644 --- a/plugins/gh/gh.plugin.zsh +++ b/plugins/gh/gh.plugin.zsh @@ -2,7 +2,10 @@ if (( $+commands[gh] )); then ver="$(gh --version)" ver_file="$ZSH_CACHE_DIR/gh_version" - comp_file="$ZSH/plugins/gh/_gh" + comp_file="$ZSH_CACHE_DIR/completions/_gh" + + mkdir -p "${comp_file:h}" + (( ${fpath[(Ie)${comp_file:h}]} )) || fpath=("${comp_file:h}" $fpath) if [[ ! -f "$comp_file" || ! -f "$ver_file" || "$ver" != "$(< "$ver_file")" ]]; then gh completion --shell zsh >| "$comp_file" diff --git a/plugins/rustup/rustup.plugin.zsh b/plugins/rustup/rustup.plugin.zsh index e709f41bd..8740f255a 100644 --- a/plugins/rustup/rustup.plugin.zsh +++ b/plugins/rustup/rustup.plugin.zsh @@ -1,7 +1,10 @@ if (( $+commands[rustup] )); then ver="$(rustup --version 2>/dev/null)" ver_file="$ZSH_CACHE_DIR/rustup_version" - comp_file="$ZSH/plugins/rustup/_rustup" + comp_file="$ZSH_CACHE_DIR/completions/_rustup" + + mkdir -p "${comp_file:h}" + (( ${fpath[(Ie)${comp_file:h}]} )) || fpath=("${comp_file:h}" $fpath) if [[ ! -f "$comp_file" || ! -f "$ver_file" || "$ver" != "$(< "$ver_file")" ]]; then rustup completions zsh >| "$comp_file" -- cgit v1.2.3-70-g09d2 From eb2eacaf0c46ace8e0eb3543199851a8249338fc Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Wed, 15 Sep 2021 18:47:51 +0200 Subject: refactor(plugins): remove old generated completion files This removes .gitignore plugin files and adds a force-rm of the old completion file, which ignores any errors if the file doesn't exist. --- plugins/cargo/.gitignore | 1 - plugins/cargo/cargo.plugin.zsh | 4 ++++ plugins/deno/.gitignore | 1 - plugins/deno/deno.plugin.zsh | 3 +++ plugins/fnm/.gitignore | 2 -- plugins/fnm/fnm.plugin.zsh | 3 +++ plugins/gh/.gitignore | 1 - plugins/gh/gh.plugin.zsh | 3 +++ plugins/rustup/.gitignore | 1 - plugins/rustup/rustup.plugin.zsh | 3 +++ 10 files changed, 16 insertions(+), 6 deletions(-) delete mode 100644 plugins/cargo/.gitignore delete mode 100644 plugins/deno/.gitignore delete mode 100644 plugins/fnm/.gitignore delete mode 100644 plugins/gh/.gitignore delete mode 100644 plugins/rustup/.gitignore (limited to 'plugins') diff --git a/plugins/cargo/.gitignore b/plugins/cargo/.gitignore deleted file mode 100644 index 42d7ecdd6..000000000 --- a/plugins/cargo/.gitignore +++ /dev/null @@ -1 +0,0 @@ -_cargo diff --git a/plugins/cargo/cargo.plugin.zsh b/plugins/cargo/cargo.plugin.zsh index 95e63dd3c..7082d2d55 100644 --- a/plugins/cargo/cargo.plugin.zsh +++ b/plugins/cargo/cargo.plugin.zsh @@ -1,4 +1,8 @@ if (( $+commands[rustup] && $+commands[cargo] )); then + # remove old generated completion file + command rm -f "${0:A:h}/_cargo" + + # generate new completion file ver="$(cargo --version)" ver_file="$ZSH_CACHE_DIR/cargo_version" comp_file="$ZSH_CACHE_DIR/completions/_cargo" diff --git a/plugins/deno/.gitignore b/plugins/deno/.gitignore deleted file mode 100644 index cba5b03e8..000000000 --- a/plugins/deno/.gitignore +++ /dev/null @@ -1 +0,0 @@ -_deno diff --git a/plugins/deno/deno.plugin.zsh b/plugins/deno/deno.plugin.zsh index e22c4e4c8..34adddc37 100644 --- a/plugins/deno/deno.plugin.zsh +++ b/plugins/deno/deno.plugin.zsh @@ -12,6 +12,9 @@ alias dup='deno upgrade' # COMPLETION FUNCTION if (( $+commands[deno] )); then + # remove old generated completion file + command rm -f "${0:A:h}/_deno" + ver="$(deno --version)" ver_file="$ZSH_CACHE_DIR/deno_version" comp_file="$ZSH_CACHE_DIR/completions/_deno" diff --git a/plugins/fnm/.gitignore b/plugins/fnm/.gitignore deleted file mode 100644 index 0b2bc9ab7..000000000 --- a/plugins/fnm/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -_fnm - diff --git a/plugins/fnm/fnm.plugin.zsh b/plugins/fnm/fnm.plugin.zsh index efb81a6fa..c161b27cd 100644 --- a/plugins/fnm/fnm.plugin.zsh +++ b/plugins/fnm/fnm.plugin.zsh @@ -1,4 +1,7 @@ if (( $+commands[fnm] )); then + # remove old generated completion file + command rm -f "${0:A:h}/_fnm" + ver="$(fnm --version)" ver_file="$ZSH_CACHE_DIR/fnm_version" comp_file="$ZSH_CACHE_DIR/completions/_fnm" diff --git a/plugins/gh/.gitignore b/plugins/gh/.gitignore deleted file mode 100644 index fa1244ab5..000000000 --- a/plugins/gh/.gitignore +++ /dev/null @@ -1 +0,0 @@ -_gh diff --git a/plugins/gh/gh.plugin.zsh b/plugins/gh/gh.plugin.zsh index a346ccf65..3e4cdee5e 100644 --- a/plugins/gh/gh.plugin.zsh +++ b/plugins/gh/gh.plugin.zsh @@ -1,5 +1,8 @@ # Autocompletion for the GitHub CLI (gh). if (( $+commands[gh] )); then + # remove old generated completion file + command rm -f "${0:A:h}/_gh" + ver="$(gh --version)" ver_file="$ZSH_CACHE_DIR/gh_version" comp_file="$ZSH_CACHE_DIR/completions/_gh" diff --git a/plugins/rustup/.gitignore b/plugins/rustup/.gitignore deleted file mode 100644 index ad38ae3bf..000000000 --- a/plugins/rustup/.gitignore +++ /dev/null @@ -1 +0,0 @@ -_rustup diff --git a/plugins/rustup/rustup.plugin.zsh b/plugins/rustup/rustup.plugin.zsh index 8740f255a..c6efc1b13 100644 --- a/plugins/rustup/rustup.plugin.zsh +++ b/plugins/rustup/rustup.plugin.zsh @@ -1,4 +1,7 @@ if (( $+commands[rustup] )); then + # remove old generated completion file + command rm -f "${0:A:h}/_rustup" + ver="$(rustup --version 2>/dev/null)" ver_file="$ZSH_CACHE_DIR/rustup_version" comp_file="$ZSH_CACHE_DIR/completions/_rustup" -- cgit v1.2.3-70-g09d2 From 29ec52602ff947675ea9a1788d62c0c552bd01af Mon Sep 17 00:00:00 2001 From: Muhammad Zahalqa Date: Thu, 16 Sep 2021 17:44:35 +0300 Subject: feat(golang): add `gota` to test current directory recursively (#8974) --- plugins/golang/README.md | 1 + plugins/golang/golang.plugin.zsh | 1 + 2 files changed, 2 insertions(+) (limited to 'plugins') diff --git a/plugins/golang/README.md b/plugins/golang/README.md index 0a1b43c30..0c90aa10b 100644 --- a/plugins/golang/README.md +++ b/plugins/golang/README.md @@ -27,4 +27,5 @@ plugins=(... golang) | gops | `cd $GOPATH/src` | Takes you to $GOPATH/src | | gor | `go run` | Compiles and runs your code | | got | `go test` | Runs tests | +| gota | `go test ./...` | Runs tests in all subdirectories | | gov | `go vet` | Vet examines Go source code and reports suspicious constructs | diff --git a/plugins/golang/golang.plugin.zsh b/plugins/golang/golang.plugin.zsh index 398bd966f..eedde2573 100644 --- a/plugins/golang/golang.plugin.zsh +++ b/plugins/golang/golang.plugin.zsh @@ -271,4 +271,5 @@ alias gopb='cd $GOPATH/bin' alias gops='cd $GOPATH/src' alias gor='go run' alias got='go test' +alias gota='go test ./...' alias gov='go vet' -- cgit v1.2.3-70-g09d2 From 4bd5d03e51ae289a986ab63e94bf4e1c96a75786 Mon Sep 17 00:00:00 2001 From: Tristan Messner Date: Sun, 21 Apr 2019 20:20:23 -0400 Subject: feat(golang): add `goga` alias to install dependencies in current directory, recursively (#7786) Closes #7786 --- plugins/golang/README.md | 1 + plugins/golang/golang.plugin.zsh | 1 + 2 files changed, 2 insertions(+) (limited to 'plugins') diff --git a/plugins/golang/README.md b/plugins/golang/README.md index 0c90aa10b..af2c4dff9 100644 --- a/plugins/golang/README.md +++ b/plugins/golang/README.md @@ -19,6 +19,7 @@ plugins=(... golang) | gof | `go fmt` | Gofmt formats (aligns and indents) Go programs. | | gofa | `go fmt ./...` | Run go fmt for all packages in current directory, recursively | | gog | `go get` | Downloads packages and then installs them to $GOPATH | +| gog | `go get ./...` | Installs all dependencies in current directory, recursively | | goi | `go install` | Compiles and installs packages to $GOPATH | | gol | `go list` | Lists Go packages | | gom | `go mod` | Access to operations on modules | diff --git a/plugins/golang/golang.plugin.zsh b/plugins/golang/golang.plugin.zsh index eedde2573..fce663fd6 100644 --- a/plugins/golang/golang.plugin.zsh +++ b/plugins/golang/golang.plugin.zsh @@ -263,6 +263,7 @@ alias god='go doc' alias gof='go fmt' alias gofa='go fmt ./...' alias gog='go get' +alias goga='go get ./...' alias goi='go install' alias gol='go list' alias gom='go mod' -- cgit v1.2.3-70-g09d2 From eba3be243f634a80ae8d8134bf88657afda71fbb Mon Sep 17 00:00:00 2001 From: Al-Amin Ahamed <34349365+mralaminahamed@users.noreply.github.com> Date: Sat, 18 Sep 2021 03:31:56 +0600 Subject: feat(archlinux): add cleanup aliases to `yaourt` and `yay` (#10184) --- plugins/archlinux/README.md | 4 ++++ plugins/archlinux/archlinux.plugin.zsh | 4 ++++ 2 files changed, 8 insertions(+) (limited to 'plugins') diff --git a/plugins/archlinux/README.md b/plugins/archlinux/README.md index d6b41ee40..d4706e220 100644 --- a/plugins/archlinux/README.md +++ b/plugins/archlinux/README.md @@ -143,6 +143,8 @@ upgrades were available. Use `pacman -Que` instead. | yaupd | `yaourt -Sy` | Update and refresh local package, ABS and AUR databases | | yaupg | `yaourt -Syua` | Sync with repositories before upgrading all packages (from AUR too) | | yasu | `yaourt -Syua --no-confirm` | Same as `yaupg`, but without confirmation | +| yaclun | `yaourt -Yc` | Remove unneeded installed packages | +| yaclf | `yaourt -Scc` | Remove cache directories | | upgrade[²](#f2) | `yaourt -Syu` | Sync with repositories before upgrading packages | #### Yay[¹](#f1) @@ -165,6 +167,8 @@ upgrades were available. Use `pacman -Que` instead. | yaupd | `yay -Sy` | Update and refresh local package, ABS and AUR databases | | yaupg | `yay -Syu` | Sync with repositories before upgrading packages | | yasu | `yay -Syu --no-confirm` | Same as `yaupg`, but without confirmation | +| yaclun | `yay -Yc` | Remove unneeded installed packages | +| yaclf | `yay -Scc` | Remove cache directories | | upgrade[²](#f2) | `yay -Syu` | Sync with repositories before upgrading packages | --- diff --git a/plugins/archlinux/archlinux.plugin.zsh b/plugins/archlinux/archlinux.plugin.zsh index c94fb8f6c..d34a4cd96 100644 --- a/plugins/archlinux/archlinux.plugin.zsh +++ b/plugins/archlinux/archlinux.plugin.zsh @@ -170,6 +170,8 @@ if (( $+commands[yaourt] )); then alias yainsd='yaourt -S --asdeps' alias yamir='yaourt -Syy' alias yaupd="yaourt -Sy" + alias yaclun='yaourt -Yc' + alias yaclf='yaourt -Scc' alias upgrade='yaourt -Syu' fi @@ -190,6 +192,8 @@ if (( $+commands[yay] )); then alias yainsd='yay -S --asdeps' alias yamir='yay -Syy' alias yaupd="yay -Sy" + alias yaclun='yay -Yc' + alias yaclf='yay -Scc' alias upgrade='yay -Syu' fi -- cgit v1.2.3-70-g09d2 From 4d7f0cfb47b04f218a05f0f2b3deebdb7e3fdb99 Mon Sep 17 00:00:00 2001 From: Ken Crawford Date: Fri, 17 Sep 2021 17:33:12 -0400 Subject: docs(kubectx): fix README sample code syntax (#10199) --- plugins/kubectx/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins') diff --git a/plugins/kubectx/README.md b/plugins/kubectx/README.md index 9a1df2617..98f1cf032 100644 --- a/plugins/kubectx/README.md +++ b/plugins/kubectx/README.md @@ -17,7 +17,7 @@ One can rename default context name for better readability. _Example_. Add to **.zshrc**: ``` -kubectx_mapping[minikube] = "mini" +kubectx_mapping[minikube]="mini" kubectx_mapping[context_name_from_kubeconfig]="$emoji[wolf_face]" kubectx_mapping[production_cluster]="%{$fg[yellow]%}prod!%{$reset_color%}" ``` -- cgit v1.2.3-70-g09d2 From a4e68967a472132b4ffb05fbd1c86ac88d27fe42 Mon Sep 17 00:00:00 2001 From: Joshua Bedford Date: Fri, 17 Sep 2021 16:36:27 -0500 Subject: feat(lando): add support for `php` command (#10146) Co-authored-by: Joshua Bedford --- plugins/lando/lando.plugin.zsh | 1 + 1 file changed, 1 insertion(+) (limited to 'plugins') diff --git a/plugins/lando/lando.plugin.zsh b/plugins/lando/lando.plugin.zsh index aa74c9924..af53e7e5a 100644 --- a/plugins/lando/lando.plugin.zsh +++ b/plugins/lando/lando.plugin.zsh @@ -8,6 +8,7 @@ function artisan \ drush \ gulp \ npm \ + php \ wp \ yarn { if checkForLandoFile; then -- cgit v1.2.3-70-g09d2 From f9d9d33ba42d3038a45c98d95343030f7ec39efa Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Mon, 20 Sep 2021 19:57:04 +0200 Subject: refactor(jsontools): restructure and simplify logic --- plugins/jsontools/jsontools.plugin.zsh | 61 ++++++++++++++++++++++------------ 1 file changed, 40 insertions(+), 21 deletions(-) (limited to 'plugins') diff --git a/plugins/jsontools/jsontools.plugin.zsh b/plugins/jsontools/jsontools.plugin.zsh index 912c83509..f92d336da 100644 --- a/plugins/jsontools/jsontools.plugin.zsh +++ b/plugins/jsontools/jsontools.plugin.zsh @@ -1,42 +1,61 @@ # JSON Tools # Adds command line aliases useful for dealing with JSON -if [[ $(whence $JSONTOOLS_METHOD) = "" ]]; then - JSONTOOLS_METHOD="" +# Check that user-defined method is installed +if [[ -n "$JSONTOOLS_METHOD" ]]; then + (( $+commands[$JSONTOOLS_METHOD] )) || unset JSONTOOLS_METHOD fi -if [[ $(whence node) != "" && ( "x$JSONTOOLS_METHOD" = "x" || "x$JSONTOOLS_METHOD" = "xnode" ) ]]; then - alias pp_json='xargs -0 node -e "console.log(JSON.stringify(JSON.parse(process.argv[1]), null, 4));"' - alias is_json='xargs -0 node -e "try {json = JSON.parse(process.argv[1]);} catch (e) { console.log(false); json = null; } if(json) { console.log(true); }"' - alias urlencode_json='xargs -0 node -e "console.log(encodeURIComponent(process.argv[1]))"' - alias urldecode_json='xargs -0 node -e "console.log(decodeURIComponent(process.argv[1]))"' -elif [[ $(whence python) != "" && ( "x$JSONTOOLS_METHOD" = "x" || "x$JSONTOOLS_METHOD" = "xpython" ) ]]; then - alias pp_json='python -c "import sys; del sys.path[0]; import runpy; runpy._run_module_as_main(\"json.tool\")"' - alias is_json='python -c " +# If method undefined, find the first one that is installed +if [[ ! -v JSONTOOLS_METHOD ]]; then + for JSONTOOLS_METHOD in node python ruby; do + # If method found, break out of loop + (( $+commands[$JSONTOOLS_METHOD] )) && break + # Otherwise unset the variable + unset JSONTOOLS_METHOD + done + + # If no methods were found, exit the plugin + [[ -v JSONTOOLS_METHOD ]] || return 1 +fi + +# Define json tools for each method +case "$JSONTOOLS_METHOD" in + node) + alias pp_json='xargs -0 node -e "console.log(JSON.stringify(JSON.parse(process.argv[1]), null, 4));"' + alias is_json='xargs -0 node -e "try {json = JSON.parse(process.argv[1]);} catch (e) { console.log(false); json = null; } if(json) { console.log(true); }"' + alias urlencode_json='xargs -0 node -e "console.log(encodeURIComponent(process.argv[1]))"' + alias urldecode_json='xargs -0 node -e "console.log(decodeURIComponent(process.argv[1]))"' + ;; + python) + alias pp_json='python -c "import sys; del sys.path[0]; import runpy; runpy._run_module_as_main(\"json.tool\")"' + alias is_json='python -c " import sys; del sys.path[0]; import json; try: - json.loads(sys.stdin.read()) + json.loads(sys.stdin.read()) except ValueError, e: - print False + print False else: - print True + print True sys.exit(0)"' - alias urlencode_json='python -c " + alias urlencode_json='python -c " import sys; del sys.path[0]; import urllib, json; print urllib.quote_plus(sys.stdin.read()) sys.exit(0)"' - alias urldecode_json='python -c " + alias urldecode_json='python -c " import sys; del sys.path[0]; import urllib, json; print urllib.unquote_plus(sys.stdin.read()) sys.exit(0)"' -elif [[ $(whence ruby) != "" && ( "x$JSONTOOLS_METHOD" = "x" || "x$JSONTOOLS_METHOD" = "xruby" ) ]]; then - alias pp_json='ruby -e "require \"json\"; require \"yaml\"; puts JSON.parse(STDIN.read).to_yaml"' - alias is_json='ruby -e "require \"json\"; begin; JSON.parse(STDIN.read); puts true; rescue Exception => e; puts false; end"' - alias urlencode_json='ruby -e "require \"uri\"; puts URI.escape(STDIN.read)"' - alias urldecode_json='ruby -e "require \"uri\"; puts URI.unescape(STDIN.read)"' -fi + ;; + ruby) + alias pp_json='ruby -e "require \"json\"; require \"yaml\"; puts JSON.parse(STDIN.read).to_yaml"' + alias is_json='ruby -e "require \"json\"; begin; JSON.parse(STDIN.read); puts true; rescue Exception => e; puts false; end"' + alias urlencode_json='ruby -e "require \"uri\"; puts URI.escape(STDIN.read)"' + alias urldecode_json='ruby -e "require \"uri\"; puts URI.unescape(STDIN.read)"' + ;; +esac unset JSONTOOLS_METHOD -- cgit v1.2.3-70-g09d2 From b5909396370db43ba1c6c2513b1745991e5f60d0 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Mon, 20 Sep 2021 19:58:34 +0200 Subject: refactor(jsontools): move to functions, align `is_json` tool to return exit code Also: - Fix Python code in accordance with Python 3 - Use CGI module in Ruby to encode/decode strings --- plugins/jsontools/jsontools.plugin.zsh | 96 +++++++++++++++++++++++++--------- 1 file changed, 70 insertions(+), 26 deletions(-) (limited to 'plugins') diff --git a/plugins/jsontools/jsontools.plugin.zsh b/plugins/jsontools/jsontools.plugin.zsh index f92d336da..b518288ad 100644 --- a/plugins/jsontools/jsontools.plugin.zsh +++ b/plugins/jsontools/jsontools.plugin.zsh @@ -22,39 +22,83 @@ fi # Define json tools for each method case "$JSONTOOLS_METHOD" in node) - alias pp_json='xargs -0 node -e "console.log(JSON.stringify(JSON.parse(process.argv[1]), null, 4));"' - alias is_json='xargs -0 node -e "try {json = JSON.parse(process.argv[1]);} catch (e) { console.log(false); json = null; } if(json) { console.log(true); }"' - alias urlencode_json='xargs -0 node -e "console.log(encodeURIComponent(process.argv[1]))"' - alias urldecode_json='xargs -0 node -e "console.log(decodeURIComponent(process.argv[1]))"' + # node doesn't make it easy to deal with stdin, so we pass it as an argument with xargs -0 + function pp_json() { + xargs -0 node -e 'console.log(JSON.stringify(JSON.parse(process.argv[1]), null, 4));' + } + function is_json() { + xargs -0 node -e ' + try { + json = JSON.parse(process.argv[1]); + console.log("true"); + process.exit(0); + } catch (e) { + console.log("false"); + process.exit(1); + } + ' + } + function urlencode_json() { + xargs -0 node -e "console.log(encodeURIComponent(process.argv[1]))" + } + function urldecode_json() { + xargs -0 node -e "console.log(decodeURIComponent(process.argv[1]))" + } ;; python) - alias pp_json='python -c "import sys; del sys.path[0]; import runpy; runpy._run_module_as_main(\"json.tool\")"' - alias is_json='python -c " + function pp_json() { + python -c 'import sys; del sys.path[0]; import runpy; runpy._run_module_as_main("json.tool")' + } + function is_json() { + python -c ' import sys; del sys.path[0]; -import json; -try: - json.loads(sys.stdin.read()) -except ValueError, e: - print False -else: - print True -sys.exit(0)"' - alias urlencode_json='python -c " +import json +try: + json.loads(sys.stdin.read()) + print("true"); sys.exit(0) +except ValueError: + print("false"); sys.exit(1) + ' + } + function urlencode_json() { + python -c ' import sys; del sys.path[0]; -import urllib, json; -print urllib.quote_plus(sys.stdin.read()) -sys.exit(0)"' - alias urldecode_json='python -c " +from urllib.parse import quote_plus +print(quote_plus(sys.stdin.read())) + ' + } + function urldecode_json() { + python -c ' import sys; del sys.path[0]; -import urllib, json; -print urllib.unquote_plus(sys.stdin.read()) -sys.exit(0)"' +from urllib.parse import unquote_plus +print(unquote_plus(sys.stdin.read())) + ' + } ;; ruby) - alias pp_json='ruby -e "require \"json\"; require \"yaml\"; puts JSON.parse(STDIN.read).to_yaml"' - alias is_json='ruby -e "require \"json\"; begin; JSON.parse(STDIN.read); puts true; rescue Exception => e; puts false; end"' - alias urlencode_json='ruby -e "require \"uri\"; puts URI.escape(STDIN.read)"' - alias urldecode_json='ruby -e "require \"uri\"; puts URI.unescape(STDIN.read)"' + function pp_json() { + ruby -e ' + require "json" + require "yaml" + puts JSON.parse(STDIN.read).to_yaml + ' + } + function is_json() { + ruby -e ' + require "json" + begin + puts !!JSON.parse(STDIN.read); exit(0) + rescue JSON::ParserError + puts false; exit(1) + end + ' + } + function urlencode_json() { + ruby -e 'require "cgi"; puts CGI.escape(STDIN.read)' + } + function urldecode_json() { + ruby -e 'require "cgi"; puts CGI.unescape(STDIN.read)' + } ;; esac -- cgit v1.2.3-70-g09d2 From 7ded6752fd34c513b0110b236c2ebd4fbbcd1a6f Mon Sep 17 00:00:00 2001 From: Eduardo Flores Date: Fri, 10 Sep 2021 17:52:00 -0500 Subject: feat(jsontools): add tools to pretty print json-lines (ndjson) (#10176) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Marc Cornellà --- plugins/jsontools/README.md | 47 ++++++++++++++++++++++++++++------ plugins/jsontools/jsontools.plugin.zsh | 10 +++++++- 2 files changed, 48 insertions(+), 9 deletions(-) (limited to 'plugins') diff --git a/plugins/jsontools/README.md b/plugins/jsontools/README.md index 1fa2b8eed..6a2740014 100644 --- a/plugins/jsontools/README.md +++ b/plugins/jsontools/README.md @@ -17,32 +17,63 @@ Usage is simple... just take your json data and pipe it into the appropriate jso - `urlencode_json`: returns a url encoded string for the given json. - `urldecode_json`: returns decoded json for the given url encoded string. +### Supports NDJSON (Newline Delimited JSON) + +The plugin also supports [NDJSON](http://ndjson.org/) input, which means all functions +have an alternative function that reads and processes the input line by line. These +functions have the same name except using `ndjson` instead of `json`: + +> `pp_ndjson`, `is_ndjson`, `urlencode_ndjson`, `urldecode_ndjson`. + ### Examples - **pp_json**: -```sh +```console # curl json data and pretty print the results curl https://coderwall.com/bobwilliams.json | pp_json ``` - **is_json**: -```sh -# Validate if file's content conforms to a valid JSON schema -less data.json | is_json +```console +# validate if file's content conforms to a valid JSON schema +$ is_json < data.json +true +# shows true / false and returns the proper exit code +$ echo $? +0 ``` - **urlencode_json**: -```sh +```console # json data directly from the command line -echo '{"b":2, "a":1}' | urlencode_json +$ echo '{"b":2, "a":1}' | urlencode_json +%7B%22b%22:2,%20%22a%22:1%7D ``` - **urldecode_json**: -```sh +```console # url encoded string to decode -echo '%7B%22b%22:2,%20%22a%22:1%7D%0A' | urldecode_json +$ echo '%7B%22b%22:2,%20%22a%22:1%7D' | urldecode_json +{"b":2, "a":1} +``` + +- **pp_ndjson**: + +```console +# echo two separate json objects and pretty print both +$ echo '{"a": "b"}\n{"c": [1,2,3]}' | pp_ndjson +{ + "a": "b" +} +{ + "c": [ + 1, + 2, + 3 + ] +} ``` diff --git a/plugins/jsontools/jsontools.plugin.zsh b/plugins/jsontools/jsontools.plugin.zsh index b518288ad..ed45cfa8e 100644 --- a/plugins/jsontools/jsontools.plugin.zsh +++ b/plugins/jsontools/jsontools.plugin.zsh @@ -101,5 +101,13 @@ print(unquote_plus(sys.stdin.read())) } ;; esac - unset JSONTOOLS_METHOD + +## Add NDJSON support + +function {pp,is,urlencode,urldecode}_ndjson() { + local json jsonfunc="${0//ndjson/json}" + while read -r json; do + $jsonfunc <<< "$json" + done +} -- cgit v1.2.3-70-g09d2 From 3e4b520190f1e4aaced9267bd5dcde59b3d0211f Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Wed, 22 Sep 2021 10:36:28 +0200 Subject: refactor(django)!: deprecate plugin in favor of Zsh's django completion BREAKING CHANGE: Zsh already provides completion for the `django-admin` and `manage.py` commands, which is substantially better than the one provided by this plugin. We're therefore deprecating this plugin and we will remove it in the near future. --- plugins/django/README.md | 38 +++++++------------------------------- plugins/django/django.plugin.zsh | 3 +++ 2 files changed, 10 insertions(+), 31 deletions(-) (limited to 'plugins') diff --git a/plugins/django/README.md b/plugins/django/README.md index 1740e55e5..cfab43980 100644 --- a/plugins/django/README.md +++ b/plugins/django/README.md @@ -1,36 +1,12 @@ # Django plugin -This plugin adds completion and hints for the [Django Project](https://www.djangoproject.com/) `manage.py` commands -and options. +This plugin adds completion for the [Django Project](https://www.djangoproject.com/) commands +(`manage.py`, `django-admin`, ...). -To use it, add `django` to the plugins array in your zshrc file: +## Deprecation (2021-09-22) -```zsh -plugins=(... django) -``` +The plugin used to provide completion for `./manage.py` and `django-admin`, but Zsh already provides +a better, more extensive completion for those, so this plugin is no longer needed. -## Usage - -```zsh -$> python manage.py (press here) -``` - -Would result in: - -```zsh -cleanup -- remove old data from the database -compilemessages -- compile .po files to .mo for use with gettext -createcachetable -- creates table for SQL cache backend -createsuperuser -- create a superuser -dbshell -- run command-line client for the current database -diffsettings -- display differences between the current settings and Django defaults -dumpdata -- output contents of database as a fixture -flush -- execute 'sqlflush' on the current database -inspectdb -- output Django model module for tables in database -loaddata -- install the named fixture(s) in the database -makemessages -- pull out all strings marked for translation -reset -- executes 'sqlreset' for the given app(s) -runfcgi -- run this project as a fastcgi -runserver -- start a lightweight web server for development -... -``` +Right now a warning message is shown, but in the near future the plugin will stop working altogether. +So you can remove it from your plugins and you'll automatically start using Zsh's django completion. diff --git a/plugins/django/django.plugin.zsh b/plugins/django/django.plugin.zsh index c2d00c171..a07a30889 100644 --- a/plugins/django/django.plugin.zsh +++ b/plugins/django/django.plugin.zsh @@ -402,3 +402,6 @@ compdef _managepy django compdef _managepy django-admin compdef _managepy django-admin.py compdef _managepy django-manage + +print -P "%F{yellow}The django plugin is deprecated in favor of Zsh's Django completion. +%BPlease remove it from your plugins to stop using it.%b%f" -- cgit v1.2.3-70-g09d2 From 5b3d2b2f0c02ef059fcbcbdb619b22318b8cc13a Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Wed, 22 Sep 2021 11:58:23 +0200 Subject: Revert "feat(archlinux): add cleanup aliases to `yaourt` and `yay` (#10184)" This reverts commit eba3be243f634a80ae8d8134bf88657afda71fbb. --- plugins/archlinux/README.md | 4 ---- plugins/archlinux/archlinux.plugin.zsh | 4 ---- 2 files changed, 8 deletions(-) (limited to 'plugins') diff --git a/plugins/archlinux/README.md b/plugins/archlinux/README.md index d4706e220..d6b41ee40 100644 --- a/plugins/archlinux/README.md +++ b/plugins/archlinux/README.md @@ -143,8 +143,6 @@ upgrades were available. Use `pacman -Que` instead. | yaupd | `yaourt -Sy` | Update and refresh local package, ABS and AUR databases | | yaupg | `yaourt -Syua` | Sync with repositories before upgrading all packages (from AUR too) | | yasu | `yaourt -Syua --no-confirm` | Same as `yaupg`, but without confirmation | -| yaclun | `yaourt -Yc` | Remove unneeded installed packages | -| yaclf | `yaourt -Scc` | Remove cache directories | | upgrade[²](#f2) | `yaourt -Syu` | Sync with repositories before upgrading packages | #### Yay[¹](#f1) @@ -167,8 +165,6 @@ upgrades were available. Use `pacman -Que` instead. | yaupd | `yay -Sy` | Update and refresh local package, ABS and AUR databases | | yaupg | `yay -Syu` | Sync with repositories before upgrading packages | | yasu | `yay -Syu --no-confirm` | Same as `yaupg`, but without confirmation | -| yaclun | `yay -Yc` | Remove unneeded installed packages | -| yaclf | `yay -Scc` | Remove cache directories | | upgrade[²](#f2) | `yay -Syu` | Sync with repositories before upgrading packages | --- diff --git a/plugins/archlinux/archlinux.plugin.zsh b/plugins/archlinux/archlinux.plugin.zsh index d34a4cd96..c94fb8f6c 100644 --- a/plugins/archlinux/archlinux.plugin.zsh +++ b/plugins/archlinux/archlinux.plugin.zsh @@ -170,8 +170,6 @@ if (( $+commands[yaourt] )); then alias yainsd='yaourt -S --asdeps' alias yamir='yaourt -Syy' alias yaupd="yaourt -Sy" - alias yaclun='yaourt -Yc' - alias yaclf='yaourt -Scc' alias upgrade='yaourt -Syu' fi @@ -192,8 +190,6 @@ if (( $+commands[yay] )); then alias yainsd='yay -S --asdeps' alias yamir='yay -Syy' alias yaupd="yay -Sy" - alias yaclun='yay -Yc' - alias yaclf='yay -Scc' alias upgrade='yay -Syu' fi -- cgit v1.2.3-70-g09d2 From d87f29f564286c4a233e454d8208b83b97b1366d Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Thu, 23 Sep 2021 12:33:37 +0200 Subject: refactor(vim-interaction): clean up code and open gvim instance if none open (#10209) Co-authored-by: Kevin Bader --- plugins/vim-interaction/vim-interaction.plugin.zsh | 48 ++++++++++++---------- 1 file changed, 27 insertions(+), 21 deletions(-) (limited to 'plugins') diff --git a/plugins/vim-interaction/vim-interaction.plugin.zsh b/plugins/vim-interaction/vim-interaction.plugin.zsh index 53ec453e8..b73f9b4da 100644 --- a/plugins/vim-interaction/vim-interaction.plugin.zsh +++ b/plugins/vim-interaction/vim-interaction.plugin.zsh @@ -4,8 +4,7 @@ # Derek Wyatt (derek@{myfirstnamemylastname}.org # -function callvim -{ +function callvim { if [[ $# == 0 ]]; then cat <} == $after ]]; then - after="$after" - fi - if [[ ${before#:} != $before && ${before%} == $before ]]; then - before="$before" - fi - local files - if [[ $# -gt 0 ]]; then - # absolute path of files resolving symlinks (:A) and quoting special chars (:q) - files=':args! '"${@:A:q}" - fi + + # If before or after commands begin with : and don't end with , append it + [[ ${after} = :* && ${after} != *\ ]] && after+="" + [[ ${before} = :* && ${before} != *\ ]] && before+="" + # Open files passed (:A means abs path resolving symlinks, :q means quoting special chars) + [[ $# -gt 0 ]] && files=':args! '"${@:A:q}" + # Pass the built vim command to gvim cmd="$before$files$after" - gvim --servername "$name" --remote-send "$cmd" - if typeset -f postCallVim > /dev/null; then - postCallVim - fi + + # Run the gvim command + gvim --servername "$name" --remote-send "$cmd" || return $? + + # Run postCallVim if defined (maybe to bring focus to gvim, see README) + (( ! $+functions[postCallVim] )) || postCallVim } alias v=callvim -- cgit v1.2.3-70-g09d2 From 93ad3a88214b95f571e03c21f7d9bd76f9110938 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Mon, 27 Sep 2021 11:46:42 +0200 Subject: docs(vi-mode): document `$KEYTIMEOUT` issue (#9588) Closes #9588 --- plugins/vi-mode/README.md | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'plugins') diff --git a/plugins/vi-mode/README.md b/plugins/vi-mode/README.md index b59d5f279..46bb6d070 100644 --- a/plugins/vi-mode/README.md +++ b/plugins/vi-mode/README.md @@ -64,7 +64,7 @@ NOTE: some of these key bindings are set by zsh by default when using a vi-mode - `vv` : Edit current command line in Vim -NOTE: this used to be bound to `v`. That is now the default (`visual-mode`) +NOTE: this used to be bound to `v`. That is now the default (`visual-mode`). ### Movement @@ -107,3 +107,21 @@ NOTE: this used to be bound to `v`. That is now the default (`visual-mode`) - `R` : Enter replace mode: Each character replaces existing one - `x` : Delete `count` characters under and after the cursor - `X` : Delete `count` characters before the cursor + +## Known issues + +### Low `$KEYTIMEOUT` + +A low `$KEYTIMEOUT` value (< 15) means that key bindings that need multiple characters, +like `vv`, will be very difficult to trigger. `$KEYTIMEOUT` controls the number of +milliseconds that must pass before a key press is read and the appropriate key binding +is triggered. For multi-character key bindings, the key presses need to happen before +the timeout is reached, so on low timeouts the key press happens too slow, and therefore +another key binding is triggered. + +We recommend either setting `$KEYTIMEOUT` to a higher value, or remapping the key bindings +that you want to trigger to a keyboard sequence. For example: + +```zsh +bindkey -M vicmd 'V' edit-command-line # this remaps `vv` to `V` (but overrides `visual-mode`) +``` -- cgit v1.2.3-70-g09d2