diff options
author | Marc Cornellà <marc.cornella@live.com> | 2016-08-11 01:33:36 +0200 |
---|---|---|
committer | Marc Cornellà <marc.cornella@live.com> | 2016-08-16 08:32:43 +0200 |
commit | 7f8851f52f9ebb03bc5be0246ee2b591196bdd16 (patch) | |
tree | abcd326c766bd14d9a3e36cd0be6dac766659de2 /plugins | |
parent | c9c11d605f28c0a93ad34ba2a40120ea6e0f9dc0 (diff) | |
download | zsh-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.zsh | 26 |
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 |