diff --git a/.project b/.project
new file mode 100644
index 000000000..574956435
--- /dev/null
+++ b/.project
@@ -0,0 +1,12 @@
+
+
+ oh-my-zsh
+
+
+
+
+
+
+ com.aptana.projects.webnature
+
+
diff --git a/completions/_blop b/completions/_blop
new file mode 100644
index 000000000..046672a69
--- /dev/null
+++ b/completions/_blop
@@ -0,0 +1,5 @@
+#compdef blop
+
+
+_arguments "1: :(World)"
+
diff --git a/plugins/buildbot/_buildbot b/plugins/buildbot/_buildbot
new file mode 100644
index 000000000..7e628eeb1
--- /dev/null
+++ b/plugins/buildbot/_buildbot
@@ -0,0 +1,51 @@
+#compdef buildbot
+
+_buildbot()
+{
+ typeset -A opt_args
+ local context state line curcontext="$curcontext"
+
+ local ret=1
+
+ _arguments -C \
+ '(- 1 *)--help[show usage]'\
+ '(- 1 *)--version[display version]'\
+ '(- 1 *)--verbose[verbose output]'\
+ '1:command:->command'\
+ '*::args:->args' && ret=0
+
+ case $state in
+ (command)
+ local commands;
+ commands=(
+ 'create-master:Create and populate a directory for a new buildmaster'
+ 'upgrade-master:Upgrade an existing buildmaster directory for the current version'
+ 'start:Start a buildmaster'
+ 'stop:Stop a buildmaster'
+ 'restart:Restart a buildmaster'
+ 'reconfig:SIGHUP a buildmaster to make it re-read the config file'
+ 'sighup:SIGHUP a buildmaster to make it re-read the config file'
+ 'sendchange:Send a change to the buildmaster'
+ 'debugclient:Launch a small debug panel GUI'
+ 'statuslog:Emit current builder status to stdout'
+ 'statusgui:Display a small window showing current builder status'
+ 'try:Run a build with your local changes'
+ 'tryserver:buildmaster-side "try" support function, not for users'
+ 'checkconfig:test the validity of a master.cfg config file'
+ 'user:Manage users in buildbot''s database'
+ )
+ _describe -t commands 'command' commands && ret=0
+ ;;
+ (args)
+ ret=0
+ ;;
+ esac
+
+ return $ret
+}
+
+_buildbot "$@"
+return $?
+
+
+
diff --git a/plugins/buildbot/buildbot.plugin.zsh b/plugins/buildbot/buildbot.plugin.zsh
new file mode 100644
index 000000000..0d30172d5
--- /dev/null
+++ b/plugins/buildbot/buildbot.plugin.zsh
@@ -0,0 +1,8 @@
+#compdef buildbot
+
+# Aliases
+alias b='buildbot'
+
+zstyle ':completion:*:descriptions' format '%B%d%b'
+
+
diff --git a/plugins/encode64/encode64.plugin.zsh b/plugins/encode64/encode64.plugin.zsh
index 3b59447c5..6f8582642 100644
--- a/plugins/encode64/encode64.plugin.zsh
+++ b/plugins/encode64/encode64.plugin.zsh
@@ -1,4 +1,4 @@
encode64(){ echo -n $1 | base64 }
-decode64(){ echo -n $1 | base64 -D }
+decode64(){ echo -n $1 | base64 -d }
alias e64=encode64
alias d64=decode64
diff --git a/plugins/git/_git-remote b/plugins/git/_git-remote
new file mode 100644
index 000000000..4ba62a357
--- /dev/null
+++ b/plugins/git/_git-remote
@@ -0,0 +1,74 @@
+#compdef git-remote
+
+# NOTE: --track is undocumented.
+# TODO: --track, -t, --master, and -m should take remote branches, I guess.
+# NOTE: --master is undocumented.
+# NOTE: --fetch is undocumented.
+_git-remote () {
+ local curcontext=$curcontext state line
+ declare -A opt_args
+
+ _arguments -C \
+ ':command:->command' \
+ '*::options:->options' && ret=0
+
+ case $state in
+ (command)
+ declare -a commands
+
+ commands=(
+ 'add:add a new remote'
+ 'show:show information about a given remote'
+ 'prune:delete all stale tracking branches for a given remote'
+ 'update:fetch updates for a set of remotes'
+ 'rm:remove a remote from .git/config and all associated tracking branches'
+ 'rename:rename a remote from .git/config and update all associated tracking branches'
+ 'set-head:sets or deletes the default branch'
+ 'set-branches:changes the list of branches tracked by the named remote.'
+ 'set-url:changes URL remote points to.'
+ )
+
+ _describe -t commands 'sub-command' commands && ret=0
+ ;;
+ (options)
+ case $line[1] in
+ (add)
+ _arguments \
+ '*'{--track,-t}'[track given branch instead of default glob refspec]:branch:__git_branch_names' \
+ '(--master -m)'{--master,-m}'[set the remote'\''s HEAD to point to given master branch]:branch:__git_branch_names' \
+ '(--fetch -f)'{--fetch,-f}'[run git-fetch on the new remote after it has been created]' \
+ ':branch name:__git_remotes' \
+ ':url:_urls' && ret=0
+ ;;
+ (show)
+ _arguments \
+ '-n[do not contact the remote for a list of branches]' \
+ ':remote:__git_remotes' && ret=0
+ ;;
+ (prune)
+ _arguments \
+ '(--dry-run -n)'{-n,--dry-run}'[do not actually prune, only list what would be done]' \
+ ':remote:__git_remotes' && ret=0
+ ;;
+ (update)
+ __git_remote-groups && ret=0
+ ;;
+ (rm)
+ __git_remotes && ret=0
+ ;;
+ (rename)
+ __git_remotes && ret=0
+ ;;
+ (set-url)
+ _arguments \
+ '*--push[manipulate push URLs]' \
+ '(--add)--add[add URL]' \
+ '(--delete)--delete[delete URLs]' \
+ ':branch name:__git_remotes' \
+ ':url:_urls' && ret=0
+ ;;
+
+ esac
+ ;;
+ esac
+}
diff --git a/plugins/python/python.plugin.zsh b/plugins/python/python.plugin.zsh
index 852c8b919..319bf0bf0 100644
--- a/plugins/python/python.plugin.zsh
+++ b/plugins/python/python.plugin.zsh
@@ -10,3 +10,4 @@ function pyclean() {
# Grep among .py files
alias pygrep='grep --include="*.py"'
+
diff --git a/plugins/repo/_repo b/plugins/repo/_repo
new file mode 100644
index 000000000..95dbc1b64
--- /dev/null
+++ b/plugins/repo/_repo
@@ -0,0 +1,146 @@
+#compdef repo
+
+_repo()
+{
+ typeset -A opt_args
+ local context state line curcontext="$curcontext"
+
+ local ret=1
+
+ _arguments -C \
+ '(- 1 *)--help[show usage]'\
+ '1:command:->command'\
+ '*::args:->args' && ret=0
+
+ case $state in
+ (command)
+ repo list 2> /dev/null > /dev/null
+ if [[ $? == 0 ]]; then
+ local commands;
+ commands=(
+ 'abandon:Permanently abandon a development branch'
+ 'branch:View current topic branches'
+ 'branches:View current topic branches'
+ 'checkout:Checkout a branch for development'
+ 'checkout-manifest:for every project in a manifest tag file check out the sha1 listed in the file'
+ 'cherry-pick:Cherry-pick a change.'
+ 'diff:Show changes between commit and working tree'
+ 'download:Download and checkout a change'
+ 'format-patch:build patch sets for each project common to a manifest baseline'
+ 'grep:Print lines matching a pattern'
+ 'help:Display detailed help on a command'
+ 'init:Initialize repo in the current directory'
+ 'list:List projects and their associated directories'
+ 'overview:Display overview of unmerged project branches'
+ 'prune:Prune (delete) already merged topics'
+ 'push:Push the local branch rebase:Rebase local branches on upstream branch'
+ 'smartsync:Update working tree to the latest known good revision'
+ 'stage:Stage file(s) for commit start:Start a new branch for development'
+ 'status:Show the working tree status sync:Update working tree to the latest revision'
+ 'sync:Update working tree to the latest revision'
+ 'tag-manifest:for every project in a manifest tag use the sha1 listed in the file set the tagname to it'
+ 'upload:Upload changes for code review'
+ )
+ _describe -t commands 'command' commands && ret=0
+ else
+ local commands;
+ commands=(
+ 'init:Install repo in the current working directory'
+ 'help:Display detailed help on a command'
+ )
+ _describe -t commands 'command' commands && ret=0
+ fi
+ ;;
+ (args)
+
+ case $words[1] in
+ (branch | branches )
+ # TODO : list available projects and add them in list to feed compadd with
+ _arguments :::_branches_projects
+ ;;
+ (init)
+ _arguments \
+ "(-h --help)"{-h,--help}"[Show help]" \
+ "(-q --quiet)"{-q,--quiet}"[be quiet]" \
+ "(-u --manifest-url)"{-u,--manifest-url=}"[manifest repository location]":url:_url \
+ "(-b --manifest-branch)"{-b,--manifest-branch=}"[manifest branch or revision]":branch:_branch\
+ "(-m --manifest-name)"{-m,--manifest-name=}"[initial manifest file]":manifest_name:_manifest_name\
+ "(--mirror)--mirror[mirror the forrest]"\
+ "(--reference)--reference=[location of mirror directory]":dir:_dirs\
+ "(--depth)--depth=[create a shallow clone with given depth; see git clone]":depth:_depth\
+ "(-g --group=)"{-g,--group=}"[restrict manifest projects to ones with a specified group]":group:_group\
+ "(-p --platform=)"{-p,--platform=}"[restrict manifest projects to ones with a specified platform group(auto|all|none|linux|darwin|...)]":platform:_platform\
+ "(--repo-url)--repo-url=[repo repository location]":url:_url\
+ "(--repo-branch)--repo-branch[repo branch or revision]":branch_or_rev:_branch_or_rev\
+ "(--no-repo-verify)--no-repo-verify[do not verify repo source code]"\
+ "(--config-name)--config-name[Always prompt for name/e-mail]"\
+ && ret=0
+ ;;
+ *)
+ ret=0
+ esac
+ ;;
+ esac
+
+ return $ret
+}
+
+_url()
+{
+ _message -e url 'url'
+}
+
+_platform()
+{
+ _message -e platform 'platform group(auto|all|none|linux|darwin|...)'
+}
+
+_manifest_name()
+{
+ _message -e manifest_name 'manifest name'
+}
+
+_group()
+{
+ _message -e group 'group'
+}
+
+_branch()
+{
+ _message -e branch 'branch'
+}
+
+_branch_or_rev()
+{
+ _message -e branch_or_rev 'repo branch or revision'
+}
+
+_depth()
+{
+ _message -e depth 'depth'
+}
+
+_branches_projects()
+{
+ _message -e depth '...'
+}
+
+_repo "$@"
+return $?
+
+
+#typeset -A opt_args
+
+local context state line
+local fontdir
+
+_arguments \
+ "(-l -c -r)init[Install repo in the current working directory]" \
+ "(-l -c -r)help[Display detailed help on a command]" \
+ && return 0
+
+
+return 1
+
+
+
diff --git a/plugins/repo/_repo~ b/plugins/repo/_repo~
new file mode 100644
index 000000000..ecb12b5a1
--- /dev/null
+++ b/plugins/repo/_repo~
@@ -0,0 +1,146 @@
+#compdef repo
+
+_repo()
+{
+ typeset -A opt_args
+ local context state line curcontext="$curcontext"
+
+ local ret=1
+
+ _arguments -C \
+ '(- 1 *)--help[show usage]'\
+ '1:command:->command'\
+ '*::args:->args' && ret=0
+
+ case $state in
+ (command)
+ repo status 2> /dev/null > /dev/null
+ if [[ $? == 0 ]]; then
+ local commands;
+ commands=(
+ 'abandon:Permanently abandon a development branch'
+ 'branch:View current topic branches'
+ 'branches:View current topic branches'
+ 'checkout:Checkout a branch for development'
+ 'checkout-manifest:for every project in a manifest tag file check out the sha1 listed in the file'
+ 'cherry-pick:Cherry-pick a change.'
+ 'diff:Show changes between commit and working tree'
+ 'download:Download and checkout a change'
+ 'format-patch:build patch sets for each project common to a manifest baseline'
+ 'grep:Print lines matching a pattern'
+ 'help:Display detailed help on a command'
+ 'init:Initialize repo in the current directory'
+ 'list:List projects and their associated directories'
+ 'overview:Display overview of unmerged project branches'
+ 'prune:Prune (delete) already merged topics'
+ 'push:Push the local branch rebase:Rebase local branches on upstream branch'
+ 'smartsync:Update working tree to the latest known good revision'
+ 'stage:Stage file(s) for commit start:Start a new branch for development'
+ 'status:Show the working tree status sync:Update working tree to the latest revision'
+ 'sync:Update working tree to the latest revision'
+ 'tag-manifest:for every project in a manifest tag use the sha1 listed in the file set the tagname to it'
+ 'upload:Upload changes for code review'
+ )
+ _describe -t commands 'command' commands && ret=0
+ else
+ local commands;
+ commands=(
+ 'init:Install repo in the current working directory'
+ 'help:Display detailed help on a command'
+ )
+ _describe -t commands 'command' commands && ret=0
+ fi
+ ;;
+ (args)
+
+ case $words[1] in
+ (branch | branches )
+ # TODO : list available projects and add them in list to feed compadd with
+ _arguments :::_branches_projects
+ ;;
+ (init)
+ _arguments \
+ "(-h --help)"{-h,--help}"[Show help]" \
+ "(-q --quiet)"{-q,--quiet}"[be quiet]" \
+ "(-u --manifest-url)"{-u,--manifest-url=}"[manifest repository location]":url:_url \
+ "(-b --manifest-branch)"{-b,--manifest-branch=}"[manifest branch or revision]":branch:_branch\
+ "(-m --manifest-name)"{-m,--manifest-name=}"[initial manifest file]":manifest_name:_manifest_name\
+ "(--mirror)--mirror[mirror the forrest]"\
+ "(--reference)--reference=[location of mirror directory]":dir:_dirs\
+ "(--depth)--depth=[create a shallow clone with given depth; see git clone]":depth:_depth\
+ "(-g --group=)"{-g,--group=}"[restrict manifest projects to ones with a specified group]":group:_group\
+ "(-p --platform=)"{-p,--platform=}"[restrict manifest projects to ones with a specified platform group(auto|all|none|linux|darwin|...)]":platform:_platform\
+ "(--repo-url)--repo-url=[repo repository location]":url:_url\
+ "(--repo-branch)--repo-branch[repo branch or revision]":branch_or_rev:_branch_or_rev\
+ "(--no-repo-verify)--no-repo-verify[do not verify repo source code]"\
+ "(--config-name)--config-name[Always prompt for name/e-mail]"\
+ && ret=0
+ ;;
+ *)
+ ret=0
+ esac
+ ;;
+ esac
+
+ return $ret
+}
+
+_url()
+{
+ _message -e url 'url'
+}
+
+_platform()
+{
+ _message -e platform 'platform group(auto|all|none|linux|darwin|...)'
+}
+
+_manifest_name()
+{
+ _message -e manifest_name 'manifest name'
+}
+
+_group()
+{
+ _message -e group 'group'
+}
+
+_branch()
+{
+ _message -e branch 'branch'
+}
+
+_branch_or_rev()
+{
+ _message -e branch_or_rev 'repo branch or revision'
+}
+
+_depth()
+{
+ _message -e depth 'depth'
+}
+
+_branches_projects()
+{
+ _message -e depth '...'
+}
+
+_repo "$@"
+return $?
+
+
+#typeset -A opt_args
+
+local context state line
+local fontdir
+
+_arguments \
+ "(-l -c -r)init[Install repo in the current working directory]" \
+ "(-l -c -r)help[Display detailed help on a command]" \
+ && return 0
+
+
+return 1
+
+
+
diff --git a/plugins/repo/repo.plugin.zsh b/plugins/repo/repo.plugin.zsh
new file mode 100644
index 000000000..7a97b86ce
--- /dev/null
+++ b/plugins/repo/repo.plugin.zsh
@@ -0,0 +1,36 @@
+# Aliases
+#alias r='repo'
+
+##
+#function listRepoCompletions {
+# reply=(
+# abandon
+ #branch
+# branches
+# checkout
+# checkout-manifest
+# cherry-pick
+# diff
+ #download
+# format-patch
+# forall
+# grep
+# help
+# init
+# list
+ #overview
+# prune
+# push
+# rebase
+# smartsync
+# stage
+# start
+# status
+ #sync
+# tag-manifest
+# upload
+# );
+#}
+
+###compctl -K listRepoCompletions repo
+
diff --git a/templates/zshrc.zsh-template b/templates/zshrc.zsh-template
index 2ea9934af..6a705c54f 100644
--- a/templates/zshrc.zsh-template
+++ b/templates/zshrc.zsh-template
@@ -36,4 +36,6 @@ plugins=(git)
source $ZSH/oh-my-zsh.sh
+zstyle ':completion:*:descriptions' format '%B%d%b'
+
# Customize to your needs...
diff --git a/themes/gsemet.zsh-theme b/themes/gsemet.zsh-theme
new file mode 100644
index 000000000..10a2d94c6
--- /dev/null
+++ b/themes/gsemet.zsh-theme
@@ -0,0 +1,25 @@
+ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[green]%}["
+ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}*%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_CLEAN=""
+
+#Customized git status, oh-my-zsh currently does not allow render dirty status before branch
+git_custom_status() {
+ local cb=$(current_branch)
+ if [ -n "$cb" ]; then
+ echo "$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_PREFIX$(current_branch)$ZSH_THEME_GIT_PROMPT_SUFFIX"
+ fi
+}
+
+#RVM and git settings
+if [[ -s ~/.rvm/scripts/rvm ]] ; then
+ RPS1='$(git_custom_status)%{$fg[red]%}[`~/.rvm/bin/rvm-prompt`]%{$reset_color%} $EPS1'
+else
+ if which rbenv &> /dev/null; then
+ RPS1='$(git_custom_status)%{$fg[red]%}[`rbenv version | sed -e "s/ (set.*$//"`]%{$reset_color%} $EPS1'
+ else
+ RPS1='$(git_custom_status) $EPS1'
+ fi
+fi
+
+PROMPT='%{$fg[cyan]%}[%{$fg[yellow]%}%n%{$fg[cyan]%}@%{$fg[yellow]%}%m%{$fg[cyan]%}:%{$fg[magenta]%}%~% %{$fg[cyan]%}]%(?.%{$fg[green]%}.%{$fg[red]%})%B$%b '