7f8851f52f9ebb03bc5be0246ee2b591196bdd16

Author
Marc Cornellà <marc.cornella@live.com>
Committer
Marc Cornellà <marc.cornella@live.com>
Date

Message

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`.

Diff

 1diff --git a/plugins/pj/pj.plugin.zsh b/plugins/pj/pj.plugin.zsh
 2index 1d89af00b772c7c206a413cf50c22a94668f3465..f9d7f8e276c5990420cc367184afe1946fb01ed7 100644
 3--- a/plugins/pj/pj.plugin.zsh
 4+++ b/plugins/pj/pj.plugin.zsh
 5@@ -1,29 +1,31 @@
 6 alias pjo="pj open"
 7 
 8-function pj () {
 9+pj () {
10+    emulate -L zsh
11+    setopt shwordsplit
12+
13     cmd="cd"
14-    file=$1
15+    project=$1
16 
17-    if [[ "open" == "$file" ]] then
18+    if [[ "open" == "$project" ]]; then
19         shift
20-        file=$*
21-        cmd=(${(s: :)EDITOR})
22+        project=$*
23+        cmd=$EDITOR
24     else
25-        file=$*
26+        project=$*
27     fi
28 
29-    for project in $PROJECT_PATHS; do
30-        if [[ -d $project/$file ]] then
31-            $cmd "$project/$file"
32-            unset project # Unset project var
33+    for basedir ($PROJECT_PATHS); do
34+        if [[ -d "$basedir/$project" ]]; then
35+            $cmd "$basedir/$project"
36             return
37         fi
38     done
39 
40-    echo "No such project $1"
41+    echo "No such project '${project}'."
42 }
43 
44-function _pj () {
45+_pj () {
46     emulate -L zsh
47 
48     typeset -a projects