summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorMarc Cornellà <marc.cornella@live.com>2016-08-11 01:33:36 +0200
committerMarc Cornellà <marc.cornella@live.com>2016-08-16 08:32:43 +0200
commit7f8851f52f9ebb03bc5be0246ee2b591196bdd16 (patch)
treeabcd326c766bd14d9a3e36cd0be6dac766659de2 /plugins
parentc9c11d605f28c0a93ad34ba2a40120ea6e0f9dc0 (diff)
downloadzsh-7f8851f52f9ebb03bc5be0246ee2b591196bdd16.tar.gz
zsh-7f8851f52f9ebb03bc5be0246ee2b591196bdd16.tar.bz2
zsh-7f8851f52f9ebb03bc5be0246ee2b591196bdd16.zip
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`.
Diffstat (limited to 'plugins')
-rw-r--r--plugins/pj/pj.plugin.zsh26
1 files changed, 14 insertions, 12 deletions
diff --git a/plugins/pj/pj.plugin.zsh b/plugins/pj/pj.plugin.zsh
index 1d89af00b..f9d7f8e27 100644
--- a/plugins/pj/pj.plugin.zsh
+++ b/plugins/pj/pj.plugin.zsh
@@ -1,29 +1,31 @@
alias pjo="pj open"
-function pj () {
+pj () {
+ emulate -L zsh
+ setopt shwordsplit
+
cmd="cd"
- file=$1
+ project=$1
- if [[ "open" == "$file" ]] then
+ if [[ "open" == "$project" ]]; then
shift
- file=$*
- cmd=(${(s: :)EDITOR})
+ project=$*
+ cmd=$EDITOR
else
- file=$*
+ project=$*
fi
- for project in $PROJECT_PATHS; do
- if [[ -d $project/$file ]] then
- $cmd "$project/$file"
- unset project # Unset project var
+ for basedir ($PROJECT_PATHS); do
+ if [[ -d "$basedir/$project" ]]; then
+ $cmd "$basedir/$project"
return
fi
done
- echo "No such project $1"
+ echo "No such project '${project}'."
}
-function _pj () {
+_pj () {
emulate -L zsh
typeset -a projects