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 '