X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=.bashrc;h=18c00e23b1d2d2f002e96beaf8b1753add70e61a;hb=e7e38d09468bc1f412dade47dff41e3facb26580;hp=ef3423fc6ac7a262add2802dc18179e36ea9fbc8;hpb=2c9e8b23a92508c4fe13c9b43eae6274786f5aa9;p=dotfiles.git diff --git a/.bashrc b/.bashrc index ef3423f..18c00e2 100644 --- a/.bashrc +++ b/.bashrc @@ -196,26 +196,6 @@ trap '[ "$VIRTUAL_ENV" ] && deactivate' EXIT if test -x /usr/bin/git >/dev/null 2>&1; then - # chdir to a directory - cdgitpath() { - if [ $# -ne 1 ]; then - echo "Usage: cdgitpath path_key" >&2 - return 1 - fi - - path_key="$1" - if [ -z "$path_key" ]; then - echo "Usage: cdgitpath path_key" >&2 - return 1 - fi - - path_url="`git config --get --path $path_key`" - if echo "$path_url" | grep -q '^file:/'; then - path_url="`echo \"$path_url\" | sed 's@^file:/\+@/@'`" - fi - cd "$path_url" - } - # chdir to a remote's directory (if the remote is on the local FS) cdremote() { if [ $# -gt 1 ]; then @@ -255,6 +235,24 @@ if test -x /usr/bin/git >/dev/null 2>&1; then fi } + # completion for `cd_worktree` + + _cd_worktree_comp() { + local cur="${COMP_WORDS[COMP_CWORD]}" + COMPREPLY=(`compgen -W "$( + git worktree list | awk '{s=$3; gsub("[\\\\[\\\\]]", "", s); print s}' + )" -- "$cur"`) + } + + _cd_worktree_comp_loader() { + _completion_loader git + unset _cd_worktree_comp_loader + complete -F _cd_worktree_comp cd_worktree + return 124 + } + + complete -F _cd_worktree_comp_loader cd_worktree + # completion for aliases in global .gitconfig # fixup rbi rbia rbiap rbip - do refs name completion