Parent directory

pj.plugin.zsh

511 bytes
 1alias pjo="pj open"
 2
 3function pj() {
 4  local cmd="cd"
 5  local project="$1"
 6
 7  if [[ "open" == "$project" ]]; then
 8    shift
 9    project=$*
10    cmd=${=EDITOR}
11  else
12    project=$*
13  fi
14
15  for basedir ($PROJECT_PATHS); do
16    if [[ -d "$basedir/$project" ]]; then
17      $cmd "$basedir/$project"
18      return
19    fi
20  done
21
22  echo "No such project '${project}'."
23}
24
25_pj () {
26  local -a projects
27  for basedir ($PROJECT_PATHS); do
28    projects+=(${basedir}/*(/N))
29  done
30
31  compadd ${projects:t}
32}
33
34compdef _pj pj