oh-my-zsh/plugins/pj/pj.plugin.zsh
Marc Cornellà 7f8851f52f Refactor pj function
- Use `emulate -L zsh` to make all variables local.

- Use `shwordsplit` to interpret `$cmd` spaces correctly.

- Rename `$project` and `$file` variables to the more appropriate `$basedir`
  and `$project`.
2016-08-16 08:32:43 +02:00

39 lines
614 B
Bash

alias pjo="pj open"
pj () {
emulate -L zsh
setopt shwordsplit
cmd="cd"
project=$1
if [[ "open" == "$project" ]]; then
shift
project=$*
cmd=$EDITOR
else
project=$*
fi
for basedir ($PROJECT_PATHS); do
if [[ -d "$basedir/$project" ]]; then
$cmd "$basedir/$project"
return
fi
done
echo "No such project '${project}'."
}
_pj () {
emulate -L zsh
typeset -a projects
for basedir ($PROJECT_PATHS); do
projects+=(${basedir}/*(/N))
done
compadd ${projects:t}
}
compdef _pj pj