|
@@ -1,123 +1,54 @@
|
|
|
-fpath=($rvm_path/scripts/zsh/Completion $fpath)
|
|
|
+# Completion
|
|
|
+fpath+=("${rvm_path}/scripts/zsh/Completion")
|
|
|
|
|
|
+declare -A _comps
|
|
|
+autoload -Uz _rvm
|
|
|
+_comps[rvm]=_rvm
|
|
|
+
|
|
|
+# Aliases
|
|
|
alias rubies='rvm list rubies'
|
|
|
alias rvms='rvm gemset'
|
|
|
alias gemsets='rvms list'
|
|
|
|
|
|
-local ruby18='ruby-1.8.7'
|
|
|
-local ruby19='ruby-1.9.3'
|
|
|
-local ruby20='ruby-2.0.0'
|
|
|
-local ruby21='ruby-2.1.2'
|
|
|
-local ruby25='ruby-2.5.9'
|
|
|
-local ruby26='ruby-2.6.7'
|
|
|
-local ruby27='ruby-2.7.3'
|
|
|
-local ruby30='ruby-3.0.1'
|
|
|
-
|
|
|
-function rb18 {
|
|
|
- if [ -z "$1" ]; then
|
|
|
- rvm use "$ruby18"
|
|
|
- else
|
|
|
- rvm use "$ruby18@$1"
|
|
|
- fi
|
|
|
-}
|
|
|
|
|
|
-_rb18() {compadd `ls -1 $rvm_path/gems | grep "^$ruby18@" | sed -e "s/^$ruby18@//" | awk '{print $1}'`}
|
|
|
-compdef _rb18 rb18
|
|
|
+# rb{version} utilities
|
|
|
+# From `rvm list known`
|
|
|
+typeset -A rubies
|
|
|
+rubies=(
|
|
|
+ 18 'ruby-1.8.7'
|
|
|
+ 19 'ruby-1.9.3'
|
|
|
+ 20 'ruby-2.0.0'
|
|
|
+ 21 'ruby-2.1'
|
|
|
+ 22 'ruby-2.2'
|
|
|
+ 23 'ruby-2.3'
|
|
|
+ 24 'ruby-2.4'
|
|
|
+ 25 'ruby-2.5'
|
|
|
+ 26 'ruby-2.6'
|
|
|
+ 27 'ruby-2.7'
|
|
|
+ 30 'ruby-3.0'
|
|
|
+)
|
|
|
+
|
|
|
+for v in ${(k)rubies}; do
|
|
|
+ version="${rubies[$v]}"
|
|
|
+ functions[rb${v}]="rvm use ${version}\${1+"@\$1"}"
|
|
|
+ functions[_rb${v}]="compadd \$(ls -1 \"\${rvm_path}/gems\" | grep '^${version}@' | sed -e 's/^${version}@//' | awk '{print $1}')"
|
|
|
+ compdef _rb$v rb$v
|
|
|
+done
|
|
|
+unset rubies v version
|
|
|
|
|
|
-function rb19 {
|
|
|
- if [ -z "$1" ]; then
|
|
|
- rvm use "$ruby19"
|
|
|
- else
|
|
|
- rvm use "$ruby19@$1"
|
|
|
- fi
|
|
|
-}
|
|
|
-
|
|
|
-_rb19() {compadd `ls -1 $rvm_path/gems | grep "^$ruby19@" | sed -e "s/^$ruby19@//" | awk '{print $1}'`}
|
|
|
-compdef _rb19 rb19
|
|
|
-
|
|
|
-function rb20 {
|
|
|
- if [ -z "$1" ]; then
|
|
|
- rvm use "$ruby20"
|
|
|
- else
|
|
|
- rvm use "$ruby20@$1"
|
|
|
- fi
|
|
|
-}
|
|
|
-
|
|
|
-_rb20() {compadd `ls -1 $rvm_path/gems | grep "^$ruby20@" | sed -e "s/^$ruby20@//" | awk '{print $1}'`}
|
|
|
-compdef _rb20 rb20
|
|
|
-
|
|
|
-function rb21 {
|
|
|
- if [ -z "$1" ]; then
|
|
|
- rvm use "$ruby21"
|
|
|
- else
|
|
|
- rvm use "$ruby21@$1"
|
|
|
- fi
|
|
|
-}
|
|
|
-
|
|
|
-_rb21() {compadd `ls -1 $rvm_path/gems | grep "^$ruby21@" | sed -e "s/^$ruby21@//" | awk '{print $1}'`}
|
|
|
-compdef _rb21 rb21
|
|
|
-
|
|
|
-function rb25 {
|
|
|
- if [ -z "$1" ]; then
|
|
|
- rvm use "$ruby25"
|
|
|
- else
|
|
|
- rvm use "$ruby25@$1"
|
|
|
- fi
|
|
|
-}
|
|
|
-
|
|
|
-_rb25() {compadd `ls -1 $rvm_path/gems | grep "^$ruby25@" | sed -e "s/^$ruby25@//" | awk '{print $1}'`}
|
|
|
-compdef _rb25 rb25
|
|
|
-
|
|
|
-function rb26 {
|
|
|
- if [ -z "$1" ]; then
|
|
|
- rvm use "$ruby26"
|
|
|
- else
|
|
|
- rvm use "$ruby26@$1"
|
|
|
- fi
|
|
|
-}
|
|
|
-
|
|
|
-_rb26() {compadd `ls -1 $rvm_path/gems | grep "^$ruby26@" | sed -e "s/^$ruby26@//" | awk '{print $1}'`}
|
|
|
-compdef _rb26 rb26
|
|
|
-
|
|
|
-function rb27 {
|
|
|
- if [ -z "$1" ]; then
|
|
|
- rvm use "$ruby27"
|
|
|
- else
|
|
|
- rvm use "$ruby27@$1"
|
|
|
- fi
|
|
|
-}
|
|
|
-
|
|
|
-_rb27() {compadd `ls -1 $rvm_path/gems | grep "^$ruby27@" | sed -e "s/^$ruby27@//" | awk '{print $1}'`}
|
|
|
-compdef _rb27 rb27
|
|
|
-
|
|
|
-function rb30 {
|
|
|
- if [ -z "$1" ]; then
|
|
|
- rvm use "$ruby30"
|
|
|
- else
|
|
|
- rvm use "$ruby30@$1"
|
|
|
- fi
|
|
|
-}
|
|
|
-
|
|
|
-_rb30() {compadd `ls -1 $rvm_path/gems | grep "^$ruby30@" | sed -e "s/^$ruby30@//" | awk '{print $1}'`}
|
|
|
-compdef _rb30 rb30
|
|
|
|
|
|
function rvm-update {
|
|
|
- rvm get head
|
|
|
+ rvm get head
|
|
|
}
|
|
|
|
|
|
# TODO: Make this usable w/o rvm.
|
|
|
function gems {
|
|
|
- local current_ruby=`rvm-prompt i v p`
|
|
|
- local current_gemset=`rvm-prompt g`
|
|
|
-
|
|
|
- gem list $@ | sed -E \
|
|
|
- -e "s/\([0-9, \.]+( .+)?\)/$fg[blue]&$reset_color/g" \
|
|
|
- -e "s|$(echo $rvm_path)|$fg[magenta]\$rvm_path$reset_color|g" \
|
|
|
- -e "s/$current_ruby@global/$fg[yellow]&$reset_color/g" \
|
|
|
- -e "s/$current_ruby$current_gemset$/$fg[green]&$reset_color/g"
|
|
|
-}
|
|
|
+ local current_ruby=`rvm-prompt i v p`
|
|
|
+ local current_gemset=`rvm-prompt g`
|
|
|
|
|
|
-function _rvm_completion {
|
|
|
- source $rvm_path"/scripts/zsh/Completion/_rvm"
|
|
|
+ gem list $@ | sed -E \
|
|
|
+ -e "s/\([0-9, \.]+( .+)?\)/$fg[blue]&$reset_color/g" \
|
|
|
+ -e "s|$(echo $rvm_path)|$fg[magenta]\$rvm_path$reset_color|g" \
|
|
|
+ -e "s/$current_ruby@global/$fg[yellow]&$reset_color/g" \
|
|
|
+ -e "s/$current_ruby$current_gemset$/$fg[green]&$reset_color/g"
|
|
|
}
|
|
|
-compdef _rvm_completion rvm
|