diff --git a/modules/pj/init.zsh b/modules/pj/init.zsh index 5ac03b82..54ea953b 100755 --- a/modules/pj/init.zsh +++ b/modules/pj/init.zsh @@ -14,38 +14,35 @@ # function pj() { - cmd="cd" - file=$1 - - if [[ "open" == "$file" ]] then - shift - file=$* - cmd=(${(s: :)EDITOR}) - else - file=$* + cmd="cd" + file=$1 + + if [[ "open" == "$file" ]] then + shift + file=$* + cmd=(${(s: :)EDITOR}) + else + file=$* + fi + + for project in $PROJECT_PATHS; do + if [[ -d $project/$file ]] then + $cmd "$project/$file" + unset project # Unset project var + return fi - - for project in $PROJECT_PATHS; do - if [[ -d $project/$file ]] then - $cmd "$project/$file" - unset project # Unset project var - return - fi - done - - echo "No such project $1" - + done + echo "No such project $1" } alias pjo="pj open" function _pj () { - # might be possible to improve this using glob, without the basename trick - typeset -a projects - projects=($PROJECT_PATHS/*) - projects=$projects:t - _arguments '*:file:($projects)' - + # might be possible to improve this using glob, without the basename trick + typeset -a projects + projects=($PROJECT_PATHS/*) + projects=$projects:t + _arguments '*:file:($projects)' } compdef _pj pj