summaryrefslogtreecommitdiff
path: root/plugins/pj/pj.plugin.zsh
blob: 431576f4bad0d5d7ac7476789f8ba9ff63ea51eb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
alias pjo="pj open"

function pj() {
  local cmd="cd"
  local 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 () {
  local -a projects
  for basedir ($PROJECT_PATHS); do
    projects+=(${basedir}/*(/N))
  done

  compadd ${projects:t}
}

compdef _pj pj