From f71d76990a8a751dafb25536f43a1423b67c078d Mon Sep 17 00:00:00 2001 From: Gurkirat Singh Date: Sun, 10 Jan 2021 19:18:41 +0530 Subject: [PATCH] formatted apm completion and used helper function --- completion/available/apm.completion.bash | 105 ++++++++++++----------- 1 file changed, 55 insertions(+), 50 deletions(-) diff --git a/completion/available/apm.completion.bash b/completion/available/apm.completion.bash index c9940743..4364de69 100644 --- a/completion/available/apm.completion.bash +++ b/completion/available/apm.completion.bash @@ -24,54 +24,59 @@ # repo: https://github.com/vigo/apm-bash-completion -__apm(){ - local cur prev options apm_command - COMPREPLY=() - cur="${COMP_WORDS[COMP_CWORD]}" - prev="${COMP_WORDS[COMP_CWORD-1]}" - __apm_get_command - if [[ $cur = -* ]]; then - options="--color" - if [[ -z $apm_command ]]; then - options="$options --version --help" +if _command_exists apm +then + function __apm(){ + local cur prev options apm_command + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + __apm_get_command + if [[ $cur = -* ]]; then + options="--color" + if [[ -z $apm_command ]]; then + options="$options --version --help" + fi + if [[ $apm_command && $apm_command = publish ]]; then + options="--tag --rename" + fi + else + if [[ -z $apm_command || $apm_command = help ]]; then + options="help clean config dedupe deinstall delete dev develop docs erase featured home init install link linked links list ln lns login ls open outdated publish rebuild rebuild-module-cache remove rm search show star starred stars test uninstall unlink unpublish unstar update upgrade view" + fi + if [[ $apm_command && $apm_command = publish ]]; then + options="major minor patch build" + fi + if [[ $apm_command && $apm_command = config ]]; then + options="set get delete list edit" + fi fi - if [[ $apm_command && $apm_command = publish ]]; then - options="--tag --rename" - fi - else - if [[ -z $apm_command || $apm_command = help ]]; then - options="help clean config dedupe deinstall delete dev develop docs erase featured home init install link linked links list ln lns login ls open outdated publish rebuild rebuild-module-cache remove rm search show star starred stars test uninstall unlink unpublish unstar update upgrade view" - fi - if [[ $apm_command && $apm_command = publish ]]; then - options="major minor patch build" - fi - if [[ $apm_command && $apm_command = config ]]; then - options="set get delete list edit" - fi - fi - COMPREPLY=($(compgen -W "$options" -- "$cur")) -} -__apm_get_command() { - local i - for ((i=1; i < $COMP_CWORD; ++i)); do - local arg=${COMP_WORDS[$i]} - case $arg in - [^-]*) - apm_command=$arg - return;; - --version) - apm_command=- - return;; - --help) - apm_command=help - return;; - publish) - apm_command=publish - return;; - config) - apm_command=config - return;; - esac - done -} -complete -F __apm -o bashdefault -o default apm + COMPREPLY=($(compgen -W "$options" -- "$cur")) + } + + function __apm_get_command() { + local i + for ((i=1; i < $COMP_CWORD; ++i)); do + local arg=${COMP_WORDS[$i]} + case $arg in + [^-]*) + apm_command=$arg + return;; + --version) + apm_command=- + return;; + --help) + apm_command=help + return;; + publish) + apm_command=publish + return;; + config) + apm_command=config + return;; + esac + done + } + + complete -F __apm -o bashdefault -o default apm +fi