summaryrefslogtreecommitdiff
path: root/plugins/pj
diff options
context:
space:
mode:
authorTuowen Zhao <ztuowen@gmail.com>2022-02-19 17:12:23 -0600
committerTuowen Zhao <ztuowen@gmail.com>2022-02-19 17:12:23 -0600
commitcae9a2b797649379e865e6bd73bc67e294e4ac77 (patch)
tree481419eff4bc761c3ca516704427394193473419 /plugins/pj
parent49edbf438ed690c76e6b2af80368c59404cf0167 (diff)
parent3427da4057dbe302933a7b5b19b4e23bfb9d0969 (diff)
downloadzsh-cae9a2b797649379e865e6bd73bc67e294e4ac77.tar.gz
zsh-cae9a2b797649379e865e6bd73bc67e294e4ac77.tar.bz2
zsh-cae9a2b797649379e865e6bd73bc67e294e4ac77.zip
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'plugins/pj')
-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