summaryrefslogtreecommitdiff
path: root/plugins/pj/pj.plugin.zsh
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/pj/pj.plugin.zsh')
-rw-r--r--plugins/pj/pj.plugin.zsh51
1 files changed, 24 insertions, 27 deletions
diff --git a/plugins/pj/pj.plugin.zsh b/plugins/pj/pj.plugin.zsh
index e36d49204..431576f4b 100644
--- a/plugins/pj/pj.plugin.zsh
+++ b/plugins/pj/pj.plugin.zsh
@@ -1,37 +1,34 @@
alias pjo="pj open"
-pj () {
- emulate -L zsh
-
- cmd="cd"
- project=$1
-
- if [[ "open" == "$project" ]]; then
- shift
- project=$*
- cmd=${=EDITOR}
- else
- project=$*
+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
- for basedir ($PROJECT_PATHS); do
- if [[ -d "$basedir/$project" ]]; then
- $cmd "$basedir/$project"
- return
- fi
- done
-
- echo "No such project '${project}'."
+ echo "No such project '${project}'."
}
_pj () {
- emulate -L zsh
+ local -a projects
+ for basedir ($PROJECT_PATHS); do
+ projects+=(${basedir}/*(/N))
+ done
- typeset -a projects
- for basedir ($PROJECT_PATHS); do
- projects+=(${basedir}/*(/N))
- done
-
- compadd ${projects:t}
+ compadd ${projects:t}
}
+
compdef _pj pj