From 61aaa7b58bf9508cb738a8b0c30610e994d443ac Mon Sep 17 00:00:00 2001 From: mj Date: Wed, 13 Jan 2016 02:32:15 +0100 Subject: [PATCH] Squashed 'repos/robbyrussell/oh-my-zsh/' changes from ee34381..686e460 686e460 Merge branch 'sachin21-a_happy_new_year' 03cc1f7 Cleanup LICENSE file and fix README link fdde897 Update year to 2016 f558a46 Merge pull request #4709 from mcornella/fix-local-vars-in-git-prompt 0842384 Put `local var` declaration in its own line in lib/git.zsh 30ddf25 Merge pull request #4695 from mcornella/add-hub-completion 69c73a4 Merge pull request #4704 from paulcalabro/patch-1 247a582 Fixed a typo. 5adb06d Merge pull request #4702 from prikhi/master 3ebbb40 colored-man-pages: Use Portable `less` Path 6ad6d11 Merge pull request #4700 from giordanovi/master 015437c Update gulp.plugin.zsh 3162de5 Add hub's completion file 4b95c16 Merge branch 'fix-colored-man-pages-syntax' 5e310c5 Fix syntax error in colored-man-pages fe9ff63 Merge pull request #4463 from giordanovi/master 4f314e2 Update gulp.plugin.zsh 8042394 Update gulp.plugin.zsh cb11d13 Merge pull request #4697 from psprint/master d30a501 znt: more optimizing workarounds for 5.0.6 <= zsh < 5.2 5de1704 Merge branch 'cknoblauch-patch-1' 09d2a59 Fix style of colored-man-pages plugin a815729 colored-man plugin: Quoted PATH variable dd29954 Merge branch 'hallabro-consistent-wording-update' 18ca953 Use consistent wording when updating ef31d06 Merge pull request #4139 from ultimatemonty/patch-1 8a3b78e Merge pull request #4536 from alexws54tk/patch-1 e344f4c Merge pull request #4420 from apjanke/git-move-current_branch-to-core 9f55213 Move current_branch() from git plugin to core lib/git.zsh bfd2d8d Merge pull request #4498 from gfvcastro/alias-rake-stats 8d6fcce Merge pull request #4589 from apjanke/agnoster-powerline-char-stronger-warning 93c00cc Merge pull request #4451 from victor-torres/branch-plugin d988ee0 Merge pull request #4568 from blueyed/archlinux-improve-commands-lookup fe63ed0 Updating speed test info and using zsh command line. cf5db83 Implementing mcornella's suggestions in pull request 4451. 531789e Merge pull request #4628 from moyamo/master bd384a0 Merge pull request #4667 from dbohdan/patch-1 b15918d "fishy" theme: Fix "~" use in prompt 71deb74 Fix indentation d779750 Default to using terminfo to set the terminal title 6a8692d Merge pull request #4676 from bamarni/composer-stderr 4108c48 Merge pull request #4690 from kaelig/patch-1 6190d3e Point to the GitHub repository f564159 Merge branch 'GNUletik-master' 95aa9bd Better research history with arrow keys 273063a Merge pull request #4663 from psprint/master d54d896 Merge pull request #3966 from apjanke/fix-spectrum-ls 4d154ab Merge branch 'apjanke-histsubstr-double-bind' 45822e8 history-substring-search: bind arrows in both emacs and viins modes 11de60f Merge pull request #3965 from apjanke/spectrum-hide-codes 4fbfb14 Add back the `-` alias to go to the previous directory b6997f6 Update link to git completion 5e950d4 Merge pull request #4689 from apjanke/fix-non-numeric-versions 45e42ef Merge pull request #4657 from hghwng/master 07fcbbe Merge pull request #4641 from WeeBull/patch-1 c52f677 common-aliases: handle "dev" versions in version check 0cca3c0 Merge pull request #4687 from gmccue/web-search-ecosia fb5effd Add Ecosia to web-search plugin. 357d57c znt: include some status information on top of the window 0d45e77 [Composer] redirect stderr to /dev/null for completion commands c793bae znt: optimize heap usage for older Zsh's (e.g. 5.0.8) 2e3731c "fishy" theme: Shorten path .foo to .f, not . 89205f9 znt: faster startup of tools using colorifying (e.g. n-history) a42a3ee Recognize Firefox addon and Android packages. b57ddd6 Use actual `commit --amend` command for Mercurial cc116f6 agnoster: stronger warning about changing SEGMENT_SEPARATOR character 9e4aba4 archlinux: use $+commands instead of 'command -v' in a subshell 67abf0f Update frontcube.zsh-theme e5164d7 Add 'rake stats' alias. ee8f377 Added support to subtask through gulp --tasks-simple command d49cacf Add branch plugin e6ccd37 Merge master (rebase being super annoying). Fix conflicts 30ef856 Fix maintainer line 3594e27 Nicer formatting 0bda651 Fix the spectrum_ls implementation in spectrum.zsh 8142261 Hide spectrum.zsh var values to avoid junky "set" output to terminal git-subtree-dir: repos/robbyrussell/oh-my-zsh git-subtree-split: 686e46025890cba38d2cb7ad7cc229bf6beeba57 --- MIT-LICENSE.txt | 13 +- README.markdown | 2 +- lib/directories.zsh | 1 + lib/git.zsh | 77 ++++++---- lib/key-bindings.zsh | 10 +- lib/spectrum.zsh | 6 +- lib/termsupport.zsh | 8 + plugins/archlinux/archlinux.plugin.zsh | 14 +- plugins/branch/README.md | 33 +++++ plugins/branch/branch.plugin.zsh | 26 ++++ .../colored-man-pages/colored-man-pages.plugin.zsh | 36 ++--- plugins/common-aliases/common-aliases.plugin.zsh | 2 +- plugins/composer/composer.plugin.zsh | 4 +- plugins/ember-cli/README.md | 24 +-- plugins/extract/extract.plugin.zsh | 2 +- plugins/git-extras/git-extras.plugin.zsh | 2 +- plugins/git-flow/git-flow.plugin.zsh | 2 +- plugins/git/git.plugin.zsh | 31 ++-- plugins/github/_hub | 163 +++++++++++++++++++++ plugins/gulp/gulp.plugin.zsh | 6 +- .../history-substring-search.plugin.zsh | 9 +- .../update-from-upstream.zsh | 6 +- plugins/mercurial/mercurial.plugin.zsh | 3 +- plugins/rails/rails.plugin.zsh | 1 + plugins/web-search/web-search.plugin.zsh | 2 + plugins/zsh-navigation-tools/README.md | 3 +- plugins/zsh-navigation-tools/n-list | 66 ++++----- plugins/zsh-navigation-tools/n-panelize | 11 +- themes/agnoster.zsh-theme | 3 +- themes/eastwood.zsh-theme | 4 +- themes/fishy.zsh-theme | 12 +- themes/frontcube.zsh-theme | 2 +- themes/gallois.zsh-theme | 6 +- themes/josh.zsh-theme | 4 +- themes/juanghurtado.zsh-theme | 4 +- themes/mortalscumbag.zsh-theme | 4 +- themes/peepcode.zsh-theme | 2 +- themes/sunrise.zsh-theme | 1 - tools/upgrade.sh | 2 +- 39 files changed, 429 insertions(+), 178 deletions(-) create mode 100644 plugins/branch/README.md create mode 100644 plugins/branch/branch.plugin.zsh create mode 100644 plugins/github/_hub diff --git a/MIT-LICENSE.txt b/MIT-LICENSE.txt index dfbd900..42f607f 100644 --- a/MIT-LICENSE.txt +++ b/MIT-LICENSE.txt @@ -1,6 +1,7 @@ -The MIT License +The MIT License (MIT) -Copyright (c) 2009-2015 Robby Russell and contributors (see https://github.com/robbyrussell/oh-my-zsh/contributors) +Copyright (c) 2009-2016 Robby Russell and contributors +See the full list at https://github.com/robbyrussell/oh-my-zsh/contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -9,13 +10,13 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.markdown b/README.markdown index 9d7210f..33128ef 100644 --- a/README.markdown +++ b/README.markdown @@ -210,4 +210,4 @@ We have [stickers](http://shop.planetargon.com/products/ohmyzsh-stickers-set-of- ## License -Oh My Zsh is released under the [MIT license](https://github.com/robbyrussell/oh-my-zsh/blob/master/MIT-LICENSE.txt). +Oh My Zsh is released under the [MIT license](MIT-LICENSE.txt). diff --git a/lib/directories.zsh b/lib/directories.zsh index 3bffa9f..a50a692 100644 --- a/lib/directories.zsh +++ b/lib/directories.zsh @@ -8,6 +8,7 @@ alias -g ....='../../..' alias -g .....='../../../..' alias -g ......='../../../../..' +alias -- -='cd -' alias 1='cd -' alias 2='cd -2' alias 3='cd -3' diff --git a/lib/git.zsh b/lib/git.zsh index 1e203c7..de51daa 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -1,5 +1,6 @@ -# get the name of the branch we are on +# Outputs current branch info in prompt format function git_prompt_info() { + local ref if [[ "$(command git config --get oh-my-zsh.hide-status 2>/dev/null)" != "1" ]]; then ref=$(command git symbolic-ref HEAD 2> /dev/null) || \ ref=$(command git rev-parse --short HEAD 2> /dev/null) || return 0 @@ -7,9 +8,8 @@ function git_prompt_info() { fi } - # Checks if working tree is dirty -parse_git_dirty() { +function parse_git_dirty() { local STATUS='' local FLAGS FLAGS=('--porcelain') @@ -29,32 +29,26 @@ parse_git_dirty() { fi } -# get the difference between the local and remote branches -git_remote_status() { +# Gets the difference between the local and remote branches +function git_remote_status() { + local remote ahead behind git_remote_status git_remote_status_detailed remote=${$(command git rev-parse --verify ${hook_com[branch]}@{upstream} --symbolic-full-name 2>/dev/null)/refs\/remotes\/} - if [[ -n ${remote} ]] ; then + if [[ -n ${remote} ]]; then ahead=$(command git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l) behind=$(command git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l) - if [ $ahead -eq 0 ] && [ $behind -eq 0 ] - then - git_remote_status="$ZSH_THEME_GIT_PROMPT_EQUAL_REMOTE" - elif [ $ahead -gt 0 ] && [ $behind -eq 0 ] - then + if [[ $ahead -gt 0 ]] && [[ $behind -eq 0 ]]; then git_remote_status="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE" git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE$((ahead))%{$reset_color%}" - elif [ $behind -gt 0 ] && [ $ahead -eq 0 ] - then + elif [[ $behind -gt 0 ]] && [[ $ahead -eq 0 ]]; then git_remote_status="$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE" git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE$((behind))%{$reset_color%}" - elif [ $ahead -gt 0 ] && [ $behind -gt 0 ] - then + elif [[ $ahead -gt 0 ]] && [[ $behind -gt 0 ]]; then git_remote_status="$ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE" git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE$((ahead))%{$reset_color%}$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE$((behind))%{$reset_color%}" fi - if [ $ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_DETAILED ] - then + if [[ -n $ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_DETAILED ]]; then git_remote_status="$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_PREFIX$remote$git_remote_status_detailed$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_SUFFIX" fi @@ -62,9 +56,26 @@ git_remote_status() { fi } +# Outputs the name of the current branch +# Usage example: git pull origin $(git_current_branch) +# Using '--quiet' with 'symbolic-ref' will not cause a fatal error (128) if +# it's not a symbolic ref, but in a Git repo. +function git_current_branch() { + local ref + ref=$(command git symbolic-ref --quiet HEAD 2> /dev/null) + local ret=$? + if [[ $ret != 0 ]]; then + [[ $ret == 128 ]] && return # no git repo. + ref=$(command git rev-parse --short HEAD 2> /dev/null) || return + fi + echo ${ref#refs/heads/} +} + + # Gets the number of commits ahead from remote function git_commits_ahead() { if $(echo "$(command git log @{upstream}..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then + local COMMITS COMMITS=$(command git log @{upstream}..HEAD | grep '^commit' | wc -l | tr -d ' ') echo "$ZSH_THEME_GIT_COMMITS_AHEAD_PREFIX$COMMITS$ZSH_THEME_GIT_COMMITS_AHEAD_SUFFIX" fi @@ -72,21 +83,21 @@ function git_commits_ahead() { # Outputs if current branch is ahead of remote function git_prompt_ahead() { - if [[ -n "$(command git rev-list origin/$(current_branch)..HEAD 2> /dev/null)" ]]; then + if [[ -n "$(command git rev-list origin/$(git_current_branch)..HEAD 2> /dev/null)" ]]; then echo "$ZSH_THEME_GIT_PROMPT_AHEAD" fi } # Outputs if current branch is behind remote function git_prompt_behind() { - if [[ -n "$(command git rev-list HEAD..origin/$(current_branch) 2> /dev/null)" ]]; then + if [[ -n "$(command git rev-list HEAD..origin/$(git_current_branch) 2> /dev/null)" ]]; then echo "$ZSH_THEME_GIT_PROMPT_BEHIND" fi } # Outputs if current branch exists on remote or not function git_prompt_remote() { - if [[ -n "$(command git show-ref origin/$(current_branch) 2> /dev/null)" ]]; then + if [[ -n "$(command git show-ref origin/$(git_current_branch) 2> /dev/null)" ]]; then echo "$ZSH_THEME_GIT_PROMPT_REMOTE_EXISTS" else echo "$ZSH_THEME_GIT_PROMPT_REMOTE_MISSING" @@ -95,16 +106,19 @@ function git_prompt_remote() { # Formats prompt string for current git commit short SHA function git_prompt_short_sha() { + local SHA SHA=$(command git rev-parse --short HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER" } # Formats prompt string for current git commit long SHA function git_prompt_long_sha() { + local SHA SHA=$(command git rev-parse HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER" } # Get the status of the working tree -git_prompt_status() { +function git_prompt_status() { + local INDEX STATUS INDEX=$(command git status --porcelain -b 2> /dev/null) STATUS="" if $(echo "$INDEX" | command grep -E '^\?\? ' &> /dev/null); then @@ -150,15 +164,14 @@ git_prompt_status() { echo $STATUS } -#compare the provided version of git to the version installed and on path -#prints 1 if input version <= installed version -#prints -1 otherwise +# Compares the provided version of git to the version installed and on path +# Outputs -1, 0, or 1 if the installed version is less than, equal to, or +# greater than the input version, respectively. function git_compare_version() { - local INPUT_GIT_VERSION=$1; - local INSTALLED_GIT_VERSION - INPUT_GIT_VERSION=(${(s/./)INPUT_GIT_VERSION}); - INSTALLED_GIT_VERSION=($(command git --version 2>/dev/null)); - INSTALLED_GIT_VERSION=(${(s/./)INSTALLED_GIT_VERSION[3]}); + local INPUT_GIT_VERSION INSTALLED_GIT_VERSION + INPUT_GIT_VERSION=(${(s/./)1}) + INSTALLED_GIT_VERSION=($(command git --version 2>/dev/null)) + INSTALLED_GIT_VERSION=(${(s/./)INSTALLED_GIT_VERSION[3]}) for i in {1..3}; do if [[ $INSTALLED_GIT_VERSION[$i] -gt $INPUT_GIT_VERSION[$i] ]]; then @@ -173,7 +186,7 @@ function git_compare_version() { echo 0 } -#this is unlikely to change so make it all statically assigned +# This is unlikely to change so make it all statically assigned POST_1_7_2_GIT=$(git_compare_version "1.7.2") -#clean up the namespace slightly by removing the checker function -unset -f git_compare_version +# Clean up the namespace slightly by removing the checker function +unfunction git_compare_version diff --git a/lib/key-bindings.zsh b/lib/key-bindings.zsh index eb2b580..0e056dc 100644 --- a/lib/key-bindings.zsh +++ b/lib/key-bindings.zsh @@ -27,11 +27,17 @@ if [[ "${terminfo[knp]}" != "" ]]; then bindkey "${terminfo[knp]}" down-line-or-history # [PageDown] - Down a line of history fi +# start typing + [Up-Arrow] - fuzzy find history forward if [[ "${terminfo[kcuu1]}" != "" ]]; then - bindkey "${terminfo[kcuu1]}" up-line-or-search # start typing + [Up-Arrow] - fuzzy find history forward + autoload -U up-line-or-beginning-search + zle -N up-line-or-beginning-search + bindkey "${terminfo[kcuu1]}" up-line-or-beginning-search fi +# start typing + [Down-Arrow] - fuzzy find history backward if [[ "${terminfo[kcud1]}" != "" ]]; then - bindkey "${terminfo[kcud1]}" down-line-or-search # start typing + [Down-Arrow] - fuzzy find history backward + autoload -U down-line-or-beginning-search + zle -N down-line-or-beginning-search + bindkey "${terminfo[kcud1]}" down-line-or-beginning-search fi if [[ "${terminfo[khome]}" != "" ]]; then diff --git a/lib/spectrum.zsh b/lib/spectrum.zsh index b683aca..87092d8 100644 --- a/lib/spectrum.zsh +++ b/lib/spectrum.zsh @@ -3,7 +3,7 @@ # P.C. Shyamshankar # Copied from http://github.com/sykora/etc/blob/master/zsh/functions/spectrum/ -typeset -Ag FX FG BG +typeset -AHg FX FG BG FX=( reset "%{%}" @@ -25,13 +25,13 @@ ZSH_SPECTRUM_TEXT=${ZSH_SPECTRUM_TEXT:-Arma virumque cano Troiae qui primus ab o # Show all 256 colors with color number function spectrum_ls() { for code in {000..255}; do - print -P -- "$code: %F{$code}$ZSH_SPECTRUM_TEXT%f" + print -P -- "$code: %{$FG[$code]%}$ZSH_SPECTRUM_TEXT%{$reset_color%}" done } # Show all 256 colors where the background is set to specific color function spectrum_bls() { for code in {000..255}; do - print -P -- "$BG[$code]$code: $ZSH_SPECTRUM_TEXT %{$reset_color%}" + print -P -- "$code: %{$BG[$code]%}$ZSH_SPECTRUM_TEXT%{$reset_color%}" done } diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 7cf15b0..871ab28 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -28,6 +28,14 @@ function title { if [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then print -Pn "\e]2;$2:q\a" # set window name print -Pn "\e]1;$1:q\a" # set tab name + else + # Try to use terminfo to set the title + # If the feature is available set title + if [[ -n "$terminfo[fsl]" ]] && [[ -n "$terminfo[tsl]" ]]; then + echoti tsl + print -Pn "$1" + echoti fsl + fi fi ;; esac diff --git a/plugins/archlinux/archlinux.plugin.zsh b/plugins/archlinux/archlinux.plugin.zsh index b83c245..99de5b9 100644 --- a/plugins/archlinux/archlinux.plugin.zsh +++ b/plugins/archlinux/archlinux.plugin.zsh @@ -2,7 +2,7 @@ # Usage is also described at https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins # Look for yaourt, and add some useful functions if we have it. -if [[ -x `command -v yaourt` ]]; then +if (( $+commands[yaourt] )); then upgrade () { yaourt -Syu } @@ -21,11 +21,11 @@ if [[ -x `command -v yaourt` ]]; then alias yalst='yaourt -Qe' # List installed packages, even those installed from AUR (they're tagged as "local") alias yaorph='yaourt -Qtd' # Remove orphans using yaourt # Additional yaourt alias examples - if [[ -x `command -v abs` && -x `command -v aur` ]]; then + if (( $+commands[abs] && $+commands[aur] )); then alias yaupd='yaourt -Sy && sudo abs && sudo aur' # Update and refresh the local package, ABS and AUR databases against repositories - elif [[ -x `command -v abs` ]]; then + elif (( $+commands[abs] )); then alias yaupd='yaourt -Sy && sudo abs' # Update and refresh the local package and ABS databases against repositories - elif [[ -x `command -v aur` ]]; then + elif (( $+commands[aur] )); then alias yaupd='yaourt -Sy && sudo aur' # Update and refresh the local package and AUR databases against repositories else alias yaupd='yaourt -Sy' # Update and refresh the local package database against repositories @@ -49,11 +49,11 @@ alias pacreps='pacman -Ss' # Search for package(s) in the repositori alias pacloc='pacman -Qi' # Display information about a given package in the local database alias paclocs='pacman -Qs' # Search for package(s) in the local database # Additional pacman alias examples -if [[ -x `command -v abs` && -x `command -v aur` ]]; then +if (( $+commands[abs] && $+commands[aur] )); then alias pacupd='sudo pacman -Sy && sudo abs && sudo aur' # Update and refresh the local package, ABS and AUR databases against repositories -elif [[ -x `command -v abs` ]]; then +elif (( $+commands[abs] )); then alias pacupd='sudo pacman -Sy && sudo abs' # Update and refresh the local package and ABS databases against repositories -elif [[ -x `command -v aur` ]]; then +elif (( $+commands[aur] )); then alias pacupd='sudo pacman -Sy && sudo aur' # Update and refresh the local package and AUR databases against repositories else alias pacupd='sudo pacman -Sy' # Update and refresh the local package database against repositories diff --git a/plugins/branch/README.md b/plugins/branch/README.md new file mode 100644 index 0000000..56ab8da --- /dev/null +++ b/plugins/branch/README.md @@ -0,0 +1,33 @@ +# Branch + +Displays the current Git or Mercurial branch fast. + +## Speed test + +### Mercurial + +```shell +$ time hg branch +0.11s user 0.14s system 70% cpu 0.355 total +``` + +### Branch plugin + +```shell +$ time zsh /tmp/branch_prompt_info_test.zsh +0.00s user 0.01s system 78% cpu 0.014 total +``` + +## Usage + +Edit your theme file (eg.: `~/.oh-my-zsh/theme/robbyrussell.zsh-theme`) +adding `$(branch_prompt_info)` in your prompt like this: + +```diff +- PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' ++ PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)$(branch_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' +``` + +## Maintainer + +Victor Torres () diff --git a/plugins/branch/branch.plugin.zsh b/plugins/branch/branch.plugin.zsh new file mode 100644 index 0000000..a1e9ca3 --- /dev/null +++ b/plugins/branch/branch.plugin.zsh @@ -0,0 +1,26 @@ +# Branch: displays the current Git or Mercurial branch fast. +# Victor Torres +# Oct 2, 2015 + +function branch_prompt_info() { + # Defines path as current directory + local current_dir=$PWD + # While current path is not root path + while [[ $current_dir != '/' ]] + do + # Git repository + if [[ -d "${current_dir}/.git" ]] + then + echo '±' ${"$(<"$current_dir/.git/HEAD")"##*/} + return; + fi + # Mercurial repository + if [[ -d "${current_dir}/.hg" ]] + then + echo '☿' $(<"$current_dir/.hg/branch") + return; + fi + # Defines path as parent directory and keeps looking for :) + current_dir="${current_dir:h}" + done +} diff --git a/plugins/colored-man-pages/colored-man-pages.plugin.zsh b/plugins/colored-man-pages/colored-man-pages.plugin.zsh index 5c613f4..54f0bdd 100644 --- a/plugins/colored-man-pages/colored-man-pages.plugin.zsh +++ b/plugins/colored-man-pages/colored-man-pages.plugin.zsh @@ -1,32 +1,32 @@ -if [ "$OSTYPE[0,7]" = "solaris" ] +if [[ "$OSTYPE" = solaris* ]] then - if [ ! -x ${HOME}/bin/nroff ] + if [[ ! -x "$HOME/bin/nroff" ]] then - mkdir -p ${HOME}/bin - cat > ${HOME}/bin/nroff < "$HOME/bin/nroff" </dev/null | sed "1,/Available commands/d" | awk '/^[ \t]*[a-z]+/ { print $1 }' } _composer_get_required_list () { - $_comp_command1 show -s --no-ansi | sed '1,/requires/d' | awk 'NF > 0 && !/^requires \(dev\)/{ print $1 }' + $_comp_command1 show -s --no-ansi 2>/dev/null | sed '1,/requires/d' | awk 'NF > 0 && !/^requires \(dev\)/{ print $1 }' } _composer () { diff --git a/plugins/ember-cli/README.md b/plugins/ember-cli/README.md index 482c347..1f92bba 100644 --- a/plugins/ember-cli/README.md +++ b/plugins/ember-cli/README.md @@ -6,14 +6,16 @@ Ember CLI (http://www.ember-cli.com/) ### List of Aliases - alias es='ember serve' - alias ea='ember addon' - alias eb='ember build' - alias ed='ember destroy' - alias eg='ember generate' - alias eh='ember help' - alias ein='ember init' - alias ei='ember install' - alias et='ember test' - alias eu='ember update' - alias ev='ember version' +Alias | Ember-CLI command +----- | ----------------- +**es** | *ember serve* +**ea** | *ember addon* +**eb** | *ember build* +**ed** | *ember destroy* +**eg** | *ember generate* +**eh** | *ember help* +**ein** | *ember init* +**ei** | *ember install* +**et** | *ember test* +**eu** | *ember update* +**ev** | *ember version* diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh index 690126b..5d0809e 100644 --- a/plugins/extract/extract.plugin.zsh +++ b/plugins/extract/extract.plugin.zsh @@ -52,7 +52,7 @@ function extract() { (*.xz) unxz "$1" ;; (*.lzma) unlzma "$1" ;; (*.Z) uncompress "$1" ;; - (*.zip|*.war|*.jar|*.sublime-package|*.ipsw) unzip "$1" -d $extract_dir ;; + (*.zip|*.war|*.jar|*.sublime-package|*.ipsw|*.xpi|*.apk) unzip "$1" -d $extract_dir ;; (*.rar) unrar x -ad "$1" ;; (*.7z) 7za x "$1" ;; (*.deb) diff --git a/plugins/git-extras/git-extras.plugin.zsh b/plugins/git-extras/git-extras.plugin.zsh index 507bf1b..0dcd630 100644 --- a/plugins/git-extras/git-extras.plugin.zsh +++ b/plugins/git-extras/git-extras.plugin.zsh @@ -4,7 +4,7 @@ # # Completion script for git-extras (http://github.com/tj/git-extras). # -# This depends on and reueses some of the internals of the _git completion +# This depends on and reuses some of the internals of the _git completion # function that ships with zsh itself. It will not work with the _git that ships # with git. # diff --git a/plugins/git-flow/git-flow.plugin.zsh b/plugins/git-flow/git-flow.plugin.zsh index 444440b..a8386cb 100644 --- a/plugins/git-flow/git-flow.plugin.zsh +++ b/plugins/git-flow/git-flow.plugin.zsh @@ -6,7 +6,7 @@ # To achieve git-flow completion nirvana: # # 0. Update your zsh's git-completion module to the newest version. -# From here. http://zsh.git.sourceforge.net/git/gitweb.cgi?p=zsh/zsh;a=blob_plain;f=Completion/Unix/Command/_git;hb=HEAD +# From here. https://raw.githubusercontent.com/zsh-users/zsh/master/Completion/Unix/Command/_git # # 1. Install this file. Either: # diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index d78b82d..b851fb9 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -6,19 +6,12 @@ zstyle -s ":vcs_info:git:*:-all-" "command" _omz_git_git_cmd # Functions # -# The current branch name -# Usage example: git pull origin $(current_branch) -# Using '--quiet' with 'symbolic-ref' will not cause a fatal error (128) if -# it's not a symbolic ref, but in a Git repo. +# The name of the current branch +# Back-compatibility wrapper for when this function was defined here in +# the plugin, before being pulled in to core lib/git.zsh as git_current_branch() +# to fix the core -> git plugin dependency. function current_branch() { - local ref - ref=$($_omz_git_git_cmd symbolic-ref --quiet HEAD 2> /dev/null) - local ret=$? - if [[ $ret != 0 ]]; then - [[ $ret == 128 ]] && return # no git repo. - ref=$($_omz_git_git_cmd rev-parse --short HEAD 2> /dev/null) || return - fi - echo ${ref#refs/heads/} + git_current_branch } # The list of remotes function current_repository() { @@ -99,7 +92,7 @@ alias gfo='git fetch origin' alias gg='git gui citool' alias gga='git gui citool --amend' ggf() { -[[ "$#" != 1 ]] && local b="$(current_branch)" +[[ "$#" != 1 ]] && local b="$(git_current_branch)" git push --force origin "${b:=$1}" } compdef _git ggf=git-checkout @@ -107,23 +100,23 @@ ggl() { if [[ "$#" != 0 ]] && [[ "$#" != 1 ]]; then git pull origin "${*}" else -[[ "$#" == 0 ]] && local b="$(current_branch)" +[[ "$#" == 0 ]] && local b="$(git_current_branch)" git pull origin "${b:=$1}" fi } compdef _git ggl=git-checkout -alias ggpull='git pull origin $(current_branch)' +alias ggpull='git pull origin $(git_current_branch)' compdef _git ggpull=git-checkout ggp() { if [[ "$#" != 0 ]] && [[ "$#" != 1 ]]; then git push origin "${*}" else -[[ "$#" == 0 ]] && local b="$(current_branch)" +[[ "$#" == 0 ]] && local b="$(git_current_branch)" git push origin "${b:=$1}" fi } compdef _git ggp=git-checkout -alias ggpush='git push origin $(current_branch)' +alias ggpush='git push origin $(git_current_branch)' compdef _git ggpush=git-checkout ggpnp() { if [[ "$#" == 0 ]]; then @@ -133,9 +126,9 @@ ggl "${*}" && ggp "${*}" fi } compdef _git ggpnp=git-checkout -alias ggsup='git branch --set-upstream-to=origin/$(current_branch)' +alias ggsup='git branch --set-upstream-to=origin/$(git_current_branch)' ggu() { -[[ "$#" != 1 ]] && local b="$(current_branch)" +[[ "$#" != 1 ]] && local b="$(git_current_branch)" git pull --rebase origin "${b:=$1}" } compdef _git ggu=git-checkout diff --git a/plugins/github/_hub b/plugins/github/_hub new file mode 100644 index 0000000..3a64938 --- /dev/null +++ b/plugins/github/_hub @@ -0,0 +1,163 @@ +#compdef hub + +# Zsh will source this file when attempting to autoload the "_hub" function, +# typically on the first attempt to complete the hub command. We define two new +# setup helper routines (one for the zsh-distributed version, one for the +# git-distributed, bash-based version). Then we redefine the "_hub" function to +# call "_git" after some other interception. +# +# This is pretty fragile, if you think about it. Any number of implementation +# changes in the "_git" scripts could cause problems down the road. It would be +# better if the stock git completions were just a bit more permissive about how +# it allowed third-party commands to be added. + +(( $+functions[__hub_setup_zsh_fns] )) || +__hub_setup_zsh_fns () { + (( $+functions[_git-alias] )) || + _git-alias () { + _arguments \ + '-s[output shell script suitable for eval]' \ + '1::shell:(zsh bash csh)' + } + + (( $+functions[_git-browse] )) || + _git-browse () { + _arguments \ + '-u[output the URL]' \ + '2::subpage:(wiki commits issues)' + } + + (( $+functions[_git-compare] )) || + _git-compare () { + _arguments \ + '-u[output the URL]' \ + ':[start...]end range:' + } + + (( $+functions[_git-create] )) || + _git-create () { + _arguments \ + '::name (REPOSITORY or ORGANIZATION/REPOSITORY):' \ + '-p[make repository private]' \ + '-d[description]:description' \ + '-h[home page]:repository home page URL:_urls' + } + + (( $+functions[_git-fork] )) || + _git-fork () { + _arguments \ + '--no-remote[do not add a remote for the new fork]' + } + + (( $+functions[_git-pull-request] )) || + _git-pull-request () { + _arguments \ + '-f[force (skip check for local commits)]' \ + '-b[base]:base ("branch", "owner\:branch", "owner/repo\:branch"):' \ + '-h[head]:head ("branch", "owner\:branch", "owner/repo\:branch"):' \ + - set1 \ + '-m[message]' \ + '-F[file]' \ + '-a[user]' \ + '-M[milestone]' \ + '-l[labels]' \ + - set2 \ + '-i[issue]:issue number:' \ + - set3 \ + '::issue-url:_urls' + } + + # stash the "real" command for later + functions[_hub_orig_git_commands]=$functions[_git_commands] + + # Replace it with our own wrapper. + declare -f _git_commands >& /dev/null && unfunction _git_commands + _git_commands () { + local ret=1 + # call the original routine + _call_function ret _hub_orig_git_commands + + # Effectively "append" our hub commands to the behavior of the original + # _git_commands function. Using this wrapper function approach ensures + # that we only offer the user the hub subcommands when the user is + # actually trying to complete subcommands. + hub_commands=( + alias:'show shell instructions for wrapping git' + pull-request:'open a pull request on GitHub' + fork:'fork origin repo on GitHub' + create:'create new repo on GitHub for the current project' + browse:'browse the project on GitHub' + compare:'open GitHub compare view' + ci-status:'lookup commit in GitHub Status API' + ) + _describe -t hub-commands 'hub command' hub_commands && ret=0 + + return ret + } +} + +(( $+functions[__hub_setup_bash_fns] )) || +__hub_setup_bash_fns () { + # TODO more bash-style fns needed here to complete subcommand args. They take + # the form "_git_CMD" where "CMD" is something like "pull-request". + + # Duplicate and rename the 'list_all_commands' function + eval "$(declare -f __git_list_all_commands | \ + sed 's/__git_list_all_commands/__git_list_all_commands_without_hub/')" + + # Wrap the 'list_all_commands' function with extra hub commands + __git_list_all_commands() { + cat <<-EOF +alias +pull-request +fork +create +browse +compare +ci-status +EOF + __git_list_all_commands_without_hub + } + + # Ensure cached commands are cleared + __git_all_commands="" +} + +# redefine _hub to a much smaller function in the steady state +_hub () { + # only attempt to intercept the normal "_git" helper functions once + (( $+__hub_func_replacement_done )) || + () { + # At this stage in the shell's execution the "_git" function has not yet + # been autoloaded, so the "_git_commands" or "__git_list_all_commands" + # functions will not be defined. Call it now (with a bogus no-op service + # to prevent premature completion) so that we can wrap them. + if declare -f _git >& /dev/null ; then + _hub_noop () { __hub_zsh_provided=1 } # zsh-provided will call this one + __hub_noop_main () { __hub_git_provided=1 } # git-provided will call this one + local service=hub_noop + _git + unfunction _hub_noop + unfunction __hub_noop_main + service=git + fi + + if (( $__hub_zsh_provided )) ; then + __hub_setup_zsh_fns + elif (( $__hub_git_provided )) ; then + __hub_setup_bash_fns + fi + + __hub_func_replacement_done=1 + } + + # Now perform the actual completion, allowing the "_git" function to call our + # replacement "_git_commands" function as needed. Both versions expect + # service=git or they will call nonexistent routines or end up in an infinite + # loop. + service=git + declare -f _git >& /dev/null && _git +} + +# make sure we actually attempt to complete on the first "tab" from the user +_hub diff --git a/plugins/gulp/gulp.plugin.zsh b/plugins/gulp/gulp.plugin.zsh index f7eaefa..2b31051 100644 --- a/plugins/gulp/gulp.plugin.zsh +++ b/plugins/gulp/gulp.plugin.zsh @@ -2,12 +2,12 @@ # # gulp-autocompletion-zsh -# +# # Autocompletion for your gulp.js tasks # # Copyright(c) 2014 André König # MIT Licensed -# +# # # André König @@ -20,7 +20,7 @@ # in the current directory. # function $$gulp_completion { - compls="$(grep -Eo "gulp.task\((['\"](([a-zA-Z0-9]|-)*)['\"],)" gulpfile.js 2>/dev/null | grep -Eo "['\"](([a-zA-Z0-9]|-)*)['\"]" | sed s/"['\"]"//g | sort)" + compls=$(gulp --tasks-simple 2>/dev/null) completions=(${=compls}) compadd -- $completions diff --git a/plugins/history-substring-search/history-substring-search.plugin.zsh b/plugins/history-substring-search/history-substring-search.plugin.zsh index 25fd3a2..7883a65 100644 --- a/plugins/history-substring-search/history-substring-search.plugin.zsh +++ b/plugins/history-substring-search/history-substring-search.plugin.zsh @@ -13,11 +13,14 @@ fi # Bind terminal-specific up and down keys - +# Bind in both emacs and vi modes so it works in both, and is not +# sensitive to whether this is loaded before or after the vi-mode plugin if [[ -n "$terminfo[kcuu1]" ]]; then - bindkey "$terminfo[kcuu1]" history-substring-search-up + bindkey -M emacs "$terminfo[kcuu1]" history-substring-search-up + bindkey -M viins "$terminfo[kcuu1]" history-substring-search-up fi if [[ -n "$terminfo[kcud1]" ]]; then - bindkey "$terminfo[kcud1]" history-substring-search-down + bindkey -M emacs "$terminfo[kcud1]" history-substring-search-down + bindkey -M viins "$terminfo[kcud1]" history-substring-search-down fi diff --git a/plugins/history-substring-search/update-from-upstream.zsh b/plugins/history-substring-search/update-from-upstream.zsh index 6e6cca5..81e1942 100755 --- a/plugins/history-substring-search/update-from-upstream.zsh +++ b/plugins/history-substring-search/update-from-upstream.zsh @@ -76,10 +76,12 @@ cat >> $plugin_basename.plugin.zsh < compute new list (maybe also col_list) + # -> compute new list if [[ -n "$prev_search_buffer" || "$NLIST_IS_UNIQ_MODE" -ne "$prev_uniq_mode" ]]; then prev_search_buffer="" prev_uniq_mode="$NLIST_IS_UNIQ_MODE" @@ -311,7 +311,9 @@ while (( 1 )); do # Take all elements, including duplicates and non-selectables typeset +U list - list=( "$@" ) + repeat 1; do + list=( "$@" ) + done # Remove non-selectable elements only when in uniq mode [ "$NLIST_IS_UNIQ_MODE" -eq 1 ] && [ "$#NLIST_NONSELECTABLE_ELEMENTS" -gt 0 ] && @@ -322,13 +324,6 @@ while (( 1 )); do # Remove duplicates when in uniq mode [ "$NLIST_IS_UNIQ_MODE" -eq 1 ] && typeset -U list - # Apply coloring pattern (when not with search query) - is_colored=0 - if [ -n "$NLIST_COLORING_PATTERN" ]; then - is_colored=1 - _nlist_coloring_list_into_col_list - fi - last_element="$#list" # Called after processing list _nlist_verify_vars @@ -340,22 +335,14 @@ while (( 1 )); do integer end_idx=$(( NLIST_FROM_WHAT_IDX_LIST_IS_SHOWN + page_height - 1 )) [ "$end_idx" -gt "$last_element" ] && end_idx=last_element - if [ "$is_colored" -eq 0 ]; then - if [ "$prev_start_idx" -ne "$NLIST_FROM_WHAT_IDX_LIST_IS_SHOWN" ]; then - prev_start_idx="$NLIST_FROM_WHAT_IDX_LIST_IS_SHOWN" - disp_list=( "${(@)list[NLIST_FROM_WHAT_IDX_LIST_IS_SHOWN, end_idx]}" ) + if [ "$prev_start_idx" -ne "$NLIST_FROM_WHAT_IDX_LIST_IS_SHOWN" ]; then + prev_start_idx="$NLIST_FROM_WHAT_IDX_LIST_IS_SHOWN" + disp_list=( "${(@)list[NLIST_FROM_WHAT_IDX_LIST_IS_SHOWN, end_idx]}" ) - # We have display list, lets replace newlines with "\n" when needed (2/3) - [ "$NLIST_REPLACE_NEWLINES" -eq 1 ] && disp_list=( "${(@)disp_list//$'\n'/\\n}" ) - fi - else - if [ "$prev_start_idx" -ne "$NLIST_FROM_WHAT_IDX_LIST_IS_SHOWN" ]; then - prev_start_idx="$NLIST_FROM_WHAT_IDX_LIST_IS_SHOWN" - disp_list=( "${(@)col_list[NLIST_FROM_WHAT_IDX_LIST_IS_SHOWN, end_idx]}" ) + [ -n "$NLIST_COLORING_PATTERN" ] && _nlist_colorify_disp_list - # We have display list, lets replace newlines with "\n" when needed (3/3) - [ "$NLIST_REPLACE_NEWLINES" -eq 1 ] && disp_list=( "${(@)disp_list//$'\n'/\\n}" ) - fi + # We have display list, lets replace newlines with "\n" when needed (2/2) + [ "$NLIST_REPLACE_NEWLINES" -eq 1 ] && disp_list=( "${(@)disp_list//$'\n'/\\n}" ) fi # Output the list @@ -380,6 +367,11 @@ while (( 1 )); do fi zcurses border main + + local top_msg="${(C)ZSH_NAME} $ZSH_VERSION, shell level $SHLVL, $USER" + zcurses move main 0 $(( term_width / 2 - $#top_msg / 2 )) + zcurses string main $top_msg + zcurses refresh main inner zcurses move main $(( term_height - 1 - 1 )) $(( status_msg_strlen + 2 )) diff --git a/plugins/zsh-navigation-tools/n-panelize b/plugins/zsh-navigation-tools/n-panelize index a70565c..01d01cb 100644 --- a/plugins/zsh-navigation-tools/n-panelize +++ b/plugins/zsh-navigation-tools/n-panelize @@ -32,7 +32,11 @@ if [ -t 0 ]; then return 1 fi - list=( `"$@"` ) + # This loop makes script faster on some Zsh's (e.g. 5.0.8) + repeat 1; do + list=( `"$@"` ) + done + # TODO: $? doesn't reach user [ "$?" -eq 127 ] && return $? else @@ -42,7 +46,10 @@ else return 1 fi - list=( "${(@f)"$(<&0)"}" ) + # This loop makes script faster on some Zsh's (e.g. 5.0.8) + repeat 1; do + list=( "${(@f)"$(<&0)"}" ) + done if [[ ! -c /dev/tty ]]; then exec <&2 diff --git a/themes/agnoster.zsh-theme b/themes/agnoster.zsh-theme index a6bb9c6..103041e 100644 --- a/themes/agnoster.zsh-theme +++ b/themes/agnoster.zsh-theme @@ -43,7 +43,8 @@ CURRENT_BG='NONE' # This is defined using a Unicode escape sequence so it is unambiguously readable, regardless of # what font the user is viewing this source code in. Do not replace the # escape sequence with a single literal character. - SEGMENT_SEPARATOR=$'\ue0b0' #  + # Do not change this! Do not make it '\u2b80'; that is the old, wrong code point. + SEGMENT_SEPARATOR=$'\ue0b0' } # Begin a segment diff --git a/themes/eastwood.zsh-theme b/themes/eastwood.zsh-theme index 1b284cd..88134f8 100644 --- a/themes/eastwood.zsh-theme +++ b/themes/eastwood.zsh-theme @@ -14,9 +14,9 @@ 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) + local cb=$(git_current_branch) if [ -n "$cb" ]; then - echo "$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_PREFIX$(current_branch)$ZSH_THEME_GIT_PROMPT_SUFFIX" + echo "$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_PREFIX$(git_current_branch)$ZSH_THEME_GIT_PROMPT_SUFFIX" fi } diff --git a/themes/fishy.zsh-theme b/themes/fishy.zsh-theme index 8b24172..83bd455 100644 --- a/themes/fishy.zsh-theme +++ b/themes/fishy.zsh-theme @@ -1,13 +1,13 @@ # ZSH Theme emulating the Fish shell's default prompt. _fishy_collapsed_wd() { - echo $(pwd | perl -pe " + echo $(pwd | perl -pe ' BEGIN { - binmode STDIN, ':encoding(UTF-8)'; - binmode STDOUT, ':encoding(UTF-8)'; - }; s|^$HOME|~|g; s|/([^/])[^/]*(?=/)|/\$1|g -") -} + binmode STDIN, ":encoding(UTF-8)"; + binmode STDOUT, ":encoding(UTF-8)"; + }; s|^$ENV{HOME}|~|g; s|/([^/.])[^/]*(?=/)|/$1|g; s|/\.([^/])[^/]*(?=/)|/.$1|g +') +} local user_color='green'; [ $UID -eq 0 ] && user_color='red' PROMPT='%n@%m %{$fg[$user_color]%}$(_fishy_collapsed_wd)%{$reset_color%}%(!.#.>) ' diff --git a/themes/frontcube.zsh-theme b/themes/frontcube.zsh-theme index d9f5b6d..539e744 100644 --- a/themes/frontcube.zsh-theme +++ b/themes/frontcube.zsh-theme @@ -4,7 +4,7 @@ PROMPT=' %{$fg_bold[gray]%}%~%{$fg_bold[blue]%}%{$fg_bold[blue]%} % %{$reset_color%} %{$fg[green]%}➞ %{$reset_color%' -RPROMPT='$(git_prompt_info) $(rvm)' +RPROMPT='$(git_prompt_info) ${rvm}' ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}[git:" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" diff --git a/themes/gallois.zsh-theme b/themes/gallois.zsh-theme index d383ed5..515325e 100644 --- a/themes/gallois.zsh-theme +++ b/themes/gallois.zsh-theme @@ -1,3 +1,5 @@ +# Depends on the git plugin for work_in_progress() + 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%}" @@ -5,9 +7,9 @@ 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) + local cb=$(git_current_branch) if [ -n "$cb" ]; then - echo "$(parse_git_dirty)%{$fg_bold[yellow]%}$(work_in_progress)%{$reset_color%}$ZSH_THEME_GIT_PROMPT_PREFIX$(current_branch)$ZSH_THEME_GIT_PROMPT_SUFFIX" + echo "$(parse_git_dirty)%{$fg_bold[yellow]%}$(work_in_progress)%{$reset_color%}$ZSH_THEME_GIT_PROMPT_PREFIX$(git_current_branch)$ZSH_THEME_GIT_PROMPT_SUFFIX" fi } diff --git a/themes/josh.zsh-theme b/themes/josh.zsh-theme index 12dfe40..c8f0f4d 100644 --- a/themes/josh.zsh-theme +++ b/themes/josh.zsh-theme @@ -9,7 +9,7 @@ function josh_prompt { (( spare_width = ${COLUMNS} )) prompt=" " - branch=$(current_branch) + branch=$(git_current_branch) ruby_version=$(rvm_prompt_info || rbenv_prompt_info) path_size=${#PWD} branch_size=${#branch} @@ -31,7 +31,7 @@ function josh_prompt { prompt=" $prompt" done - prompt="%{%F{green}%}$PWD$prompt%{%F{red}%}$(rvm_prompt_info || rbenv_prompt_info)%{$reset_color%} $(current_branch)" + prompt="%{%F{green}%}$PWD$prompt%{%F{red}%}$(rvm_prompt_info || rbenv_prompt_info)%{$reset_color%} $(git_current_branch)" echo $prompt } diff --git a/themes/juanghurtado.zsh-theme b/themes/juanghurtado.zsh-theme index bc470e8..dbdfde7 100644 --- a/themes/juanghurtado.zsh-theme +++ b/themes/juanghurtado.zsh-theme @@ -1,5 +1,3 @@ -# Needs Git plugin for current_branch method - # Color shortcuts RED=$fg[red] YELLOW=$fg[yellow] @@ -40,4 +38,4 @@ ZSH_THEME_GIT_PROMPT_SHA_AFTER="%{$WHITE%}]" PROMPT=' %{$GREEN_BOLD%}%n@%m%{$WHITE%}:%{$YELLOW%}%~%u$(parse_git_dirty)$(git_prompt_ahead)%{$RESET_COLOR%} %{$BLUE%}>%{$RESET_COLOR%} ' -RPROMPT='%{$GREEN_BOLD%}$(current_branch)$(git_prompt_short_sha)$(git_prompt_status)%{$RESET_COLOR%}' +RPROMPT='%{$GREEN_BOLD%}$(git_current_branch)$(git_prompt_short_sha)$(git_prompt_status)%{$RESET_COLOR%}' diff --git a/themes/mortalscumbag.zsh-theme b/themes/mortalscumbag.zsh-theme index ccce419..55ece97 100644 --- a/themes/mortalscumbag.zsh-theme +++ b/themes/mortalscumbag.zsh-theme @@ -5,7 +5,7 @@ function my_git_prompt() { STATUS="" # is branch ahead? - if $(echo "$(git log origin/$(current_branch)..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then + if $(echo "$(git log origin/$(git_current_branch)..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_AHEAD" fi @@ -37,7 +37,7 @@ function my_git_prompt() { } function my_current_branch() { - echo $(current_branch || echo "(no branch)") + echo $(git_current_branch || echo "(no branch)") } function ssh_connection() { diff --git a/themes/peepcode.zsh-theme b/themes/peepcode.zsh-theme index ca2a886..96e4f11 100644 --- a/themes/peepcode.zsh-theme +++ b/themes/peepcode.zsh-theme @@ -28,7 +28,7 @@ git_dirty() { } git_prompt() { - local cb=$(current_branch) + local cb=$(git_current_branch) if [ -n "$cb" ]; then local repo_path=$(git_repo_path) echo " %{$fg_bold[grey]%}$cb %{$fg[white]%}$(git_commit_id)%{$reset_color%}$(git_mode)$(git_dirty)" diff --git a/themes/sunrise.zsh-theme b/themes/sunrise.zsh-theme index 28befd0..57d2649 100644 --- a/themes/sunrise.zsh-theme +++ b/themes/sunrise.zsh-theme @@ -1,6 +1,5 @@ # Sunrise theme for oh-my-zsh # Intended to be used with Solarized: http://ethanschoonover.com/solarized -# (Needs Git plugin for current_branch method) # Color shortcuts R=$fg_no_bold[red] diff --git a/tools/upgrade.sh b/tools/upgrade.sh index fe8fbad..d5e7e8b 100644 --- a/tools/upgrade.sh +++ b/tools/upgrade.sh @@ -20,7 +20,7 @@ else NORMAL="" fi -printf "${BLUE}%s${NORMAL}\n" "Upgrading Oh My Zsh" +printf "${BLUE}%s${NORMAL}\n" "Updating Oh My Zsh" cd "$ZSH" if git pull --rebase --stat origin master then -- 2.0.0