From 631a8473e2f3f20e1414dff4e409fe07cbb41aea Mon Sep 17 00:00:00 2001
From: Toon Claes <toon@tonotdo.com>
Date: Tue, 5 Feb 2013 09:45:00 +0100
Subject: added pj.plugin

---
 plugins/pj/pj.plugin.zsh | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)
 create mode 100644 plugins/pj/pj.plugin.zsh

(limited to 'plugins/pj/pj.plugin.zsh')

diff --git a/plugins/pj/pj.plugin.zsh b/plugins/pj/pj.plugin.zsh
new file mode 100644
index 000000000..ba3765b83
--- /dev/null
+++ b/plugins/pj/pj.plugin.zsh
@@ -0,0 +1,42 @@
+#!/bin/zsh
+
+#
+# Original idea by DefV (Jan De Poorter)
+# Source: https://gist.github.com/pjaspers/368394#comment-1016
+#
+# Usage:
+#  - Set `$PROJECT_PATHS` in your ~/.zshrc
+#    e.g.: PROJECT_PATHS=(~/src ~/work)
+#  - In ZSH you now can open a project directory with the command: `pj my-project`
+#    the plugin will locate the `my-project` directory in one of the $PROJECT_PATHS
+#    Also tab completion is supported.
+#  - `pjo my-project` will open the directory in $EDITOR
+# 
+
+function pj() {
+    cmd="cd"
+    file=$1
+
+    if [[ "open" == "$file" ]] then
+        file=$2
+        cmd=(${(s: :)EDITOR})
+    fi
+
+    for project in $PROJECT_PATHS; do
+        if [[ -d $project/$file ]] then
+            $cmd "$project/$file"
+            unset project # Unset project var
+            return
+        fi
+    done
+
+    echo "No such project $1"
+}
+
+alias pjo="pj open"
+
+function _pj () {
+    compadd `/bin/ls -l $PROJECT_PATHS 2>/dev/null | awk '{ print $9 }'`
+}
+
+compdef _pj pj
-- 
cgit v1.2.3-70-g09d2