From c840594c6ffdcecc241c9ccb130daeb630831ef7 Mon Sep 17 00:00:00 2001
From: Robert McLeod
Date: Fri, 10 Apr 2015 15:07:29 +1200
Subject: [PATCH 001/302] added aliases for vagrant
---
plugins/vagrant/vagrant.plugin.zsh | 31 ++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
create mode 100644 plugins/vagrant/vagrant.plugin.zsh
diff --git a/plugins/vagrant/vagrant.plugin.zsh b/plugins/vagrant/vagrant.plugin.zsh
new file mode 100644
index 000000000..a238d9ffe
--- /dev/null
+++ b/plugins/vagrant/vagrant.plugin.zsh
@@ -0,0 +1,31 @@
+alias vgi="vagrant init"
+
+alias vup="vagrant up"
+alias vd="vagrant destroy"
+alias vdf="vagrant destroy -f"
+
+alias vssh="vagrant ssh"
+alias vrdp="vagrant rdp"
+
+alias vh="vagrant halt"
+alias vssp="vagrant suspend"
+alias vst="vagrant status"
+alias vre="vagrant resume"
+
+alias vpr="vagrant provision"
+alias vr="vagrant reload"
+alias vrp="vagrant reload --provision"
+
+alias vp="vagrant push"
+alias vsh="vagrant share"
+
+alias vba="vagrant box add"
+alias vbr="vagrant box remove"
+alias vbl="vagrant box list"
+alias vbo="vagrant box outdated"
+alias vbu="vagrant box update"
+
+alias vpli="vagrant plugin install"
+alias vpll="vagrant plugin list"
+alias vplun="vagrant plugin uninstall"
+alias vplu="vagrant plugin update"
From b6ed2e7ac378438689d3348b4be00b2bce4fd9a8 Mon Sep 17 00:00:00 2001
From: Robert McLeod
Date: Wed, 8 Jul 2015 07:54:42 +1200
Subject: [PATCH 002/302] added aliases for ssh-config and global-status
So the following aliases call the respective commands:
vgs = vagrant global-status
vsshc = vagrant ssh-config
---
plugins/vagrant/vagrant.plugin.zsh | 2 ++
1 file changed, 2 insertions(+)
diff --git a/plugins/vagrant/vagrant.plugin.zsh b/plugins/vagrant/vagrant.plugin.zsh
index a238d9ffe..a4e9b06c2 100644
--- a/plugins/vagrant/vagrant.plugin.zsh
+++ b/plugins/vagrant/vagrant.plugin.zsh
@@ -5,12 +5,14 @@ alias vd="vagrant destroy"
alias vdf="vagrant destroy -f"
alias vssh="vagrant ssh"
+alias vsshc="vagrant ssh-config"
alias vrdp="vagrant rdp"
alias vh="vagrant halt"
alias vssp="vagrant suspend"
alias vst="vagrant status"
alias vre="vagrant resume"
+alias vgs="vagrant global-status"
alias vpr="vagrant provision"
alias vr="vagrant reload"
From 9dd76fb6bc29071bd616d9ea32e29ce7b4dcba73 Mon Sep 17 00:00:00 2001
From: spacewander
Date: Fri, 23 Sep 2016 12:02:23 +0800
Subject: [PATCH 003/302] add task description to fabric completion
---
plugins/fabric/_fab | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/plugins/fabric/_fab b/plugins/fabric/_fab
index 9628e1224..79d596ed6 100644
--- a/plugins/fabric/_fab
+++ b/plugins/fabric/_fab
@@ -5,7 +5,10 @@ local curcontext=$curcontext state line
declare -A opt_args
declare target_list
-target_list=(`fab --shortlist 2>/dev/null`)
+IFS="$(printf '\n+')" target_list=($(fab -l | awk '{
+ if(NR > 2)
+ printf "%s:%s\n", $1, substr($0, index($0, $2))
+}' 2>/dev/null))
_targets() {
_describe -t commands "fabric targets" target_list
From 23688fc7ab925111fdb0db07670b6b641e380ec9 Mon Sep 17 00:00:00 2001
From: Iulian Onofrei <6d0847b9@opayq.com>
Date: Sat, 29 Sep 2018 17:01:41 +0300
Subject: [PATCH 004/302] Add option to color any help command
This allows you to use `colored git log --help` for example, to get
colored output.
---
plugins/colored-man-pages/colored-man-pages.plugin.zsh | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/plugins/colored-man-pages/colored-man-pages.plugin.zsh b/plugins/colored-man-pages/colored-man-pages.plugin.zsh
index 1bea536e0..ac6a94654 100644
--- a/plugins/colored-man-pages/colored-man-pages.plugin.zsh
+++ b/plugins/colored-man-pages/colored-man-pages.plugin.zsh
@@ -16,7 +16,7 @@ EOF
fi
fi
-function man() {
+function colored() {
env \
LESS_TERMCAP_mb=$(printf "\e[1;31m") \
LESS_TERMCAP_md=$(printf "\e[1;31m") \
@@ -28,5 +28,9 @@ function man() {
PAGER="${commands[less]:-$PAGER}" \
_NROFF_U=1 \
PATH="$HOME/bin:$PATH" \
- man "$@"
+ "$@"
+}
+
+function man() {
+ colored man "$@"
}
From 22e00b02efe63d3ee19a55dadbdea0bea1785942 Mon Sep 17 00:00:00 2001
From: Caleb Williams
Date: Wed, 2 Jan 2019 14:12:13 -0600
Subject: [PATCH 005/302] Add Yarn Workspace command aliases
---
plugins/yarn/yarn.plugin.zsh | 2 ++
1 file changed, 2 insertions(+)
diff --git a/plugins/yarn/yarn.plugin.zsh b/plugins/yarn/yarn.plugin.zsh
index 9ed8322cd..7bdfdb48a 100644
--- a/plugins/yarn/yarn.plugin.zsh
+++ b/plugins/yarn/yarn.plugin.zsh
@@ -22,3 +22,5 @@ alias yt="yarn test"
alias yuc="yarn global upgrade && yarn cache clean"
alias yui="yarn upgrade-interactive"
alias yup="yarn upgrade"
+alias yw="yarn workspace"
+alias yws="yarn workspaces"
From 67e0ef7aa6a494b2357c64a204214f7b19fb52e7 Mon Sep 17 00:00:00 2001
From: "GIL B. Chan"
Date: Sun, 7 Apr 2019 18:48:22 +0900
Subject: [PATCH 006/302] edit colorize plugin: add `-f terminal` option
The option (`pygmentize -f terminal <...>`) lets pygments use terminal color
scheme. Otherwise, it would use its default colors, which might be
unbalanced with that of terminal (e.g. not harmonious with background color of terminal).
---
plugins/colorize/colorize.plugin.zsh | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/plugins/colorize/colorize.plugin.zsh b/plugins/colorize/colorize.plugin.zsh
index 8eede9a94..d52e95c49 100644
--- a/plugins/colorize/colorize.plugin.zsh
+++ b/plugins/colorize/colorize.plugin.zsh
@@ -9,7 +9,7 @@ colorize_via_pygmentize() {
# pygmentize stdin if no arguments passed
if [ $# -eq 0 ]; then
- pygmentize -g
+ pygmentize -f terminal -g
return $?
fi
@@ -20,9 +20,9 @@ colorize_via_pygmentize() {
do
lexer=$(pygmentize -N "$FNAME")
if [[ $lexer != text ]]; then
- pygmentize -l "$lexer" "$FNAME"
+ pygmentize -f terminal -l "$lexer" "$FNAME"
else
- pygmentize -g "$FNAME"
+ pygmentize -f terminal -g "$FNAME"
fi
done
}
From 17f4cfca99398cb5511557b8515a17bf1bf2948a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Sat, 13 Jul 2019 12:48:10 +0200
Subject: [PATCH 007/302] af-magic: make separator window-size-aware (#7739)
---
themes/af-magic.zsh-theme | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/themes/af-magic.zsh-theme b/themes/af-magic.zsh-theme
index 1c6d1732c..2a6595a71 100644
--- a/themes/af-magic.zsh-theme
+++ b/themes/af-magic.zsh-theme
@@ -6,7 +6,7 @@ if [ $UID -eq 0 ]; then NCOLOR="red"; else NCOLOR="green"; fi
local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
# primary prompt
-PROMPT='$FG[237]------------------------------------------------------------%{$reset_color%}
+PROMPT='$FG[237]${(l.COLUMNS..-.)}%{$reset_color%}
$FG[032]%~\
$(git_prompt_info) \
$FG[105]%(!.#.»)%{$reset_color%} '
From b90f76c1411b4a2182f4fd54b5739be5f78410e8 Mon Sep 17 00:00:00 2001
From: Ilya Gorski <52842983+gorsil@users.noreply.github.com>
Date: Mon, 15 Jul 2019 00:40:28 +0300
Subject: [PATCH 008/302] fzf: Adding support for debian packages
---
plugins/fzf/fzf.plugin.zsh | 136 +++++++++++++++++++++++--------------
1 file changed, 86 insertions(+), 50 deletions(-)
diff --git a/plugins/fzf/fzf.plugin.zsh b/plugins/fzf/fzf.plugin.zsh
index 27e2d9246..e191bebbd 100644
--- a/plugins/fzf/fzf.plugin.zsh
+++ b/plugins/fzf/fzf.plugin.zsh
@@ -1,57 +1,93 @@
-test -d "${FZF_BASE}" && fzf_base="${FZF_BASE}"
+function setup_using_base_dir() {
+ # Declare all variables local not no mess with outside env in any way
+ local fzf_base
+ local fzf_shell
+ local fzfdirs
+ local dir
-if [[ -z "${fzf_base}" ]]; then
- fzfdirs=(
- "${HOME}/.fzf"
- "/usr/local/opt/fzf"
- "/usr/share/fzf"
- )
- for dir in ${fzfdirs}; do
- if [[ -d "${dir}" ]]; then
- fzf_base="${dir}"
- break
- fi
- done
+ test -d "${FZF_BASE}" && fzf_base="${FZF_BASE}"
- if [[ -z "${fzf_base}" ]]; then
- if (( ${+commands[brew]} )) && dir="$(brew --prefix fzf 2>/dev/null)"; then
- if [[ -d "${dir}" ]]; then
- fzf_base="${dir}"
- fi
- fi
- fi
-fi
+ if [[ -z "${fzf_base}" ]]; then
+ fzfdirs=(
+ "${HOME}/.fzf"
+ "/usr/local/opt/fzf"
+ "/usr/share/fzf"
+ )
+ for dir in ${fzfdirs}; do
+ if [[ -d "${dir}" ]]; then
+ fzf_base="${dir}"
+ break
+ fi
+ done
-if [[ -n "${fzf_base}" ]]; then
+ if [[ -z "${fzf_base}" ]]; then
+ if (( ${+commands[brew]} )) && dir="$(brew --prefix fzf 2>/dev/null)"; then
+ if [[ -d "${dir}" ]]; then
+ fzf_base="${dir}"
+ fi
+ fi
+ fi
+ fi
- # Fix fzf shell directory for Archlinux package
- if [[ ! -d "${fzf_base}/shell" ]] && [[ -f /etc/arch-release ]]; then
- fzf_shell="${fzf_base}"
- else
- fzf_shell="${fzf_base}/shell"
- fi
+ if [[ -d "${fzf_base}" ]]; then
+ # Fix fzf shell directory for Archlinux package
+ if [[ ! -d "${fzf_base}/shell" ]] && [[ -f /etc/arch-release ]]; then
+ fzf_shell="${fzf_base}"
+ else
+ fzf_shell="${fzf_base}/shell"
+ fi
- # Setup fzf
- # ---------
- if ! (( ${+commands[fzf]} )) && [[ ! "$PATH" == *$fzf_base/bin* ]]; then
- export PATH="$PATH:$fzf_base/bin"
- fi
-
- # Auto-completion
- # ---------------
- if [[ ! "$DISABLE_FZF_AUTO_COMPLETION" == "true" ]]; then
- [[ $- == *i* ]] && source "${fzf_shell}/completion.zsh" 2> /dev/null
- fi
-
- # Key bindings
- # ------------
- if [[ ! "$DISABLE_FZF_KEY_BINDINGS" == "true" ]]; then
- source "${fzf_shell}/key-bindings.zsh"
- fi
+ # Setup fzf binary path
+ if ! (( ${+commands[fzf]} )) && [[ ! "$PATH" == *$fzf_base/bin* ]]; then
+ export PATH="$PATH:$fzf_base/bin"
+ fi
-else
- print "[oh-my-zsh] fzf plugin: Cannot find fzf installation directory.\n"\
- "Please add \`export FZF_BASE=/path/to/fzf/install/dir\` to your .zshrc" >&2
-fi
+ # Auto-completion
+ if [[ ! "$DISABLE_FZF_AUTO_COMPLETION" == "true" ]]; then
+ [[ $- == *i* ]] && source "${fzf_shell}/completion.zsh" 2> /dev/null
+ fi
-unset fzf_base fzf_shell dir fzfdirs
+ # Key bindings
+ if [[ ! "$DISABLE_FZF_KEY_BINDINGS" == "true" ]]; then
+ source "${fzf_shell}/key-bindings.zsh"
+ fi
+ else
+ return 1
+ fi
+}
+
+
+function setup_using_debian_package() {
+ dpkg -s fzf &> /dev/null
+ if (( $? )); then
+ # Either not a debian based distro, or no fzf installed. In any case skip ahead
+ return 1
+ fi
+
+ # NOTE: There is no need to configure PATH for debian package, all binaries
+ # are installed to /usr/bin by default
+
+ local completions="/usr/share/zsh/vendor-completions/_fzf"
+ local key_bindings="/usr/share/doc/fzf/examples/key-bindings.zsh"
+
+ # Auto-completion
+ if [[ $- == *i* ]] && [[ ! "$DISABLE_FZF_AUTO_COMPLETION" == "true" ]]; then
+ source $completions 2> /dev/null
+ fi
+
+ # Key bindings
+ if [[ ! "$DISABLE_FZF_KEY_BINDINGS" == "true" ]]; then
+ source $key_bindings
+ fi
+
+ return 0
+}
+
+function indicate_error() {
+ print "[oh-my-zsh] fzf plugin: Cannot find fzf installation directory.\n"\
+ "Please add \`export FZF_BASE=/path/to/fzf/install/dir\` to your .zshrc" >&2
+}
+
+# Check for debian package first, because it easy to short cut
+# Indicate to user that fzf installation not found if nothing worked
+setup_using_debian_package || setup_using_base_dir || indicate_error
From 0565251c3bd91994073a265cdb8abb7eac9439e5 Mon Sep 17 00:00:00 2001
From: Ilya Gorski <52842983+gorsil@users.noreply.github.com>
Date: Wed, 17 Jul 2019 02:43:00 +0300
Subject: [PATCH 009/302] Unset all local functions after running them
---
plugins/fzf/fzf.plugin.zsh | 2 ++
1 file changed, 2 insertions(+)
diff --git a/plugins/fzf/fzf.plugin.zsh b/plugins/fzf/fzf.plugin.zsh
index e191bebbd..646148297 100644
--- a/plugins/fzf/fzf.plugin.zsh
+++ b/plugins/fzf/fzf.plugin.zsh
@@ -91,3 +91,5 @@ function indicate_error() {
# Check for debian package first, because it easy to short cut
# Indicate to user that fzf installation not found if nothing worked
setup_using_debian_package || setup_using_base_dir || indicate_error
+
+unset -f setup_using_debian_package setup_using_base_dir indicate_error
From 783dd1504f99bd34aedd1d4a68ae6f14e38606da Mon Sep 17 00:00:00 2001
From: Pavel Omelchenko
Date: Wed, 17 Jul 2019 15:17:34 +0300
Subject: [PATCH 010/302] change key string
---
plugins/homestead/homestead.plugin.zsh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/homestead/homestead.plugin.zsh b/plugins/homestead/homestead.plugin.zsh
index cdbc564e4..f67a582f4 100644
--- a/plugins/homestead/homestead.plugin.zsh
+++ b/plugins/homestead/homestead.plugin.zsh
@@ -1,6 +1,6 @@
# Homestead basic command completion
_homestead_get_command_list () {
- homestead --no-ansi | sed "1,/Available commands/d" | awk '/^ +[a-z]+/ { print $1 }'
+ homestead --no-ansi | sed "1,/Common commands/d" | awk '/^ +[a-z]+/ { print $1 }'
}
_homestead () {
From 508cba2fc2ec545504abcf38ecdd958f3a89e5e8 Mon Sep 17 00:00:00 2001
From: PLANET ARGON
Date: Mon, 22 Jul 2019 07:28:33 -0700
Subject: [PATCH 011/302] Removing plugin that was named after an external
tool, which carries a history as a racist phrase. Was reported by a user of
OMZ who shared some background on the terminology and how it made them feel.
(#8027)
---
plugins/bwana/README.md | 12 ------------
plugins/bwana/bwana.plugin.zsh | 13 -------------
2 files changed, 25 deletions(-)
delete mode 100644 plugins/bwana/README.md
delete mode 100644 plugins/bwana/bwana.plugin.zsh
diff --git a/plugins/bwana/README.md b/plugins/bwana/README.md
deleted file mode 100644
index dd4fe9f9c..000000000
--- a/plugins/bwana/README.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Bwana
-
-This plugin provides a function to open `man` pages directly with [Bwana](https://www.bruji.com/bwana/).
-
-To use it add bwana to the plugins array in your zshrc file.
-
-```bash
-plugins=(... bwana)
-```
-
-The `bwana` function opens the man page of the passed argument in the Bwana app.
-For example: `bwana ln` opens the man page for `ln` in Bwana.
diff --git a/plugins/bwana/bwana.plugin.zsh b/plugins/bwana/bwana.plugin.zsh
deleted file mode 100644
index 71c9eb18d..000000000
--- a/plugins/bwana/bwana.plugin.zsh
+++ /dev/null
@@ -1,13 +0,0 @@
-#
-# Requires https://www.bruji.com/bwana/
-#
-if [[ -e /Applications/Bwana.app ]] ||
- ( system_profiler -detailLevel mini SPApplicationsDataType | grep -q Bwana )
-then
- function bwana() {
- open "man:$1"
- }
-else
- echo "Bwana lets you read man files in Safari through a man: URI scheme"
- echo "To use it within Zsh, install it from https://www.bruji.com/bwana/"
-fi
From 9817e1e7ff62494abf9d7c78870e92908567e8f4 Mon Sep 17 00:00:00 2001
From: Gopal9816
Date: Sat, 27 Jul 2019 17:39:00 +0530
Subject: [PATCH 012/302] common-aliases: add README (#8039)
---
plugins/common-aliases/README.md | 121 +++++++++++++++++++++++++++++++
1 file changed, 121 insertions(+)
create mode 100644 plugins/common-aliases/README.md
diff --git a/plugins/common-aliases/README.md b/plugins/common-aliases/README.md
new file mode 100644
index 000000000..d198a29ac
--- /dev/null
+++ b/plugins/common-aliases/README.md
@@ -0,0 +1,121 @@
+# Common Aliases Plugin
+
+This plugin creates helpful shortcut aliases for many commonly used commands.
+
+To use it add `common-aliases` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... common-aliases)
+```
+
+## Aliases
+
+### ls command
+
+| Alias | Command | Description |
+|-------|---------------|--------------------------------------------------------------------------------|
+| l | `ls -lFh` | List files as a long list, show size, type, human-readable |
+| la | `ls -lAFh` | List almost all files as a long list show size, type, human-readable |
+| lr | `ls -tRFh` | List files recursively sorted by date, show type, human-readable |
+| lt | `ls -ltFh` | List files as a long list sorted by date, show type, human-readable |
+| ll | `ls -l` | List files as a long list |
+| ldot | `ls -ld .*` | List dot files as a long list |
+| lS | `ls -1FSsh` | List files showing only size and name sorted by size |
+| lart | `ls -1Fcart` | List all files sorted in reverse of create/modification time (oldest first) |
+| lrt | `ls -1Fcrt` | List files sorted in reverse of create/modification time(oldest first) |
+
+### File handling
+
+| Alias | Command | Description |
+|-------|-----------------------|------------------------------------------------------------------------------------|
+| rm | `rm -i` | Remove a file |
+| cp | `cp -i` | Copy a file |
+| mv | `mv -i` | Move a file |
+| zshrc | `${=EDITOR} ~/.zshrc` | Quickly access the ~/.zshrc file |
+| dud | `du -d 1 -h` | Display the size of files at depth 1 in current location in human-readable form |
+| duf | `du -sh` | Display the size of files in current location in human-readable form |
+| t | `tail -f` | Shorthand for tail which outputs the last part of a file |
+
+### find and grep
+
+| Alias | Command | Description |
+|-------|-----------------------------------------------------|-----------------------------------------|
+| fd | `find . -type d -name` | Find a directory with the given name |
+| ff | `find . -type f -name` | Find a file with the given name |
+| grep | `grep --color` | Searches for a query string |
+| sgrep | `grep -R -n -H -C 5 --exclude-dir={.git,.svn,CVS}` | Useful for searching within files |
+
+### Other Aliases
+
+| Alias | Command | Description |
+|-----------|---------------------|-------------------------------------------------------------|
+| h | `history` | Lists all recently used commands |
+| hgrep | `fc -El 0 \| grep` | Searches for a word in the list of previously used commands |
+| help | `man` | Opens up the man page for a command |
+| p | `ps -f` | Displays currently executing processes |
+| sortnr | `sort -n -r` | Used to sort the lines of a text file |
+| unexport | `unset` | Used to unset an environment variable |
+
+## Global aliases
+
+These aliases are expanded in any position in the command line, meaning you can use them even at the
+end of the command you've typed. Examples:
+
+Quickly pipe to less:
+```zsh
+$ ls -l /var/log L
+# will run
+$ ls -l /var/log | less
+```
+Silences stderr output:
+```zsh
+$ find . -type f NE
+# will run
+$ find . -type f 2>/dev/null
+```
+
+| Alias | Command | Description |
+|-------|-----------------------------|-------------------------------------------------------------|
+| H | `\| head` | Pipes output to head which outputs the first part of a file |
+| T | `\| tail` | Pipes output to tail which outputs the last part of a file |
+| G | `\| grep` | Pipes output to grep to search for some word |
+| L | `\| less` | Pipes output to less, useful for paging |
+| M | `\| most` | Pipes output to more, useful for paging |
+| LL | `2>&1 \| less` | Writes stderr to stdout and passes it to less |
+| CA | `2>&1 \| cat -A` | Writes stderr to stdout and passes it to cat |
+| NE | `2 > /dev/null` | Silences stderr |
+| NUL | `> /dev/null 2>&1` | Silences both stdout and stderr |
+| P | `2>&1\| pygmentize -l pytb` | Writes stderr to stdout and passes it to pygmentize |
+
+## File extension aliases
+
+These are special aliases that are triggered when a file name is passed as the command. For example,
+if the pdf file extension is aliased to `acroread` (a popular Linux pdf reader), when running `file.pdf`
+that file will be open with `acroread`.
+
+### Reading Docs
+
+| Alias | Command | Description |
+|-------|-------------|-------------------------------------|
+| pdf | `acroread` | Opens up a document using acroread |
+| ps | `gv` | Opens up a .ps file using gv |
+| dvi | `xdvi` | Opens up a .dvi file using xdvi |
+| chm | `xchm` | Opens up a .chm file using xchm |
+| djvu | `djview` | Opens up a .djvu file using djview |
+
+### Listing files inside a packed file
+
+| Alias | Command | Description |
+|---------|-------------|-------------------------------------|
+| zip | `unzip -l` | Lists files inside a .zip file |
+| rar | `unrar l` | Lists files inside a .rar file |
+| tar | `tar tf` | Lists files inside a .tar file |
+| tar.gz | `echo` | Lists files inside a .tar.gz file |
+| ace | `unace l` | Lists files inside a .ace file |
+
+### Some other features
+
+- Opens urls in terminal using browser specified by the variable `$BROWSER`
+- Opens C, C++, Tex and text files using editor specified by the variable `$EDITOR`
+- Opens images using image viewer specified by the variable `$XIVIEWER`
+- Opens videos and other media using mplayer
From 59c1ec80aa9b018db34078e69a27e57aea5ad761 Mon Sep 17 00:00:00 2001
From: Rocky
Date: Wed, 31 Jul 2019 01:23:50 -0600
Subject: [PATCH 013/302] agnoster: fix VIRTUAL_ENV_DISABLE_PROMPT logic
(#8050)
Fixes #7985
---
themes/agnoster.zsh-theme | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/themes/agnoster.zsh-theme b/themes/agnoster.zsh-theme
index 518a14a37..7e37440a4 100644
--- a/themes/agnoster.zsh-theme
+++ b/themes/agnoster.zsh-theme
@@ -204,7 +204,7 @@ prompt_dir() {
# Virtualenv: current working virtualenv
prompt_virtualenv() {
local virtualenv_path="$VIRTUAL_ENV"
- if [[ -n $virtualenv_path && -n $VIRTUAL_ENV_DISABLE_PROMPT ]]; then
+ if [[ -n $virtualenv_path && -z $VIRTUAL_ENV_DISABLE_PROMPT ]]; then
prompt_segment blue black "(`basename $virtualenv_path`)"
fi
}
From 6d2221e697ea4a2445202b1c32283610f84585ef Mon Sep 17 00:00:00 2001
From: Jack Brown
Date: Wed, 31 Jul 2019 17:45:54 +1000
Subject: [PATCH 014/302] frontend-search: add duckduckgo as an option for
fallback search (#7973)
---
plugins/frontend-search/README.md | 4 +++
.../frontend-search.plugin.zsh | 31 +++++++++++++------
2 files changed, 25 insertions(+), 10 deletions(-)
diff --git a/plugins/frontend-search/README.md b/plugins/frontend-search/README.md
index bf76902fd..ddcb3d72b 100644
--- a/plugins/frontend-search/README.md
+++ b/plugins/frontend-search/README.md
@@ -62,6 +62,10 @@ Available search contexts are:
If you want to have another context, open an Issue and tell us!
+## Fallback search behaviour
+
+The plugin will use Google as a fallback if the docs site for a search context does not have a search function. You can set the fallback search engine to DuckDuckGo by setting `FRONTEND_SEARCH_FALLBACK='duckduckgo'` in your `~/.zshrc` file before Oh My Zsh is sourced.
+
## Author
**Wilson Mendes (willmendesneto)**
diff --git a/plugins/frontend-search/frontend-search.plugin.zsh b/plugins/frontend-search/frontend-search.plugin.zsh
index 87243be13..ed19280c4 100644
--- a/plugins/frontend-search/frontend-search.plugin.zsh
+++ b/plugins/frontend-search/frontend-search.plugin.zsh
@@ -27,6 +27,17 @@ alias typescript='frontend typescript'
alias unheap='frontend unheap'
alias vuejs='frontend vuejs'
+function _frontend_fallback() {
+ local url
+ if [[ "$FRONTEND_SEARCH_FALLBACK" == duckduckgo ]]; then
+ url="https://duckduckgo.com/?sites=$1&q="
+ else
+ url="https://google.com/search?as_sitesearch=$1&as_q="
+ fi
+
+ echo "$url"
+}
+
function frontend() {
emulate -L zsh
@@ -34,8 +45,8 @@ function frontend() {
typeset -A urls
urls=(
angular 'https://angular.io/?search='
- angularjs 'https://google.com/search?as_sitesearch=angularjs.org&as_q='
- bem 'https://google.com/search?as_sitesearch=bem.info&as_q='
+ angularjs $(_frontend_fallback 'angularjs.org')
+ bem $(_frontend_fallback 'bem.info')
bootsnipp 'https://bootsnipp.com/search?q='
bundlephobia 'https://bundlephobia.com/result?p='
caniuse 'https://caniuse.com/#search='
@@ -43,24 +54,24 @@ function frontend() {
compassdoc 'http://compass-style.org/search?q='
cssflow 'http://www.cssflow.com/search?q='
dartlang 'https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/dart:'
- emberjs 'https://www.google.com/search?as_sitesearch=emberjs.com/&as_q='
- flowtype 'https://google.com/search?as_sitesearch=flow.org/en/docs/&as_q='
+ emberjs $(_frontend_fallback 'emberjs.com/')
+ flowtype $(_frontend_fallback 'flow.org/en/docs/')
fontello 'http://fontello.com/#search='
github 'https://github.com/search?q='
html5please 'https://html5please.com/#'
- jestjs 'https://www.google.com/search?as_sitesearch=jestjs.io&as_q='
+ jestjs $(_frontend_fallback 'jestjs.io')
jquery 'https://api.jquery.com/?s='
lodash 'https://devdocs.io/lodash/index#'
mdn 'https://developer.mozilla.org/search?q='
- nodejs 'https://www.google.com/search?as_sitesearch=nodejs.org/en/docs/&as_q='
+ nodejs $(_frontend_fallback 'nodejs.org/en/docs/')
npmjs 'https://www.npmjs.com/search?q='
qunit 'https://api.qunitjs.com/?s='
- reactjs 'https://google.com/search?as_sitesearch=facebook.github.io/react&as_q='
- smacss 'https://google.com/search?as_sitesearch=smacss.com&as_q='
+ reactjs $(_frontend_fallback 'reactjs.org/')
+ smacss $(_frontend_fallback 'smacss.com')
stackoverflow 'https://stackoverflow.com/search?q='
- typescript 'https://google.com/search?as_sitesearch=www.typescriptlang.org/docs&as_q='
+ typescript $(_frontend_fallback 'www.typescriptlang.org/docs')
unheap 'http://www.unheap.com/?s='
- vuejs 'https://www.google.com/search?as_sitesearch=vuejs.org&as_q='
+ vuejs $(_frontend_fallback 'vuejs.org')
)
# show help for command list
From 26aad59779b2cd7ce313798a4e6b76a29b9f2347 Mon Sep 17 00:00:00 2001
From: Iulian Onofrei
Date: Sun, 4 Aug 2019 00:33:40 +0300
Subject: [PATCH 015/302] Add README file
---
plugins/colored-man-pages/README.md | 15 +++++++++++++++
1 file changed, 15 insertions(+)
create mode 100644 plugins/colored-man-pages/README.md
diff --git a/plugins/colored-man-pages/README.md b/plugins/colored-man-pages/README.md
new file mode 100644
index 000000000..d9f6acb2a
--- /dev/null
+++ b/plugins/colored-man-pages/README.md
@@ -0,0 +1,15 @@
+# Colored man pages plugin
+
+This plugin adds colors to man pages.
+
+To use it, add `colored-man-pages` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... colored-man-pages)
+```
+
+You can also try to color other pages by prefixing the respective command with `colored`:
+
+```zsh
+colored git help clone
+```
From 89366be43fd6ceff52a9da2f2edef654ab619514 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Tue, 6 Aug 2019 18:01:32 +0200
Subject: [PATCH 016/302] Revert "agnoster: fix VIRTUAL_ENV_DISABLE_PROMPT
logic (#8050)" (#8061)
This reverts commit 59c1ec80aa9b018db34078e69a27e57aea5ad761.
---
themes/agnoster.zsh-theme | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/themes/agnoster.zsh-theme b/themes/agnoster.zsh-theme
index 7e37440a4..518a14a37 100644
--- a/themes/agnoster.zsh-theme
+++ b/themes/agnoster.zsh-theme
@@ -204,7 +204,7 @@ prompt_dir() {
# Virtualenv: current working virtualenv
prompt_virtualenv() {
local virtualenv_path="$VIRTUAL_ENV"
- if [[ -n $virtualenv_path && -z $VIRTUAL_ENV_DISABLE_PROMPT ]]; then
+ if [[ -n $virtualenv_path && -n $VIRTUAL_ENV_DISABLE_PROMPT ]]; then
prompt_segment blue black "(`basename $virtualenv_path`)"
fi
}
From 40fafe0f59371d1a9d83b83c614acfd1d740aabb Mon Sep 17 00:00:00 2001
From: Jisse Reitsma
Date: Wed, 7 Aug 2019 20:16:25 +0200
Subject: [PATCH 017/302] n98-magerun: support magerun for Magento 2 (#7950)
---
plugins/n98-magerun/n98-magerun.plugin.zsh | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/plugins/n98-magerun/n98-magerun.plugin.zsh b/plugins/n98-magerun/n98-magerun.plugin.zsh
index bfcf27b98..d79aee7eb 100644
--- a/plugins/n98-magerun/n98-magerun.plugin.zsh
+++ b/plugins/n98-magerun/n98-magerun.plugin.zsh
@@ -2,7 +2,8 @@
# FILE: n98-magerun.plugin.zsh
# DESCRIPTION: oh-my-zsh n98-magerun plugin file. Adapted from composer plugin
# AUTHOR: Andrew Dwyer (andrewrdwyer at gmail dot com)
-# VERSION: 1.0.0
+# AUTHOR: Jisse Reitsma (jisse at yireo dot com)
+# VERSION: 1.1.0
# ------------------------------------------------------------------------------
# n98-magerun basic command completion
@@ -24,11 +25,18 @@ _n98_magerun () {
compdef _n98_magerun n98-magerun.phar
compdef _n98_magerun n98-magerun
+compdef _n98_magerun n98-magerun2.phar
+compdef _n98_magerun n98-magerun2
# Aliases
alias n98='n98-magerun.phar'
alias mage='n98-magerun.phar'
-alias magefl='n98-magerun.phar cache:flush'
+alias magerun='n98-magerun.phar'
+
+alias n98-2='n98-magerun2.phar'
+alias mage2='n98-magerun2.phar'
+alias magerun2='n98-magerun2.phar'
# Install n98-magerun into the current directory
-alias mage-get='wget https://raw.github.com/netz98/n98-magerun/master/n98-magerun.phar'
+alias mage-get='wget https://files.magerun.net/n98-magerun.phar'
+alias mage2-get='wget https://files.magerun.net/n98-magerun2.phar'
From d8ad4e902cd359cf0a58cc8fc759377ec3d3c026 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Tue, 13 Aug 2019 14:15:14 +0200
Subject: [PATCH 018/302] meta: convert workflow file to GitHub Actions v2 yml
syntax
---
.github/main.workflow | 17 -----------------
.github/workflows/pull_request_triage.yml | 14 ++++++++++++++
2 files changed, 14 insertions(+), 17 deletions(-)
delete mode 100644 .github/main.workflow
create mode 100644 .github/workflows/pull_request_triage.yml
diff --git a/.github/main.workflow b/.github/main.workflow
deleted file mode 100644
index 0dbb0247a..000000000
--- a/.github/main.workflow
+++ /dev/null
@@ -1,17 +0,0 @@
-workflow "Triage Pull Request" {
- on = "pull_request"
- resolves = ["Triage"]
-}
-
-# Only act if there are code changes: if the pull_request
-# event's action is either 'opened' (new PR) or 'synchronize' (new commits)
-action "Filter actions" {
- uses = "actions/bin/filter@0ac6d44"
- args = "action 'opened|synchronize'"
-}
-
-action "Triage" {
- needs = ["Filter actions"]
- uses = "ohmyzsh/github-actions/pull-request-triage@master"
- secrets = ["GITHUB_TOKEN"]
-}
diff --git a/.github/workflows/pull_request_triage.yml b/.github/workflows/pull_request_triage.yml
new file mode 100644
index 000000000..341298a0f
--- /dev/null
+++ b/.github/workflows/pull_request_triage.yml
@@ -0,0 +1,14 @@
+on: pull_request
+name: Triage Pull Request
+jobs:
+ mainJob:
+ name: Triage
+ if: github.event.action == 'opened' || github.event.action == 'synchronize'
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@master
+ - name: Analyze and triage
+ uses: ohmyzsh/github-actions/pull-request-triage@master
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
From 4974143745360bfbfde535eab23df27daa8e3c8f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Tue, 13 Aug 2019 15:10:15 +0200
Subject: [PATCH 019/302] meta: move if condition on workflow to steps
Provisional measure due to "Unexpected value 'if'" error. See https://github.community/t5/GitHub-API-Development-and/jobs-lt-job-id-gt-if-not-working/m-p/28980
---
.github/workflows/pull_request_triage.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/pull_request_triage.yml b/.github/workflows/pull_request_triage.yml
index 341298a0f..a27392a92 100644
--- a/.github/workflows/pull_request_triage.yml
+++ b/.github/workflows/pull_request_triage.yml
@@ -1,13 +1,13 @@
on: pull_request
name: Triage Pull Request
jobs:
- mainJob:
+ triage:
name: Triage
- if: github.event.action == 'opened' || github.event.action == 'synchronize'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master
+ if: github.event.action == 'opened' || github.event.action == 'synchronize'
- name: Analyze and triage
uses: ohmyzsh/github-actions/pull-request-triage@master
env:
From 28232904bec1e8e15da52ae048a8a31ef7fac67b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Tue, 13 Aug 2019 18:19:07 +0200
Subject: [PATCH 020/302] git-auto-fetch: override zle-line-init only if it
exists
---
.../git-auto-fetch/git-auto-fetch.plugin.zsh | 20 +++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh b/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh
index 745c669b5..56ab86dbe 100644
--- a/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh
+++ b/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh
@@ -18,10 +18,18 @@ function git-auto-fetch {
echo "${fg_bold[red]}disabled${reset_color}")
}
-eval "override-git-auto-fetch-$(declare -f zle-line-init)"
-
-function zle-line-init () {
- git-fetch-all
- override-git-auto-fetch-zle-line-init
-}
+# Override zle-line-init if it exists
+if (( $+functions[zle-line-init] )); then
+ eval "override-git-auto-fetch-$(declare -f zle-line-init)"
+
+ function zle-line-init () {
+ git-fetch-all
+ override-git-auto-fetch-zle-line-init
+ }
+else
+ function zle-line-init () {
+ git-fetch-all
+ }
+fi
+
zle -N zle-line-init
From c4c620adcd0dadf8f3f0d6aa331780291b5bdacd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Sun, 18 Aug 2019 15:13:46 +0200
Subject: [PATCH 021/302] meta: add DEBUG_ACTIONS flag to PR triage action
---
.github/workflows/pull_request_triage.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/pull_request_triage.yml b/.github/workflows/pull_request_triage.yml
index a27392a92..77ec4ce79 100644
--- a/.github/workflows/pull_request_triage.yml
+++ b/.github/workflows/pull_request_triage.yml
@@ -12,3 +12,4 @@ jobs:
uses: ohmyzsh/github-actions/pull-request-triage@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ DEBUG_ACTIONS: ${{ secrets.DEBUG_ACTIONS }}
From 97c0d0a563d2303adc64e94c78544bb4d2dbf83c Mon Sep 17 00:00:00 2001
From: SomeDer <48731521+SomeDer@users.noreply.github.com>
Date: Mon, 19 Aug 2019 11:14:22 +0100
Subject: [PATCH 022/302] Allow plugins sudo and thefuck to be loaded before
vi-mode (#8087)
---
plugins/sudo/sudo.plugin.zsh | 4 +++-
plugins/thefuck/thefuck.plugin.zsh | 4 +++-
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/plugins/sudo/sudo.plugin.zsh b/plugins/sudo/sudo.plugin.zsh
index 0b843822e..f405b025f 100644
--- a/plugins/sudo/sudo.plugin.zsh
+++ b/plugins/sudo/sudo.plugin.zsh
@@ -28,4 +28,6 @@ sudo-command-line() {
}
zle -N sudo-command-line
# Defined shortcut keys: [Esc] [Esc]
-bindkey "\e\e" sudo-command-line
+bindkey -M emacs '\e\e' sudo-command-line
+bindkey -M vicmd '\e\e' sudo-command-line
+bindkey -M viins '\e\e' sudo-command-line
diff --git a/plugins/thefuck/thefuck.plugin.zsh b/plugins/thefuck/thefuck.plugin.zsh
index ac88e67de..b8586c70d 100644
--- a/plugins/thefuck/thefuck.plugin.zsh
+++ b/plugins/thefuck/thefuck.plugin.zsh
@@ -15,4 +15,6 @@ fuck-command-line() {
}
zle -N fuck-command-line
# Defined shortcut keys: [Esc] [Esc]
-bindkey "\e\e" fuck-command-line
+bindkey -M emacs '\e\e' fuck-command-line
+bindkey -M vicmd '\e\e' fuck-command-line
+bindkey -M viins '\e\e' fuck-command-line
From 90a0de4698d8ec4300bf6aa3d6847e299a05b1f5 Mon Sep 17 00:00:00 2001
From: SomeDer <48731521+SomeDer@users.noreply.github.com>
Date: Mon, 19 Aug 2019 16:53:13 +0100
Subject: [PATCH 023/302] Add alias-finder plugin (#7768)
---
plugins/alias-finder/README.md | 46 ++++++++++++++++++++
plugins/alias-finder/alias-finder.plugin.zsh | 46 ++++++++++++++++++++
2 files changed, 92 insertions(+)
create mode 100644 plugins/alias-finder/README.md
create mode 100644 plugins/alias-finder/alias-finder.plugin.zsh
diff --git a/plugins/alias-finder/README.md b/plugins/alias-finder/README.md
new file mode 100644
index 000000000..409f4b653
--- /dev/null
+++ b/plugins/alias-finder/README.md
@@ -0,0 +1,46 @@
+# alias-finder plugin
+
+This plugin searches the defined aliases and outputs any that match the command inputted. This makes learning new aliases easier.
+
+To use it, add `alias-finder` to the `plugins` array of your zshrc file:
+```
+plugins=(... alias-finder)
+```
+
+## Usage
+To see if there is an alias defined for the command, pass it as an argument to `alias-finder`. This can also run automatically before each command you input - add `ZSH_ALIAS_FINDER_AUTOMATIC=true` to your zshrc if you want this.
+
+## Options
+
+- Use `--longer` or `-l` to allow the aliases to be longer than the input (match aliases if they contain the input).
+- Use `--exact` or `-e` to avoid matching aliases that are shorter than the input.
+
+## Examples
+```
+$ alias-finder "git pull"
+gl='git pull'
+g=git
+```
+```
+$ alias-finder "web_search google oh my zsh"
+google='web_search google'
+```
+```
+$ alias-finder "git commit -v"
+gc="git commit -v"
+g=git
+```
+```
+$ alias-finder -e "git commit -v"
+gc='git commit -v'
+```
+```
+$ alias-finder -l "git commit -v"
+gc='git commit -v'
+'gc!'='git commit -v --amend'
+gca='git commit -v -a'
+'gca!'='git commit -v -a --amend'
+'gcan!'='git commit -v -a --no-edit --amend'
+'gcans!'='git commit -v -a -s --no-edit --amend'
+'gcn!'='git commit -v --no-edit --amend'
+```
diff --git a/plugins/alias-finder/alias-finder.plugin.zsh b/plugins/alias-finder/alias-finder.plugin.zsh
new file mode 100644
index 000000000..2bfaad597
--- /dev/null
+++ b/plugins/alias-finder/alias-finder.plugin.zsh
@@ -0,0 +1,46 @@
+alias-finder() {
+ local cmd="" exact="" longer="" wordStart="" wordEnd="" multiWordEnd=""
+ for i in $@; do
+ case $i in
+ -e|--exact) exact=true;;
+ -l|--longer) longer=true;;
+ *)
+ if [[ -z $cmd ]]; then
+ cmd=$i
+ else
+ cmd="$cmd $i"
+ fi
+ ;;
+ esac
+ done
+ cmd=$(sed 's/[].\|$(){}?+*^[]/\\&/g' <<< $cmd) # adds escaping for grep
+ if [[ $(wc -l <<< $cmd) == 1 ]]; then
+ while [[ $cmd != "" ]]; do
+ if [[ $longer = true ]]; then
+ wordStart="'{0,1}"
+ else
+ wordEnd="$"
+ multiWordEnd="'$"
+ fi
+ if [[ $cmd == *" "* ]]; then
+ local finder="'$cmd$multiWordEnd"
+ else
+ local finder=$wordStart$cmd$wordEnd
+ fi
+ alias | grep -E "=$finder"
+ if [[ $exact = true || $longer = true ]]; then
+ break
+ else
+ cmd=$(sed -E 's/ {0,1}[^ ]*$//' <<< $cmd) # removes last word
+ fi
+ done
+ fi
+}
+
+preexec_alias-finder() {
+ if [[ $ZSH_ALIAS_FINDER_AUTOMATIC = true ]]; then
+ alias-finder $1
+ fi
+}
+
+preexec_functions+=(preexec_alias-finder)
From 8634d9542a974ce4700ca14c3d3bc410945cc20a Mon Sep 17 00:00:00 2001
From: Matthew Turney
Date: Mon, 19 Aug 2019 10:57:19 -0500
Subject: [PATCH 024/302] Add git-escape-magic plugin (#2847)
---
plugins/git-escape-magic/README.md | 17 +++
plugins/git-escape-magic/git-escape-magic | 135 ++++++++++++++++++
.../git-escape-magic.plugin.zsh | 9 ++
3 files changed, 161 insertions(+)
create mode 100644 plugins/git-escape-magic/README.md
create mode 100644 plugins/git-escape-magic/git-escape-magic
create mode 100644 plugins/git-escape-magic/git-escape-magic.plugin.zsh
diff --git a/plugins/git-escape-magic/README.md b/plugins/git-escape-magic/README.md
new file mode 100644
index 000000000..a14364f22
--- /dev/null
+++ b/plugins/git-escape-magic/README.md
@@ -0,0 +1,17 @@
+# Git Escape Magic
+
+This plugin is copied from the original at
+https://github.com/knu/zsh-git-escape-magic. All credit for the
+functionality enabled by this plugin should go to @knu.
+
+An excerpt from that project's readme explains it's purpose.
+
+> It eliminates the need for manually escaping those meta-characters. The zle function it provides is context aware and recognizes the characteristics of each subcommand of git. Every time you type one of these meta-characters on a git command line, it automatically escapes the meta-character with a backslash as necessary and as appropriate.
+
+## Useage
+
+To use this plugin add it to your list of plugins in your `.zshrc` file.
+
+**NOTE**: If you use url-quote-magic it must be included before this
+plugin runs to prevent any conflicts.
+
diff --git a/plugins/git-escape-magic/git-escape-magic b/plugins/git-escape-magic/git-escape-magic
new file mode 100644
index 000000000..94a8d7b0f
--- /dev/null
+++ b/plugins/git-escape-magic/git-escape-magic
@@ -0,0 +1,135 @@
+# -*- mode: sh -*-
+#
+# git-escape-magic - zle tweak for git command line arguments
+#
+# Copyright (c) 2011, 2012, 2014 Akinori MUSHA
+# Licensed under the 2-clause BSD license.
+#
+# This tweak eliminates the need for manually escaping shell
+# meta-characters such as [~^{}] that are used for specifying a git
+# object (commit or tree). Every time you type one of these
+# characters on a git command line, it is automatically escaped with a
+# backslash as necessary and as appropriate.
+#
+# If you want to use this with url-quote-magic, make sure to enable it
+# first.
+#
+# Usage:
+# autoload -Uz git-escape-magic
+# git-escape-magic
+#
+
+git-escape-magic.self-insert() {
+ emulate -L zsh
+ setopt extendedglob
+ local self_insert_function
+ zstyle -s ':git-escape-magic' self-insert-function self_insert_function
+
+ if [[ "$KEYS" == [{}~^]* ]] && {
+ local qkey="${(q)KEYS}"
+ [[ "$KEYS" != "$qkey" ]]
+ } && {
+ local lbuf="$LBUFFER$qkey"
+ [[ "${(Q)LBUFFER}$KEYS" == "${(Q)lbuf}" ]]
+ } && {
+ local -a words
+ words=("${(@Q)${(z)lbuf}}")
+ [[ "$words[(i)(*/|)git(|-[^/]##)]" -le $#words ]]
+ }
+ then
+ local i
+ i="$words[(I)([;(){\&]|\&[\&\!]|\|\||[=<>]\(*)]"
+ if [[ $i -gt 0 ]]; then
+ shift $((i-1)) words
+ if [[ "$words[1]" == [\=\<\>]\(* ]]; then
+ words[1]="${words[1]#[=<>]\(}"
+ else
+ [[ "$words[1]" == \; && $words[2] == (then|else|elif|do) ]] && shift words
+ shift words
+ fi
+ fi
+ while [[ "$words[1]" == (if|while|until|\!) ]]; do
+ shift words
+ done
+ while [[ "$words[1]" == [A-Za-z_][A-Za-z0-9_]#=* ]]; do
+ shift words
+ done
+ [[ "$words[1]" == (*/|)git(|-[^/]##) ]] && {
+ local subcommand
+ subcommand="${words[1]##*/git-}"
+ if [[ -z "$subcommand" ]]; then
+ shift words
+ subcommand="$words[1]"
+ fi
+ [[ $#words -ge 2 ]]
+ } &&
+ case "$subcommand" in
+ # commands that may take pathspec but never take refspec with [{}~^]
+ (add|rm|am|apply|check-attr|checkout-index|clean|clone|config|diff-files|hash-object|help|index-pack|mailinfo|mailsplit|merge-file|merge-index|mergetool|mktag|mv|pack-objects|pack-redundant|relink|send-email|show-index|show-ref|stage|status|verify-pack)
+ false ;;
+ # commands that may take pathspec but rarely take refspec with [{}~^]
+ (for-each-ref|grep|ls-files|update-index)
+ false ;;
+ (archive|ls-tree)
+ ! [[ $#words -ge 3 &&
+ "$words[-2]" == [^-]* ]] ;;
+ (diff-tree)
+ ! [[ $#words -ge 4 &&
+ "$words[-2]" == [^-]* &&
+ "$words[-3]" == [^-]* ]] ;;
+ (*)
+ [[ $words[(i)--] -gt $#words ]] ;;
+ esac &&
+ case "${words[-1]%%"$KEYS"}" in
+ (*[@^])
+ [[ "$KEYS" == [{~^]* ]] ;;
+ (*[@^]\{[^}]##)
+ [[ "$KEYS" == \}* ]] ;;
+ (?*)
+ [[ "$KEYS" == [~^]* ]] ;;
+ (*)
+ false ;;
+ esac &&
+ LBUFFER="$LBUFFER\\"
+ fi
+
+ zle "$self_insert_function"
+}
+
+git-escape-magic.on() {
+ emulate -L zsh
+ local self_insert_function="${$(zle -lL | awk \
+ '$1=="zle"&&$2=="-N"&&$3=="self-insert"{print $4;exit}'):-.self-insert}"
+
+ [[ "$self_insert_function" == git-escape-magic.self-insert ]] &&
+ return 0
+
+ # For url-quote-magic which does not zle -N itself
+ zle -la "$self_insert_function" || zle -N "$self_insert_function"
+
+ zstyle ':git-escape-magic' self-insert-function "$self_insert_function"
+
+ zle -A git-escape-magic.self-insert self-insert
+ return 0
+}
+
+git-escape-magic.off() {
+ emulate -L zsh
+ local self_insert_function
+ zstyle -s ':git-escape-magic' self-insert-function self_insert_function
+
+ [[ -n "$self_insert_function" ]] &&
+ zle -A "$self_insert_function" self-insert
+ return 0
+}
+
+zle -N git-escape-magic.self-insert
+zle -N git-escape-magic.on
+zle -N git-escape-magic.off
+
+git-escape-magic() {
+ git-escape-magic.on
+}
+
+[[ -o kshautoload ]] || git-escape-magic "$@"
+
diff --git a/plugins/git-escape-magic/git-escape-magic.plugin.zsh b/plugins/git-escape-magic/git-escape-magic.plugin.zsh
new file mode 100644
index 000000000..c021ea707
--- /dev/null
+++ b/plugins/git-escape-magic/git-escape-magic.plugin.zsh
@@ -0,0 +1,9 @@
+# Automatically detect and escape zsh globbing meta-characters when used with
+# git refspec characters like `[^~{}]`. NOTE: This must be loaded _after_
+# url-quote-magic.
+#
+# This trick is detailed at https://github.com/knu/zsh-git-escape-magic and is
+# what allowed this plugin to exist.
+
+autoload -Uz git-escape-magic
+git-escape-magic
From 1908f7bddcacdfb18a5a4b1c883f0c405d1660a8 Mon Sep 17 00:00:00 2001
From: Kirill Pinchuk
Date: Mon, 19 Aug 2019 19:12:53 +0300
Subject: [PATCH 025/302] fabric: support fabric 2+ completion (#8010)
---
plugins/fabric/_fab | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/fabric/_fab b/plugins/fabric/_fab
index 9628e1224..4c2e61306 100644
--- a/plugins/fabric/_fab
+++ b/plugins/fabric/_fab
@@ -5,7 +5,7 @@ local curcontext=$curcontext state line
declare -A opt_args
declare target_list
-target_list=(`fab --shortlist 2>/dev/null`)
+target_list=(`fab --shortlist 2>/dev/null || fab --complete 2>/dev/null`)
_targets() {
_describe -t commands "fabric targets" target_list
From e604eaf55e1c5b19035778c0e0adb0dd6e344b94 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Mon, 19 Aug 2019 18:17:17 +0200
Subject: [PATCH 026/302] lib: delete LC_CTYPE locale setting which causes
problems
Fixes #7942
---
lib/misc.zsh | 5 -----
1 file changed, 5 deletions(-)
diff --git a/lib/misc.zsh b/lib/misc.zsh
index 40ffa479d..36c3ae2e5 100644
--- a/lib/misc.zsh
+++ b/lib/misc.zsh
@@ -31,10 +31,5 @@ else
alias afind='ack -il'
fi
-# only define LC_CTYPE if undefined
-if [[ -z "$LC_CTYPE" && -z "$LC_ALL" ]]; then
- export LC_CTYPE=${LANG%%:*} # pick the first entry from LANG
-fi
-
# recognize comments
setopt interactivecomments
From 43ed0b455ed5bbf66ef3e604c3d9845eb90f0078 Mon Sep 17 00:00:00 2001
From: Matthew Armand
Date: Mon, 19 Aug 2019 12:54:49 -0400
Subject: [PATCH 027/302] af-magic: add hg prompt and tweak virtualenv info
(#8056)
- Add mercurial support to af-magic, so now the vcs prompt will show up in either a git or hg repository
- The virtualenv prompt was white and bumped up against the user@hostname output
- Fixed that so its green (which I thought highlighted it more thematically) and has a space before user@hostname
---
themes/af-magic.zsh-theme | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/themes/af-magic.zsh-theme b/themes/af-magic.zsh-theme
index 2a6595a71..d185fa1ab 100644
--- a/themes/af-magic.zsh-theme
+++ b/themes/af-magic.zsh-theme
@@ -8,7 +8,7 @@ local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
# primary prompt
PROMPT='$FG[237]${(l.COLUMNS..-.)}%{$reset_color%}
$FG[032]%~\
-$(git_prompt_info) \
+$(git_prompt_info)$(hg_prompt_info) \
$FG[105]%(!.#.»)%{$reset_color%} '
PROMPT2='%{$fg[red]%}\ %{$reset_color%}'
RPS1='${return_code}'
@@ -21,7 +21,7 @@ eval my_orange='$FG[214]'
# right prompt
if type "virtualenv_prompt_info" > /dev/null
then
- RPROMPT='$(virtualenv_prompt_info)$my_gray%n@%m%{$reset_color%}%'
+ RPROMPT='$FG[078]$(virtualenv_prompt_info)%{$reset_color%} $my_gray%n@%m%{$reset_color%}%'
else
RPROMPT='$my_gray%n@%m%{$reset_color%}%'
fi
@@ -31,3 +31,9 @@ ZSH_THEME_GIT_PROMPT_PREFIX="$FG[075]($FG[078]"
ZSH_THEME_GIT_PROMPT_CLEAN=""
ZSH_THEME_GIT_PROMPT_DIRTY="$my_orange*%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="$FG[075])%{$reset_color%}"
+
+# hg settings
+ZSH_THEME_HG_PROMPT_PREFIX="$FG[075]($FG[078]"
+ZSH_THEME_HG_PROMPT_CLEAN=""
+ZSH_THEME_HG_PROMPT_DIRTY="$my_orange*%{$reset_color%}"
+ZSH_THEME_HG_PROMPT_SUFFIX="$FG[075])%{$reset_color%}"
From de3b14cf69eeb43797bae8320af6972032b604ff Mon Sep 17 00:00:00 2001
From: Julien Janvier <3691804+jjanvier@users.noreply.github.com>
Date: Tue, 20 Aug 2019 12:11:38 +0200
Subject: [PATCH 028/302] git: add aliases for git switch and restore (#8089)
---
plugins/git/README.md | 4 ++++
plugins/git/git.plugin.zsh | 4 ++++
2 files changed, 8 insertions(+)
diff --git a/plugins/git/README.md b/plugins/git/README.md
index fc89b27e0..3311ccf55 100644
--- a/plugins/git/README.md
+++ b/plugins/git/README.md
@@ -131,7 +131,9 @@ plugins=(... git)
| grmc | git rm --cached |
| grmv | git remote rename |
| grrm | git remote remove |
+| grs | git restore |
| grset | git remote set-url |
+| grss | git restore --source |
| grt | cd "$(git rev-parse --show-toplevel \|\| echo .)" |
| gru | git reset -- |
| grup | git remote update |
@@ -154,6 +156,8 @@ plugins=(... git)
| gsts | git stash show --text |
| gstall | git stash --all |
| gsu | git submodule update |
+| gsw | git switch |
+| gswc | git switch -c |
| gts | git tag -s |
| gtv | git tag \| sort -V |
| gtl | gtl(){ git tag --sort=-v:refname -n -l ${1}* }; noglob gtl |
diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh
index e0ce27fd4..9787392de 100644
--- a/plugins/git/git.plugin.zsh
+++ b/plugins/git/git.plugin.zsh
@@ -207,7 +207,9 @@ alias grm='git rm'
alias grmc='git rm --cached'
alias grmv='git remote rename'
alias grrm='git remote remove'
+alias grs='git restore'
alias grset='git remote set-url'
+alias grss='git restore --source'
alias grt='cd "$(git rev-parse --show-toplevel || echo .)"'
alias gru='git reset --'
alias grup='git remote update'
@@ -236,6 +238,8 @@ alias gstp='git stash pop'
alias gsts='git stash show --text'
alias gstall='git stash --all'
alias gsu='git submodule update'
+alias gsw='git switch'
+alias gswc='git switch -c'
alias gts='git tag -s'
alias gtv='git tag | sort -V'
From 246e7832ef6f4b77ae998508d0ba90c82961fd0a Mon Sep 17 00:00:00 2001
From: Pavel Omelchenko
Date: Thu, 22 Aug 2019 12:00:31 +0300
Subject: [PATCH 029/302] feature: add condition for regular expression
---
plugins/homestead/homestead.plugin.zsh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/homestead/homestead.plugin.zsh b/plugins/homestead/homestead.plugin.zsh
index f67a582f4..b9940dbcf 100644
--- a/plugins/homestead/homestead.plugin.zsh
+++ b/plugins/homestead/homestead.plugin.zsh
@@ -1,6 +1,6 @@
# Homestead basic command completion
_homestead_get_command_list () {
- homestead --no-ansi | sed "1,/Common commands/d" | awk '/^ +[a-z]+/ { print $1 }'
+ homestead --no-ansi | sed "1,/(Available|Common) commands/d" | awk '/^ +[a-z]+/ { print $1 }'
}
_homestead () {
From caf0bfa0461d5d787ab4f336139aadffcea379a9 Mon Sep 17 00:00:00 2001
From: Vignesh Balasubramaniam
Date: Fri, 23 Aug 2019 10:58:21 -0400
Subject: [PATCH 030/302] ubuntu: fix aglu to list available upgrades (#8082)
---
plugins/ubuntu/ubuntu.plugin.zsh | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/plugins/ubuntu/ubuntu.plugin.zsh b/plugins/ubuntu/ubuntu.plugin.zsh
index d589096c3..a53752fb2 100644
--- a/plugins/ubuntu/ubuntu.plugin.zsh
+++ b/plugins/ubuntu/ubuntu.plugin.zsh
@@ -12,10 +12,10 @@ alias acp='apt-cache policy'
#List all installed packages
alias agli='apt list --installed'
-# superuser operations ######################################################
-
# List available updates only
-alias aglu='sudo apt-get -u upgrade --assume-no'
+alias aglu='apt list --upgradable'
+
+# superuser operations ######################################################
alias afu='sudo apt-file update'
From df9cf723963e38d152b750d85f0907b57dde53bb Mon Sep 17 00:00:00 2001
From: Ryan Styrczula
Date: Fri, 23 Aug 2019 11:05:11 -0400
Subject: [PATCH 031/302] plugins/git: Fix `gbda` trying to delete worktree
branches
Git learned to add a `+` in front of branches that are
checked out in other worktrees.
See: https://github.com/git/git/blob/745f6812895b31c02b29bdfe4ae8e5498f776c26/Documentation/RelNotes/2.23.0.txt#L252-L256
---
plugins/git/README.md | 2 +-
plugins/git/git.plugin.zsh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/plugins/git/README.md b/plugins/git/README.md
index 3311ccf55..7878f747b 100644
--- a/plugins/git/README.md
+++ b/plugins/git/README.md
@@ -22,7 +22,7 @@ plugins=(... git)
| gb | git branch |
| gba | git branch -a |
| gbd | git branch -d |
-| gbda | git branch --no-color --merged \| command grep -vE "^(\*\|\s*(master\|develop\|dev)\s*$)" \| command xargs -n 1 git branch -d |
+| gbda | git branch --no-color --merged \| command grep -vE "^(\+|\*\|\s*(master\|develop\|dev)\s*$)" \| command xargs -n 1 git branch -d |
| gbD | git branch -D |
| gbl | git blame -b -w |
| gbnm | git branch --no-merged |
diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh
index 9787392de..2edee0298 100644
--- a/plugins/git/git.plugin.zsh
+++ b/plugins/git/git.plugin.zsh
@@ -42,7 +42,7 @@ alias gap='git apply'
alias gb='git branch'
alias gba='git branch -a'
alias gbd='git branch -d'
-alias gbda='git branch --no-color --merged | command grep -vE "^(\*|\s*(master|develop|dev)\s*$)" | command xargs -n 1 git branch -d'
+alias gbda='git branch --no-color --merged | command grep -vE "^(\+|\*|\s*(master|develop|dev)\s*$)" | command xargs -n 1 git branch -d'
alias gbD='git branch -D'
alias gbl='git blame -b -w'
alias gbnm='git branch --no-merged'
From 08beebd89f9eec956c126c732a287ec5a5a197a8 Mon Sep 17 00:00:00 2001
From: Pavel Omelchenko
Date: Sat, 24 Aug 2019 01:00:08 +0300
Subject: [PATCH 032/302] homestead: repair sed regex (#8103)
---
plugins/homestead/homestead.plugin.zsh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/homestead/homestead.plugin.zsh b/plugins/homestead/homestead.plugin.zsh
index b9940dbcf..ea2803d77 100644
--- a/plugins/homestead/homestead.plugin.zsh
+++ b/plugins/homestead/homestead.plugin.zsh
@@ -1,6 +1,6 @@
# Homestead basic command completion
_homestead_get_command_list () {
- homestead --no-ansi | sed "1,/(Available|Common) commands/d" | awk '/^ +[a-z]+/ { print $1 }'
+ homestead --no-ansi | sed -E "1,/(Available|Common) commands/d" | awk '/^ +[a-z]+/ { print $1 }'
}
_homestead () {
From 2217a7c803f0db15e1d5d8465854e0277d4ca200 Mon Sep 17 00:00:00 2001
From: Jonathan Klimt
Date: Tue, 27 Aug 2019 15:09:13 +0200
Subject: [PATCH 033/302] ripgrep: update completion to latest version (#8083)
---
plugins/ripgrep/README.md | 4 +-
plugins/ripgrep/_ripgrep | 187 +++++++++++++++++++++++++++++++++++++-
2 files changed, 185 insertions(+), 6 deletions(-)
diff --git a/plugins/ripgrep/README.md b/plugins/ripgrep/README.md
index 794b105ee..937f73c81 100644
--- a/plugins/ripgrep/README.md
+++ b/plugins/ripgrep/README.md
@@ -8,6 +8,6 @@ To use it, add `ripgrep` to the plugins array in your zshrc file:
plugins=(... ripgrep)
```
-Completion is taken from the ripgrep release [`0.10.0`](https://github.com/BurntSushi/ripgrep/releases/tag/0.10.0).
+Completion is taken from the ripgrep release [`11.0.2`](https://github.com/BurntSushi/ripgrep/releases/tag/11.0.2).
-Updated on September 27th, 2018.
+Updated on August 16th, 2019.
diff --git a/plugins/ripgrep/_ripgrep b/plugins/ripgrep/_ripgrep
index 53f135dde..d7dcfd64a 100644
--- a/plugins/ripgrep/_ripgrep
+++ b/plugins/ripgrep/_ripgrep
@@ -3,6 +3,12 @@
##
# zsh completion function for ripgrep
#
+# Run ci/test_complete.sh after building to ensure that the options supported by
+# this function stay in synch with the `rg` binary.
+#
+# For convenience, a completion reference guide is included at the bottom of
+# this file.
+#
# Originally based on code from the zsh-users project — see copyright notice
# below.
@@ -37,6 +43,7 @@ _rg() {
+ '(exclusive)' # Misc. fully exclusive options
'(: * -)'{-h,--help}'[display help information]'
'(: * -)'{-V,--version}'[display version information]'
+ '(: * -)'--pcre2-version'[print the version of PCRE2 used by ripgrep, if available]'
+ '(buffered)' # buffering options
'--line-buffered[force line buffering]'
@@ -79,7 +86,7 @@ _rg() {
+ '(file-name)' # File-name options
{-H,--with-filename}'[show file name for matches]'
- "--no-filename[don't show file name for matches]"
+ {-I,--no-filename}"[don't show file name for matches]"
+ '(file-system)' # File system options
"--one-file-system[don't descend into directories on other file systems]"
@@ -97,6 +104,10 @@ _rg() {
'*'{-g+,--glob=}'[include/exclude files matching specified glob]:glob'
'*--iglob=[include/exclude files matching specified case-insensitive glob]:glob'
+ + '(glob-case-insensitive)' # File-glob case sensitivity options
+ '--glob-case-insensitive[treat -g/--glob patterns case insensitively]'
+ $no'--no-glob-case-insensitive[treat -g/--glob patterns case sensitively]'
+
+ '(heading)' # Heading options
'(pretty-vimgrep)--heading[show matches grouped by file name]'
"(pretty-vimgrep)--no-heading[don't show matches grouped by file name]"
@@ -105,9 +116,17 @@ _rg() {
'--hidden[search hidden files and directories]'
$no"--no-hidden[don't search hidden files and directories]"
+ + '(hybrid)' # hybrid regex options
+ '--auto-hybrid-regex[dynamically use PCRE2 if necessary]'
+ $no"--no-auto-hybrid-regex[don't dynamically use PCRE2 if necessary]"
+
+ '(ignore)' # Ignore-file options
- "(--no-ignore-global --no-ignore-parent --no-ignore-vcs)--no-ignore[don't respect ignore files]"
- $no'(--ignore-global --ignore-parent --ignore-vcs)--ignore[respect ignore files]'
+ "(--no-ignore-global --no-ignore-parent --no-ignore-vcs --no-ignore-dot)--no-ignore[don't respect ignore files]"
+ $no'(--ignore-global --ignore-parent --ignore-vcs --ignore-dot)--ignore[respect ignore files]'
+
+ + '(ignore-file-case-insensitive)' # Ignore-file case sensitivity options
+ '--ignore-file-case-insensitive[process ignore files case insensitively]'
+ $no'--no-ignore-file-case-insensitive[process ignore files case sensitively]'
+ '(ignore-global)' # Global ignore-file options
"--no-ignore-global[don't respect global ignore files]"
@@ -121,6 +140,10 @@ _rg() {
"--no-ignore-vcs[don't respect version control ignore files]"
$no'--ignore-vcs[respect version control ignore files]'
+ + '(ignore-dot)' # .ignore-file options
+ "--no-ignore-dot[don't respect .ignore files]"
+ $no'--ignore-dot[respect .ignore files]'
+
+ '(json)' # JSON options
'--json[output results in JSON Lines format]'
$no"--no-json[don't output results in JSON Lines format]"
@@ -134,6 +157,10 @@ _rg() {
$no"--no-crlf[don't use CRLF as line terminator]"
'(text)--null-data[use NUL as line terminator]'
+ + '(max-columns-preview)' # max column preview options
+ '--max-columns-preview[show preview for long lines (with -M)]'
+ $no"--no-max-columns-preview[don't show preview for long lines (with -M)]"
+
+ '(max-depth)' # Directory-depth options
'--max-depth=[specify max number of directories to descend]:number of directories'
'!--maxdepth=:number of directories'
@@ -213,6 +240,8 @@ _rg() {
+ '(text)' # Binary-search options
{-a,--text}'[search binary files as if they were text]'
+ "--binary[search binary files, don't print binary data]"
+ $no"--no-binary[don't search binary files]"
$no"(--null-data)--no-text[don't search binary files as if they were text]"
+ '(threads)' # Thread-count options
@@ -364,7 +393,7 @@ _rg_encodings() {
shift{-,_}jis csshiftjis {,x-}sjis ms_kanji ms932
utf{,-}8 utf-16{,be,le} unicode-1-1-utf-8
windows-{31j,874,949,125{0..8}} dos-874 tis-620 ansi_x3.4-1968
- x-user-defined auto
+ x-user-defined auto none
)
_wanted encodings expl encoding compadd -a "$@" - _encodings
@@ -382,6 +411,156 @@ _rg_types() {
_rg "$@"
+################################################################################
+# ZSH COMPLETION REFERENCE
+#
+# For the convenience of developers who aren't especially familiar with zsh
+# completion functions, a brief reference guide follows. This is in no way
+# comprehensive; it covers just enough of the basic structure, syntax, and
+# conventions to help someone make simple changes like adding new options. For
+# more complete documentation regarding zsh completion functions, please see the
+# following:
+#
+# * http://zsh.sourceforge.net/Doc/Release/Completion-System.html
+# * https://github.com/zsh-users/zsh/blob/master/Etc/completion-style-guide
+#
+# OVERVIEW
+#
+# Most zsh completion functions are defined in terms of `_arguments`, which is a
+# shell function that takes a series of argument specifications. The specs for
+# `rg` are stored in an array, which is common for more complex functions; the
+# elements of the array are passed to `_arguments` on invocation.
+#
+# ARGUMENT-SPECIFICATION SYNTAX
+#
+# The following is a contrived example of the argument specs for a simple tool:
+#
+# '(: * -)'{-h,--help}'[display help information]'
+# '(-q -v --quiet --verbose)'{-q,--quiet}'[decrease output verbosity]'
+# '!(-q -v --quiet --verbose)--silent'
+# '(-q -v --quiet --verbose)'{-v,--verbose}'[increase output verbosity]'
+# '--color=[specify when to use colors]:when:(always never auto)'
+# '*:example file:_files'
+#
+# Although there may appear to be six specs here, there are actually nine; we
+# use brace expansion to combine specs for options that go by multiple names,
+# like `-q` and `--quiet`. This is customary, and ties in with the fact that zsh
+# merges completion possibilities together when they have the same description.
+#
+# The first line defines the option `-h`/`--help`. With most tools, it isn't
+# useful to complete anything after `--help` because it effectively overrides
+# all others; the `(: * -)` at the beginning of the spec tells zsh not to
+# complete any other operands (`:` and `*`) or options (`-`) after this one has
+# been used. The `[...]` at the end associates a description with `-h`/`--help`;
+# as mentioned, zsh will see the identical descriptions and merge these options
+# together when offering completion possibilities.
+#
+# The next line defines `-q`/`--quiet`. Here we don't want to suppress further
+# completions entirely, but we don't want to offer `-q` if `--quiet` has been
+# given (since they do the same thing), nor do we want to offer `-v` (since it
+# doesn't make sense to be quiet and verbose at the same time). We don't need to
+# tell zsh not to offer `--quiet` a second time, since that's the default
+# behaviour, but since this line expands to two specs describing `-q` *and*
+# `--quiet` we do need to explicitly list all of them here.
+#
+# The next line defines a hidden option `--silent` — maybe it's a deprecated
+# synonym for `--quiet`. The leading `!` indicates that zsh shouldn't offer this
+# option during completion. The benefit of providing a spec for an option that
+# shouldn't be completed is that, if someone *does* use it, we can correctly
+# suppress completion of other options afterwards.
+#
+# The next line defines `-v`/`--verbose`; this works just like `-q`/`--quiet`.
+#
+# The next line defines `--color`. In this example, `--color` doesn't have a
+# corresponding short option, so we don't need to use brace expansion. Further,
+# there are no other options it's exclusive with (just itself), so we don't need
+# to define those at the beginning. However, it does take a mandatory argument.
+# The `=` at the end of `--color=` indicates that the argument may appear either
+# like `--color always` or like `--color=always`; this is how most GNU-style
+# command-line tools work. The corresponding short option would normally use `+`
+# — for example, `-c+` would allow either `-c always` or `-calways`. For this
+# option, the arguments are known ahead of time, so we can simply list them in
+# parentheses at the end (`when` is used as the description for the argument).
+#
+# The last line defines an operand (a non-option argument). In this example, the
+# operand can be used any number of times (the leading `*`), and it should be a
+# file path, so we tell zsh to call the `_files` function to complete it. The
+# `example file` in the middle is the description to use for this operand; we
+# could use a space instead to accept the default provided by `_files`.
+#
+# GROUPING ARGUMENT SPECIFICATIONS
+#
+# Newer versions of zsh support grouping argument specs together. All specs
+# following a `+` and then a group name are considered to be members of the
+# named group. Grouping is useful mostly for organisational purposes; it makes
+# the relationship between different options more obvious, and makes it easier
+# to specify exclusions.
+#
+# We could rewrite our example above using grouping as follows:
+#
+# '(: * -)'{-h,--help}'[display help information]'
+# '--color=[specify when to use colors]:when:(always never auto)'
+# '*:example file:_files'
+# + '(verbosity)'
+# {-q,--quiet}'[decrease output verbosity]'
+# '!--silent'
+# {-v,--verbose}'[increase output verbosity]'
+#
+# Here we take advantage of a useful feature of spec grouping — when the group
+# name is surrounded by parentheses, as in `(verbosity)`, it tells zsh that all
+# of the options in that group are exclusive with each other. As a result, we
+# don't need to manually list out the exclusions at the beginning of each
+# option.
+#
+# Groups can also be referred to by name in other argument specs; for example:
+#
+# '(xyz)--aaa' '*: :_files'
+# + xyz --xxx --yyy --zzz
+#
+# Here we use the group name `xyz` to tell zsh that `--xxx`, `--yyy`, and
+# `--zzz` are not to be completed after `--aaa`. This makes the exclusion list
+# much more compact and reusable.
+#
+# CONVENTIONS
+#
+# zsh completion functions generally adhere to the following conventions:
+#
+# * Use two spaces for indentation
+# * Combine specs for options with different names using brace expansion
+# * In combined specs, list the short option first (as in `{-a,--text}`)
+# * Use `+` or `=` as described above for options that take arguments
+# * Provide a description for all options, option-arguments, and operands
+# * Capitalise/punctuate argument descriptions as phrases, not complete
+# sentences — 'display help information', never 'Display help information.'
+# (but still capitalise acronyms and proper names)
+# * Write argument descriptions as verb phrases — 'display x', 'enable y',
+# 'use z'
+# * Word descriptions to make it clear when an option expects an argument;
+# usually this is done with the word 'specify', as in 'specify x' or
+# 'use specified x')
+# * Write argument descriptions as tersely as possible — for example, articles
+# like 'a' and 'the' should be omitted unless it would be confusing
+#
+# Other conventions currently used by this function:
+#
+# * Order argument specs alphabetically by group name, then option name
+# * Group options that are directly related, mutually exclusive, or frequently
+# referenced by other argument specs
+# * Use only characters in the set [a-z0-9_-] in group names
+# * Order exclusion lists as follows: short options, long options, groups
+# * Use American English in descriptions
+# * Use 'don't' in descriptions instead of 'do not'
+# * Word descriptions for related options as similarly as possible. For example,
+# `--foo[enable foo]` and `--no-foo[disable foo]`, or `--foo[use foo]` and
+# `--no-foo[don't use foo]`
+# * Word descriptions to make it clear when an option only makes sense with
+# another option, usually by adding '(with -x)' to the end
+# * Don't quote strings or variables unnecessarily. When quotes are required,
+# prefer single-quotes to double-quotes
+# * Prefix option specs with `$no` when the option serves only to negate the
+# behaviour of another option that must be provided explicitly by the user.
+# This prevents rarely used options from cluttering up the completion menu
+################################################################################
# ------------------------------------------------------------------------------
# Copyright (c) 2011 Github zsh-users - http://github.com/zsh-users
From 9524db7398f405b26091f58fa8e2125d4e440a24 Mon Sep 17 00:00:00 2001
From: mapshen
Date: Tue, 27 Aug 2019 15:41:44 -0400
Subject: [PATCH 034/302] autojump: fix loading when autojump is not in $PATH
(#8074)
The `commands[autojump]` block errs out when autojump is not found, and the rest, which is intended to be used for loading `autojump`, does not get executed.
---
plugins/autojump/autojump.plugin.zsh | 5 -----
1 file changed, 5 deletions(-)
diff --git a/plugins/autojump/autojump.plugin.zsh b/plugins/autojump/autojump.plugin.zsh
index 13c1d00ed..d80c88822 100644
--- a/plugins/autojump/autojump.plugin.zsh
+++ b/plugins/autojump/autojump.plugin.zsh
@@ -1,8 +1,3 @@
-(( $+commands[autojump] )) || {
- echo '[oh-my-zsh] Please install autojump first (https://github.com/wting/autojump)'
- return
-}
-
declare -a autojump_paths
autojump_paths=(
$HOME/.autojump/etc/profile.d/autojump.zsh # manual installation
From a331063a04fff829805e3731b2ef75835d4243b0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ing=2E=20Jan=20Kal=C3=A1b?=
Date: Mon, 2 Sep 2019 13:30:26 +0200
Subject: [PATCH 035/302] git-escape-magic: fix typo (#8113)
---
plugins/git-escape-magic/README.md | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/plugins/git-escape-magic/README.md b/plugins/git-escape-magic/README.md
index a14364f22..c3e3898f5 100644
--- a/plugins/git-escape-magic/README.md
+++ b/plugins/git-escape-magic/README.md
@@ -8,10 +8,9 @@ An excerpt from that project's readme explains it's purpose.
> It eliminates the need for manually escaping those meta-characters. The zle function it provides is context aware and recognizes the characteristics of each subcommand of git. Every time you type one of these meta-characters on a git command line, it automatically escapes the meta-character with a backslash as necessary and as appropriate.
-## Useage
+## Usage
To use this plugin add it to your list of plugins in your `.zshrc` file.
**NOTE**: If you use url-quote-magic it must be included before this
plugin runs to prevent any conflicts.
-
From 15dd77055e2b4a931d50ad3e05f823893aac66af Mon Sep 17 00:00:00 2001
From: Salomon Smeke
Date: Mon, 2 Sep 2019 06:40:39 -0500
Subject: [PATCH 036/302] wd: point to the correct directory even if installed
with antibody (#8116)
---
plugins/wd/wd.plugin.zsh | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/plugins/wd/wd.plugin.zsh b/plugins/wd/wd.plugin.zsh
index c0559293d..4b7cd3c19 100644
--- a/plugins/wd/wd.plugin.zsh
+++ b/plugins/wd/wd.plugin.zsh
@@ -1,11 +1,7 @@
-#!/bin/zsh
-
# WARP DIRECTORY
# ==============
# oh-my-zsh plugin
#
# @github.com/mfaerevaag/wd
-wd() {
- . $ZSH/plugins/wd/wd.sh
-}
+eval "wd() { source '${0:A:h}/wd.sh' }"
From b3d3ce8aa604aecc52c132a9d67e075b0ca64722 Mon Sep 17 00:00:00 2001
From: Braxton Schafer
Date: Tue, 3 Sep 2019 14:15:13 -0500
Subject: [PATCH 037/302] Fix bad function definitions in Debian plugin
There appears to be a definition issue for some functions/aliases which
result in the following errors when sourcing .zshrc:
```
/home/username/.oh-my-zsh/plugins/debian/debian.plugin.zsh:75: defining function based on alias `abd'
/home/username/.oh-my-zsh/plugins/debian/debian.plugin.zsh:75: parse error near `()'
```
Fixes #7986
---
plugins/debian/debian.plugin.zsh | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh
index be4062ebf..dd80485d0 100644
--- a/plugins/debian/debian.plugin.zsh
+++ b/plugins/debian/debian.plugin.zsh
@@ -72,7 +72,7 @@ if [[ $use_sudo -eq 1 ]]; then
# commands using su #########
else
alias aac="su -ls '$apt_pref autoclean' root"
- abd() {
+ function abd() {
cmd="su -lc '$apt_pref build-dep $@' root"
print "$cmd"
eval "$cmd"
@@ -83,17 +83,17 @@ else
alias adu="su -lc '$apt_pref update && aptitude dist-upgrade' root"
alias afu="su -lc '$apt-file update'"
alias au="su -lc '$apt_pref $apt_upgr' root"
- ai() {
+ function ai() {
cmd="su -lc 'aptitude -P install $@' root"
print "$cmd"
eval "$cmd"
}
- ap() {
+ function ap() {
cmd="su -lc '$apt_pref -P purge $@' root"
print "$cmd"
eval "$cmd"
}
- ar() {
+ function ar() {
cmd="su -lc '$apt_pref -P remove $@' root"
print "$cmd"
eval "$cmd"
From a4f6a9964ceec3d222a8caa8eb3e5cf6027cfbab Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Tue, 3 Sep 2019 21:19:38 +0200
Subject: [PATCH 038/302] meta: remove PR triage GitHub action :cry:
We do this because the GitHub Actions behavior was changed recently
so as to not pass secrets to action runs started from forks, therefore
the API token passed cannot be used to change PR labels.
There may be an alternative in the future.
---
.github/workflows/pull_request_triage.yml | 15 ---------------
1 file changed, 15 deletions(-)
delete mode 100644 .github/workflows/pull_request_triage.yml
diff --git a/.github/workflows/pull_request_triage.yml b/.github/workflows/pull_request_triage.yml
deleted file mode 100644
index 77ec4ce79..000000000
--- a/.github/workflows/pull_request_triage.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-on: pull_request
-name: Triage Pull Request
-jobs:
- triage:
- name: Triage
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@master
- if: github.event.action == 'opened' || github.event.action == 'synchronize'
- - name: Analyze and triage
- uses: ohmyzsh/github-actions/pull-request-triage@master
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- DEBUG_ACTIONS: ${{ secrets.DEBUG_ACTIONS }}
From 1f58cd92ddb94fb75e4fb45f231eebfd55aa19dd Mon Sep 17 00:00:00 2001
From: Addison G
Date: Fri, 6 Sep 2019 14:12:56 +1000
Subject: [PATCH 039/302] Updated git-prompt.sh to quote variables
An error was thrown (`bash: [: =: unary operator expected`) when using the __git_ps1_colorize_gitstring function outside of the one place it's called (line 512), because the "detached" variable was not quoted, and was unset.
---
plugins/gitfast/git-prompt.sh | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/plugins/gitfast/git-prompt.sh b/plugins/gitfast/git-prompt.sh
index fd2b049db..3e86e9cca 100644
--- a/plugins/gitfast/git-prompt.sh
+++ b/plugins/gitfast/git-prompt.sh
@@ -219,7 +219,7 @@ __git_ps1_show_upstream ()
if [[ -n "$count" && -n "$name" ]]; then
__git_ps1_upstream_name=$(git rev-parse \
--abbrev-ref "$upstream" 2>/dev/null)
- if [ $pcmode = yes ] && [ $ps1_expanded = yes ]; then
+ if [ "$pcmode" = "yes" ] && [ "$ps1_expanded" = "yes" ]; then
p="$p \${__git_ps1_upstream_name}"
else
p="$p ${__git_ps1_upstream_name}"
@@ -237,7 +237,7 @@ __git_ps1_show_upstream ()
# to build a gitstring.
__git_ps1_colorize_gitstring ()
{
- if [[ -n ${ZSH_VERSION-} ]]; then
+ if [[ -n "${ZSH_VERSION-}" ]]; then
local c_red='%F{red}'
local c_green='%F{green}'
local c_lblue='%F{blue}'
@@ -255,7 +255,7 @@ __git_ps1_colorize_gitstring ()
local flags_color="$c_lblue"
local branch_color=""
- if [ $detached = no ]; then
+ if [ "$detached" = no ]; then
branch_color="$ok_color"
else
branch_color="$bad_color"
@@ -508,13 +508,13 @@ __git_ps1 ()
# NO color option unless in PROMPT_COMMAND mode or it's Zsh
if [ -n "${GIT_PS1_SHOWCOLORHINTS-}" ]; then
- if [ $pcmode = yes ] || [ -n "${ZSH_VERSION-}" ]; then
+ if [ "$pcmode" = "yes" ] || [ -n "${ZSH_VERSION-}" ]; then
__git_ps1_colorize_gitstring
fi
fi
b=${b##refs/heads/}
- if [ $pcmode = yes ] && [ $ps1_expanded = yes ]; then
+ if [ "$pcmode" = "yes" ] && [ "$ps1_expanded" = "yes" ]; then
__git_ps1_branch_name=$b
b="\${__git_ps1_branch_name}"
fi
@@ -522,8 +522,8 @@ __git_ps1 ()
local f="$w$i$s$u"
local gitstring="$c$b${f:+$z$f}$r$p"
- if [ $pcmode = yes ]; then
- if [ "${__git_printf_supports_v-}" != yes ]; then
+ if [ "$pcmode" = "yes" ]; then
+ if [ "${__git_printf_supports_v-}" != "yes" ]; then
gitstring=$(printf -- "$printf_format" "$gitstring")
else
printf -v gitstring -- "$printf_format" "$gitstring"
From a870fee6a7cb6783e85abe42a222c7d5f4e89676 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Sun, 8 Sep 2019 14:58:46 +0200
Subject: [PATCH 040/302] Update syntax on the remaining functions
---
plugins/debian/debian.plugin.zsh | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh
index dd80485d0..68c6df1ae 100644
--- a/plugins/debian/debian.plugin.zsh
+++ b/plugins/debian/debian.plugin.zsh
@@ -114,7 +114,7 @@ fi
# Registers a compdef for $1 that calls $apt_pref with the commands $2
# To do that it creates a new completion function called _apt_pref_$2
#
-apt_pref_compdef() {
+function apt_pref_compdef() {
local f fb
f="_apt_pref_${2}"
@@ -151,7 +151,7 @@ alias mydeb='time dpkg-buildpackage -rfakeroot -us -uc'
# Functions #################################################################
# create a simple script that can be used to 'duplicate' a system
-apt-copy() {
+function apt-copy() {
print '#!/bin/sh'"\n" > apt-copy.sh
cmd='$apt_pref install'
@@ -173,7 +173,7 @@ apt-copy() {
# apt-history rollback
# apt-history list
# Based On: https://linuxcommando.blogspot.com/2008/08/how-to-show-apt-log-history.html
-apt-history () {
+function apt-history() {
case "$1" in
install)
zgrep --no-filename 'install ' $(ls -rt /var/log/dpkg*)
@@ -202,7 +202,7 @@ apt-history () {
}
# Kernel-package building shortcut
-kerndeb () {
+function kerndeb() {
# temporarily unset MAKEFLAGS ( '-j3' will fail )
MAKEFLAGS=$( print - $MAKEFLAGS | perl -pe 's/-j\s*[\d]+//g' )
print '$MAKEFLAGS set to '"'$MAKEFLAGS'"
@@ -216,10 +216,9 @@ kerndeb () {
}
# List packages by size
-function apt-list-packages {
+function apt-list-packages() {
dpkg-query -W --showformat='${Installed-Size} ${Package} ${Status}\n' | \
grep -v deinstall | \
sort -n | \
awk '{print $1" "$2}'
}
-
From 9c3e3ae5e451637873ae74da1732e98f3df3784c Mon Sep 17 00:00:00 2001
From: Sean Collins
Date: Sun, 8 Sep 2019 07:05:20 -0600
Subject: [PATCH 041/302] Change description for Evan's theme to something
neutral (#6304)
---
themes/evan.zsh-theme | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/themes/evan.zsh-theme b/themes/evan.zsh-theme
index 5ef1f40dd..02ca22d4c 100644
--- a/themes/evan.zsh-theme
+++ b/themes/evan.zsh-theme
@@ -1,2 +1,2 @@
-# Evan describes this sexy prompt as: "a skinny, topless prompt"
-PROMPT='%m :: %2~ %B»%b '
\ No newline at end of file
+# Evan's minimal prompt
+PROMPT='%m :: %2~ %B»%b '
From c44569f06eef2a3b4a1666686e7040c33e59e49c Mon Sep 17 00:00:00 2001
From: Hanjiang Yu <42531996+de1acr0ix@users.noreply.github.com>
Date: Sun, 8 Sep 2019 21:07:33 +0800
Subject: [PATCH 042/302] robbyrussell: remove local variable (#8131)
Now it can be sourced in a function, like zplug.
---
themes/robbyrussell.zsh-theme | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/themes/robbyrussell.zsh-theme b/themes/robbyrussell.zsh-theme
index f9eca6a87..4df8433e3 100644
--- a/themes/robbyrussell.zsh-theme
+++ b/themes/robbyrussell.zsh-theme
@@ -1,5 +1,5 @@
-local ret_status="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ )"
-PROMPT='${ret_status} %{$fg[cyan]%}%c%{$reset_color%} $(git_prompt_info)'
+PROMPT="%(?:%{$fg_bold[green]%}➜:%{$fg_bold[red]%}➜)"
+PROMPT+=' %{$fg[cyan]%}%c%{$reset_color%} $(git_prompt_info)'
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}git:(%{$fg[red]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
From 101ea872326211830e90d2bd01bd8506673f9d11 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Sun, 8 Sep 2019 16:07:06 +0200
Subject: [PATCH 043/302] ssh-agent: check if `ssh-add -l` was successful
---
plugins/ssh-agent/ssh-agent.plugin.zsh | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/plugins/ssh-agent/ssh-agent.plugin.zsh b/plugins/ssh-agent/ssh-agent.plugin.zsh
index 9471ff49c..6ab041c21 100644
--- a/plugins/ssh-agent/ssh-agent.plugin.zsh
+++ b/plugins/ssh-agent/ssh-agent.plugin.zsh
@@ -12,7 +12,7 @@ function _start_agent() {
}
function _add_identities() {
- local id line sig
+ local id line sig lines
local -a identities loaded_sigs loaded_ids not_loaded
zstyle -a :omz:plugins:ssh-agent identities identities
@@ -32,10 +32,12 @@ function _add_identities() {
fi
# get list of loaded identities' signatures and filenames
- for line in ${(f)"$(ssh-add -l)"}; do
- loaded_sigs+=${${(z)line}[2]}
- loaded_ids+=${${(z)line}[3]}
- done
+ if lines=$(ssh-add -l); then
+ for line in ${(f)lines}; do
+ loaded_sigs+=${${(z)line}[2]}
+ loaded_ids+=${${(z)line}[3]}
+ done
+ fi
# add identities if not already loaded
for id in $identities; do
From 229a1c971903aaae0bebf73dfda41cb71c25560c Mon Sep 17 00:00:00 2001
From: Prajjwal Singh
Date: Sun, 8 Sep 2019 19:46:00 +0530
Subject: [PATCH 044/302] gitfast: update completions (#8130)
Includes completions for `git switch`.
---
plugins/gitfast/_git | 19 +-
plugins/gitfast/git-completion.bash | 1353 ++++++++++++---------------
2 files changed, 605 insertions(+), 767 deletions(-)
diff --git a/plugins/gitfast/_git b/plugins/gitfast/_git
index 78a6dbb3d..886bf95d1 100644
--- a/plugins/gitfast/_git
+++ b/plugins/gitfast/_git
@@ -30,7 +30,7 @@ if [ -z "$script" ]; then
local -a locations
local e
locations=(
- "$(dirname ${funcsourcetrace[1]%:*})/git-completion.bash"
+ $(dirname ${funcsourcetrace[1]%:*})/git-completion.bash
'/etc/bash_completion.d/git' # fedora, old debian
'/usr/share/bash-completion/completions/git' # arch, ubuntu, new debian
'/usr/share/bash-completion/git' # gentoo
@@ -39,7 +39,7 @@ if [ -z "$script" ]; then
test -f $e && script="$e" && break
done
fi
-ZSH_VERSION='' . "$script"
+GIT_SOURCING_ZSH_COMPLETION=y . "$script"
__gitcomp ()
{
@@ -93,13 +93,22 @@ __gitcomp_nl_append ()
compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0
}
+__gitcomp_file_direct ()
+{
+ emulate -L zsh
+
+ local IFS=$'\n'
+ compset -P '*[=:]'
+ compadd -f -- ${=1} && _ret=0
+}
+
__gitcomp_file ()
{
emulate -L zsh
local IFS=$'\n'
compset -P '*[=:]'
- compadd -Q -p "${2-}" -f -- ${=1} && _ret=0
+ compadd -p "${2-}" -f -- ${=1} && _ret=0
}
__git_zsh_bash_func ()
@@ -223,10 +232,8 @@ _git ()
if (( $+functions[__${service}_zsh_main] )); then
__${service}_zsh_main
- elif (( $+functions[__${service}_main] )); then
+ else
emulate ksh -c __${service}_main
- elif (( $+functions[_${service}] )); then
- emulate ksh -c _${service}
fi
let _ret && _default && _ret=0
diff --git a/plugins/gitfast/git-completion.bash b/plugins/gitfast/git-completion.bash
index b6ff5dc08..e087c4bf0 100644
--- a/plugins/gitfast/git-completion.bash
+++ b/plugins/gitfast/git-completion.bash
@@ -29,13 +29,16 @@
# tell the completion to use commit completion. This also works with aliases
# of form "!sh -c '...'". For example, "!sh -c ': git commit ; ... '".
#
+# Compatible with bash 3.2.57.
+#
# You can set the following environment variables to influence the behavior of
# the completion routines:
#
# GIT_COMPLETION_CHECKOUT_NO_GUESS
#
# When set to "1", do not include "DWIM" suggestions in git-checkout
-# completion (e.g., completing "foo" when "origin/foo" exists).
+# and git-switch completion (e.g., completing "foo" when "origin/foo"
+# exists).
case "$COMP_WORDBREAKS" in
*:*) : great ;;
@@ -92,6 +95,70 @@ __git ()
${__git_dir:+--git-dir="$__git_dir"} "$@" 2>/dev/null
}
+# Removes backslash escaping, single quotes and double quotes from a word,
+# stores the result in the variable $dequoted_word.
+# 1: The word to dequote.
+__git_dequote ()
+{
+ local rest="$1" len ch
+
+ dequoted_word=""
+
+ while test -n "$rest"; do
+ len=${#dequoted_word}
+ dequoted_word="$dequoted_word${rest%%[\\\'\"]*}"
+ rest="${rest:$((${#dequoted_word}-$len))}"
+
+ case "${rest:0:1}" in
+ \\)
+ ch="${rest:1:1}"
+ case "$ch" in
+ $'\n')
+ ;;
+ *)
+ dequoted_word="$dequoted_word$ch"
+ ;;
+ esac
+ rest="${rest:2}"
+ ;;
+ \')
+ rest="${rest:1}"
+ len=${#dequoted_word}
+ dequoted_word="$dequoted_word${rest%%\'*}"
+ rest="${rest:$((${#dequoted_word}-$len+1))}"
+ ;;
+ \")
+ rest="${rest:1}"
+ while test -n "$rest" ; do
+ len=${#dequoted_word}
+ dequoted_word="$dequoted_word${rest%%[\\\"]*}"
+ rest="${rest:$((${#dequoted_word}-$len))}"
+ case "${rest:0:1}" in
+ \\)
+ ch="${rest:1:1}"
+ case "$ch" in
+ \"|\\|\$|\`)
+ dequoted_word="$dequoted_word$ch"
+ ;;
+ $'\n')
+ ;;
+ *)
+ dequoted_word="$dequoted_word\\$ch"
+ ;;
+ esac
+ rest="${rest:2}"
+ ;;
+ \")
+ rest="${rest:1}"
+ break
+ ;;
+ esac
+ done
+ ;;
+ esac
+ done
+}
+
# The following function is based on code from:
#
# bash_completion - programmable completion functions for bash 3.2+
@@ -264,9 +331,32 @@ __gitcomp ()
case "$cur_" in
--*=)
;;
+ --no-*)
+ local c i=0 IFS=$' \t\n'
+ for c in $1; do
+ if [[ $c == "--" ]]; then
+ continue
+ fi
+ c="$c${4-}"
+ if [[ $c == "$cur_"* ]]; then
+ case $c in
+ --*=*|*.) ;;
+ *) c="$c " ;;
+ esac
+ COMPREPLY[i++]="${2-}$c"
+ fi
+ done
+ ;;
*)
local c i=0 IFS=$' \t\n'
for c in $1; do
+ if [[ $c == "--" ]]; then
+ c="--no-...${4-}"
+ if [[ $c == "$cur_"* ]]; then
+ COMPREPLY[i++]="${2-}$c "
+ fi
+ break
+ fi
c="$c${4-}"
if [[ $c == "$cur_"* ]]; then
case $c in
@@ -280,6 +370,48 @@ __gitcomp ()
esac
}
+# Clear the variables caching builtins' options when (re-)sourcing
+# the completion script.
+if [[ -n ${ZSH_VERSION-} ]]; then
+ unset $(set |sed -ne 's/^\(__gitcomp_builtin_[a-zA-Z0-9_][a-zA-Z0-9_]*\)=.*/\1/p') 2>/dev/null
+else
+ unset $(compgen -v __gitcomp_builtin_)
+fi
+
+# This function is equivalent to
+#
+# __gitcomp "$(git xxx --git-completion-helper) ..."
+#
+# except that the output is cached. Accept 1-3 arguments:
+# 1: the git command to execute, this is also the cache key
+# 2: extra options to be added on top (e.g. negative forms)
+# 3: options to be excluded
+__gitcomp_builtin ()
+{
+ # spaces must be replaced with underscore for multi-word
+ # commands, e.g. "git remote add" becomes remote_add.
+ local cmd="$1"
+ local incl="$2"
+ local excl="$3"
+
+ local var=__gitcomp_builtin_"${cmd/-/_}"
+ local options
+ eval "options=\$$var"
+
+ if [ -z "$options" ]; then
+ # leading and trailing spaces are significant to make
+ # option removal work correctly.
+ options=" $incl $(__git ${cmd/_/ } --git-completion-helper) " || return
+
+ for i in $excl; do
+ options="${options/ $i / }"
+ done
+ eval "$var=\"$options\""
+ fi
+
+ __gitcomp "$options"
+}
+
# Variation of __gitcomp_nl () that appends to the existing list of
# completion candidates, COMPREPLY.
__gitcomp_nl_append ()
@@ -303,6 +435,24 @@ __gitcomp_nl ()
__gitcomp_nl_append "$@"
}
+# Fills the COMPREPLY array with prefiltered paths without any additional
+# processing.
+# Callers must take care of providing only paths that match the current path
+# to be completed and adding any prefix path components, if necessary.
+# 1: List of newline-separated matching paths, complete with all prefix
+# path components.
+__gitcomp_file_direct ()
+{
+ local IFS=$'\n'
+
+ COMPREPLY=($1)
+
+ # use a hack to enable file mode in bash < 4
+ compopt -o filenames +o nospace 2>/dev/null ||
+ compgen -f /non-existing-dir/ >/dev/null ||
+ true
+}
+
# Generates completion reply with compgen from newline-separated possible
# completion filenames.
# It accepts 1 to 3 arguments:
@@ -322,7 +472,8 @@ __gitcomp_file ()
# use a hack to enable file mode in bash < 4
compopt -o filenames +o nospace 2>/dev/null ||
- compgen -f /non-existing-dir/ > /dev/null
+ compgen -f /non-existing-dir/ >/dev/null ||
+ true
}
# Execute 'git ls-files', unless the --committable option is specified, in
@@ -332,10 +483,12 @@ __gitcomp_file ()
__git_ls_files_helper ()
{
if [ "$2" == "--committable" ]; then
- __git -C "$1" diff-index --name-only --relative HEAD
+ __git -C "$1" -c core.quotePath=false diff-index \
+ --name-only --relative HEAD -- "${3//\\/\\\\}*"
else
# NOTE: $2 is not quoted in order to support multiple options
- __git -C "$1" ls-files --exclude-standard $2
+ __git -C "$1" -c core.quotePath=false ls-files \
+ --exclude-standard $2 -- "${3//\\/\\\\}*"
fi
}
@@ -346,17 +499,103 @@ __git_ls_files_helper ()
# If provided, only files within the specified directory are listed.
# Sub directories are never recursed. Path must have a trailing
# slash.
+# 3: List only paths matching this path component (optional).
__git_index_files ()
{
- local root="${2-.}" file
+ local root="$2" match="$3"
- __git_ls_files_helper "$root" "$1" |
- while read -r file; do
- case "$file" in
- ?*/*) echo "${file%%/*}" ;;
- *) echo "$file" ;;
- esac
- done | sort | uniq
+ __git_ls_files_helper "$root" "$1" "$match" |
+ awk -F / -v pfx="${2//\\/\\\\}" '{
+ paths[$1] = 1
+ }
+ END {
+ for (p in paths) {
+ if (substr(p, 1, 1) != "\"") {
+ # No special characters, easy!
+ print pfx p
+ continue
+ }
+
+ # The path is quoted.
+ p = dequote(p)
+ if (p == "")
+ continue
+
+ # Even when a directory name itself does not contain
+ # any special characters, it will still be quoted if
+ # any of its (stripped) trailing path components do.
+ # Because of this we may have seen the same direcory
+ # both quoted and unquoted.
+ if (p in paths)
+ # We have seen the same directory unquoted,
+ # skip it.
+ continue
+ else
+ print pfx p
+ }
+ }
+ function dequote(p, bs_idx, out, esc, esc_idx, dec) {
+ # Skip opening double quote.
+ p = substr(p, 2)
+
+ # Interpret backslash escape sequences.
+ while ((bs_idx = index(p, "\\")) != 0) {
+ out = out substr(p, 1, bs_idx - 1)
+ esc = substr(p, bs_idx + 1, 1)
+ p = substr(p, bs_idx + 2)
+
+ if ((esc_idx = index("abtvfr\"\\", esc)) != 0) {
+ # C-style one-character escape sequence.
+ out = out substr("\a\b\t\v\f\r\"\\",
+ esc_idx, 1)
+ } else if (esc == "n") {
+ # Uh-oh, a newline character.
+ # We cant reliably put a pathname
+ # containing a newline into COMPREPLY,
+ # and the newline would create a mess.
+ # Skip this path.
+ return ""
+ } else {
+ # Must be a \nnn octal value, then.
+ dec = esc * 64 + \
+ substr(p, 1, 1) * 8 + \
+ substr(p, 2, 1)
+ out = out sprintf("%c", dec)
+ p = substr(p, 3)
+ }
+ }
+ # Drop closing double quote, if there is one.
+ # (There isnt any if this is a directory, as it was
+ # already stripped with the trailing path components.)
+ if (substr(p, length(p), 1) == "\"")
+ out = out substr(p, 1, length(p) - 1)
+ else
+ out = out p
+
+ return out
+ }'
+}
+
+# __git_complete_index_file requires 1 argument:
+# 1: the options to pass to ls-file
+#
+# The exception is --committable, which finds the files appropriate commit.
+__git_complete_index_file ()
+{
+ local dequoted_word pfx="" cur_
+
+ __git_dequote "$cur"
+
+ case "$dequoted_word" in
+ ?*/*)
+ pfx="${dequoted_word%/*}/"
+ cur_="${dequoted_word##*/}"
+ ;;
+ *)
+ cur_="$dequoted_word"
+ esac
+
+ __gitcomp_file_direct "$(__git_index_files "$1" "$pfx" "$cur_")"
}
# Lists branches from the local repository.
@@ -439,7 +678,7 @@ __git_refs ()
track=""
;;
*)
- for i in HEAD FETCH_HEAD ORIG_HEAD MERGE_HEAD; do
+ for i in HEAD FETCH_HEAD ORIG_HEAD MERGE_HEAD REBASE_HEAD; do
case "$i" in
$match*)
if [ -e "$dir/$i" ]; then
@@ -594,7 +833,7 @@ __git_is_configured_remote ()
__git_list_merge_strategies ()
{
- git merge -s help 2>&1 |
+ LANG=C LC_ALL=C git merge -s help 2>&1 |
sed -n -e '/[Aa]vailable strategies are: /,/^$/{
s/\.$//
s/.*://
@@ -616,9 +855,14 @@ __git_compute_merge_strategies ()
__git_merge_strategies=$(__git_list_merge_strategies)
}
+__git_merge_strategy_options="ours theirs subtree subtree= patience
+ histogram diff-algorithm= ignore-space-change ignore-all-space
+ ignore-space-at-eol renormalize no-renormalize no-renames
+ find-renames find-renames= rename-threshold="
+
__git_complete_revlist_file ()
{
- local pfx ls ref cur_="$cur"
+ local dequoted_word pfx ls ref cur_="$cur"
case "$cur_" in
*..?*:*)
return
@@ -626,14 +870,18 @@ __git_complete_revlist_file ()
?*:*)
ref="${cur_%%:*}"
cur_="${cur_#*:}"
- case "$cur_" in
+
+ __git_dequote "$cur_"
+
+ case "$dequoted_word" in
?*/*)
- pfx="${cur_%/*}"
- cur_="${cur_##*/}"
+ pfx="${dequoted_word%/*}"
+ cur_="${dequoted_word##*/}"
ls="$ref:$pfx"
pfx="$pfx/"
;;
*)
+ cur_="$dequoted_word"
ls="$ref"
;;
esac
@@ -643,21 +891,10 @@ __git_complete_revlist_file ()
*) pfx="$ref:$pfx" ;;
esac
- __gitcomp_nl "$(__git ls-tree "$ls" \
- | sed '/^100... blob /{
- s,^.* ,,
- s,$, ,
- }
- /^120000 blob /{
- s,^.* ,,
- s,$, ,
- }
- /^040000 tree /{
- s,^.* ,,
- s,$,/,
- }
- s/^.* //')" \
- "$pfx" "$cur_" ""
+ __gitcomp_file "$(__git ls-tree "$ls" \
+ | sed 's/^.* //
+ s/$//')" \
+ "$pfx" "$cur_"
;;
*...*)
pfx="${cur_%...*}..."
@@ -675,26 +912,6 @@ __git_complete_revlist_file ()
esac
}
-
-# __git_complete_index_file requires 1 argument:
-# 1: the options to pass to ls-file
-#
-# The exception is --committable, which finds the files appropriate commit.
-__git_complete_index_file ()
-{
- local pfx="" cur_="$cur"
-
- case "$cur_" in
- ?*/*)
- pfx="${cur_%/*}"
- cur_="${cur_##*/}"
- pfx="${pfx}/"
- ;;
- esac
-
- __gitcomp_file "$(__git_index_files "$1" ${pfx:+"$pfx"})" "$pfx" "$cur_"
-}
-
__git_complete_file ()
{
__git_complete_revlist_file
@@ -726,6 +943,7 @@ __git_complete_remote_or_refspec ()
*) ;;
esac
;;
+ --multiple) no_complete_refspec=1; break ;;
-*) ;;
*) remote="$i"; break ;;
esac
@@ -785,136 +1003,30 @@ __git_complete_strategy ()
-s|--strategy)
__gitcomp "$__git_merge_strategies"
return 0
+ ;;
+ -X)
+ __gitcomp "$__git_merge_strategy_options"
+ return 0
+ ;;
esac
case "$cur" in
--strategy=*)
__gitcomp "$__git_merge_strategies" "" "${cur##--strategy=}"
return 0
;;
+ --strategy-option=*)
+ __gitcomp "$__git_merge_strategy_options" "" "${cur##--strategy-option=}"
+ return 0
+ ;;
esac
return 1
}
-__git_commands () {
- if test -n "${GIT_TESTING_COMMAND_COMPLETION:-}"
- then
- printf "%s" "${GIT_TESTING_COMMAND_COMPLETION}"
- else
- git help -a|egrep '^ [a-zA-Z0-9]'
- fi
-}
-
-__git_list_all_commands ()
-{
- local i IFS=" "$'\n'
- for i in $(__git_commands)
- do
- case $i in
- *--*) : helper pattern;;
- *) echo $i;;
- esac
- done
-}
-
__git_all_commands=
__git_compute_all_commands ()
{
test -n "$__git_all_commands" ||
- __git_all_commands=$(__git_list_all_commands)
-}
-
-__git_list_porcelain_commands ()
-{
- local i IFS=" "$'\n'
- __git_compute_all_commands
- for i in $__git_all_commands
- do
- case $i in
- *--*) : helper pattern;;
- applymbox) : ask gittus;;
- applypatch) : ask gittus;;
- archimport) : import;;
- cat-file) : plumbing;;
- check-attr) : plumbing;;
- check-ignore) : plumbing;;
- check-mailmap) : plumbing;;
- check-ref-format) : plumbing;;
- checkout-index) : plumbing;;
- column) : internal helper;;
- commit-tree) : plumbing;;
- count-objects) : infrequent;;
- credential) : credentials;;
- credential-*) : credentials helper;;
- cvsexportcommit) : export;;
- cvsimport) : import;;
- cvsserver) : daemon;;
- daemon) : daemon;;
- diff-files) : plumbing;;
- diff-index) : plumbing;;
- diff-tree) : plumbing;;
- fast-import) : import;;
- fast-export) : export;;
- fsck-objects) : plumbing;;
- fetch-pack) : plumbing;;
- fmt-merge-msg) : plumbing;;
- for-each-ref) : plumbing;;
- hash-object) : plumbing;;
- http-*) : transport;;
- index-pack) : plumbing;;
- init-db) : deprecated;;
- local-fetch) : plumbing;;
- ls-files) : plumbing;;
- ls-remote) : plumbing;;
- ls-tree) : plumbing;;
- mailinfo) : plumbing;;
- mailsplit) : plumbing;;
- merge-*) : plumbing;;
- mktree) : plumbing;;
- mktag) : plumbing;;
- pack-objects) : plumbing;;
- pack-redundant) : plumbing;;
- pack-refs) : plumbing;;
- parse-remote) : plumbing;;
- patch-id) : plumbing;;
- prune) : plumbing;;
- prune-packed) : plumbing;;
- quiltimport) : import;;
- read-tree) : plumbing;;
- receive-pack) : plumbing;;
- remote-*) : transport;;
- rerere) : plumbing;;
- rev-list) : plumbing;;
- rev-parse) : plumbing;;
- runstatus) : plumbing;;
- sh-setup) : internal;;
- shell) : daemon;;
- show-ref) : plumbing;;
- send-pack) : plumbing;;
- show-index) : plumbing;;
- ssh-*) : transport;;
- stripspace) : plumbing;;
- symbolic-ref) : plumbing;;
- unpack-file) : plumbing;;
- unpack-objects) : plumbing;;
- update-index) : plumbing;;
- update-ref) : plumbing;;
- update-server-info) : daemon;;
- upload-archive) : plumbing;;
- upload-pack) : plumbing;;
- write-tree) : plumbing;;
- var) : infrequent;;
- verify-pack) : infrequent;;
- verify-tag) : plumbing;;
- *) echo $i;;
- esac
- done
-}
-
-__git_porcelain_commands=
-__git_compute_porcelain_commands ()
-{
- test -n "$__git_porcelain_commands" ||
- __git_porcelain_commands=$(__git_list_porcelain_commands)
+ __git_all_commands=$(__git --list-cmds=main,others,alias,nohelpers)
}
# Lists all set config variables starting with the given section prefix,
@@ -932,11 +1044,6 @@ __git_pretty_aliases ()
__git_get_config_variables "pretty"
}
-__git_aliases ()
-{
- __git_get_config_variables "alias"
-}
-
# __git_aliased_command requires 1 argument
__git_aliased_command ()
{
@@ -1072,12 +1179,14 @@ __git_count_arguments ()
}
__git_whitespacelist="nowarn warn error error-all fix"
+__git_patchformat="mbox stgit stgit-series hg mboxrd"
+__git_am_inprogress_options="--skip --continue --resolved --abort --quit --show-current-patch"
_git_am ()
{
__git_find_repo_path
if [ -d "$__git_repo_path"/rebase-apply ]; then
- __gitcomp "--skip --continue --resolved --abort"
+ __gitcomp "$__git_am_inprogress_options"
return
fi
case "$cur" in
@@ -1085,13 +1194,13 @@ _git_am ()
__gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}"
return
;;
+ --patch-format=*)
+ __gitcomp "$__git_patchformat" "" "${cur##--patch-format=}"
+ return
+ ;;
--*)
- __gitcomp "
- --3way --committer-date-is-author-date --ignore-date
- --ignore-whitespace --ignore-space-change
- --interactive --keep --no-utf8 --signoff --utf8
- --whitespace= --scissors
- "
+ __gitcomp_builtin am "" \
+ "$__git_am_inprogress_options"
return
esac
}
@@ -1104,14 +1213,7 @@ _git_apply ()
return
;;
--*)
- __gitcomp "
- --stat --numstat --summary --check --index
- --cached --index-info --reverse --reject --unidiff-zero
- --apply --no-add --exclude=
- --ignore-whitespace --ignore-space-change
- --whitespace= --inaccurate-eof --verbose
- --recount --directory=
- "
+ __gitcomp_builtin apply
return
esac
}
@@ -1119,11 +1221,12 @@ _git_apply ()
_git_add ()
{
case "$cur" in
+ --chmod=*)
+ __gitcomp "+x -x" "" "${cur##--chmod=}"
+ return
+ ;;
--*)
- __gitcomp "
- --interactive --refresh --patch --update --dry-run
- --ignore-errors --intent-to-add --force --edit --chmod=
- "
+ __gitcomp_builtin add
return
esac
@@ -1182,6 +1285,8 @@ _git_bisect ()
esac
}
+__git_ref_fieldlist="refname objecttype objectsize objectname upstream push HEAD symref"
+
_git_branch ()
{
local i c=1 only_local_ref="n" has_r="n"
@@ -1200,13 +1305,7 @@ _git_branch ()
__git_complete_refs --cur="${cur##--set-upstream-to=}"
;;
--*)
- __gitcomp "
- --color --no-color --verbose --abbrev= --no-abbrev
- --track --no-track --contains --no-contains --merged --no-merged
- --set-upstream-to= --edit-description --list
- --unset-upstream --delete --move --copy --remotes
- --column --no-column --sort= --points-at
- "
+ __gitcomp_builtin branch
;;
*)
if [ $only_local_ref = "y" -a $has_r = "n" ]; then
@@ -1247,11 +1346,7 @@ _git_checkout ()
__gitcomp "diff3 merge" "" "${cur##--conflict=}"
;;
--*)
- __gitcomp "
- --quiet --ours --theirs --track --no-track --merge
- --conflict= --orphan --patch --detach --ignore-skip-worktree-bits
- --recurse-submodules --no-recurse-submodules
- "
+ __gitcomp_builtin checkout
;;
*)
# check if --track, --no-track, or --no-guess was specified
@@ -1266,21 +1361,22 @@ _git_checkout ()
esac
}
-_git_cherry ()
-{
- __git_complete_refs
-}
+__git_cherry_pick_inprogress_options="--continue --quit --abort"
_git_cherry_pick ()
{
__git_find_repo_path
if [ -f "$__git_repo_path"/CHERRY_PICK_HEAD ]; then
- __gitcomp "--continue --quit --abort"
+ __gitcomp "$__git_cherry_pick_inprogress_options"
return
fi
+
+ __git_complete_strategy && return
+
case "$cur" in
--*)
- __gitcomp "--edit --no-commit --signoff --strategy= --mainline"
+ __gitcomp_builtin cherry-pick "" \
+ "$__git_cherry_pick_inprogress_options"
;;
*)
__git_complete_refs
@@ -1292,7 +1388,7 @@ _git_clean ()
{
case "$cur" in
--*)
- __gitcomp "--dry-run --quiet"
+ __gitcomp_builtin clean
return
;;
esac
@@ -1305,26 +1401,7 @@ _git_clone ()
{
case "$cur" in
--*)
- __gitcomp "
- --local
- --no-hardlinks
- --shared
- --reference
- --quiet
- --no-checkout
- --bare
- --mirror
- --origin
- --upload-pack
- --template=
- --depth
- --single-branch
- --no-tags
- --branch
- --recurse-submodules
- --no-single-branch
- --shallow-submodules
- "
+ __gitcomp_builtin clone
return
;;
esac
@@ -1357,16 +1434,7 @@ _git_commit ()
return
;;
--*)
- __gitcomp "
- --all --author= --signoff --verify --no-verify
- --edit --no-edit
- --amend --include --only --interactive
- --dry-run --reuse-message= --reedit-message=
- --reset-author --file= --message= --template=
- --cleanup= --untracked-files --untracked-files=
- --verbose --quiet --fixup= --squash=
- --patch --short --date --allow-empty
- "
+ __gitcomp_builtin commit
return
esac
@@ -1382,11 +1450,7 @@ _git_describe ()
{
case "$cur" in
--*)
- __gitcomp "
- --all --tags --contains --abbrev= --candidates=
- --exact-match --debug --long --match --always --first-parent
- --exclude --dirty --broken
- "
+ __gitcomp_builtin describe
return
esac
__git_complete_refs
@@ -1411,7 +1475,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
--dirstat --dirstat= --dirstat-by-file
--dirstat-by-file= --cumulative
--diff-algorithm=
- --submodule --submodule=
+ --submodule --submodule= --ignore-submodules
"
_git_diff ()
@@ -1439,7 +1503,8 @@ _git_diff ()
}
__git_mergetools_common="diffuse diffmerge ecmerge emerge kdiff3 meld opendiff
- tkdiff vimdiff gvimdiff xxdiff araxis p4merge bc codecompare
+ tkdiff vimdiff gvimdiff xxdiff araxis p4merge bc
+ codecompare smerge
"
_git_difftool ()
@@ -1452,11 +1517,11 @@ _git_difftool ()
return
;;
--*)
- __gitcomp "--cached --staged --pickaxe-all --pickaxe-regex
- --base --ours --theirs
- --no-renames --diff-filter= --find-copies-harder
- --relative --ignore-submodules
- --tool="
+ __gitcomp_builtin difftool "$__git_diff_common_options
+ --base --cached --ours --theirs
+ --pickaxe-all --pickaxe-regex
+ --relative --staged
+ "
return
;;
esac
@@ -1465,12 +1530,6 @@ _git_difftool ()
__git_fetch_recurse_submodules="yes on-demand no"
-__git_fetch_options="
- --quiet --verbose --append --upload-pack --force --keep --depth=
- --tags --no-tags --all --prune --dry-run --recurse-submodules=
- --unshallow --update-shallow
-"
-
_git_fetch ()
{
case "$cur" in
@@ -1478,21 +1537,21 @@ _git_fetch ()
__gitcomp "$__git_fetch_recurse_submodules" "" "${cur##--recurse-submodules=}"
return
;;
+ --filter=*)
+ __gitcomp "blob:none blob:limit= sparse:oid=" "" "${cur##--filter=}"
+ return
+ ;;
--*)
- __gitcomp "$__git_fetch_options"
+ __gitcomp_builtin fetch
return
;;
esac
__git_complete_remote_or_refspec
}
-__git_format_patch_options="
- --stdout --attach --no-attach --thread --thread= --no-thread
- --numbered --start-number --numbered-files --keep-subject --signoff
- --signature --no-signature --in-reply-to= --cc= --full-index --binary
- --not --all --cover-letter --no-prefix --src-prefix= --dst-prefix=
- --inline --suffix= --ignore-if-in-upstream --subject-prefix=
- --output-directory --reroll-count --to= --quiet --notes
+__git_format_patch_extra_options="
+ --full-index --not --all --no-prefix --src-prefix=
+ --dst-prefix= --notes
"
_git_format_patch ()
@@ -1505,7 +1564,7 @@ _git_format_patch ()
return
;;
--*)
- __gitcomp "$__git_format_patch_options"
+ __gitcomp_builtin format-patch "$__git_format_patch_extra_options"
return
;;
esac
@@ -1516,20 +1575,7 @@ _git_fsck ()
{
case "$cur" in
--*)
- __gitcomp "
- --tags --root --unreachable --cache --no-reflogs --full
- --strict --verbose --lost-found --name-objects
- "
- return
- ;;
- esac
-}
-
-_git_gc ()
-{
- case "$cur" in
- --*)
- __gitcomp "--prune --aggressive"
+ __gitcomp_builtin fsck
return
;;
esac
@@ -1585,21 +1631,7 @@ _git_grep ()
case "$cur" in
--*)
- __gitcomp "
- --cached
- --text --ignore-case --word-regexp --invert-match
- --full-name --line-number
- --extended-regexp --basic-regexp --fixed-strings
- --perl-regexp
- --threads
- --files-with-matches --name-only
- --files-without-match
- --max-depth
- --count
- --and --or --not --all-match
- --break --heading --show-function --function-context
- --untracked --no-index
- "
+ __gitcomp_builtin grep
return
;;
esac
@@ -1617,17 +1649,16 @@ _git_help ()
{
case "$cur" in
--*)
- __gitcomp "--all --guides --info --man --web"
+ __gitcomp_builtin help
return
;;
esac
- __git_compute_all_commands
- __gitcomp "$__git_all_commands $(__git_aliases)
- attributes cli core-tutorial cvs-migration
- diffcore everyday gitk glossary hooks ignore modules
- namespaces repository-layout revisions tutorial tutorial-2
- workflows
- "
+ if test -n "$GIT_TESTING_ALL_COMMAND_LIST"
+ then
+ __gitcomp "$GIT_TESTING_ALL_COMMAND_LIST $(__git --list-cmds=alias,list-guide) gitk"
+ else
+ __gitcomp "$(__git --list-cmds=main,nohelpers,alias,list-guide) gitk"
+ fi
}
_git_init ()
@@ -1640,7 +1671,7 @@ _git_init ()
return
;;
--*)
- __gitcomp "--quiet --bare --template= --shared --shared="
+ __gitcomp_builtin init
return
;;
esac
@@ -1650,13 +1681,7 @@ _git_ls_files ()
{
case "$cur" in
--*)
- __gitcomp "--cached --deleted --modified --others --ignored
- --stage --directory --no-empty-directory --unmerged
- --killed --exclude= --exclude-from=
- --exclude-per-directory= --exclude-standard
- --error-unmatch --with-tree= --full-name
- --abbrev --ignored --exclude-per-directory
- "
+ __gitcomp_builtin ls-files
return
;;
esac
@@ -1670,7 +1695,7 @@ _git_ls_remote ()
{
case "$cur" in
--*)
- __gitcomp "--heads --tags --refs --get-url --symref"
+ __gitcomp_builtin ls-remote
return
;;
esac
@@ -1679,6 +1704,13 @@ _git_ls_remote ()
_git_ls_tree ()
{
+ case "$cur" in
+ --*)
+ __gitcomp_builtin ls-tree
+ return
+ ;;
+ esac
+
__git_complete_file
}
@@ -1705,8 +1737,8 @@ __git_log_shortlog_options="
--all-match --invert-grep
"
-__git_log_pretty_formats="oneline short medium full fuller email raw format:"
-__git_log_date_formats="relative iso8601 rfc2822 short local default raw"
+__git_log_pretty_formats="oneline short medium full fuller email raw format: mboxrd"
+__git_log_date_formats="relative iso8601 iso8601-strict rfc2822 short local default raw unix format:"
_git_log ()
{
@@ -1794,22 +1826,13 @@ _git_log ()
__git_complete_revlist
}
-# Common merge options shared by git-merge(1) and git-pull(1).
-__git_merge_options="
- --no-commit --no-stat --log --no-log --squash --strategy
- --commit --stat --no-squash --ff --no-ff --ff-only --edit --no-edit
- --verify-signatures --no-verify-signatures --gpg-sign
- --quiet --verbose --progress --no-progress
-"
-
_git_merge ()
{
__git_complete_strategy && return
case "$cur" in
--*)
- __gitcomp "$__git_merge_options
- --rerere-autoupdate --no-rerere-autoupdate --abort --continue"
+ __gitcomp_builtin merge
return
esac
__git_complete_refs
@@ -1823,7 +1846,7 @@ _git_mergetool ()
return
;;
--*)
- __gitcomp "--tool= --prompt --no-prompt"
+ __gitcomp "--tool= --prompt --no-prompt --gui --no-gui"
return
;;
esac
@@ -1833,7 +1856,7 @@ _git_merge_base ()
{
case "$cur" in
--*)
- __gitcomp "--octopus --independent --is-ancestor --fork-point"
+ __gitcomp_builtin merge-base
return
;;
esac
@@ -1844,7 +1867,7 @@ _git_mv ()
{
case "$cur" in
--*)
- __gitcomp "--dry-run"
+ __gitcomp_builtin mv
return
;;
esac
@@ -1858,19 +1881,14 @@ _git_mv ()
fi
}
-_git_name_rev ()
-{
- __gitcomp "--tags --all --stdin"
-}
-
_git_notes ()
{
- local subcommands='add append copy edit list prune remove show'
+ local subcommands='add append copy edit get-ref list merge prune remove show'
local subcommand="$(__git_find_on_cmdline "$subcommands")"
case "$subcommand,$cur" in
,--*)
- __gitcomp '--ref'
+ __gitcomp_builtin notes
;;
,*)
case "$prev" in
@@ -1882,21 +1900,14 @@ _git_notes ()
;;
esac
;;
- add,--reuse-message=*|append,--reuse-message=*|\
- add,--reedit-message=*|append,--reedit-message=*)
+ *,--reuse-message=*|*,--reedit-message=*)
__git_complete_refs --cur="${cur#*=}"
;;
- add,--*|append,--*)
- __gitcomp '--file= --message= --reedit-message=
- --reuse-message='
+ *,--*)
+ __gitcomp_builtin notes_$subcommand
;;
- copy,--*)
- __gitcomp '--stdin'
- ;;
- prune,--*)
- __gitcomp '--dry-run --verbose'
- ;;
- prune,*)
+ prune,*|get-ref,*)
+ # this command does not take a ref, do not complete it
;;
*)
case "$prev" in
@@ -1920,12 +1931,8 @@ _git_pull ()
return
;;
--*)
- __gitcomp "
- --rebase --no-rebase
- --autostash --no-autostash
- $__git_merge_options
- $__git_fetch_options
- "
+ __gitcomp_builtin pull
+
return
;;
esac
@@ -1976,27 +1983,36 @@ _git_push ()
return
;;
--*)
- __gitcomp "
- --all --mirror --tags --dry-run --force --verbose
- --quiet --prune --delete --follow-tags
- --receive-pack= --repo= --set-upstream
- --force-with-lease --force-with-lease= --recurse-submodules=
- "
+ __gitcomp_builtin push
return
;;
esac
__git_complete_remote_or_refspec
}
+_git_range_diff ()
+{
+ case "$cur" in
+ --*)
+ __gitcomp "
+ --creation-factor= --no-dual-color
+ $__git_diff_common_options
+ "
+ return
+ ;;
+ esac
+ __git_complete_revlist
+}
+
_git_rebase ()
{
__git_find_repo_path
if [ -f "$__git_repo_path"/rebase-merge/interactive ]; then
- __gitcomp "--continue --skip --abort --quit --edit-todo"
+ __gitcomp "--continue --skip --abort --quit --edit-todo --show-current-patch"
return
elif [ -d "$__git_repo_path"/rebase-apply ] || \
[ -d "$__git_repo_path"/rebase-merge ]; then
- __gitcomp "--continue --skip --abort --quit"
+ __gitcomp "--continue --skip --abort --quit --show-current-patch"
return
fi
__git_complete_strategy && return
@@ -2008,7 +2024,7 @@ _git_rebase ()
--*)
__gitcomp "
--onto --merge --strategy --interactive
- --preserve-merges --stat --no-stat
+ --rebase-merges --preserve-merges --stat --no-stat
--committer-date-is-author-date --ignore-date
--ignore-whitespace --whitespace=
--autosquash --no-autosquash
@@ -2016,6 +2032,7 @@ _git_rebase ()
--autostash --no-autostash
--verify --no-verify
--keep-empty --root --force-rebase --no-ff
+ --rerere-autoupdate
--exec
"
@@ -2077,16 +2094,16 @@ _git_send_email ()
return
;;
--*)
- __gitcomp "--annotate --bcc --cc --cc-cmd --chain-reply-to
+ __gitcomp_builtin send-email "--annotate --bcc --cc --cc-cmd --chain-reply-to
--compose --confirm= --dry-run --envelope-sender
--from --identity
--in-reply-to --no-chain-reply-to --no-signed-off-by-cc
- --no-suppress-from --no-thread --quiet
+ --no-suppress-from --no-thread --quiet --reply-to
--signed-off-by-cc --smtp-pass --smtp-server
--smtp-server-port --smtp-encryption= --smtp-user
--subject --suppress-cc= --suppress-from --thread --to
--validate --no-validate
- $__git_format_patch_options"
+ $__git_format_patch_extra_options"
return
;;
esac
@@ -2119,11 +2136,7 @@ _git_status ()
return
;;
--*)
- __gitcomp "
- --short --branch --porcelain --long --verbose
- --untracked-files= --ignore-submodules= --ignored
- --column= --no-column
- "
+ __gitcomp_builtin status
return
;;
esac
@@ -2148,6 +2161,44 @@ _git_status ()
__git_complete_index_file "$complete_opt"
}
+_git_switch ()
+{
+ case "$cur" in
+ --conflict=*)
+ __gitcomp "diff3 merge" "" "${cur##--conflict=}"
+ ;;
+ --*)
+ __gitcomp_builtin switch
+ ;;
+ *)
+ # check if --track, --no-track, or --no-guess was specified
+ # if so, disable DWIM mode
+ local track_opt="--track" only_local_ref=n
+ if [ "$GIT_COMPLETION_CHECKOUT_NO_GUESS" = "1" ] ||
+ [ -n "$(__git_find_on_cmdline "--track --no-track --no-guess")" ]; then
+ track_opt=''
+ fi
+ # explicit --guess enables DWIM mode regardless of
+ # $GIT_COMPLETION_CHECKOUT_NO_GUESS
+ if [ -n "$(__git_find_on_cmdline "--guess")" ]; then
+ track_opt='--track'
+ fi
+ if [ -z "$(__git_find_on_cmdline "-d --detach")" ]; then
+ only_local_ref=y
+ else
+ # --guess --detach is invalid combination, no
+ # dwim will be done when --detach is specified
+ track_opt=
+ fi
+ if [ $only_local_ref = y -a -z "$track_opt" ]; then
+ __gitcomp_direct "$(__git_heads "" "$cur" " ")"
+ else
+ __git_complete_refs $track_opt
+ fi
+ ;;
+ esac
+}
+
__git_config_get_set_variables ()
{
local prevword word config_file= c=$cword
@@ -2170,9 +2221,24 @@ __git_config_get_set_variables ()
__git config $config_file --name-only --list
}
+__git_config_vars=
+__git_compute_config_vars ()
+{
+ test -n "$__git_config_vars" ||
+ __git_config_vars="$(git help --config-for-completion | sort | uniq)"
+}
+
_git_config ()
{
- case "$prev" in
+ local varname
+
+ if [ "${BASH_VERSINFO[0]:-0}" -ge 4 ]; then
+ varname="${prev,,}"
+ else
+ varname="$(echo "$prev" |tr A-Z a-z)"
+ fi
+
+ case "$varname" in
branch.*.remote|branch.*.pushremote)
__gitcomp_nl "$(__git_remotes)"
return
@@ -2182,7 +2248,7 @@ _git_config ()
return
;;
branch.*.rebase)
- __gitcomp "false true preserve interactive"
+ __gitcomp "false true merges preserve interactive"
return
;;
remote.pushdefault)
@@ -2228,7 +2294,7 @@ _git_config ()
return
;;
diff.submodule)
- __gitcomp "log short"
+ __gitcomp "$__git_diff_submodule_formats"
return
;;
help.format)
@@ -2239,7 +2305,7 @@ _git_config ()
__gitcomp "$__git_log_date_formats"
return
;;
- sendemail.aliasesfiletype)
+ sendemail.aliasfiletype)
__gitcomp "mutt mailrc pine elm gnus"
return
;;
@@ -2265,32 +2331,25 @@ _git_config ()
esac
case "$cur" in
--*)
- __gitcomp "
- --system --global --local --file=
- --list --replace-all
- --get --get-all --get-regexp
- --add --unset --unset-all
- --remove-section --rename-section
- --name-only
- "
+ __gitcomp_builtin config
return
;;
branch.*.*)
local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "remote pushremote merge mergeoptions rebase" "$pfx" "$cur_"
+ __gitcomp "remote pushRemote merge mergeOptions rebase" "$pfx" "$cur_"
return
;;
branch.*)
local pfx="${cur%.*}." cur_="${cur#*.}"
__gitcomp_direct "$(__git_heads "$pfx" "$cur_" ".")"
- __gitcomp_nl_append $'autosetupmerge\nautosetuprebase\n' "$pfx" "$cur_"
+ __gitcomp_nl_append $'autoSetupMerge\nautoSetupRebase\n' "$pfx" "$cur_"
return
;;
guitool.*.*)
local pfx="${cur%.*}." cur_="${cur##*.}"
__gitcomp "
- argprompt cmd confirm needsfile noconsole norescan
- prompt revprompt revunmerged title
+ argPrompt cmd confirm needsFile noConsole noRescan
+ prompt revPrompt revUnmerged title
" "$pfx" "$cur_"
return
;;
@@ -2319,14 +2378,14 @@ _git_config ()
local pfx="${cur%.*}." cur_="${cur##*.}"
__gitcomp "
url proxy fetch push mirror skipDefaultUpdate
- receivepack uploadpack tagopt pushurl
+ receivepack uploadpack tagOpt pushurl
" "$pfx" "$cur_"
return
;;
remote.*)
local pfx="${cur%.*}." cur_="${cur#*.}"
__gitcomp_nl "$(__git_remotes)" "$pfx" "$cur_" "."
- __gitcomp_nl_append "pushdefault" "$pfx" "$cur_"
+ __gitcomp_nl_append "pushDefault" "$pfx" "$cur_"
return
;;
url.*.*)
@@ -2334,332 +2393,14 @@ _git_config ()
__gitcomp "insteadOf pushInsteadOf" "$pfx" "$cur_"
return
;;
+ *.*)
+ __git_compute_config_vars
+ __gitcomp "$__git_config_vars"
+ ;;
+ *)
+ __git_compute_config_vars
+ __gitcomp "$(echo "$__git_config_vars" | sed 's/\.[^ ]*/./g')"
esac
- __gitcomp "
- add.ignoreErrors
- advice.amWorkDir
- advice.commitBeforeMerge
- advice.detachedHead
- advice.implicitIdentity
- advice.pushAlreadyExists
- advice.pushFetchFirst
- advice.pushNeedsForce
- advice.pushNonFFCurrent
- advice.pushNonFFMatching
- advice.pushUpdateRejected
- advice.resolveConflict
- advice.rmHints
- advice.statusHints
- advice.statusUoption
- advice.ignoredHook
- alias.
- am.keepcr
- am.threeWay
- apply.ignorewhitespace
- apply.whitespace
- branch.autosetupmerge
- branch.autosetuprebase
- browser.
- clean.requireForce
- color.branch
- color.branch.current
- color.branch.local
- color.branch.plain
- color.branch.remote
- color.decorate.HEAD
- color.decorate.branch
- color.decorate.remoteBranch
- color.decorate.stash
- color.decorate.tag
- color.diff
- color.diff.commit
- color.diff.frag
- color.diff.func
- color.diff.meta
- color.diff.new
- color.diff.old
- color.diff.plain
- color.diff.whitespace
- color.grep
- color.grep.context
- color.grep.filename
- color.grep.function
- color.grep.linenumber
- color.grep.match
- color.grep.selected
- color.grep.separator
- color.interactive
- color.interactive.error
- color.interactive.header
- color.interactive.help
- color.interactive.prompt
- color.pager
- color.showbranch
- color.status
- color.status.added
- color.status.changed
- color.status.header
- color.status.localBranch
- color.status.nobranch
- color.status.remoteBranch
- color.status.unmerged
- color.status.untracked
- color.status.updated
- color.ui
- commit.cleanup
- commit.gpgSign
- commit.status
- commit.template
- commit.verbose
- core.abbrev
- core.askpass
- core.attributesfile
- core.autocrlf
- core.bare
- core.bigFileThreshold
- core.checkStat
- core.commentChar
- core.compression
- core.createObject
- core.deltaBaseCacheLimit
- core.editor
- core.eol
- core.excludesfile
- core.fileMode
- core.fsyncobjectfiles
- core.gitProxy
- core.hideDotFiles
- core.hooksPath
- core.ignoreStat
- core.ignorecase
- core.logAllRefUpdates
- core.loosecompression
- core.notesRef
- core.packedGitLimit
- core.packedGitWindowSize
- core.packedRefsTimeout
- core.pager
- core.precomposeUnicode
- core.preferSymlinkRefs
- core.preloadindex
- core.protectHFS
- core.protectNTFS
- core.quotepath
- core.repositoryFormatVersion
- core.safecrlf
- core.sharedRepository
- core.sparseCheckout
- core.splitIndex
- core.sshCommand
- core.symlinks
- core.trustctime
- core.untrackedCache
- core.warnAmbiguousRefs
- core.whitespace
- core.worktree
- credential.helper
- credential.useHttpPath
- credential.username
- credentialCache.ignoreSIGHUP
- diff.autorefreshindex
- diff.external
- diff.ignoreSubmodules
- diff.mnemonicprefix
- diff.noprefix
- diff.renameLimit
- diff.renames
- diff.statGraphWidth
- diff.submodule
- diff.suppressBlankEmpty
- diff.tool
- diff.wordRegex
- diff.algorithm
- difftool.
- difftool.prompt
- fetch.recurseSubmodules
- fetch.unpackLimit
- format.attach
- format.cc
- format.coverLetter
- format.from
- format.headers
- format.numbered
- format.pretty
- format.signature
- format.signoff
- format.subjectprefix
- format.suffix
- format.thread
- format.to
- gc.
- gc.aggressiveDepth
- gc.aggressiveWindow
- gc.auto
- gc.autoDetach
- gc.autopacklimit
- gc.logExpiry
- gc.packrefs
- gc.pruneexpire
- gc.reflogexpire
- gc.reflogexpireunreachable
- gc.rerereresolved
- gc.rerereunresolved
- gc.worktreePruneExpire
- gitcvs.allbinary
- gitcvs.commitmsgannotation
- gitcvs.dbTableNamePrefix
- gitcvs.dbdriver
- gitcvs.dbname
- gitcvs.dbpass
- gitcvs.dbuser
- gitcvs.enabled
- gitcvs.logfile
- gitcvs.usecrlfattr
- guitool.
- gui.blamehistoryctx
- gui.commitmsgwidth
- gui.copyblamethreshold
- gui.diffcontext
- gui.encoding
- gui.fastcopyblame
- gui.matchtrackingbranch
- gui.newbranchtemplate
- gui.pruneduringfetch
- gui.spellingdictionary
- gui.trustmtime
- help.autocorrect
- help.browser
- help.format
- http.lowSpeedLimit
- http.lowSpeedTime
- http.maxRequests
- http.minSessions
- http.noEPSV
- http.postBuffer
- http.proxy
- http.sslCipherList
- http.sslVersion
- http.sslCAInfo
- http.sslCAPath
- http.sslCert
- http.sslCertPasswordProtected
- http.sslKey
- http.sslVerify
- http.useragent
- i18n.commitEncoding
- i18n.logOutputEncoding
- imap.authMethod
- imap.folder
- imap.host
- imap.pass
- imap.port
- imap.preformattedHTML
- imap.sslverify
- imap.tunnel
- imap.user
- init.templatedir
- instaweb.browser
- instaweb.httpd
- instaweb.local
- instaweb.modulepath
- instaweb.port
- interactive.singlekey
- log.date
- log.decorate
- log.showroot
- mailmap.file
- man.
- man.viewer
- merge.
- merge.conflictstyle
- merge.log
- merge.renameLimit
- merge.renormalize
- merge.stat
- merge.tool
- merge.verbosity
- mergetool.
- mergetool.keepBackup
- mergetool.keepTemporaries
- mergetool.prompt
- notes.displayRef
- notes.rewrite.
- notes.rewrite.amend
- notes.rewrite.rebase
- notes.rewriteMode
- notes.rewriteRef
- pack.compression
- pack.deltaCacheLimit
- pack.deltaCacheSize
- pack.depth
- pack.indexVersion
- pack.packSizeLimit
- pack.threads
- pack.window
- pack.windowMemory
- pager.
- pretty.
- pull.octopus
- pull.twohead
- push.default
- push.followTags
- rebase.autosquash
- rebase.stat
- receive.autogc
- receive.denyCurrentBranch
- receive.denyDeleteCurrent
- receive.denyDeletes
- receive.denyNonFastForwards
- receive.fsckObjects
- receive.unpackLimit
- receive.updateserverinfo
- remote.pushdefault
- remotes.
- repack.usedeltabaseoffset
- rerere.autoupdate
- rerere.enabled
- sendemail.
- sendemail.aliasesfile
- sendemail.aliasfiletype
- sendemail.bcc
- sendemail.cc
- sendemail.cccmd
- sendemail.chainreplyto
- sendemail.confirm
- sendemail.envelopesender
- sendemail.from
- sendemail.identity
- sendemail.multiedit
- sendemail.signedoffbycc
- sendemail.smtpdomain
- sendemail.smtpencryption
- sendemail.smtppass
- sendemail.smtpserver
- sendemail.smtpserveroption
- sendemail.smtpserverport
- sendemail.smtpuser
- sendemail.suppresscc
- sendemail.suppressfrom
- sendemail.thread
- sendemail.to
- sendemail.tocmd
- sendemail.validate
- sendemail.smtpbatchsize
- sendemail.smtprelogindelay
- showbranch.default
- status.relativePaths
- status.showUntrackedFiles
- status.submodulesummary
- submodule.
- tar.umask
- transfer.unpackLimit
- url.
- user.email
- user.name
- user.signingkey
- web.browser
- branch. remote.
- "
}
_git_remote ()
@@ -2672,7 +2413,7 @@ _git_remote ()
if [ -z "$subcommand" ]; then
case "$cur" in
--*)
- __gitcomp "--verbose"
+ __gitcomp_builtin remote
;;
*)
__gitcomp "$subcommands"
@@ -2683,33 +2424,33 @@ _git_remote ()
case "$subcommand,$cur" in
add,--*)
- __gitcomp "--track --master --fetch --tags --no-tags --mirror="
+ __gitcomp_builtin remote_add
;;
add,*)
;;
set-head,--*)
- __gitcomp "--auto --delete"
+ __gitcomp_builtin remote_set-head
;;
set-branches,--*)
- __gitcomp "--add"
+ __gitcomp_builtin remote_set-branches
;;
set-head,*|set-branches,*)
__git_complete_remote_or_refspec
;;
update,--*)
- __gitcomp "--prune"
+ __gitcomp_builtin remote_update
;;
update,*)
- __gitcomp "$(__git_get_config_variables "remotes")"
+ __gitcomp "$(__git_remotes) $(__git_get_config_variables "remotes")"
;;
set-url,--*)
- __gitcomp "--push --add --delete"
+ __gitcomp_builtin remote_set-url
;;
get-url,--*)
- __gitcomp "--push --all"
+ __gitcomp_builtin remote_get-url
;;
prune,--*)
- __gitcomp "--dry-run"
+ __gitcomp_builtin remote_prune
;;
*)
__gitcomp_nl "$(__git_remotes)"
@@ -2720,8 +2461,12 @@ _git_remote ()
_git_replace ()
{
case "$cur" in
+ --format=*)
+ __gitcomp "short medium long" "" "${cur##--format=}"
+ return
+ ;;
--*)
- __gitcomp "--edit --graft --format= --list --delete"
+ __gitcomp_builtin replace
return
;;
esac
@@ -2745,26 +2490,42 @@ _git_reset ()
case "$cur" in
--*)
- __gitcomp "--merge --mixed --hard --soft --patch --keep"
+ __gitcomp_builtin reset
return
;;
esac
__git_complete_refs
}
+_git_restore ()
+{
+ case "$cur" in
+ --conflict=*)
+ __gitcomp "diff3 merge" "" "${cur##--conflict=}"
+ ;;
+ --source=*)
+ __git_complete_refs --cur="${cur##--source=}"
+ ;;
+ --*)
+ __gitcomp_builtin restore
+ ;;
+ esac
+}
+
+__git_revert_inprogress_options="--continue --quit --abort"
+
_git_revert ()
{
__git_find_repo_path
if [ -f "$__git_repo_path"/REVERT_HEAD ]; then
- __gitcomp "--continue --quit --abort"
+ __gitcomp "$__git_revert_inprogress_options"
return
fi
+ __git_complete_strategy && return
case "$cur" in
--*)
- __gitcomp "
- --edit --mainline --no-edit --no-commit --signoff
- --strategy= --strategy-option=
- "
+ __gitcomp_builtin revert "" \
+ "$__git_revert_inprogress_options"
return
;;
esac
@@ -2775,7 +2536,7 @@ _git_rm ()
{
case "$cur" in
--*)
- __gitcomp "--cached --dry-run --ignore-unmatch --quiet"
+ __gitcomp_builtin rm
return
;;
esac
@@ -2833,12 +2594,7 @@ _git_show_branch ()
{
case "$cur" in
--*)
- __gitcomp "
- --all --remotes --topo-order --date-order --current --more=
- --list --independent --merge-base --no-name
- --color --no-color
- --sha1-name --sparse --topics --reflog
- "
+ __gitcomp_builtin show-branch
return
;;
esac
@@ -2848,13 +2604,21 @@ _git_show_branch ()
_git_stash ()
{
local save_opts='--all --keep-index --no-keep-index --quiet --patch --include-untracked'
- local subcommands='push save list show apply clear drop pop create branch'
- local subcommand="$(__git_find_on_cmdline "$subcommands")"
+ local subcommands='push list show apply clear drop pop create branch'
+ local subcommand="$(__git_find_on_cmdline "$subcommands save")"
+ if [ -n "$(__git_find_on_cmdline "-p")" ]; then
+ subcommand="push"
+ fi
if [ -z "$subcommand" ]; then
case "$cur" in
--*)
__gitcomp "$save_opts"
;;
+ sa*)
+ if [ -z "$(__git_find_on_cmdline "$save_opts")" ]; then
+ __gitcomp "save"
+ fi
+ ;;
*)
if [ -z "$(__git_find_on_cmdline "$save_opts")" ]; then
__gitcomp "$subcommands"
@@ -2875,6 +2639,9 @@ _git_stash ()
drop,--*)
__gitcomp "--quiet"
;;
+ list,--*)
+ __gitcomp "--name-status --oneline --patch-with-stat"
+ ;;
show,--*|branch,--*)
;;
branch,*)
@@ -2899,7 +2666,7 @@ _git_submodule ()
{
__git_has_doubledash && return
- local subcommands="add status init deinit update summary foreach sync"
+ local subcommands="add status init deinit update set-branch summary foreach sync absorbgitdirs"
local subcommand="$(__git_find_on_cmdline "$subcommands")"
if [ -z "$subcommand" ]; then
case "$cur" in
@@ -2930,6 +2697,9 @@ _git_submodule ()
--force --rebase --merge --reference --depth --recursive --jobs
"
;;
+ set-branch,--*)
+ __gitcomp "--default --branch"
+ ;;
summary,--*)
__gitcomp "--cached --files --summary-limit"
;;
@@ -3045,7 +2815,7 @@ _git_tag ()
while [ $c -lt $cword ]; do
i="${words[c]}"
case "$i" in
- -d|-v)
+ -d|--delete|-v|--verify)
__gitcomp_direct "$(__git_tags "" "$cur" " ")"
return
;;
@@ -3071,11 +2841,7 @@ _git_tag ()
case "$cur" in
--*)
- __gitcomp "
- --list --delete --verify --annotate --message --file
- --sign --cleanup --local-user --force --column --sort=
- --contains --no-contains --points-at --merged --no-merged --create-reflog
- "
+ __gitcomp_builtin tag
;;
esac
}
@@ -3087,23 +2853,26 @@ _git_whatchanged ()
_git_worktree ()
{
- local subcommands="add list lock prune unlock"
+ local subcommands="add list lock move prune remove unlock"
local subcommand="$(__git_find_on_cmdline "$subcommands")"
if [ -z "$subcommand" ]; then
__gitcomp "$subcommands"
else
case "$subcommand,$cur" in
add,--*)
- __gitcomp "--detach"
+ __gitcomp_builtin worktree_add
;;
list,--*)
- __gitcomp "--porcelain"
+ __gitcomp_builtin worktree_list
;;
lock,--*)
- __gitcomp "--reason"
+ __gitcomp_builtin worktree_lock
;;
prune,--*)
- __gitcomp "--dry-run --expire --verbose"
+ __gitcomp_builtin worktree_prune
+ ;;
+ remove,--*)
+ __gitcomp "--force"
;;
*)
;;
@@ -3111,6 +2880,52 @@ _git_worktree ()
fi
}
+__git_complete_common () {
+ local command="$1"
+
+ case "$cur" in
+ --*)
+ __gitcomp_builtin "$command"
+ ;;
+ esac
+}
+
+__git_cmds_with_parseopt_helper=
+__git_support_parseopt_helper () {
+ test -n "$__git_cmds_with_parseopt_helper" ||
+ __git_cmds_with_parseopt_helper="$(__git --list-cmds=parseopt)"
+
+ case " $__git_cmds_with_parseopt_helper " in
+ *" $1 "*)
+ return 0
+ ;;
+ *)
+ return 1
+ ;;
+ esac
+}
+
+__git_complete_command () {
+ local command="$1"
+ local completion_func="_git_${command//-/_}"
+ if ! declare -f $completion_func >/dev/null 2>/dev/null &&
+ declare -f _completion_loader >/dev/null 2>/dev/null
+ then
+ _completion_loader "git-$command"
+ fi
+ if declare -f $completion_func >/dev/null 2>/dev/null
+ then
+ $completion_func
+ return 0
+ elif __git_support_parseopt_helper "$command"
+ then
+ __git_complete_common "$command"
+ return 0
+ else
+ return 1
+ fi
+}
+
__git_main ()
{
local i c=1 command __git_dir __git_repo_path
@@ -3164,20 +2979,24 @@ __git_main ()
--help
"
;;
- *) __git_compute_porcelain_commands
- __gitcomp "$__git_porcelain_commands $(__git_aliases)" ;;
+ *)
+ if test -n "$GIT_TESTING_PORCELAIN_COMMAND_LIST"
+ then
+ __gitcomp "$GIT_TESTING_PORCELAIN_COMMAND_LIST"
+ else
+ __gitcomp "$(__git --list-cmds=list-mainporcelain,others,nohelpers,alias,list-complete,config)"
+ fi
+ ;;
esac
return
fi
- local completion_func="_git_${command//-/_}"
- declare -f $completion_func >/dev/null 2>/dev/null && $completion_func && return
+ __git_complete_command "$command" && return
local expansion=$(__git_aliased_command "$command")
if [ -n "$expansion" ]; then
words[1]=$expansion
- completion_func="_git_${expansion//-/_}"
- declare -f $completion_func >/dev/null 2>/dev/null && $completion_func
+ __git_complete_command "$expansion"
fi
}
@@ -3205,7 +3024,10 @@ __gitk_main ()
__git_complete_revlist
}
-if [[ -n ${ZSH_VERSION-} ]]; then
+if [[ -n ${ZSH_VERSION-} ]] &&
+ # Don't define these functions when sourced from 'git-completion.zsh',
+ # it has its own implementations.
+ [[ -z ${GIT_SOURCING_ZSH_COMPLETION-} ]]; then
echo "WARNING: this script is deprecated, please see git-completion.zsh" 1>&2
autoload -U +X compinit && compinit
@@ -3254,13 +3076,22 @@ if [[ -n ${ZSH_VERSION-} ]]; then
compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0
}
+ __gitcomp_file_direct ()
+ {
+ emulate -L zsh
+
+ local IFS=$'\n'
+ compset -P '*[=:]'
+ compadd -f -- ${=1} && _ret=0
+ }
+
__gitcomp_file ()
{
emulate -L zsh
local IFS=$'\n'
compset -P '*[=:]'
- compadd -Q -p "${2-}" -f -- ${=1} && _ret=0
+ compadd -p "${2-}" -f -- ${=1} && _ret=0
}
_git ()
@@ -3315,6 +3146,6 @@ __git_complete gitk __gitk_main
# when the user has tab-completed the executable name and consequently
# included the '.exe' suffix.
#
-if [[ "$OSTYPE" = cygwin* ]]; then
+if [ Cygwin = "$(uname -o 2>/dev/null)" ]; then
__git_complete git.exe __git_main
fi
From 4fb50b3333ce8685ce3b6570ef5e075ce2633b6a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Sun, 8 Sep 2019 20:28:59 +0200
Subject: [PATCH 045/302] Unquote yes in conditional expressions for style
consistency
---
plugins/gitfast/git-prompt.sh | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/plugins/gitfast/git-prompt.sh b/plugins/gitfast/git-prompt.sh
index 3e86e9cca..f7009b063 100644
--- a/plugins/gitfast/git-prompt.sh
+++ b/plugins/gitfast/git-prompt.sh
@@ -219,7 +219,7 @@ __git_ps1_show_upstream ()
if [[ -n "$count" && -n "$name" ]]; then
__git_ps1_upstream_name=$(git rev-parse \
--abbrev-ref "$upstream" 2>/dev/null)
- if [ "$pcmode" = "yes" ] && [ "$ps1_expanded" = "yes" ]; then
+ if [ "$pcmode" = yes ] && [ "$ps1_expanded" = yes ]; then
p="$p \${__git_ps1_upstream_name}"
else
p="$p ${__git_ps1_upstream_name}"
@@ -508,13 +508,13 @@ __git_ps1 ()
# NO color option unless in PROMPT_COMMAND mode or it's Zsh
if [ -n "${GIT_PS1_SHOWCOLORHINTS-}" ]; then
- if [ "$pcmode" = "yes" ] || [ -n "${ZSH_VERSION-}" ]; then
+ if [ "$pcmode" = yes ] || [ -n "${ZSH_VERSION-}" ]; then
__git_ps1_colorize_gitstring
fi
fi
b=${b##refs/heads/}
- if [ "$pcmode" = "yes" ] && [ "$ps1_expanded" = "yes" ]; then
+ if [ "$pcmode" = yes ] && [ "$ps1_expanded" = yes ]; then
__git_ps1_branch_name=$b
b="\${__git_ps1_branch_name}"
fi
@@ -522,8 +522,8 @@ __git_ps1 ()
local f="$w$i$s$u"
local gitstring="$c$b${f:+$z$f}$r$p"
- if [ "$pcmode" = "yes" ]; then
- if [ "${__git_printf_supports_v-}" != "yes" ]; then
+ if [ "$pcmode" = yes ]; then
+ if [ "${__git_printf_supports_v-}" != yes ]; then
gitstring=$(printf -- "$printf_format" "$gitstring")
else
printf -v gitstring -- "$printf_format" "$gitstring"
From fd4571d1b02ac68833a5b5c166395434723b9128 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Sun, 8 Sep 2019 20:45:06 +0200
Subject: [PATCH 046/302] installer: allow chsh to work in termux
---
tools/install.sh | 42 +++++++++++++++++++++++++-----------------
1 file changed, 25 insertions(+), 17 deletions(-)
diff --git a/tools/install.sh b/tools/install.sh
index 17b70bfea..61010214e 100755
--- a/tools/install.sh
+++ b/tools/install.sh
@@ -165,29 +165,37 @@ setup_shell() {
*) echo "Invalid choice. Shell change skipped."; return ;;
esac
- # Test for the right location of the "shells" file
- if [ -f /etc/shells ]; then
- shells_file=/etc/shells
- elif [ -f /usr/share/defaults/etc/shells ]; then # Solus OS
- shells_file=/usr/share/defaults/etc/shells
- else
- error "could not find /etc/shells file. Change your default shell manually."
- return
- fi
+ # Check if we're running on Termux
+ case "$PREFIX" in
+ *com.termux*) termux=true; zsh=zsh ;;
+ *) termux=false ;;
+ esac
- # Get the path to the right zsh binary
- # 1. Use the most preceding one based on $PATH, then check that it's in the shells file
- # 2. If that fails, get a zsh path from the shells file, then check it actually exists
- if ! zsh=$(which zsh) || ! grep -qx "$zsh" "$shells_file"; then
- if ! zsh=$(grep '^/.*/zsh$' "$shells_file" | tail -1) || [ ! -f "$zsh" ]; then
- error "no zsh binary found or not present in '$shells_file'"
- error "change your default shell manually."
+ if [ "$termux" != true ]; then
+ # Test for the right location of the "shells" file
+ if [ -f /etc/shells ]; then
+ shells_file=/etc/shells
+ elif [ -f /usr/share/defaults/etc/shells ]; then # Solus OS
+ shells_file=/usr/share/defaults/etc/shells
+ else
+ error "could not find /etc/shells file. Change your default shell manually."
return
fi
+
+ # Get the path to the right zsh binary
+ # 1. Use the most preceding one based on $PATH, then check that it's in the shells file
+ # 2. If that fails, get a zsh path from the shells file, then check it actually exists
+ if ! zsh=$(which zsh) || ! grep -qx "$zsh" "$shells_file"; then
+ if ! zsh=$(grep '^/.*/zsh$' "$shells_file" | tail -1) || [ ! -f "$zsh" ]; then
+ error "no zsh binary found or not present in '$shells_file'"
+ error "change your default shell manually."
+ return
+ fi
+ fi
fi
# We're going to change the default shell, so back up the current one
- if [ -n $SHELL ]; then
+ if [ -n "$SHELL" ]; then
echo $SHELL > ~/.shell.pre-oh-my-zsh
else
grep "^$USER:" /etc/passwd | awk -F: '{print $7}' > ~/.shell.pre-oh-my-zsh
From ddd359dd668f448856438304bedfe952d1749efd Mon Sep 17 00:00:00 2001
From: Jonas
Date: Wed, 11 Sep 2019 15:54:56 +0200
Subject: [PATCH 047/302] kube-ps1: add a note where to put the `PROMPT=...`
line (#8142)
---
plugins/kube-ps1/README.md | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/plugins/kube-ps1/README.md b/plugins/kube-ps1/README.md
index 19dac42e9..82c0a77e6 100644
--- a/plugins/kube-ps1/README.md
+++ b/plugins/kube-ps1/README.md
@@ -53,10 +53,11 @@ plugins=(
kube-ps1
)
+# After the "source Oh My Zsh" line
PROMPT=$PROMPT'$(kube_ps1) '
```
-Note: the `PROMPT` example above was tested with the theme `robbyrussell`
+Note: The `PROMPT` example above was tested with the theme `robbyrussell`.
## Enabling / Disabling on the current shell
@@ -100,4 +101,4 @@ The default settings can be overridden in ~/.zshrc
## Contributors
- Jared Yanovich
-- Pedro Moranga
\ No newline at end of file
+- Pedro Moranga
From 093b56a7d769d15bdcc2c5300bc4ebedc9d0a837 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Fri, 13 Sep 2019 11:20:20 +0200
Subject: [PATCH 048/302] git: fix gtl alias argument
Fixes the error `no matches found` because the argument is not quoted.
See https://github.com/robbyrussell/oh-my-zsh/pull/7629#issuecomment-531151821
---
plugins/git/git.plugin.zsh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh
index 2edee0298..d8c4cffd1 100644
--- a/plugins/git/git.plugin.zsh
+++ b/plugins/git/git.plugin.zsh
@@ -243,7 +243,7 @@ alias gswc='git switch -c'
alias gts='git tag -s'
alias gtv='git tag | sort -V'
-alias gtl='gtl(){ git tag --sort=-v:refname -n -l ${1}* }; noglob gtl'
+alias gtl='gtl(){ git tag --sort=-v:refname -n -l "${1}*" }; noglob gtl'
alias gunignore='git update-index --no-assume-unchanged'
alias gunwip='git log -n 1 | grep -q -c "\-\-wip\-\-" && git reset HEAD~1'
From 576e0992cac8a0cc4f824e20c0d60188578dd158 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Fri, 13 Sep 2019 11:41:13 +0200
Subject: [PATCH 049/302] z: update to latest version (e77e938)
Closes #8145
Co-authored-by: GHPS
---
plugins/z/z.sh | 25 +++++++++++++------------
1 file changed, 13 insertions(+), 12 deletions(-)
diff --git a/plugins/z/z.sh b/plugins/z/z.sh
index 5fe6d5266..5c5771d62 100644
--- a/plugins/z/z.sh
+++ b/plugins/z/z.sh
@@ -89,7 +89,7 @@ _z() {
if [ $? -ne 0 -a -f "$datafile" ]; then
env rm -f "$tempfile"
else
- [ "$_Z_OWNER" ] && chown $_Z_OWNER:$(id -ng $_Z_OWNER) "$tempfile"
+ [ "$_Z_OWNER" ] && chown $_Z_OWNER:"$(id -ng $_Z_OWNER)" "$tempfile"
env mv -f "$tempfile" "$datafile" || env rm -f "$tempfile"
fi
@@ -110,20 +110,21 @@ _z() {
else
# list/go
+ local echo fnd last list opt typ
while [ "$1" ]; do case "$1" in
- --) while [ "$1" ]; do shift; local fnd="$fnd${fnd:+ }$1";done;;
- -*) local opt=${1:1}; while [ "$opt" ]; do case ${opt:0:1} in
- c) local fnd="^$PWD $fnd";;
- e) local echo=1;;
+ --) while [ "$1" ]; do shift; fnd="$fnd${fnd:+ }$1";done;;
+ -*) opt=${1:1}; while [ "$opt" ]; do case ${opt:0:1} in
+ c) fnd="^$PWD $fnd";;
+ e) echo=1;;
h) echo "${_Z_CMD:-z} [-cehlrtx] args" >&2; return;;
- l) local list=1;;
- r) local typ="rank";;
- t) local typ="recent";;
+ l) list=1;;
+ r) typ="rank";;
+ t) typ="recent";;
x) sed -i -e "\:^${PWD}|.*:d" "$datafile";;
esac; opt=${opt:1}; done;;
- *) local fnd="$fnd${fnd:+ }$1";;
- esac; local last=$1; [ "$#" -gt 0 ] && shift; done
- [ "$fnd" -a "$fnd" != "^$PWD " ] || local list=1
+ *) fnd="$fnd${fnd:+ }$1";;
+ esac; last=$1; [ "$#" -gt 0 ] && shift; done
+ [ "$fnd" -a "$fnd" != "^$PWD " ] || list=1
# if we hit enter on a completion just go there
case "$last" in
@@ -147,7 +148,7 @@ _z() {
function output(matches, best_match, common) {
# list or return the desired directory
if( list ) {
- cmd = "sort -n >&2"
+ cmd = "sort -g >&2"
for( x in matches ) {
if( matches[x] ) {
printf "%-10s %s\n", matches[x], x | cmd
From 32338fd40cae45c775dadc34ae05476811a3834b Mon Sep 17 00:00:00 2001
From: nv035674 <37336037+nv035674@users.noreply.github.com>
Date: Fri, 13 Sep 2019 16:30:17 -0500
Subject: [PATCH 050/302] robbyrussell: restore prompt spacing (#8148)
---
themes/robbyrussell.zsh-theme | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/themes/robbyrussell.zsh-theme b/themes/robbyrussell.zsh-theme
index 4df8433e3..2fd5f2cdc 100644
--- a/themes/robbyrussell.zsh-theme
+++ b/themes/robbyrussell.zsh-theme
@@ -1,4 +1,4 @@
-PROMPT="%(?:%{$fg_bold[green]%}➜:%{$fg_bold[red]%}➜)"
+PROMPT="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ )"
PROMPT+=' %{$fg[cyan]%}%c%{$reset_color%} $(git_prompt_info)'
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}git:(%{$fg[red]%}"
From 095d56b5ea44988c83d0be501e70f37df3d5066b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Thu, 19 Sep 2019 16:20:02 +0200
Subject: [PATCH 051/302] Fix WSL check for WSL 2 and simplify nohup in
open_command
WSL 2 changes the output of `uname -r`. For instance,
WSL 1: 4.4.0-18980-Microsoft
WSL 2: 4.19.67-microsoft-standard
Since WSL 2 lowercases the M, we can match for the rest of the string
which remains lowercase throughout both versions. Another option would
be to match for both upper- and lower-case Ms, like that:
$(uname -r) = *[Mm]icrosoft*
Fixed use of nohup in open_command where it was only necessary for
xdg-open (and actually harmful for cmd.exe in WSL 2). The current logic
is simpler and more future-proof.
---
lib/functions.zsh | 9 ++-------
plugins/sublime/sublime.plugin.zsh | 2 +-
2 files changed, 3 insertions(+), 8 deletions(-)
diff --git a/lib/functions.zsh b/lib/functions.zsh
index 9f8736bd7..61dfa4780 100644
--- a/lib/functions.zsh
+++ b/lib/functions.zsh
@@ -21,7 +21,7 @@ function open_command() {
case "$OSTYPE" in
darwin*) open_cmd='open' ;;
cygwin*) open_cmd='cygstart' ;;
- linux*) ! [[ $(uname -a) =~ "Microsoft" ]] && open_cmd='xdg-open' || {
+ linux*) [[ "$(uname -r)" != *icrosoft* ]] && open_cmd='nohup xdg-open' || {
open_cmd='cmd.exe /c start ""'
[[ -e "$1" ]] && { 1="$(wslpath -w "${1:a}")" || return 1 }
} ;;
@@ -31,12 +31,7 @@ function open_command() {
;;
esac
- # don't use nohup on OSX
- if [[ "$OSTYPE" == darwin* ]]; then
- ${=open_cmd} "$@" &>/dev/null
- else
- nohup ${=open_cmd} "$@" &>/dev/null
- fi
+ ${=open_cmd} "$@" &>/dev/null
}
#
diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh
index 3a82d6c7f..69604ab4f 100644
--- a/plugins/sublime/sublime.plugin.zsh
+++ b/plugins/sublime/sublime.plugin.zsh
@@ -15,7 +15,7 @@ alias stn=create_project
declare -a _sublime_paths
if [[ "$OSTYPE" == linux* ]]; then
- if [[ "$(uname -r)" = *Microsoft* ]]; then
+ if [[ "$(uname -r)" = *icrosoft* ]]; then
_sublime_paths=(
"$(wslpath -u 'C:\Program Files\Sublime Text 3\subl.exe')"
"$(wslpath -u 'C:\Program Files\Sublime Text 2\subl.exe')"
From 6cfaa076272e08b6a81b6358b78d020e48f8a4a6 Mon Sep 17 00:00:00 2001
From: Ian Chesal
Date: Fri, 20 Sep 2019 04:58:35 -0700
Subject: [PATCH 052/302] Add gcloud plugin (#8144)
* A gcloud plugin
This PR addresses issue #6205
This adds support for loading completion for the Google Cloud SDK
command line tools. It searches the known paths for an SDK and loads the
provided completion if it is found. Users can supply a custom location
for the SDK by setting `CLOUDSDK_HOME` in their `zshrc` before loading
oh-my-zsh plugins.
* Canoncial zsh and some safe guards
Based on a PR review from mcornella. All off this has now been tested
on the following variants:
- macOS 10.14.6 - Homebrew
- macOS 10.14.6 - Custom install
- Ubuntu 16.04.6 LTS - apt install
- Ubuntu 18.04.3 LTS - apt install
- Ubuntu 18.04.3 LTS - snap classic install
- CentOS 7 - yum install
---
plugins/gcloud/README.md | 24 ++++++++++++++++++++++++
plugins/gcloud/gcloud.plugin.zsh | 32 ++++++++++++++++++++++++++++++++
2 files changed, 56 insertions(+)
create mode 100644 plugins/gcloud/README.md
create mode 100644 plugins/gcloud/gcloud.plugin.zsh
diff --git a/plugins/gcloud/README.md b/plugins/gcloud/README.md
new file mode 100644
index 000000000..e7ce0e0f1
--- /dev/null
+++ b/plugins/gcloud/README.md
@@ -0,0 +1,24 @@
+# gcloud
+
+This plugin provides completion support for the
+[Google Cloud SDK CLI](https://cloud.google.com/sdk/gcloud/).
+
+To use it, add `gcloud` to the plugins array in your zshrc file.
+
+```zsh
+plugins=(... gcloud)
+```
+
+It relies on you having installed the SDK using one of the supported options
+listed [here](https://cloud.google.com/sdk/install).
+
+## Plugin Options
+
+* Set `CLOUDSDK_HOME` in your `zshrc` file before you load oh-my-zsh if you have
+your GCloud SDK installed in a non-standard location. The plugin will use this
+as the base for your SDK if it finds it set already.
+
+* If you do not have a `python2` in your `PATH` you'll also need to set the
+`CLOUDSDK_PYTHON` environment variable at the end of your `.zshrc`. This is
+used by the SDK to call a compatible interpreter when you run one of the
+SDK commands.
diff --git a/plugins/gcloud/gcloud.plugin.zsh b/plugins/gcloud/gcloud.plugin.zsh
new file mode 100644
index 000000000..6433a7252
--- /dev/null
+++ b/plugins/gcloud/gcloud.plugin.zsh
@@ -0,0 +1,32 @@
+#####################################################
+# gcloud plugin for oh-my-zsh #
+# Author: Ian Chesal (github.com/ianchesal) #
+#####################################################
+
+if [[ -z "${CLOUDSDK_HOME}" ]]; then
+ search_locations=(
+ "$HOME/google-cloud-sdk"
+ "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk"
+ "/usr/share/google-cloud-sdk"
+ "/snap/google-cloud-sdk/current"
+ "/usr/lib64/google-cloud-sdk/"
+ )
+
+ for gcloud_sdk_location in $search_locations; do
+ if [[ -d "${gcloud_sdk_location}" ]]; then
+ CLOUDSDK_HOME="${gcloud_sdk_location}"
+ break
+ fi
+ done
+fi
+
+if (( ${+CLOUDSDK_HOME} )); then
+ if (( ! $+commands[gcloud] )); then
+ # Only source this if GCloud isn't already on the path
+ if [[ -f "${CLOUDSDK_HOME}/path.zsh.inc" ]]; then
+ source "${CLOUDSDK_HOME}/path.zsh.inc"
+ fi
+ fi
+ source "${CLOUDSDK_HOME}/completion.zsh.inc"
+ export CLOUDSDK_HOME
+fi
From be9160ef90bd55bc4f19f94df548b728c64d87bf Mon Sep 17 00:00:00 2001
From: Franco Catena
Date: Sat, 21 Sep 2019 18:11:25 -0300
Subject: [PATCH 053/302] gcloud: add search path for Arch Linux (#8164)
---
plugins/gcloud/gcloud.plugin.zsh | 1 +
1 file changed, 1 insertion(+)
diff --git a/plugins/gcloud/gcloud.plugin.zsh b/plugins/gcloud/gcloud.plugin.zsh
index 6433a7252..c7aebe697 100644
--- a/plugins/gcloud/gcloud.plugin.zsh
+++ b/plugins/gcloud/gcloud.plugin.zsh
@@ -10,6 +10,7 @@ if [[ -z "${CLOUDSDK_HOME}" ]]; then
"/usr/share/google-cloud-sdk"
"/snap/google-cloud-sdk/current"
"/usr/lib64/google-cloud-sdk/"
+ "/opt/google-cloud-sdk"
)
for gcloud_sdk_location in $search_locations; do
From f9e7c45a484723f693a77ab6128a1cc163f3704a Mon Sep 17 00:00:00 2001
From: Andrei Lesnitsky
Date: Tue, 24 Sep 2019 15:46:38 +0300
Subject: [PATCH 054/302] Add flutter plugin (#8150)
---
plugins/flutter/README.md | 21 +++++++++++++++++
plugins/flutter/_flutter | 37 ++++++++++++++++++++++++++++++
plugins/flutter/flutter.plugin.zsh | 7 ++++++
3 files changed, 65 insertions(+)
create mode 100644 plugins/flutter/README.md
create mode 100644 plugins/flutter/_flutter
create mode 100644 plugins/flutter/flutter.plugin.zsh
diff --git a/plugins/flutter/README.md b/plugins/flutter/README.md
new file mode 100644
index 000000000..be419144f
--- /dev/null
+++ b/plugins/flutter/README.md
@@ -0,0 +1,21 @@
+## Flutter plugin
+
+The Flutter plugin provides completion and useful aliases
+
+To use it, add flutter to the plugins array of your zshrc file:
+
+```
+plugins=(... flutter)
+```
+
+## Aliases
+
+| Alias | Command | Description |
+| :--------- | :--------------------- | :------------------------------------------------------------------------- |
+| `fl` | `flutter` | Shorthand for flutter command |
+| `flr` | `flutter run` | Runs flutter app |
+| `fldoc` | `flutter doctor` | Runs flutter doctor |
+| `flb` | `flutter build` | Build flutter application |
+| `flattach` | `flutter attach` | Attaches flutter to a running flutter application with enabled observatory |
+| `flget` | `flutter packages get` | Installs dependencies |
+| `flc` | `flutter clean` | Cleans flutter porject |
diff --git a/plugins/flutter/_flutter b/plugins/flutter/_flutter
new file mode 100644
index 000000000..ab6ce4265
--- /dev/null
+++ b/plugins/flutter/_flutter
@@ -0,0 +1,37 @@
+#compdef flutter
+#autoload
+
+local -a _1st_arguments
+_1st_arguments=(
+ "analyze":"Analyze the project's Dart code."
+ "assemble":"Assemble and build flutter resources."
+ "attach":"Attach to a running application."
+ "build":"Flutter build commands."
+ "channel":"List or switch flutter channels."
+ "clean":"Delete the build/ and .dart_tool/ directories."
+ "config":"Configure Flutter settings."
+ "create":"Create a new Flutter project."
+ "devices":"List all connected devices."
+ "doctor":"Show information about the installed tooling."
+ "drive":"Runs Flutter Driver tests for the current project."
+ "emulators":"List, launch and create emulators."
+ "format":" Format one or more dart files."
+ "help":"Display help information for flutter."
+ "install":"Install a Flutter app on an attached device."
+ "logs":"Show log output for running Flutter apps."
+ "make-host-app-editable":"Moves host apps from generated directories to non-generated directories so that they can be edited by developers."
+ "precache":"Populates the Flutter tool's cache of binary artifacts."
+ "pub":"Commands for managing Flutter packages."
+ "run":"Run your Flutter app on an attached device."
+ "screenshot":"Take a screenshot from a connected device."
+ "test":"Run Flutter unit tests for the current project."
+ "upgrade":"Upgrade your copy of Flutter."
+ "version":"List or switch flutter versions."
+)
+
+_arguments -C '*:: :->subcmds'
+
+if (( CURRENT == 1 )); then
+ _describe -t commands "flutter command" _1st_arguments
+ return
+fi
diff --git a/plugins/flutter/flutter.plugin.zsh b/plugins/flutter/flutter.plugin.zsh
new file mode 100644
index 000000000..01c4c9f5f
--- /dev/null
+++ b/plugins/flutter/flutter.plugin.zsh
@@ -0,0 +1,7 @@
+alias fl="flutter"
+alias flr="flutter run"
+alias fldoc="flutter doctor"
+alias flb="flutter build"
+alias flattach="flutter attach"
+alias flget="flutter packages get"
+alias flc="flutter clean"
From ccee223aed6c280f207d02dd7e23f3a0d3cfcda1 Mon Sep 17 00:00:00 2001
From: KevinHu2014
Date: Wed, 25 Sep 2019 00:58:35 +0800
Subject: [PATCH 055/302] react-native: add aliases for newer iPhones
Added aliases for iPhone 11, 11 Pro, 11 Pro Max
---
plugins/react-native/react-native.plugin.zsh | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/plugins/react-native/react-native.plugin.zsh b/plugins/react-native/react-native.plugin.zsh
index f7695d15f..b33dedfed 100644
--- a/plugins/react-native/react-native.plugin.zsh
+++ b/plugins/react-native/react-native.plugin.zsh
@@ -24,6 +24,10 @@ alias rniosx='react-native run-ios --simulator "iPhone X"'
alias rniosxs='react-native run-ios --simulator "iPhone Xs"'
alias rniosxsm='react-native run-ios --simulator "iPhone Xs Max"'
alias rniosxr='react-native run-ios --simulator "iPhone Xʀ"'
+alias rnios11='react-native run-ios --simulator "iPhone 11"'
+alias rnios11p='react-native run-ios --simulator "iPhone 11 Pro"'
+alias rnios11pm='react-native run-ios --simulator "iPhone 11 Pro Max"'
+
# iPad
alias rnipad2='react-native run-ios --simulator "iPad 2"'
From 2004550a5890850505b29bda801dafdf3a94d0d7 Mon Sep 17 00:00:00 2001
From: Kevin
Date: Wed, 25 Sep 2019 01:03:08 +0800
Subject: [PATCH 056/302] react-native: add aliases for newer iPhones to Doc
Added aliases for iPhone 11, 11 Pro, 11 Pro Max to the Document.
---
plugins/react-native/README.md | 3 +++
1 file changed, 3 insertions(+)
diff --git a/plugins/react-native/README.md b/plugins/react-native/README.md
index dc0207184..a472ddb1c 100644
--- a/plugins/react-native/README.md
+++ b/plugins/react-native/README.md
@@ -39,6 +39,9 @@ plugins=(... react-native)
| **rniosxs** | `react-native run-ios --simulator "iPhone Xs"` |
| **rniosxsm** | `react-native run-ios --simulator "iPhone Xs Max"` |
| **rniosxr** | `react-native run-ios --simulator "iPhone Xʀ"` |
+| **rnios11** | `react-native run-ios --simulator "iPhone 11"` |
+| **rnios11p** | `react-native run-ios --simulator "iPhone 11 Pro"` |
+| **rnios11pm** | `react-native run-ios --simulator "iPhone 11 Pro Max"` |
| _iPad_ | |
| **rnipad2** | `react-native run-ios --simulator "iPad 2"` |
| **rnipad5** | `react-native run-ios --simulator "iPad (5th generation)"` |
From 487f0af412e9ef968175d290a606bd6c0717fc9b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Mon, 30 Sep 2019 19:49:09 +0200
Subject: [PATCH 057/302] Fix table alignment
---
plugins/react-native/README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/plugins/react-native/README.md b/plugins/react-native/README.md
index a472ddb1c..d0a53b8d7 100644
--- a/plugins/react-native/README.md
+++ b/plugins/react-native/README.md
@@ -40,8 +40,8 @@ plugins=(... react-native)
| **rniosxsm** | `react-native run-ios --simulator "iPhone Xs Max"` |
| **rniosxr** | `react-native run-ios --simulator "iPhone Xʀ"` |
| **rnios11** | `react-native run-ios --simulator "iPhone 11"` |
-| **rnios11p** | `react-native run-ios --simulator "iPhone 11 Pro"` |
-| **rnios11pm** | `react-native run-ios --simulator "iPhone 11 Pro Max"` |
+| **rnios11p** | `react-native run-ios --simulator "iPhone 11 Pro"` |
+| **rnios11pm** | `react-native run-ios --simulator "iPhone 11 Pro Max"` |
| _iPad_ | |
| **rnipad2** | `react-native run-ios --simulator "iPad 2"` |
| **rnipad5** | `react-native run-ios --simulator "iPad (5th generation)"` |
From f763244e3b7f66bf2259c6e1bd16af08dd4b465e Mon Sep 17 00:00:00 2001
From: Rhuan Oliveira <43691332+lif3code@users.noreply.github.com>
Date: Tue, 1 Oct 2019 07:56:41 -0300
Subject: [PATCH 058/302] autoenv: add README (#8184)
---
plugins/autoenv/README.md | 14 ++++++++++++++
1 file changed, 14 insertions(+)
create mode 100644 plugins/autoenv/README.md
diff --git a/plugins/autoenv/README.md b/plugins/autoenv/README.md
new file mode 100644
index 000000000..de3881774
--- /dev/null
+++ b/plugins/autoenv/README.md
@@ -0,0 +1,14 @@
+# Autoenv plugin
+
+This plugin loads the [Autoenv](https://github.com/inishchith/autoenv).
+
+To use it, add `autoenv` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... autoenv)
+```
+## Requirements
+
+In order to make this work, you will need to have the autoenv installed.
+
+More info on the usage and install: https://github.com/inishchith/autoenv
From 8bfeb3759c34a8e2e6a5795c3f40630a220e709b Mon Sep 17 00:00:00 2001
From: David Woodward
Date: Tue, 1 Oct 2019 19:02:28 +0800
Subject: [PATCH 059/302] oc: add README (#8188)
---
plugins/oc/README.md | 13 +++++++++++++
1 file changed, 13 insertions(+)
create mode 100644 plugins/oc/README.md
diff --git a/plugins/oc/README.md b/plugins/oc/README.md
new file mode 100644
index 000000000..deae9b2d0
--- /dev/null
+++ b/plugins/oc/README.md
@@ -0,0 +1,13 @@
+# OC - OpenShift CLI
+
+This plugin provides autocompletion for [OC](https://docs.openshift.com/container-platform/3.7/cli_reference/index.html) commands, building, managing and updating operations.
+
+To use it, add `oc` to the plugins array of your zshrc file:
+
+```bash
+plugins=(... oc)
+```
+
+## Contributors
+
++ [kevinkirkup](https://github.com/kevinkirkup) - Plugin Author
From 51f0eaad61d5870d990386ad8479bcd6a86108b6 Mon Sep 17 00:00:00 2001
From: Sukin Kumar K
Date: Tue, 1 Oct 2019 16:43:18 +0530
Subject: [PATCH 060/302] Add README for thor and pip plugins (#8185)
---
plugins/pip/README.md | 19 +++++++++++++++++++
plugins/thor/README.md | 10 ++++++++++
2 files changed, 29 insertions(+)
create mode 100644 plugins/pip/README.md
create mode 100644 plugins/thor/README.md
diff --git a/plugins/pip/README.md b/plugins/pip/README.md
new file mode 100644
index 000000000..f07b5c058
--- /dev/null
+++ b/plugins/pip/README.md
@@ -0,0 +1,19 @@
+# pip plugin
+
+This plugin adds completion for [pip](https://pip.pypa.io/en/latest/),
+the Python package manager.
+
+To use it, add `pip` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... pip)
+```
+
+## pip cache
+
+The pip plugin caches the names of available pip packages from the PyPI index.
+To trigger the caching process, try to complete `pip install`,
+or you can run `zsh-pip-cache-packages` directly.
+
+To reset the cache, run `zsh-pip-clear-cache` and it will be rebuilt next
+the next time you autocomplete `pip install`.
diff --git a/plugins/thor/README.md b/plugins/thor/README.md
new file mode 100644
index 000000000..09c705d9a
--- /dev/null
+++ b/plugins/thor/README.md
@@ -0,0 +1,10 @@
+# Thor plugin
+
+This plugin adds completion for [Thor](http://whatisthor.com/),
+a ruby toolkit for building powerful command-line interfaces.
+
+To use it, add `thor` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... thor)
+```
From ec7ef7eed15ceca8dabb2dc9269d9fe2a48f9cee Mon Sep 17 00:00:00 2001
From: Zach Whitten
Date: Tue, 1 Oct 2019 14:10:11 -0400
Subject: [PATCH 061/302] lein: add README (#8189)
---
plugins/lein/README.md | 9 +++++++++
1 file changed, 9 insertions(+)
create mode 100644 plugins/lein/README.md
diff --git a/plugins/lein/README.md b/plugins/lein/README.md
new file mode 100644
index 000000000..0c4119663
--- /dev/null
+++ b/plugins/lein/README.md
@@ -0,0 +1,9 @@
+# Leiningen plugin
+
+This plugin adds completions for the [Leiningen](https://leiningen.org/) Clojure build tool.
+
+To use it, add `lein` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... lein)
+```
From a6d71ddadb5c9c1f0ded8ecce228dcde1a23ad05 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Tue, 1 Oct 2019 21:11:18 +0200
Subject: [PATCH 062/302] Update README with up-to-date platform requirements
Co-authored-by: Emil Engler
Closes #8157
---
README.md | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index 78a5b56bd..2f23febf5 100644
--- a/README.md
+++ b/README.md
@@ -18,10 +18,8 @@ To learn more, visit [ohmyz.sh](https://ohmyz.sh) and follow [@ohmyzsh](https://
### Prerequisites
-__Disclaimer:__ _Oh My Zsh works best on macOS and Linux._
-
-* Unix-like operating system (macOS or Linux)
-* [Zsh](https://www.zsh.org) should be installed (v4.3.9 or more recent). If not pre-installed (`zsh --version` to confirm), check the following instruction here: [Installing ZSH](https://github.com/robbyrussell/oh-my-zsh/wiki/Installing-ZSH)
+* A Unix-like operating system: macOS, Linux, BSD. On Windows: WSL is preferred, but cygwin or msys also mostly work.
+* [Zsh](https://www.zsh.org) should be installed (v4.3.9 or more recent). If not pre-installed (run `zsh --version` to confirm), check the following instructions here: [Installing ZSH](https://github.com/robbyrussell/oh-my-zsh/wiki/Installing-ZSH)
* `curl` or `wget` should be installed
* `git` should be installed
From b8cfa0c77a68cb64c113b1f4a05b0d67d1bd7448 Mon Sep 17 00:00:00 2001
From: Caleb Williams
Date: Tue, 1 Oct 2019 14:11:59 -0500
Subject: [PATCH 063/302] Update README: include Yarn workspace shortcuts
---
plugins/yarn/README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/plugins/yarn/README.md b/plugins/yarn/README.md
index 671a272d9..e426053de 100644
--- a/plugins/yarn/README.md
+++ b/plugins/yarn/README.md
@@ -37,3 +37,5 @@ plugins=(... yarn)
| yuc | `yarn global upgrade && yarn cache clean` | Upgrade global packages and clean yarn's global cache |
| yui | `yarn upgrade-interactive` | Prompt for which outdated packages to upgrade |
| yup | `yarn upgrade` | Upgrade packages to their latest version |
+| yw | `yarn workspace` | Run a command within a single workspace. |
+| yws | `yarn workspaces` | Run a command within all defined workspaces. |
From 77ad69e0805d722e673ae3f3c655788188ec1751 Mon Sep 17 00:00:00 2001
From: Zach Whitten
Date: Tue, 1 Oct 2019 15:21:05 -0400
Subject: [PATCH 064/302] jruby: add README (#8190)
---
plugins/jruby/README.md | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
create mode 100644 plugins/jruby/README.md
diff --git a/plugins/jruby/README.md b/plugins/jruby/README.md
new file mode 100644
index 000000000..821a46d5e
--- /dev/null
+++ b/plugins/jruby/README.md
@@ -0,0 +1,21 @@
+# JRuby plugin
+
+This plugin adds aliases for [JRuby](https://www.jruby.org/).
+
+To use it, add `jruby` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... jruby)
+```
+
+## Requirements
+
+This plugin assumes you already have jruby installed and available in your [path](https://www.jruby.org/getting-started).
+
+## Aliases
+
+| Alias | Command |
+| ------------ | ---------------------------------------------------------------- |
+| `jrspec` | `jruby --debug -S rspec --debug` |
+| `jprofile` | `jruby --profile.api -S rspec` |
+| `jexec` | `jruby -S` |
From f32b30277d2cc0e47d9426ab8610d9a8a32979d3 Mon Sep 17 00:00:00 2001
From: 14nrv <34603467+14nrv@users.noreply.github.com>
Date: Tue, 1 Oct 2019 22:24:00 +0200
Subject: [PATCH 065/302] yarn: add yd as yarn dev alias (#7663)
---
plugins/yarn/README.md | 1 +
plugins/yarn/yarn.plugin.zsh | 1 +
2 files changed, 2 insertions(+)
diff --git a/plugins/yarn/README.md b/plugins/yarn/README.md
index 671a272d9..5a3da0723 100644
--- a/plugins/yarn/README.md
+++ b/plugins/yarn/README.md
@@ -19,6 +19,7 @@ plugins=(... yarn)
| yap | `yarn add --peer` | Install a package in peerDependencies (`package.json`) |
| yb | `yarn build` | Run the build script defined in `package.json` |
| ycc | `yarn cache clean` | Clean yarn's global cache of packages |
+| yd | `yarn dev` | Run the dev script defined in `package.json` |
| yga | `yarn global add` | Install packages globally on your operating system |
| ygls | `yarn global list` | Lists global installed packages |
| ygrm | `yarn global remove` | Remove global installed packages from your OS |
diff --git a/plugins/yarn/yarn.plugin.zsh b/plugins/yarn/yarn.plugin.zsh
index 9ed8322cd..d00e1c897 100644
--- a/plugins/yarn/yarn.plugin.zsh
+++ b/plugins/yarn/yarn.plugin.zsh
@@ -4,6 +4,7 @@ alias yad="yarn add --dev"
alias yap="yarn add --peer"
alias yb="yarn build"
alias ycc="yarn cache clean"
+alias yd="yarn dev"
alias yga="yarn global add"
alias ygls="yarn global list"
alias ygrm="yarn global remove"
From e38099de96e8b62976354b468da1b21ec2d57f68 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Wed, 2 Oct 2019 13:10:17 +0200
Subject: [PATCH 066/302] sublime: ignore wslpath errors if C drive is missing
---
plugins/sublime/sublime.plugin.zsh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh
index 69604ab4f..dd5063360 100644
--- a/plugins/sublime/sublime.plugin.zsh
+++ b/plugins/sublime/sublime.plugin.zsh
@@ -17,8 +17,8 @@ alias stn=create_project
if [[ "$OSTYPE" == linux* ]]; then
if [[ "$(uname -r)" = *icrosoft* ]]; then
_sublime_paths=(
- "$(wslpath -u 'C:\Program Files\Sublime Text 3\subl.exe')"
- "$(wslpath -u 'C:\Program Files\Sublime Text 2\subl.exe')"
+ "$(wslpath -u 'C:\Program Files\Sublime Text 3\subl.exe' 2>/dev/null)"
+ "$(wslpath -u 'C:\Program Files\Sublime Text 2\subl.exe' 2>/dev/null)"
)
else
_sublime_paths=(
From fc9093b745096a970c8b87b2275a69ad13d665db Mon Sep 17 00:00:00 2001
From: David Shaffer
Date: Thu, 26 Sep 2019 10:12:30 -0400
Subject: [PATCH 067/302] Add rubocop to bundled_commands
---
plugins/bundler/bundler.plugin.zsh | 1 +
1 file changed, 1 insertion(+)
diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh
index 668e15d2f..c4a4fd40a 100644
--- a/plugins/bundler/bundler.plugin.zsh
+++ b/plugins/bundler/bundler.plugin.zsh
@@ -27,6 +27,7 @@ bundled_commands=(
rainbows
rake
rspec
+ rubocop
shotgun
sidekiq
spec
From 372bb48cee7e1d2d20ebef660a86742a7e57756b Mon Sep 17 00:00:00 2001
From: David Shaffer
Date: Wed, 2 Oct 2019 07:45:19 -0400
Subject: [PATCH 068/302] Add rubocop to bundler readme
---
plugins/bundler/README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/plugins/bundler/README.md b/plugins/bundler/README.md
index dc2f17008..a7d40cd0a 100644
--- a/plugins/bundler/README.md
+++ b/plugins/bundler/README.md
@@ -2,7 +2,7 @@
- adds completion for basic bundler commands
- adds short aliases for common bundler commands
- - `be` aliased to `bundle exec`.
+ - `be` aliased to `bundle exec`.
It also supports aliases (if `rs` is `rails server`, `be rs` will bundle-exec `rails server`).
- `bl` aliased to `bundle list`
- `bp` aliased to `bundle package`
@@ -15,7 +15,7 @@
- calls `bundle exec ` otherwise
Common gems wrapped by default (by name of the executable):
-`annotate`, `cap`, `capify`, `cucumber`, `foodcritic`, `guard`, `hanami`, `irb`, `jekyll`, `kitchen`, `knife`, `middleman`, `nanoc`, `pry`, `puma`, `rackup`, `rainbows`, `rake`, `rspec`, `shotgun`, `sidekiq`, `spec`, `spork`, `spring`, `strainer`, `tailor`, `taps`, `thin`, `thor`, `unicorn` and `unicorn_rails`.
+`annotate`, `cap`, `capify`, `cucumber`, `foodcritic`, `guard`, `hanami`, `irb`, `jekyll`, `kitchen`, `knife`, `middleman`, `nanoc`, `pry`, `puma`, `rackup`, `rainbows`, `rake`, `rspec`, `rubocop`, `shotgun`, `sidekiq`, `spec`, `spork`, `spring`, `strainer`, `tailor`, `taps`, `thin`, `thor`, `unicorn` and `unicorn_rails`.
## Configuration
From 4b8f4d529ef1965a9f6a233579ea432374f817dd Mon Sep 17 00:00:00 2001
From: Ekunola Ezekiel
Date: Wed, 2 Oct 2019 17:58:15 +0100
Subject: [PATCH 069/302] yii: add README (#8194)
---
plugins/yii/README.md | 14 ++++++++++++++
1 file changed, 14 insertions(+)
create mode 100644 plugins/yii/README.md
diff --git a/plugins/yii/README.md b/plugins/yii/README.md
new file mode 100644
index 000000000..f1b72e916
--- /dev/null
+++ b/plugins/yii/README.md
@@ -0,0 +1,14 @@
+# Yii plugin
+
+The plugin adds autocomplete commands and subcommands for [yii](https://www.yiiframework.com/).
+
+To use it, add `yii` to the plugins array of your zshrc file:
+```
+plugins=(... yii)
+```
+
+## Aliases
+
+| Alias | Command |
+|--------|----------------------|
+| yiic | `protected/yiic` |
From ae0de1135dc96cfabe31d70f65112cbeadbfa3bf Mon Sep 17 00:00:00 2001
From: Rexben
Date: Wed, 2 Oct 2019 21:31:28 +0100
Subject: [PATCH 070/302] cakephp3: add README (#8196)
---
plugins/cakephp3/README.md | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
create mode 100644 plugins/cakephp3/README.md
diff --git a/plugins/cakephp3/README.md b/plugins/cakephp3/README.md
new file mode 100644
index 000000000..7e8f6640d
--- /dev/null
+++ b/plugins/cakephp3/README.md
@@ -0,0 +1,16 @@
+# cakephp3 plugin
+
+The plugin adds aliases and autocompletion for [cakephp3](https://book.cakephp.org/3.0/en/index.html).
+
+To use it, add `cakephp3` to the plugins array of your zshrc file:
+```
+plugins=(... cakephp3)
+```
+
+## Aliases
+
+| Alias | Command |
+|-----------|-------------------------------|
+| c3 | `bin/cake` |
+| c3cache | `bin/cake orm_cache clear` |
+| c3migrate | `bin/cake migrations migrate` |
From 188eff0653a078ecf67e0a1c6b72de8d61384986 Mon Sep 17 00:00:00 2001
From: Zach Whitten
Date: Wed, 2 Oct 2019 20:30:22 -0400
Subject: [PATCH 071/302] Adding README for rvm
---
plugins/rvm/README.md | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
create mode 100644 plugins/rvm/README.md
diff --git a/plugins/rvm/README.md b/plugins/rvm/README.md
new file mode 100644
index 000000000..9d6fd8f85
--- /dev/null
+++ b/plugins/rvm/README.md
@@ -0,0 +1,19 @@
+# Ruby Version Manager plugin
+
+This plugin adds some utility functions and completions for [Ruby Version Manager](https://rvm.io/).
+
+To use it, add `rvm` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... rvm)
+```
+
+## Functions
+| Alias | Command |
+|----------------|----------------------|
+| `rb18` | `rvm use ruby-1.8.7` |
+| `rb19` | `rvm use ruby-1.9.3` |
+| `rb20` | `rvm use ruby-2.0.0` |
+| `rb21` | `rvm use ruby-2.1.2` |
+| `rvm-update` | `rvm get head` |
+| `gems` | `gem list` |
From ff23aa0bf9851c477b956c89882fdd04e143042e Mon Sep 17 00:00:00 2001
From: Nicholas Meriano
Date: Thu, 3 Oct 2019 04:51:17 -0700
Subject: [PATCH 072/302] n98-magerun: add README (#8200)
---
plugins/n98-magerun/README.md | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
create mode 100644 plugins/n98-magerun/README.md
diff --git a/plugins/n98-magerun/README.md b/plugins/n98-magerun/README.md
new file mode 100644
index 000000000..b0abe4747
--- /dev/null
+++ b/plugins/n98-magerun/README.md
@@ -0,0 +1,21 @@
+# n98-magerun plugin
+
+The swiss army knife for Magento developers, sysadmins and devops. The tool provides a huge set of well tested command line commands which save hours of work time.
+
+The [n98-magerun plugin](https://github.com/netz98/n98-magerun) provides many
+[useful aliases](#aliases) as well as completion for the `n98-magerun` command.
+
+Enable it by adding `n98-magerun` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... n98-magerun)
+```
+
+## Aliases
+
+| Alias | Command | Description |
+| --------- | -------------------------------------------------- | --------------------------------------------------------------------------------- |
+| n98 | `n98-magerun.phar` | The N98-Magerun phar-file (Version 1) |
+| n98-2 | `n98-magerun2.phar` | The N98-Magerun phar-file (Version 2) |
+| mage-get | `wget https://files.magerun.net/n98-magerun.phar` | Download the latest stable N98-Magerun phar-file from the file-server (Version 1) |
+| mage2-get | `wget https://files.magerun.net/n98-magerun2.phar` | Download the latest stable N98-Magerun phar-file from the file-server (Version 2) |
From c60371a829901cde3322c18c6d35e88ddd9bc1f3 Mon Sep 17 00:00:00 2001
From: Zach Whitten
Date: Thu, 3 Oct 2019 07:52:50 -0400
Subject: [PATCH 073/302] rebar: add README (#8198)
---
plugins/rebar/README.md | 9 +++++++++
1 file changed, 9 insertions(+)
create mode 100644 plugins/rebar/README.md
diff --git a/plugins/rebar/README.md b/plugins/rebar/README.md
new file mode 100644
index 000000000..456ba45c7
--- /dev/null
+++ b/plugins/rebar/README.md
@@ -0,0 +1,9 @@
+# rebar plugin
+
+This plugin adds completions for the [rebar](https://www.rebar3.org/) Erlang build tool.
+
+To use it, add `rebar` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... rebar)
+```
From 3848102a5ec8534cef935d594c6abcbfc0f419c8 Mon Sep 17 00:00:00 2001
From: Shubham Kamath <44347043+shubhaemk@users.noreply.github.com>
Date: Thu, 3 Oct 2019 17:25:08 +0530
Subject: [PATCH 074/302] terminitor: add README (#8197)
---
plugins/terminitor/README.md | 9 +++++++++
1 file changed, 9 insertions(+)
create mode 100644 plugins/terminitor/README.md
diff --git a/plugins/terminitor/README.md b/plugins/terminitor/README.md
new file mode 100644
index 000000000..8c0e02113
--- /dev/null
+++ b/plugins/terminitor/README.md
@@ -0,0 +1,9 @@
+# Terminitor plugin
+
+This plugin adds completions for the [Terminitor](https://github.com/achiurizo/terminitor) development workflow setup tool.
+
+To use it, add `terminitor` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... terminitor)
+```
From 1be840b8319b40c5608d18816031f6b2d6dc6849 Mon Sep 17 00:00:00 2001
From: Erwan ROUSSEL
Date: Sat, 5 Oct 2019 11:05:46 +0200
Subject: [PATCH 075/302] Create README.md
---
plugins/redis-cli/README.md | 14 ++++++++++++++
1 file changed, 14 insertions(+)
create mode 100644 plugins/redis-cli/README.md
diff --git a/plugins/redis-cli/README.md b/plugins/redis-cli/README.md
new file mode 100644
index 000000000..f6e947f4c
--- /dev/null
+++ b/plugins/redis-cli/README.md
@@ -0,0 +1,14 @@
+# Redis-CLI
+
+This plugin adds [redis-cli](https://redis.io/topics/rediscli) completion, based off homebrew completion
+
+To use it, add `redis-cli` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... redis-cli)
+```
+## Requirements
+
+In order to make this work, you will need to have the redis installed.
+
+More info on the usage and install: https://redis.io/topics/quickstart
From e1cb349ffe411b6de2fef696885ec687853d152f Mon Sep 17 00:00:00 2001
From: Erwan ROUSSEL
Date: Sat, 5 Oct 2019 11:14:12 +0200
Subject: [PATCH 076/302] Update README.md
---
plugins/redis-cli/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/redis-cli/README.md b/plugins/redis-cli/README.md
index f6e947f4c..64956df13 100644
--- a/plugins/redis-cli/README.md
+++ b/plugins/redis-cli/README.md
@@ -9,6 +9,6 @@ plugins=(... redis-cli)
```
## Requirements
-In order to make this work, you will need to have the redis installed.
+In order to make this work, you will need to have redis installed.
More info on the usage and install: https://redis.io/topics/quickstart
From 53d987346f4d465c100f3dab234953db48eed7a1 Mon Sep 17 00:00:00 2001
From: Erwan ROUSSEL
Date: Sat, 5 Oct 2019 11:30:21 +0200
Subject: [PATCH 077/302] Create README.md
---
plugins/perl/README.md | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
create mode 100644 plugins/perl/README.md
diff --git a/plugins/perl/README.md b/plugins/perl/README.md
new file mode 100644
index 000000000..f2f4b79ec
--- /dev/null
+++ b/plugins/perl/README.md
@@ -0,0 +1,36 @@
+# Perl
+
+This plugin adds [perl](https://www.perl.org/) useful aliases/functions.
+
+To use it, add `perl` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... perl)
+```
+
+## Aliases
+
+| Aliases | Command | Description |
+| :------------ | :-------------- | :----------------------------------- |
+| pbi | perlbrew install|Install specific perl version |
+| pbl | perlbrew list |List all perl version installed |
+| pbo | perlbrew off |Go back to the system perl |
+| pbs | perlbrew switch |Turn it back on |
+| pbu | perlbrew use |Use specific version of perl |
+| pd | perldoc |Show the perl documentation |
+| ple | perl -wlne |Use perl like awk/sed |
+| latest-perl | curl `...` |Show the latest stable release of Perl|
+
+## Functions
+
+`newpl` - creates a basic Perl script file and opens it with $EDITOR
+
+`pgs` - Perl Global Substitution (find pattern = 1st arg ; replace pattern = 2nd arg ; filename = 3rd arg)
+
+`prep` - Perl grep, because 'grep -P' is terrible. Lets you work with pipes or files. (pattern = 1st arg ; filename = 2nd arg)
+
+## Requirements
+
+In order to make this work, you will need to have perl installed.
+
+More info on the usage and install: https://www.perl.org/get.html
From dd0ade161c0fc47ea4a9e43ce3787170db2f8f60 Mon Sep 17 00:00:00 2001
From: Alex Morozoff
Date: Sun, 6 Oct 2019 15:24:25 -0400
Subject: [PATCH 078/302] Create README.md
Added README for UFW plugin issue: [Good first PR] Add READMEs to undocumented plugins #7175
---
plugins/ufw/README.md | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
create mode 100644 plugins/ufw/README.md
diff --git a/plugins/ufw/README.md b/plugins/ufw/README.md
new file mode 100644
index 000000000..a27487a46
--- /dev/null
+++ b/plugins/ufw/README.md
@@ -0,0 +1,17 @@
+# UFW
+This plugin adds support for managing everybody's favorite Uncomplicated Firewall (UFW). Learn more about [`UFW`](https://wiki.ubuntu.com/UncomplicatedFirewall).
+
+To use it, add ufw to the plugins array of your zshrc file:
+```
+plugins=(... ufw)
+```
+UFW is a simple Ubuntu interface for managing iptables.
+
+Some of the commands include:
+
+* `allow /` add an allow rule
+* `default` set default policy
+* `delete /` delete RULE
+* `deny /` add deny rule
+* `disable` disables the firewall
+* `enable` enables the firewall
From 4b65f439e2c92b7c839dd355f8701d72f3a8ea2b Mon Sep 17 00:00:00 2001
From: Michael C
Date: Sun, 6 Oct 2019 15:33:06 +0200
Subject: [PATCH 079/302] docs: add README.md for Dash plugin
---
plugins/dash/README.md | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
create mode 100644 plugins/dash/README.md
diff --git a/plugins/dash/README.md b/plugins/dash/README.md
new file mode 100644
index 000000000..f69f834f3
--- /dev/null
+++ b/plugins/dash/README.md
@@ -0,0 +1,29 @@
+# Dash plugin
+
+This plugin adds command line functionality for [Dash](https://kapeli.com/dash),
+an API Documentation Browser.
+
+This plugin requires Dash to be installed to work.
+
+To use it, add `dash` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... dash)
+```
+
+Make sure to source your rc file:
+```
+source ~/.zshrc
+```
+
+## Usage
+
+Open and switch to the dash application.
+```
+dash
+```
+
+Query for something in dash app.
+```
+dash golang
+```
From 357336bfb399ac95db21ceed40dc7b18eea6779c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Mon, 7 Oct 2019 17:04:31 +0200
Subject: [PATCH 080/302] Remove redundant section and document keyword args
---
plugins/dash/README.md | 21 ++++++++++-----------
1 file changed, 10 insertions(+), 11 deletions(-)
diff --git a/plugins/dash/README.md b/plugins/dash/README.md
index f69f834f3..0ca3e4e44 100644
--- a/plugins/dash/README.md
+++ b/plugins/dash/README.md
@@ -1,9 +1,8 @@
# Dash plugin
This plugin adds command line functionality for [Dash](https://kapeli.com/dash),
-an API Documentation Browser.
-
-This plugin requires Dash to be installed to work.
+an API Documentation Browser for macOS. This plugin requires Dash to be installed
+to work.
To use it, add `dash` to the plugins array in your zshrc file:
@@ -11,19 +10,19 @@ To use it, add `dash` to the plugins array in your zshrc file:
plugins=(... dash)
```
-Make sure to source your rc file:
-```
-source ~/.zshrc
-```
-
## Usage
-Open and switch to the dash application.
+- Open and switch to the dash application.
```
dash
```
-Query for something in dash app.
+- Query for something in dash app: `dash query`
```
-dash golang
+dash golang
+```
+
+- You can optionally provide a keyword: `dash [keyword:]query`
+```
+dash python:tuple
```
From b45e0f4836d7b2a3b5fe2266d669d878ccd737e7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Mon, 7 Oct 2019 17:08:38 +0200
Subject: [PATCH 081/302] dash: simplify completion logic
---
plugins/dash/dash.plugin.zsh | 52 ++++++++++++++++--------------------
1 file changed, 23 insertions(+), 29 deletions(-)
diff --git a/plugins/dash/dash.plugin.zsh b/plugins/dash/dash.plugin.zsh
index b00d4877e..ace2e33c1 100644
--- a/plugins/dash/dash.plugin.zsh
+++ b/plugins/dash/dash.plugin.zsh
@@ -35,36 +35,30 @@ _dash() {
if [[ "$locator" == "platform" ]]; then
# Since these are the only special cases right now, let's not do the
# expensive processing unless we have to
- if [[ "$keyword" == "python" || "$keyword" == "java" || \
- "$keyword" == "qt" || "$keyword" == "cocs2d" ]]; then
+ if [[ "$keyword" = (python|java|qt|cocos2d) ]]; then
docsetName=`echo $doc | grep -Eo "docsetName = .*?;" | sed -e "s/docsetName = \(.*\);/\1/" -e "s/[\":]//g"`
- if [[ "$keyword" == "python" ]]; then
- if [[ "$docsetName" == "Python 2" ]]; then
- keyword="python2"
- elif [[ "$docsetName" == "Python 3" ]]; then
- keyword="python3"
- fi
- elif [[ "$keyword" == "java" ]]; then
- if [[ "$docsetName" == "Java SE7" ]]; then
- keyword="java7"
- elif [[ "$docsetName" == "Java SE6" ]]; then
- keyword="java6"
- elif [[ "$docsetName" == "Java SE8" ]]; then
- keyword="java8"
- fi
- elif [[ "$keyword" == "qt" ]]; then
- if [[ "$docsetName" == "Qt 5" ]]; then
- keyword="qt5"
- elif [[ "$docsetName" == "Qt 4" ]]; then
- keyword="qt4"
- elif [[ "$docsetName" == "Qt" ]]; then
- keyword="qt4"
- fi
- elif [[ "$keyword" == "cocos2d" ]]; then
- if [[ "$docsetName" == "Cocos3D" ]]; then
- keyword="cocos3d"
- fi
- fi
+ case "$keyword" in
+ python)
+ case "$docsetName" in
+ "Python 2") keyword="python2" ;;
+ "Python 3") keyword="python3" ;;
+ esac ;;
+ java)
+ case "$docsetName" in
+ "Java SE7") keyword="java7" ;;
+ "Java SE6") keyword="java6" ;;
+ "Java SE8") keyword="java8" ;;
+ esac ;;
+ qt)
+ case "$docsetName" in
+ "Qt 5") keyword="qt5" ;;
+ "Qt 4"|Qt) keyword="qt4" ;;
+ esac ;;
+ cocos2d)
+ case "$docsetName" in
+ Cocos3D) keyword="cocos3d" ;;
+ esac ;;
+ esac
fi
fi
From 456814d8a61c644e59fdea8914e8dc7d2ba3dbf4 Mon Sep 17 00:00:00 2001
From: Aditya J Karia
Date: Mon, 7 Oct 2019 20:53:00 +0530
Subject: [PATCH 082/302] mysql-macports: add README (#8210)
---
plugins/mysql-macports/README.md | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
create mode 100644 plugins/mysql-macports/README.md
diff --git a/plugins/mysql-macports/README.md b/plugins/mysql-macports/README.md
new file mode 100644
index 000000000..a4224d9c0
--- /dev/null
+++ b/plugins/mysql-macports/README.md
@@ -0,0 +1,20 @@
+# MySQL-Macports plugin
+
+This plugin adds aliases for some of the commonly used [MySQL](https://www.mysql.com/) commands when installed using [MacPorts](https://www.macports.org/) on macOS.
+
+To use it, add `mysql-macports` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... mysql-macports)
+```
+
+For instructions on how to install MySQL using MacPorts, read the [MacPorts wiki](https://trac.macports.org/wiki/howto/MySQL/).
+
+## Aliases
+
+| Alias | Command | Description |
+| ------------ | --------------------------------------------------------- | ------------------------------------------ |
+| mysqlstart | `sudo /opt/local/share/mysql5/mysql/mysql.server start` | Start the MySQL server. |
+| mysqlstop | `sudo /opt/local/share/mysql5/mysql/mysql.server stop` | Stop the MySQL server. |
+| mysqlrestart | `sudo /opt/local/share/mysql5/mysql/mysql.server restart` | Restart the MySQL server. |
+| mysqlstatus | `mysqladmin5 -u root -p ping` | Check whether the MySQL server is running. |
From a9d382a297560647be79070349ac34a66101b9c8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Mon, 7 Oct 2019 17:25:44 +0200
Subject: [PATCH 083/302] Small changes
---
plugins/redis-cli/README.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/plugins/redis-cli/README.md b/plugins/redis-cli/README.md
index 64956df13..bb6e94a0f 100644
--- a/plugins/redis-cli/README.md
+++ b/plugins/redis-cli/README.md
@@ -1,12 +1,13 @@
# Redis-CLI
-This plugin adds [redis-cli](https://redis.io/topics/rediscli) completion, based off homebrew completion
+This plugin adds [redis-cli](https://redis.io/topics/rediscli) completion, based off of Homebrew completion.
To use it, add `redis-cli` to the plugins array in your zshrc file:
```zsh
plugins=(... redis-cli)
```
+
## Requirements
In order to make this work, you will need to have redis installed.
From 896dd271c8cadce8b8a618225cb4e79b9bca50f7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Mon, 7 Oct 2019 17:40:51 +0200
Subject: [PATCH 084/302] Some syntax changes and more function docs
---
plugins/perl/README.md | 29 +++++++++++++++--------------
1 file changed, 15 insertions(+), 14 deletions(-)
diff --git a/plugins/perl/README.md b/plugins/perl/README.md
index f2f4b79ec..dd9b7dc75 100644
--- a/plugins/perl/README.md
+++ b/plugins/perl/README.md
@@ -10,27 +10,28 @@ plugins=(... perl)
## Aliases
-| Aliases | Command | Description |
-| :------------ | :-------------- | :----------------------------------- |
-| pbi | perlbrew install|Install specific perl version |
-| pbl | perlbrew list |List all perl version installed |
-| pbo | perlbrew off |Go back to the system perl |
-| pbs | perlbrew switch |Turn it back on |
-| pbu | perlbrew use |Use specific version of perl |
-| pd | perldoc |Show the perl documentation |
-| ple | perl -wlne |Use perl like awk/sed |
-| latest-perl | curl `...` |Show the latest stable release of Perl|
+| Aliases | Command | Description |
+| :------------ | :----------------- | :------------------------------------- |
+| pbi | `perlbrew install` | Install specific perl version |
+| pbl | `perlbrew list` | List all perl version installed |
+| pbo | `perlbrew off` | Go back to the system perl |
+| pbs | `perlbrew switch` | Turn it back on |
+| pbu | `perlbrew use` | Use specific version of perl |
+| pd | `perldoc` | Show the perl documentation |
+| ple | `perl -wlne` | Use perl like awk/sed |
+| latest-perl | `curl ...` | Show the latest stable release of Perl |
## Functions
-`newpl` - creates a basic Perl script file and opens it with $EDITOR
+* `newpl`: creates a basic Perl script file and opens it with $EDITOR.
-`pgs` - Perl Global Substitution (find pattern = 1st arg ; replace pattern = 2nd arg ; filename = 3rd arg)
+* `pgs`: Perl Global Substitution: `pgs `
+ Looks for `` and replaces it with `` in ``.
-`prep` - Perl grep, because 'grep -P' is terrible. Lets you work with pipes or files. (pattern = 1st arg ; filename = 2nd arg)
+* `prep`: Perl grep, because 'grep -P' is terrible: `prep []`
+ Lets you work with pipes or files (if no `` provided, use stdin).
## Requirements
In order to make this work, you will need to have perl installed.
-
More info on the usage and install: https://www.perl.org/get.html
From d5e7040ebdfc9d9525b964c35ef1e704da632be2 Mon Sep 17 00:00:00 2001
From: Joe Rattazzi
Date: Mon, 7 Oct 2019 10:53:18 -0500
Subject: [PATCH 085/302] pyenv: add README (#8224)
---
plugins/pyenv/README.md | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
create mode 100644 plugins/pyenv/README.md
diff --git a/plugins/pyenv/README.md b/plugins/pyenv/README.md
new file mode 100644
index 000000000..d063b55b9
--- /dev/null
+++ b/plugins/pyenv/README.md
@@ -0,0 +1,16 @@
+# pyenv
+
+This plugin looks for [pyenv](https://github.com/pyenv/pyenv), a Simple Python version
+management system, and loads it if it's found. It also loads pyenv-virtualenv, a pyenv
+plugin to manage virtualenv, if it's found.
+
+To use it, add `pyenv` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... pyenv)
+```
+
+## Functions
+
+- `pyenv_prompt_info`: displays the Python version in use by pyenv; or the global Python
+ version, if pyenv wasn't found.
From 5f066dabc89b66479b36b5837ed11dc3c36a1d55 Mon Sep 17 00:00:00 2001
From: Denis Titusov
Date: Mon, 7 Oct 2019 19:01:08 +0300
Subject: [PATCH 086/302] Add README for pow and powify plugins (#8225)
---
plugins/pow/README.md | 21 +++++++++++++++++++++
plugins/powify/README.md | 10 ++++++++++
2 files changed, 31 insertions(+)
create mode 100644 plugins/pow/README.md
create mode 100644 plugins/powify/README.md
diff --git a/plugins/pow/README.md b/plugins/pow/README.md
new file mode 100644
index 000000000..1f8a9d136
--- /dev/null
+++ b/plugins/pow/README.md
@@ -0,0 +1,21 @@
+# pow plugin
+
+This plugin adds completion and commands for [pow](http://pow.cx/), a
+zero-configuration Rack server for macOS.
+
+To use it, add pow to the plugins array of your zshrc file:
+
+```sh
+plugins=(... pow)
+```
+
+## Commands
+
+- `kapow` will restart an app.
+
+ ```bash
+ kapow myapp
+ ```
+
+- `kaput` will show the standard output from any pow app.
+- `repow` will restart the pow process.
diff --git a/plugins/powify/README.md b/plugins/powify/README.md
new file mode 100644
index 000000000..fd58b860e
--- /dev/null
+++ b/plugins/powify/README.md
@@ -0,0 +1,10 @@
+# powify plugin
+
+This plugin adds autocompletion for [powify](https://github.com/sethvargo/powify),
+an easy-to-use wrapper for Basecamp's [pow](https://github.com/basecamp/pow).
+
+To use it, add powify to the plugins array of your zshrc file:
+
+```sh
+plugins=(... powify)
+```
From 5efe52d991ab1f2596c3aa7766c981412c621fd7 Mon Sep 17 00:00:00 2001
From: Michael C
Date: Mon, 7 Oct 2019 18:04:49 +0200
Subject: [PATCH 087/302] virtualenvwrapper: add README (#8226)
---
plugins/virtualenvwrapper/README.md | 38 +++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
create mode 100644 plugins/virtualenvwrapper/README.md
diff --git a/plugins/virtualenvwrapper/README.md b/plugins/virtualenvwrapper/README.md
new file mode 100644
index 000000000..63eb58541
--- /dev/null
+++ b/plugins/virtualenvwrapper/README.md
@@ -0,0 +1,38 @@
+# Virtualenvwrapper plugin
+
+This plugin loads Python's [virtualenvwrapper](https://virtualenvwrapper.readthedocs.io/en/latest/) shell tools.
+
+To use it, add `virtualenvwrapper` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... virtualenvwrapper)
+```
+
+## Usage
+
+The plugin allows to automatically activate virtualenvs on cd into git repositories with a matching name:
+
+```
+➜ github $ cd ansible
+(ansible) ➜ ansible git:(devel) $ cd docs
+(ansible) ➜ docs git:(devel) $ cd ..
+(ansible) ➜ ansible git:(devel) $ cd ..
+➜ github $
+```
+
+We can override this by having a `.venv` file in the directory containing a differently named virtualenv:
+
+```
+➜ github $ cat ansible/.venv
+myvirtualenv
+➜ github $ cd ansible
+(myvirtualenv) ➜ ansible git:(devel) $ cd ..
+➜ github $
+```
+
+We can disable this behaviour by setting `DISABLE_VENV_CD=1` before Oh My Zsh is sourced:
+```zsh
+DISABLE_VENV_CD=1
+plugins=(... virtualenvwrapper)
+source $ZSH/oh-my-zsh.sh
+```
From a3b63aa6ab948c1be278fbea6046cf09f69d3c42 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Mon, 7 Oct 2019 18:08:14 +0200
Subject: [PATCH 088/302] Reword
---
plugins/ufw/README.md | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/plugins/ufw/README.md b/plugins/ufw/README.md
index a27487a46..ac377cd17 100644
--- a/plugins/ufw/README.md
+++ b/plugins/ufw/README.md
@@ -1,11 +1,12 @@
-# UFW
-This plugin adds support for managing everybody's favorite Uncomplicated Firewall (UFW). Learn more about [`UFW`](https://wiki.ubuntu.com/UncomplicatedFirewall).
+# UFW plugin
+
+This plugin adds completion for managing everybody's favorite Uncomplicated Firewall (UFW),
+a simple interface for managing iptables. Learn more about [`UFW`](https://wiki.ubuntu.com/UncomplicatedFirewall).
To use it, add ufw to the plugins array of your zshrc file:
```
plugins=(... ufw)
```
-UFW is a simple Ubuntu interface for managing iptables.
Some of the commands include:
From fdebc2272e8789e9120ab9b195754e423990b317 Mon Sep 17 00:00:00 2001
From: Griffin J Rademacher
Date: Mon, 7 Oct 2019 12:37:42 -0400
Subject: [PATCH 089/302] Add READMEs for tugboat and colemak plugins (#8207)
---
plugins/colemak/README.md | 48 +++++++++++++++++++++++++++++++++++++++
plugins/tugboat/README.md | 12 ++++++++++
2 files changed, 60 insertions(+)
create mode 100644 plugins/colemak/README.md
create mode 100644 plugins/tugboat/README.md
diff --git a/plugins/colemak/README.md b/plugins/colemak/README.md
new file mode 100644
index 000000000..4da4bc126
--- /dev/null
+++ b/plugins/colemak/README.md
@@ -0,0 +1,48 @@
+# Colemak plugin
+
+This plugin remaps keys in `zsh`'s [`vi`-style navigation mode](http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Keymaps)
+for a [Colemak](https://colemak.com/) keyboard layout, to match the QWERTY position:
+
+![Colemak layout on a US keyboard](https://colemak.com/wiki/images/6/6c/Colemak2.png)
+
+To use it, add it to the plugins array in your `~/.zshrc` file:
+
+```
+plugins=(... colemak)
+```
+
+You will also need to enable `vi` mode, so add another line to `~/.zshrc`:
+```
+bindkey -v
+```
+
+Restart your shell and hit the `` key to activate `vicmd` (navigation) mode,
+and start navigating `zsh` with your new keybindings!
+
+## Key bindings for vicmd
+
+| Old | New | Binding | Description |
+|------------|------------|---------------------------|----------------------------------------------------|
+| `CTRL`+`j` | `CTRL`+`n` | accept-line | Insert new line |
+| `j` | `n` | down-line-or-history | Move one line down or command history forwards |
+| `k` | `e` | up-line-or-history | Move one line up or command history backwards |
+| `l` | `i` | vi-forward-char | Move one character to the right |
+| `n` | `k` | vi-repeat-search | Repeat command search forwards |
+| `N` | `K` | vi-rev-repeat-search | Repeat command search backwards |
+| `i` | `u` | vi-insert | Enter insert mode |
+| `I` | `U` | vi-insert-bol | Move to first non-blank char and enter insert mode |
+| `` | `l` | vi-undo-change | Undo change |
+| `J` | `N` | vi-join | Join the current line with the next one |
+| `e` | `j` | vi-forward-word-end | Move to the end of the next word |
+| `E` | `J` | vi-forward-blank-word-end | Move to end of the current or next word |
+
+## Key bindings for less
+
+| Keyboard shortcut | `less` key binding |
+|-------------------|--------------------|
+| `n` | forw-line |
+| `e` | back-line |
+| `k` | repeat-search |
+| `ESC`+`k` | repeat-search-all |
+| `K` | reverse-search |
+| `ESC`+`K` | reverse-search-all |
diff --git a/plugins/tugboat/README.md b/plugins/tugboat/README.md
new file mode 100644
index 000000000..14f828f85
--- /dev/null
+++ b/plugins/tugboat/README.md
@@ -0,0 +1,12 @@
+# Tugboat plugin
+
+This plugin adds autocompletion for Tugboat, a command line tool for interacting with your
+[DigitalOcean droplets](https://www.digitalocean.com/products/droplets/).
+
+To use it, add it to the plugins array in your `~/.zshrc` file:
+
+```zsh
+plugins=(... tugboat)
+```
+
+Further documentation for Tugboat can be found in the [Tugboat repository](https://github.com/petems/tugboat).
From 7e842cddc45b8bdebe1b198e83eb96fd07b37787 Mon Sep 17 00:00:00 2001
From: Austin Ratcliff
Date: Mon, 7 Oct 2019 11:50:01 -0500
Subject: [PATCH 090/302] cloudapp: add README (#8229)
---
plugins/cloudapp/README.md | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
create mode 100644 plugins/cloudapp/README.md
diff --git a/plugins/cloudapp/README.md b/plugins/cloudapp/README.md
new file mode 100644
index 000000000..62975a631
--- /dev/null
+++ b/plugins/cloudapp/README.md
@@ -0,0 +1,24 @@
+# CloudApp plugin
+
+[CloudApp](https://www.getcloudapp.com) brings screen recording, screenshots, and GIF creation to the cloud, in an easy-to-use enterprise-level app. The CloudApp plugin allows you to upload a file to your CloadApp account from the command line.
+
+To use it, add `cloudapp` to the plugins array of your `~/.zshrc` file:
+
+```
+plugins=(... dash)
+```
+
+## Requirements
+
+1. [Aaron Russell's `cloudapp_api` gem](https://github.com/aaronrussell/cloudapp_api#installation)
+
+2. That you set your CloudApp credentials in `~/.cloudapp` as a simple text file like below:
+ ```
+ email
+ password
+ ```
+
+## Usage
+
+- `cloudapp `: uploads `` to your CloudApp account, and if you're using
+ macOS, copies the URL to your clipboard.
From 82bd8828eb243199fccea87f5489a21a5be9c89c Mon Sep 17 00:00:00 2001
From: Chaitanya Raj
Date: Tue, 8 Oct 2019 14:01:57 +0530
Subject: [PATCH 091/302] Create README.md for compleat plugin
---
plugins/compleat/README.md | 9 +++++++++
1 file changed, 9 insertions(+)
create mode 100644 plugins/compleat/README.md
diff --git a/plugins/compleat/README.md b/plugins/compleat/README.md
new file mode 100644
index 000000000..1d7f0492d
--- /dev/null
+++ b/plugins/compleat/README.md
@@ -0,0 +1,9 @@
+# compleat
+
+This plugin runs [bashcompinit](https://github.com/zsh-users/zsh/blob/master/Completion/bashcompinit) which will allow zsh to read bash completion specifications and functions.
+
+To use it add compleat to the plugins array in your zshrc file.
+
+ ```
+plugins=(... compleat)
+```
\ No newline at end of file
From c714d3fcedd2e729350b5f69f4a9312b9fc68a43 Mon Sep 17 00:00:00 2001
From: Qinfeng Chen
Date: Tue, 8 Oct 2019 09:48:08 -0400
Subject: [PATCH 092/302] gradle: support gdub completion (#6135)
---
plugins/gradle/gradle.plugin.zsh | 1 +
1 file changed, 1 insertion(+)
diff --git a/plugins/gradle/gradle.plugin.zsh b/plugins/gradle/gradle.plugin.zsh
index 8d578e27b..6be583179 100644
--- a/plugins/gradle/gradle.plugin.zsh
+++ b/plugins/gradle/gradle.plugin.zsh
@@ -181,3 +181,4 @@ _gradlew_tasks () {
############################################################################
compdef _gradle_tasks gradle
compdef _gradlew_tasks gradlew
+compdef _gradlew_tasks gw
From b09aed9cc7e2099f3e7f2aa2632660bc510f3e35 Mon Sep 17 00:00:00 2001
From: 14nrv <34603467+14nrv@users.noreply.github.com>
Date: Tue, 8 Oct 2019 20:38:25 +0200
Subject: [PATCH 093/302] yarn: add ytc alias for test with coverage (#7664)
---
plugins/yarn/README.md | 1 +
plugins/yarn/yarn.plugin.zsh | 1 +
2 files changed, 2 insertions(+)
diff --git a/plugins/yarn/README.md b/plugins/yarn/README.md
index 439a9355f..a94f183e4 100644
--- a/plugins/yarn/README.md
+++ b/plugins/yarn/README.md
@@ -35,6 +35,7 @@ plugins=(... yarn)
| ys | `yarn serve` | Start the dev server |
| yst | `yarn start` | Run the start script defined in `package.json` |
| yt | `yarn test` | Run the test script defined in `package.json` |
+| ytc | `yarn test --coverage` | Run the test script defined in `package.json` with coverage |
| yuc | `yarn global upgrade && yarn cache clean` | Upgrade global packages and clean yarn's global cache |
| yui | `yarn upgrade-interactive` | Prompt for which outdated packages to upgrade |
| yup | `yarn upgrade` | Upgrade packages to their latest version |
diff --git a/plugins/yarn/yarn.plugin.zsh b/plugins/yarn/yarn.plugin.zsh
index 6dc4786de..e7b6ce0d1 100644
--- a/plugins/yarn/yarn.plugin.zsh
+++ b/plugins/yarn/yarn.plugin.zsh
@@ -20,6 +20,7 @@ alias yrun="yarn run"
alias ys="yarn serve"
alias yst="yarn start"
alias yt="yarn test"
+alias ytc="yarn test --coverage"
alias yuc="yarn global upgrade && yarn cache clean"
alias yui="yarn upgrade-interactive"
alias yup="yarn upgrade"
From 7d410549cdeb838c45db4225a3b7d63e7098866d Mon Sep 17 00:00:00 2001
From: Karolis Mazukna
Date: Tue, 8 Oct 2019 22:42:18 +0100
Subject: [PATCH 094/302] Adds chruby plugib README.md
---
plugins/chruby/README.md | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
create mode 100644 plugins/chruby/README.md
diff --git a/plugins/chruby/README.md b/plugins/chruby/README.md
new file mode 100644
index 000000000..c5e4b9332
--- /dev/null
+++ b/plugins/chruby/README.md
@@ -0,0 +1,19 @@
+# chruby plugin
+
+This plugin loads the [chruby](https://github.com/postmodern/chruby). Supports brew and manual installation of chruby.
+
+To use it, add `chruby` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... chruby)
+```
+
+## Usage
+
+If you'd prefer to specify an explicit path to load chruby from
+you can set variables like so:
+
+```
+zstyle :omz:plugins:chruby path /local/path/to/chruby.sh
+zstyle :omz:plugins:chruby auto /local/path/to/auto.sh
+```
From c9841f43b1a95c6cc5fcca8422b47f8df511ecf6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Wed, 9 Oct 2019 15:11:34 +0200
Subject: [PATCH 095/302] yarn: use zsh-completions latest version (87e1313)
Closes #7300
Closes #8115
Closes #8118
---
plugins/yarn/_yarn | 32 +++++++++++++++++++++++++++-----
1 file changed, 27 insertions(+), 5 deletions(-)
diff --git a/plugins/yarn/_yarn b/plugins/yarn/_yarn
index 382f58a0a..3689ae960 100644
--- a/plugins/yarn/_yarn
+++ b/plugins/yarn/_yarn
@@ -71,7 +71,7 @@ _global_commands=(
'bin:Displays the location of the yarn bin folder'
'remove:Remove installed package from dependencies updating package.json'
'upgrade:Upgrades packages to their latest version based on the specified range'
- 'upgrade-interactive'
+ 'upgrade-interactive:Interactively upgrade packages'
)
_yarn_commands_scripts() {
@@ -81,9 +81,21 @@ _yarn_commands_scripts() {
}
_yarn_scripts() {
- local -a scripts
- scripts=($(yarn run --json 2>/dev/null | sed -E '/Commands available|possibleCommands/!d;s/.*Commands available from binary scripts: ([^"]+)".*/\1/;s/.*"items":\[([^]]+).*/\1/;s/[" ]//g' | tr , '\n' | sed -e 's/:/\\:/g'))
- _describe 'script' scripts
+ local -a commands binaries scripts
+ local -a scriptNames scriptCommands
+ local i runJSON
+
+ runJSON=$(yarn run --json 2>/dev/null)
+ binaries=($(sed -E '/Commands available/!d;s/.*Commands available from binary scripts: ([^"]+)".*/\1/;s/.*"items":\[([^]]+).*/\1/;s/[" ]//g;s/:/\\:/g;s/,/\n/g' <<< "$runJSON"))
+ scriptNames=($(sed -E '/possibleCommands/!d;s/.*"items":\[([^]]+).*/\1/;s/[" ]//g;s/:/\\:/g;s/,/\n/g' <<< "$runJSON"))
+ scriptCommands=("${(@f)$(sed -E '/possibleCommands/!d;s/.*"hints":\{([^}]+)\}.*/\1/;s/"[^"]+"://g;s/:/\\:/g;s/","/\n/g;s/(^"|"$)//g' <<< "$runJSON")}")
+
+ for (( i=1; i <= $#scriptNames; i++ )); do
+ scripts+=("${scriptNames[$i]}:${scriptCommands[$i]}")
+ done
+
+ commands=($scripts $binaries)
+ _describe 'command' commands
}
_yarn_global_commands() {
@@ -240,7 +252,8 @@ _yarn() {
run)
_arguments \
- '1: :_yarn_scripts'
+ '1: :_yarn_scripts' \
+ '*:: :_default'
;;
tag)
@@ -255,6 +268,11 @@ _yarn() {
'*:: :->team_args'
;;
+ upgrade-interactive)
+ _arguments \
+ '--latest:use the version tagged latest in the registry:'
+ ;;
+
version)
_arguments \
'--new-version:version:' \
@@ -266,6 +284,10 @@ _yarn() {
_arguments \
'1:query:_files'
;;
+
+ *)
+ _default
+ ;;
esac
;;
esac
From 79b2944a8ae19fc9d065d3b92c916345feb65fa4 Mon Sep 17 00:00:00 2001
From: Frani
Date: Wed, 9 Oct 2019 10:17:05 -0300
Subject: [PATCH 096/302] yarn: add yarn version alias (#8138)
---
plugins/yarn/README.md | 1 +
plugins/yarn/yarn.plugin.zsh | 1 +
2 files changed, 2 insertions(+)
diff --git a/plugins/yarn/README.md b/plugins/yarn/README.md
index a94f183e4..e6daae44f 100644
--- a/plugins/yarn/README.md
+++ b/plugins/yarn/README.md
@@ -39,5 +39,6 @@ plugins=(... yarn)
| yuc | `yarn global upgrade && yarn cache clean` | Upgrade global packages and clean yarn's global cache |
| yui | `yarn upgrade-interactive` | Prompt for which outdated packages to upgrade |
| yup | `yarn upgrade` | Upgrade packages to their latest version |
+| yv | `yarn version` | Update the version of your package |
| yw | `yarn workspace` | Run a command within a single workspace. |
| yws | `yarn workspaces` | Run a command within all defined workspaces. |
diff --git a/plugins/yarn/yarn.plugin.zsh b/plugins/yarn/yarn.plugin.zsh
index e7b6ce0d1..18c5dcc89 100644
--- a/plugins/yarn/yarn.plugin.zsh
+++ b/plugins/yarn/yarn.plugin.zsh
@@ -24,5 +24,6 @@ alias ytc="yarn test --coverage"
alias yuc="yarn global upgrade && yarn cache clean"
alias yui="yarn upgrade-interactive"
alias yup="yarn upgrade"
+alias yv="yarn version"
alias yw="yarn workspace"
alias yws="yarn workspaces"
From f5614d2b3a844305b363b50e6857ca064fdbbc84 Mon Sep 17 00:00:00 2001
From: otherpaco <27810032+otherpaco@users.noreply.github.com>
Date: Wed, 9 Oct 2019 15:55:35 +0200
Subject: [PATCH 097/302] terminalapp: delete plugin deprecated since 2015
(#8230)
---
plugins/terminalapp/terminalapp.plugin.zsh | 6 ------
1 file changed, 6 deletions(-)
delete mode 100644 plugins/terminalapp/terminalapp.plugin.zsh
diff --git a/plugins/terminalapp/terminalapp.plugin.zsh b/plugins/terminalapp/terminalapp.plugin.zsh
deleted file mode 100644
index 7c0c278b9..000000000
--- a/plugins/terminalapp/terminalapp.plugin.zsh
+++ /dev/null
@@ -1,6 +0,0 @@
-# This file is intentionally empty.
-#
-# The terminalapp plugin is deprecated and may be removed in a future release.
-# Its functionality has been folded in to the core lib/termsupport.zsh, which
-# is loaded for all users. You can remove terminalapp from your $plugins list
-# once all your systems are updated to the current version of Oh My Zsh.
From 8bb9b044699f5c96830c7fe2bb78de19854d4973 Mon Sep 17 00:00:00 2001
From: otherpaco <27810032+otherpaco@users.noreply.github.com>
Date: Wed, 9 Oct 2019 16:58:58 +0200
Subject: [PATCH 098/302] singlechar: add README (#8232)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Co-authored-by: Marc Cornellà
---
plugins/singlechar/README.md | 118 +++++++++++++++++++++++
plugins/singlechar/singlechar.plugin.zsh | 12 +--
2 files changed, 119 insertions(+), 11 deletions(-)
create mode 100644 plugins/singlechar/README.md
diff --git a/plugins/singlechar/README.md b/plugins/singlechar/README.md
new file mode 100644
index 000000000..d89029900
--- /dev/null
+++ b/plugins/singlechar/README.md
@@ -0,0 +1,118 @@
+# Singlechar plugin
+
+This plugin adds single char shortcuts (and combinations) for some commands.
+
+To use it, add `singlechar` to the plugins array of your zshrc file:
+```
+plugins=(... singlechar)
+```
+
+## Aliases
+
+### CAT, GREP, CURL, WGET
+
+| Alias | Command | Description |
+|-------|------------------|-------------|
+| y | `grep -Ri` | Find case-insensitive string in all files and directories, recursively. Follows symlinks. |
+| n | `grep -Rvi` | Same as above but only show lines that don't match the string. |
+| f | `grep -Rli` | Same as 'y' but only print the filenames where the string is found. |
+| fn | `grep -Rlvi` | Same as above but only show files that don't contain the string. |
+| f. | `find . \| grep` | Grep list of files in current directory |
+| f: | `find` | 'find' command |
+| p | `less` | 'less' command |
+| m | `man` | 'man' command |
+| d | `wget` | 'wget' command |
+| u | `curl` | 'curl' command |
+| c | `cat` | 'cat' command |
+| w | `echo >` | Write arguments to file, overwriting it if it exists. |
+| a | `echo >>` | Write arguments to file, appending them if the file exists. |
+| w: | `cat >` | Write stdin to file, overwriting if it exists. |
+| a: | `cat >>` | Write stdin to file, appending it if the file exists. |
+
+### XARGS
+
+These aliases are versions of the aliases above but using xargs. This can be used
+by piping the arguments to the xargs aliases.
+
+| Alias | Command | Description |
+|-------|----------------------|---------------------------------|
+| x | `xargs` | 'xargs' command |
+| xy | `xargs grep -Ri` | Same as 'y' alias using xargs. |
+| xn | `xargs grep -Rvi` | Same as 'n' alias using xargs. |
+| xf | `xargs grep -Rli` | Same as 'f' alias using xargs. |
+| xfn | `xargs grep -Rlvi` | Same as 'fn' alias using xargs. |
+| xf. | `xargs find \| grep` | Same as 'f.' alias using xargs. |
+| xf: | `xargs find` | Same as 'f:' alias using xargs. |
+| xc | `xargs cat` | Same as 'c' alias using xargs. |
+| xp | `xargs less` | Same as 'p' alias using xargs. |
+| xm | `xargs man` | Same as 'm' alias using xargs. |
+| xd | `xargs wget` | Same as 'd' alias using xargs. |
+| xu | `xargs curl` | Same as 'u' alias using xargs. |
+| xw | `xargs echo >` | Same as 'w' alias using xargs. |
+| xa | `xargs echo >>` | Same as 'a' alias using xargs. |
+| xw: | `xargs cat >` | Same as 'w:' alias using xargs. |
+| xa: | `xargs >>` | Same as 'a:' alias using xargs. |
+
+### SUDO
+
+These aliases are versions of the aliases above in [CAT, GREP, CURL, WGET](#cat-grep-curl-wget)
+but using sudo to run them with root permission.
+
+| Alias | Command | Description |
+|-------|-----------------------|--------------------------------|
+| s | `sudo` | 'sudo' command |
+| sy | `sudo grep -Ri` | Same as 'y' alias using sudo. |
+| sn | `sudo grep -Riv` | Same as 'n' alias using sudo. |
+| sf | `sudo grep -Rli` | Same as 'f' alias using sudo. |
+| sfn | `sudo grep -Rlvi` | Same as 'fn' alias using sudo. |
+| sf. | `sudo find . \| grep` | Same as 'f.' alias using sudo. |
+| sf: | `sudo find` | Same as 'f:' alias using sudo. |
+| sp | `sudo less` | Same as 'p' alias using sudo. |
+| sm | `sudo man` | Same as 'm' alias using sudo. |
+| sd | `sudo wget` | Same as 'd' alias using sudo. |
+| sc | `sudo cat` | Same as 'c' alias using sudo. |
+| sw | `sudo echo >` | Same as 'w' alias using sudo. |
+| sa | `sudo echo >>` | Same as 'a' alias using sudo. |
+| sw: | `sudo cat >` | Same as 'w:' alias using sudo. |
+| sa: | `sudo cat >>` | Same as 'a:' alias using sudo. |
+
+### SUDO-XARGS
+
+Same as above but using both sudo and xargs.
+
+| Alias | Command | Description |
+|-------|---------------------------|---------------------------------|
+| sx | `sudo xargs` | 'sudo xargs' command |
+| sxy | `sudo xargs grep -Ri` | Same as 'xy' alias using sudo. |
+| sxn | `sudo xargs grep -Riv` | Same as 'xn' alias using sudo. |
+| sxf | `sudo xargs grep -li` | Same as 'xf' alias using sudo. |
+| sxfn | `sudo xargs grep -lvi` | Same as 'xfn' alias using sudo. |
+| sxf. | `sudo xargs find \| grep` | Same as 'xf.' alias using sudo. |
+| sxf: | `sudo xargs find` | Same as 'xf:' alias using sudo. |
+| sxp | `sudo xargs less` | Same as 'xp' alias using sudo. |
+| sxm | `sudo xargs man` | Same as 'xm' alias using sudo. |
+| sxd | `sudo xargs wget` | Same as 'xd' alias using sudo. |
+| sxu | `sudo xargs curl` | Same as 'xu' alias using sudo. |
+| sxc | `sudo xargs cat` | Same as 'xc' alias using sudo. |
+| sxw | `sudo xargs echo >` | Same as 'xw' alias using sudo. |
+| sxa | `sudo xargs echo >>` | Same as 'xa' alias using sudo. |
+| sxw: | `sudo xargs cat >` | Same as 'xw:' alias using sudo. |
+| sxa: | `sudo xargs cat >>` | Same as 'xa:' alias using sudo. |
+
+## Options
+
+The commands `grep`, `sudo`, `wget`, `curl`, and `less` can be configured to use other commands
+via the setup variables below, before Oh My Zsh is sourced. If they are not set yet, they will
+use their default values:
+
+| Setup variable | Default value |
+|----------------|---------------|
+| GREP | `grep` |
+| ROOT | `sudo` |
+| WGET | `wget` |
+| CURL | `curl` |
+| PAGER | `less` |
+
+## Author
+
+- [Karolin Varner](https://github.com/koraa)
diff --git a/plugins/singlechar/singlechar.plugin.zsh b/plugins/singlechar/singlechar.plugin.zsh
index 44bd998aa..d4b0b6735 100644
--- a/plugins/singlechar/singlechar.plugin.zsh
+++ b/plugins/singlechar/singlechar.plugin.zsh
@@ -1,13 +1,3 @@
-################################################################################
-# FILE: singlechar.plugin.zsh
-# DESCRIPTION: oh-my-zsh plugin file.
-# AUTHOR: Michael Varner (musikmichael@web.de)
-# VERSION: 1.0.0
-#
-# This plugin adds single char shortcuts (and combinations) for some commands.
-#
-################################################################################
-
###########################
# Settings
@@ -130,4 +120,4 @@ alias sxd='"$ROOT" xargs "$WGET"'
alias sxu='"$ROOT" xargs "$CURL"'
alias sxw:='"$ROOT" xargs cat >'
-alias sxa:='"$ROOT" xargs cat >>'
\ No newline at end of file
+alias sxa:='"$ROOT" xargs cat >>'
From abc05fa422a183e974df9faefc61a8512abe1db9 Mon Sep 17 00:00:00 2001
From: Noah Nichols
Date: Wed, 9 Oct 2019 11:51:47 -0400
Subject: [PATCH 099/302] sprunge: add README and refactor (#8239)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Co-authored-by: Marc Cornellà
---
plugins/sprunge/README.md | 31 ++++++++++++
plugins/sprunge/sprunge.plugin.zsh | 76 ++++++++++++++----------------
2 files changed, 66 insertions(+), 41 deletions(-)
create mode 100644 plugins/sprunge/README.md
diff --git a/plugins/sprunge/README.md b/plugins/sprunge/README.md
new file mode 100644
index 000000000..2a363d3bd
--- /dev/null
+++ b/plugins/sprunge/README.md
@@ -0,0 +1,31 @@
+# Sprunge plugin
+
+This plugin uploads data and fetch URL from the pastebin http://sprunge.us
+
+To enable it, add 'sprunge' to your plugins:
+```
+plugins=(... sprunge)
+```
+
+## Usage
+
+| Command | Description |
+|------------------------------|-------------------------------------------|
+| `sprunge filename.txt` | Uploads filename.txt |
+| `sprunge "this is a string"` | Uploads plain text |
+| `sprunge < filename.txt` | Redirects filename.txt content to sprunge |
+| `echo data \| sprunge` | Any piped data will be uploaded |
+
+Once sprunge has processed the input it will give you a unique HTTP address:
+```
+$ sprunge "hello"
+http://sprunge.us/XxjnKz
+```
+
+## Notes
+
+- Sprunge accepts piped data, stdin redirection, text strings as input or filenames.
+ Only one of these can be used at a time.
+- Argument precedence goes as follows: stdin > piped input > text strings.
+- If a filename is mispelled or doesn't have the necessary path description, it will NOT
+ generate an error, but instead treat it as a text string.
diff --git a/plugins/sprunge/sprunge.plugin.zsh b/plugins/sprunge/sprunge.plugin.zsh
index e1c89b729..5d5687a82 100644
--- a/plugins/sprunge/sprunge.plugin.zsh
+++ b/plugins/sprunge/sprunge.plugin.zsh
@@ -2,12 +2,9 @@
# Created by the blogger at the URL below...I don't know where to find his/her name
# Original found at https://www.shellperson.net/sprunge-pastebin-script/
-usage() {
-description | fmt -s >&2
-}
-
-description() {
-cat << HERE
+sprunge() {
+ if [[ "$1" = --help ]]; then
+ fmt -s >&2 << EOF
DESCRIPTION
Upload data and fetch URL from the pastebin http://sprunge.us
@@ -19,44 +16,41 @@ USAGE
piped_data | $0
NOTES
---------------------------------------------------------------------------
-* INPUT METHODS *
-$0 can accept piped data, STDIN redirection [&2
- if [ "$*" ]; then
- echo Arguments present... >&2
- if [ -f "$*" ]; then
- echo Uploading the contents of "$*"... >&2
- cat "$*"
- else
- echo Uploading the text: \""$*"\"... >&2
- echo "$*"
- fi | curl -F 'sprunge=<-' http://sprunge.us
- else
- echo No arguments found, printing USAGE and exiting. >&2
- usage
- fi
- else
- echo Using input from a pipe or STDIN redirection... >&2
- curl -F 'sprunge=<-' http://sprunge.us
- fi
+EOF
+ return
+ fi
+
+ if [ -t 0 ]; then
+ echo Running interactively, checking for arguments... >&2
+ if [ "$*" ]; then
+ echo Arguments present... >&2
+ if [ -f "$*" ]; then
+ echo Uploading the contents of "$*"... >&2
+ cat "$*"
+ else
+ echo Uploading the text: \""$*"\"... >&2
+ echo "$*"
+ fi | curl -F 'sprunge=<-' http://sprunge.us
+ else
+ echo No arguments found, printing USAGE and exiting. >&2
+ sprunge --help
+ return 1
+ fi
+ else
+ echo Using input from a pipe or STDIN redirection... >&2
+ curl -F 'sprunge=<-' http://sprunge.us
+ fi
}
From 7ea05bd5003a1b7bd69b69fbcf3bfe3de4fcfe7e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Wed, 9 Oct 2019 18:07:02 +0200
Subject: [PATCH 100/302] Change description
---
plugins/compleat/README.md | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/plugins/compleat/README.md b/plugins/compleat/README.md
index 1d7f0492d..630c91503 100644
--- a/plugins/compleat/README.md
+++ b/plugins/compleat/README.md
@@ -1,9 +1,8 @@
-# compleat
+# compleat plugin
-This plugin runs [bashcompinit](https://github.com/zsh-users/zsh/blob/master/Completion/bashcompinit) which will allow zsh to read bash completion specifications and functions.
+This plugin looks for [compleat](https://github.com/mbrubeck/compleat) and loads its completion.
-To use it add compleat to the plugins array in your zshrc file.
-
- ```
+To use it, add compleat to the plugins array in your zshrc file:
+```
plugins=(... compleat)
-```
\ No newline at end of file
+```
From 11e23477527a0314ffbed74a3d061ae76034da15 Mon Sep 17 00:00:00 2001
From: Martin Mladenov <30376060+martinmladenov@users.noreply.github.com>
Date: Wed, 9 Oct 2019 19:09:29 +0300
Subject: [PATCH 101/302] git-escape-magic: fix typos in README (#8234)
---
plugins/git-escape-magic/README.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/plugins/git-escape-magic/README.md b/plugins/git-escape-magic/README.md
index c3e3898f5..7fefed39d 100644
--- a/plugins/git-escape-magic/README.md
+++ b/plugins/git-escape-magic/README.md
@@ -4,13 +4,13 @@ This plugin is copied from the original at
https://github.com/knu/zsh-git-escape-magic. All credit for the
functionality enabled by this plugin should go to @knu.
-An excerpt from that project's readme explains it's purpose.
+An excerpt from that project's readme explains its purpose.
> It eliminates the need for manually escaping those meta-characters. The zle function it provides is context aware and recognizes the characteristics of each subcommand of git. Every time you type one of these meta-characters on a git command line, it automatically escapes the meta-character with a backslash as necessary and as appropriate.
## Usage
-To use this plugin add it to your list of plugins in your `.zshrc` file.
+To use this plugin, add it to your list of plugins in your `.zshrc` file.
-**NOTE**: If you use url-quote-magic it must be included before this
+**NOTE**: If you use url-quote-magic, it must be included before this
plugin runs to prevent any conflicts.
From 98cd133c4d15c1a147679cc00c0bd924fd91f11c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Wed, 9 Oct 2019 18:12:58 +0200
Subject: [PATCH 102/302] Reword and add extra information
---
plugins/chruby/README.md | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/plugins/chruby/README.md b/plugins/chruby/README.md
index c5e4b9332..d373006a5 100644
--- a/plugins/chruby/README.md
+++ b/plugins/chruby/README.md
@@ -1,9 +1,10 @@
# chruby plugin
-This plugin loads the [chruby](https://github.com/postmodern/chruby). Supports brew and manual installation of chruby.
+This plugin loads [chruby](https://github.com/postmodern/chruby), a tool that changes the
+current Ruby version, and completion and a prompt function to display the Ruby version.
+Supports brew and manual installation of chruby.
To use it, add `chruby` to the plugins array in your zshrc file:
-
```zsh
plugins=(... chruby)
```
From c5b4613bf6e1256e56b5451bccce5972a255a58b Mon Sep 17 00:00:00 2001
From: Maciej Motyka <39633561+maciejmotyka@users.noreply.github.com>
Date: Wed, 9 Oct 2019 19:13:25 +0200
Subject: [PATCH 103/302] python: add recurse flag to pygrep (#8217)
As described in #7053
---
plugins/python/python.plugin.zsh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/python/python.plugin.zsh b/plugins/python/python.plugin.zsh
index f754ea261..950b0e01a 100644
--- a/plugins/python/python.plugin.zsh
+++ b/plugins/python/python.plugin.zsh
@@ -11,5 +11,5 @@ function pyclean() {
}
# Grep among .py files
-alias pygrep='grep --include="*.py"'
+alias pygrep='grep -r --include="*.py"'
From 49c423c7e0a6d5193b77e60107e7c329da28d987 Mon Sep 17 00:00:00 2001
From: 927589452 <927589452@users.noreply.github.com>
Date: Wed, 9 Oct 2019 19:24:44 +0200
Subject: [PATCH 104/302] battery: add support for sysctl in FreeBSD (#8155)
---
plugins/battery/battery.plugin.zsh | 49 ++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)
diff --git a/plugins/battery/battery.plugin.zsh b/plugins/battery/battery.plugin.zsh
index 8f398cfb3..6b6684716 100644
--- a/plugins/battery/battery.plugin.zsh
+++ b/plugins/battery/battery.plugin.zsh
@@ -7,6 +7,9 @@
# Email: neuralsandwich@gmail.com #
# Modified to add support for Apple Mac #
###########################################
+# Author: J (927589452) #
+# Modified to add support for FreeBSD #
+###########################################
if [[ "$OSTYPE" = darwin* ]] ; then
@@ -64,6 +67,52 @@ if [[ "$OSTYPE" = darwin* ]] ; then
[[ $(ioreg -rc "AppleSmartBattery"| grep '^.*"IsCharging"\ =\ ' | sed -e 's/^.*"IsCharging"\ =\ //') == "Yes" ]]
}
+elif [[ "$OSTYPE" = freebsd* ]] ; then
+
+ function battery_is_charging() {
+ [[ $(sysctl -n hw.acpi.battery.state) -eq 2 ]]
+ }
+
+ function battery_pct() {
+ if (( $+commands[sysctl] )) ; then
+ echo "$(sysctl -n hw.acpi.battery.life)"
+ fi
+ }
+
+ function battery_pct_remaining() {
+ if [ ! $(battery_is_charging) ] ; then
+ battery_pct
+ else
+ echo "External Power"
+ fi
+ }
+
+ function battery_time_remaining() {
+ remaining_time=$(sysctl -n hw.acpi.battery.time)
+ if [[ $remaining_time -ge 0 ]] ; then
+ # calculation from https://www.unix.com/shell-programming-and-scripting/23695-convert-minutes-hours-minutes-seconds.html
+ ((hour=$remaining_time/60))
+ ((minute=$remaining_time-$hour*60))
+ echo $hour:$minute
+ fi
+ }
+
+ function battery_pct_prompt() {
+ b=$(battery_pct_remaining)
+ if [ ! $(battery_is_charging) ] ; then
+ if [ $b -gt 50 ] ; then
+ color='green'
+ elif [ $b -gt 20 ] ; then
+ color='yellow'
+ else
+ color='red'
+ fi
+ echo "%{$fg[$color]%}$(battery_pct_remaining)%%%{$reset_color%}"
+ else
+ echo "∞"
+ fi
+ }
+
elif [[ "$OSTYPE" = linux* ]] ; then
function battery_is_charging() {
From a2cc84dd20d13f60bab51438ebbf4ea220a255ee Mon Sep 17 00:00:00 2001
From: Kirill <30822663+KirillDemtchenko@users.noreply.github.com>
Date: Wed, 9 Oct 2019 21:55:16 +0300
Subject: [PATCH 105/302] fbterm: add README (#8241)
---
plugins/fbterm/README.md | 9 +++++++++
1 file changed, 9 insertions(+)
create mode 100644 plugins/fbterm/README.md
diff --git a/plugins/fbterm/README.md b/plugins/fbterm/README.md
new file mode 100644
index 000000000..eec33d7ee
--- /dev/null
+++ b/plugins/fbterm/README.md
@@ -0,0 +1,9 @@
+# fbterm
+
+This plugin automatically starts [fbterm](https://github.com/zhangyuanwei/fbterm)
+if on a real TTY (`/dev/tty*`).
+
+To use it, add fbterm to the plugins array of your zshrc file:
+```
+plugins=(... fbterm)
+```
From 710a3d5a1e2888a4dfb1769f8f1edd8a590eee22 Mon Sep 17 00:00:00 2001
From: Kirill <30822663+KirillDemtchenko@users.noreply.github.com>
Date: Wed, 9 Oct 2019 22:04:49 +0300
Subject: [PATCH 106/302] emotty: add README (#8240)
---
plugins/emotty/README.md | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
create mode 100644 plugins/emotty/README.md
diff --git a/plugins/emotty/README.md b/plugins/emotty/README.md
new file mode 100644
index 000000000..2cfbe120c
--- /dev/null
+++ b/plugins/emotty/README.md
@@ -0,0 +1,39 @@
+# emotty plugin
+
+This plugin returns an emoji for the current $TTY number so it can be used
+in a prompt.
+
+To use it, add emotty to the plugins array in your zshrc file:
+```
+plugins=(... emotty)
+```
+
+**NOTE:** it requires the [emoji plugin](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/emoji).
+
+## Usage
+
+The function `emotty` displays an emoji from the current character set (default: `emoji`), based
+on the number associated to the `$TTY`.
+
+There are different sets of emoji characters available, to choose a different
+set, set `$emotty_set` to the name of the set you would like to use, e.g.:
+```
+emotty_set=nature
+```
+
+### Character Sets
+
+- emoji
+- loral
+- love
+- nature
+- stellar
+- zodiac
+
+Use the `display_emotty` function to list the emojis in the current character set, or
+the character set passed as the first argument. For example:
+
+```
+$ display_emotty zodiac
+
+```
From 35aa3c13311e12ff3375f2eef561562244433ee8 Mon Sep 17 00:00:00 2001
From: jotaro-sama <36264038+jotaro-sama@users.noreply.github.com>
Date: Thu, 10 Oct 2019 03:57:25 +0200
Subject: [PATCH 107/302] add readme for the rust plugin
---
plugins/rust/README.md | 15 +++++++++++++++
1 file changed, 15 insertions(+)
create mode 100644 plugins/rust/README.md
diff --git a/plugins/rust/README.md b/plugins/rust/README.md
new file mode 100644
index 000000000..7cc1ceb66
--- /dev/null
+++ b/plugins/rust/README.md
@@ -0,0 +1,15 @@
+# rust
+
+This plugin adds completion for [`rustc`](https://doc.rust-lang.org/rustc/index.html), the compiler for the Rust programming language.
+
+To use it, add `rust` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... rust)
+```
+
+## Aliases
+
+| Command | Description |
+|------------------|---------------------------------------------------------------------------------|
+| `rustc` | Compiler for the Rust language |
From bb97a9b3ecb809dc7f4f64713170e42b44853d1a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Thu, 10 Oct 2019 11:07:33 +0200
Subject: [PATCH 108/302] Delete alias section
---
plugins/rust/README.md | 6 ------
1 file changed, 6 deletions(-)
diff --git a/plugins/rust/README.md b/plugins/rust/README.md
index 7cc1ceb66..83d7d91ba 100644
--- a/plugins/rust/README.md
+++ b/plugins/rust/README.md
@@ -7,9 +7,3 @@ To use it, add `rust` to the plugins array in your zshrc file:
```zsh
plugins=(... rust)
```
-
-## Aliases
-
-| Command | Description |
-|------------------|---------------------------------------------------------------------------------|
-| `rustc` | Compiler for the Rust language |
From f2be66177d440719dc58ce974077709b9b1b8f33 Mon Sep 17 00:00:00 2001
From: Yasna Kateb
Date: Mon, 14 Oct 2019 13:05:12 +0330
Subject: [PATCH 109/302] Added README for pod
---
plugins/pod/README.md | 10 ++++++++++
1 file changed, 10 insertions(+)
create mode 100644 plugins/pod/README.md
diff --git a/plugins/pod/README.md b/plugins/pod/README.md
new file mode 100644
index 000000000..1009a0855
--- /dev/null
+++ b/plugins/pod/README.md
@@ -0,0 +1,10 @@
+# pod
+
+This plugin adds completion for [`CocoaPods`](https://cocoapods.org/)
+CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects.
+
+To use it, add `pod` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... pod)
+```
From c1bc062e6b56e03fe0b8b31df9520941d219b43f Mon Sep 17 00:00:00 2001
From: yasnakateb <37741028+yasnakateb@users.noreply.github.com>
Date: Mon, 14 Oct 2019 13:06:20 +0330
Subject: [PATCH 110/302] Update README
---
plugins/pod/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/pod/README.md b/plugins/pod/README.md
index 1009a0855..0a3cc7a36 100644
--- a/plugins/pod/README.md
+++ b/plugins/pod/README.md
@@ -1,6 +1,6 @@
# pod
-This plugin adds completion for [`CocoaPods`](https://cocoapods.org/)
+This plugin adds completion for [`CocoaPods`](https://cocoapods.org/).
CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects.
To use it, add `pod` to the plugins array in your zshrc file:
From f56b678888c0ad4ac71458680d75d88b442cf09b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Tue, 15 Oct 2019 16:51:51 +0200
Subject: [PATCH 111/302] fzf: check for dpkg before checking for fzf in debian
Fixes #8253
Co-authored-by: Mariusz B
---
plugins/fzf/fzf.plugin.zsh | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/plugins/fzf/fzf.plugin.zsh b/plugins/fzf/fzf.plugin.zsh
index 646148297..f701fdf32 100644
--- a/plugins/fzf/fzf.plugin.zsh
+++ b/plugins/fzf/fzf.plugin.zsh
@@ -1,9 +1,9 @@
function setup_using_base_dir() {
- # Declare all variables local not no mess with outside env in any way
- local fzf_base
- local fzf_shell
- local fzfdirs
- local dir
+ # Declare all variables local not no mess with outside env in any way
+ local fzf_base
+ local fzf_shell
+ local fzfdirs
+ local dir
test -d "${FZF_BASE}" && fzf_base="${FZF_BASE}"
@@ -58,7 +58,7 @@ function setup_using_base_dir() {
function setup_using_debian_package() {
- dpkg -s fzf &> /dev/null
+ (( $+command[dpkg] )) && dpkg -s fzf &> /dev/null
if (( $? )); then
# Either not a debian based distro, or no fzf installed. In any case skip ahead
return 1
From ca6b3977834889f56d03356061394ca80f3520c6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Tue, 15 Oct 2019 22:56:45 +0200
Subject: [PATCH 112/302] meta: remove automatic bug label on bug reports
People sometimes use the bug report template for things that are support.
Maintainers will confirm whether it's a bug with the appropriate label.
---
.github/ISSUE_TEMPLATE/bug_report.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index ff55f36be..076c35544 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -1,7 +1,6 @@
---
name: Bug report
about: Create a report to help us improve
-labels: 'Type: bug'
---
From 1f8989aee81740760fd4202172c90446d1c391d9 Mon Sep 17 00:00:00 2001
From: Kenny Heaton
Date: Tue, 15 Oct 2019 16:21:16 -0500
Subject: [PATCH 113/302] rake: add README (#8254)
---
plugins/rake/README.md | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
create mode 100644 plugins/rake/README.md
diff --git a/plugins/rake/README.md b/plugins/rake/README.md
new file mode 100644
index 000000000..e235bd91a
--- /dev/null
+++ b/plugins/rake/README.md
@@ -0,0 +1,37 @@
+# Rake plugin
+
+This plugin adds support for [rake](https://ruby.github.io/rake/), the Ruby
+build tool or Ruby Make.
+
+To use it, add `rake` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... rake)
+```
+
+## Aliases
+
+The plugin aliases the rake command so you can pass arguments when invoking rake tasks
+without having to escape the brackets, i.e., you can run
+```
+rake namespace:task['argument']
+```
+instead of having to do
+```
+rake namespace:task\['argument'\]
+```
+
+| Alias | Command | Description |
+|--------|--------------------------------|-----------------------------------------------|
+| rake | `noglob rake` | Allows unescaped square brackets |
+| brake | `noglob bundle exec rake` | Same as above but call rake using bundler |
+| srake | `noglob sudo rake` | Same as rake but using sudo |
+| sbrake | `noglob sudo bundle exec rake` | Same as above but using both sudo and bundler |
+
+## Jim Weirich
+
+The plugin also aliases `rake` to [`jimweirich`](https://github.com/jimweirich), author of Rake
+and big time contributor to the Ruby open source community. He passed away in 2014:
+
+> Thank you Jim for everything you contributed to the Ruby and open source community
+> over the years. We will miss you dearly. — [**@robbyrussell**](https://github.com/robbyrussell/oh-my-zsh/commit/598a9c6f990756386517d66b6bcf77e53791e905)
From 11f36cf9226618666a3335833e5cfb246fce44b9 Mon Sep 17 00:00:00 2001
From: flowin
Date: Tue, 15 Oct 2019 23:25:56 +0200
Subject: [PATCH 114/302] screen: add README (#8256)
---
plugins/screen/README.md | 10 ++++++++++
1 file changed, 10 insertions(+)
create mode 100644 plugins/screen/README.md
diff --git a/plugins/screen/README.md b/plugins/screen/README.md
new file mode 100644
index 000000000..103e17237
--- /dev/null
+++ b/plugins/screen/README.md
@@ -0,0 +1,10 @@
+# screen
+
+This plugin sets title and hardstatus of the tab window for [screen](https://www.gnu.org/software/screen/),
+the terminal multiplexer.
+
+To use it add `screen` to the plugins array in your zshrc file.
+
+```zsh
+plugins=(... screen)
+```
From 767be6c42f1b71fe497c46faa67c2ef4e70ab829 Mon Sep 17 00:00:00 2001
From: Sofia Rivas
Date: Tue, 15 Oct 2019 16:46:40 -0500
Subject: [PATCH 115/302] git-remote-branch: add README (#8259)
---
plugins/git-remote-branch/README.md | 14 ++++++++++++++
1 file changed, 14 insertions(+)
create mode 100644 plugins/git-remote-branch/README.md
diff --git a/plugins/git-remote-branch/README.md b/plugins/git-remote-branch/README.md
new file mode 100644
index 000000000..bd73e5dec
--- /dev/null
+++ b/plugins/git-remote-branch/README.md
@@ -0,0 +1,14 @@
+# git-remote-branch plugin
+
+This plugin adds completion for [`grb`](https://github.com/webmat/git_remote_branch),
+or `git_remote_branch`.
+
+To use it, add `git-remote-branch` to the plugins array of your `.zshrc` file:
+```
+plugins=(... git-remote-branch)
+```
+
+## Deprecation
+
+[git_remote_branch was archived in 2018](https://github.com/webmat/git_remote_branch#archived),
+meaning it's not actively maintained anymore. Use at your own risk.
From f7d9dae12e82b724dcb0f482b03b9771c82b5906 Mon Sep 17 00:00:00 2001
From: Shriniwas Sharma
Date: Wed, 16 Oct 2019 09:28:19 +0200
Subject: [PATCH 116/302] bira: move virtualenv information (#8266)
---
themes/bira.zsh-theme | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/themes/bira.zsh-theme b/themes/bira.zsh-theme
index d00f72f5d..cdae68d6c 100644
--- a/themes/bira.zsh-theme
+++ b/themes/bira.zsh-theme
@@ -16,7 +16,7 @@ local venv_prompt='$(virtualenv_prompt_info)'
ZSH_THEME_RVM_PROMPT_OPTIONS="i v g"
-PROMPT="╭─${venv_prompt}${user_host}${current_dir}${rvm_ruby}${git_branch}
+PROMPT="╭─${user_host}${current_dir}${rvm_ruby}${git_branch}${venv_prompt}
╰─%B${user_symbol}%b "
RPROMPT="%B${return_code}%b"
From 563c0708ab7100c23aab218a9053a61d81fe1317 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20=C5=81uczy=C5=84ski?=
Date: Wed, 16 Oct 2019 17:59:06 +0200
Subject: [PATCH 117/302] fzf: fix regression (#8269)
Typo introduced in f56b678 fixing #8253
---
plugins/fzf/fzf.plugin.zsh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/fzf/fzf.plugin.zsh b/plugins/fzf/fzf.plugin.zsh
index f701fdf32..fe471a363 100644
--- a/plugins/fzf/fzf.plugin.zsh
+++ b/plugins/fzf/fzf.plugin.zsh
@@ -58,7 +58,7 @@ function setup_using_base_dir() {
function setup_using_debian_package() {
- (( $+command[dpkg] )) && dpkg -s fzf &> /dev/null
+ (( $+commands[dpkg] )) && dpkg -s fzf &> /dev/null
if (( $? )); then
# Either not a debian based distro, or no fzf installed. In any case skip ahead
return 1
From 3e4d10c4f17b2fe57090a524d5d78781beda204a Mon Sep 17 00:00:00 2001
From: Shahin Sorkh
Date: Wed, 16 Oct 2019 19:31:15 +0330
Subject: [PATCH 118/302] lib: allow alias expansion in _ sudo alias (#8268)
---
lib/misc.zsh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/misc.zsh b/lib/misc.zsh
index 36c3ae2e5..61571afc9 100644
--- a/lib/misc.zsh
+++ b/lib/misc.zsh
@@ -22,7 +22,7 @@ env_default 'PAGER' 'less'
env_default 'LESS' '-R'
## super user alias
-alias _='sudo'
+alias _='sudo '
## more intelligent acking for ubuntu users
if which ack-grep &> /dev/null; then
From a41d308f70181db085938c5a8f2fe3d0d8e312c5 Mon Sep 17 00:00:00 2001
From: Nick Fagerlund
Date: Fri, 18 Oct 2019 09:43:25 -0700
Subject: [PATCH 119/302] bundler: make it play nice with functions that call
wrapped commands (#8271)
When another function calls one of the bundler plugin's wrapper functions, the
command to run gets passed as an array instead of a space-separated string. That
works fine when the arguments are expanded alone, like `bundle exec $@`, but
something like `./bin/$@` will expand to something like `./bin/rake
./bin/--silent ./bin/--tasks`, which of course will explode. This was causing a
nasty interaction with the rake-fast plugin, and I'd be shocked if it wasn't
causing other problems.
The fix is to explicitly turn off the `RC_EXPAND_PARAM` option for that expansion.
See http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion
for more details.
---
plugins/bundler/bundler.plugin.zsh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh
index c4a4fd40a..d93fac01e 100644
--- a/plugins/bundler/bundler.plugin.zsh
+++ b/plugins/bundler/bundler.plugin.zsh
@@ -95,7 +95,7 @@ _binstubbed() {
_run-with-bundler() {
if _bundler-installed && _within-bundled-project; then
if _binstubbed $1; then
- ./bin/$@
+ ./bin/${^^@}
else
bundle exec $@
fi
From e8a6d328ac36df80901dae540c6a466354327bb0 Mon Sep 17 00:00:00 2001
From: Nick <24370162+deltaclock@users.noreply.github.com>
Date: Fri, 18 Oct 2019 17:05:47 +0000
Subject: [PATCH 120/302] eecms: add README (#8277)
---
plugins/eecms/README.md | 11 +++++++++++
1 file changed, 11 insertions(+)
create mode 100644 plugins/eecms/README.md
diff --git a/plugins/eecms/README.md b/plugins/eecms/README.md
new file mode 100644
index 000000000..c53835521
--- /dev/null
+++ b/plugins/eecms/README.md
@@ -0,0 +1,11 @@
+# eecms plugin
+
+This plugin adds auto-completion of console commands for [`eecms`](https://github.com/ExpressionEngine/ExpressionEngine).
+
+To use it, add `eecms` to the plugins array of your `.zshrc` file:
+```
+plugins=(... eecms)
+```
+
+It also adds the alias `eecms` which finds the eecms file in the current project
+and runs it with php.
From 45d2236941cdb55d33c418c7779b66f3fd1dd3f0 Mon Sep 17 00:00:00 2001
From: Nick <24370162+deltaclock@users.noreply.github.com>
Date: Fri, 18 Oct 2019 17:12:05 +0000
Subject: [PATCH 121/302] phing: add README (#8278)
---
plugins/phing/README.md | 8 ++++++++
1 file changed, 8 insertions(+)
create mode 100644 plugins/phing/README.md
diff --git a/plugins/phing/README.md b/plugins/phing/README.md
new file mode 100644
index 000000000..e2ac0bdf5
--- /dev/null
+++ b/plugins/phing/README.md
@@ -0,0 +1,8 @@
+# Phing plugin
+
+This plugin adds autocompletion for [`phing`](https://github.com/phingofficial/phing) targets.
+
+To use it, add `phing` to the plugins array of your `.zshrc` file:
+```
+plugins=(... eecms)
+```
From efee47b5c0438f7dd0cfd03b9339bd6e1b4ab932 Mon Sep 17 00:00:00 2001
From: flowin
Date: Fri, 18 Oct 2019 20:05:49 +0200
Subject: [PATCH 122/302] pass: add README (#8282)
---
plugins/pass/README.md | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
create mode 100644 plugins/pass/README.md
diff --git a/plugins/pass/README.md b/plugins/pass/README.md
new file mode 100644
index 000000000..2b0704981
--- /dev/null
+++ b/plugins/pass/README.md
@@ -0,0 +1,22 @@
+# pass
+
+This plugin provides completion for the [pass](https://www.passwordstore.org/) password manager.
+
+To use it, add `pass` to the plugins array in your zshrc file.
+
+```
+plugins=(... pass)
+```
+
+## Configuration
+
+### Multiple repositories
+
+If you use multiple repositories, you can configure completion like this:
+```zsh
+compdef _pass workpass
+zstyle ':completion::complete:workpass::' prefix "$HOME/work/pass"
+workpass() {
+ PASSWORD_STORE_DIR=$HOME/work/pass pass $@
+}
+```
From 6b6f2b6dfdc4bc327e814477170f81f0b91a9740 Mon Sep 17 00:00:00 2001
From: Vsevolod Romashov <7@7vn.ru>
Date: Fri, 18 Oct 2019 22:55:56 +0300
Subject: [PATCH 123/302] bundler: support new file naming convention (#6594)
---
plugins/bundler/bundler.plugin.zsh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh
index d93fac01e..665cb5e43 100644
--- a/plugins/bundler/bundler.plugin.zsh
+++ b/plugins/bundler/bundler.plugin.zsh
@@ -82,7 +82,7 @@ _bundler-installed() {
_within-bundled-project() {
local check_dir="$PWD"
while [ "$check_dir" != "/" ]; do
- [ -f "$check_dir/Gemfile" ] && return
+ [ -f "$check_dir/Gemfile" -o -f "$check_dir/gems.rb" ] && return
check_dir="$(dirname $check_dir)"
done
false
From 74165aba4ad500e6467973c5037e1379c55e9560 Mon Sep 17 00:00:00 2001
From: Angelos Orfanakos
Date: Fri, 18 Oct 2019 22:56:30 +0300
Subject: [PATCH 124/302] rails: detect gems.rb in _rake_command (#8223)
---
plugins/rails/rails.plugin.zsh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/rails/rails.plugin.zsh b/plugins/rails/rails.plugin.zsh
index a8ec79db2..1fd5f0f86 100644
--- a/plugins/rails/rails.plugin.zsh
+++ b/plugins/rails/rails.plugin.zsh
@@ -17,7 +17,7 @@ function _rake_command () {
bin/stubs/rake $@
elif [ -e "bin/rake" ]; then
bin/rake $@
- elif type bundle &> /dev/null && [ -e "Gemfile" ]; then
+ elif type bundle &> /dev/null && ([ -e "Gemfile" ] || [ -e "gems.rb" ]); then
bundle exec rake $@
else
command rake $@
From 39a4f9281b5d41736eb37ab535cb81a909e9f4b1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marco=20Zu=CC=88hlke?=
Date: Fri, 18 Oct 2019 23:37:51 +0200
Subject: [PATCH 125/302] Add Readme.md for supervisor. Sync completion with
original source.
---
plugins/supervisor/README.md | 13 +++++++++++++
plugins/supervisor/_supervisorctl | 7 +++++++
2 files changed, 20 insertions(+)
create mode 100644 plugins/supervisor/README.md
diff --git a/plugins/supervisor/README.md b/plugins/supervisor/README.md
new file mode 100644
index 000000000..25a04c968
--- /dev/null
+++ b/plugins/supervisor/README.md
@@ -0,0 +1,13 @@
+# supervisor plugin
+
+This plugin adds tab-completion for supervisord/supervisorctl in [Supervisor](http://supervisord.org/).
+
+Supervisor is a client/server system that allows its users to monitor and control a number of processes on UNIX-like operating systems.
+
+To use it, add `supervisor` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... supervisor)
+```
+
+These scripts are from [zshcompfunc4supervisor](https://bitbucket.org/hhatto/zshcompfunc4supervisor).
diff --git a/plugins/supervisor/_supervisorctl b/plugins/supervisor/_supervisorctl
index d159f20e0..9f576c0c0 100644
--- a/plugins/supervisor/_supervisorctl
+++ b/plugins/supervisor/_supervisorctl
@@ -112,6 +112,13 @@ _supervisorctl_start() {
'*::supvervisor process:_get_supervisor_procs'
}
+(( $+functions[_supervisorctl_restart] )) ||
+_supervisorctl_restart() {
+ # TODO: add 'all'
+ _arguments -s \
+ '*::supvervisor process:_get_supervisor_procs'
+}
+
(( $+functions[_supervisorctl_status] )) ||
_supervisorctl_status() {
_arguments \
From 166719c0abecbcea418f2fc1db2939ed811971d4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marco=20Zu=CC=88hlke?=
Date: Fri, 18 Oct 2019 23:52:26 +0200
Subject: [PATCH 126/302] Format docker Readme like the other plugins.
---
plugins/docker/README.md | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/plugins/docker/README.md b/plugins/docker/README.md
index e91798485..f7e5b8fe4 100644
--- a/plugins/docker/README.md
+++ b/plugins/docker/README.md
@@ -1,5 +1,13 @@
## Docker autocomplete plugin
+This plugin adds auto-completion for docker.
+
+To use it add `docker` to the plugins array in your zshrc file.
+
+```zsh
+plugins=(... docker)
+```
+
A copy of the completion script from the
[docker/cli](https://github.com/docker/cli/blob/master/contrib/completion/zsh/_docker)
git repo.
From f48a40ee91b48ca78703395e07aba5b2dd9e3c97 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Sat, 19 Oct 2019 17:28:43 +0200
Subject: [PATCH 127/302] Reorganize stuff
---
plugins/docker/README.md | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/plugins/docker/README.md b/plugins/docker/README.md
index f7e5b8fe4..4d9f3ae9b 100644
--- a/plugins/docker/README.md
+++ b/plugins/docker/README.md
@@ -1,13 +1,11 @@
-## Docker autocomplete plugin
+# Docker plugin
-This plugin adds auto-completion for docker.
+This plugin adds auto-completion for [docker](https://www.docker.com/).
To use it add `docker` to the plugins array in your zshrc file.
-
```zsh
plugins=(... docker)
```
-A copy of the completion script from the
-[docker/cli](https://github.com/docker/cli/blob/master/contrib/completion/zsh/_docker)
-git repo.
+A copy of the completion script from the docker/cli git repo:
+https://github.com/docker/cli/blob/master/contrib/completion/zsh/_docker
From 160a801bedc9663db5539d4f663d2c2dbdf6cdcc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Sat, 19 Oct 2019 17:29:46 +0200
Subject: [PATCH 128/302] Clean up README
---
plugins/supervisor/README.md | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/plugins/supervisor/README.md b/plugins/supervisor/README.md
index 25a04c968..1eacea6d3 100644
--- a/plugins/supervisor/README.md
+++ b/plugins/supervisor/README.md
@@ -1,11 +1,10 @@
# supervisor plugin
-This plugin adds tab-completion for supervisord/supervisorctl in [Supervisor](http://supervisord.org/).
-
-Supervisor is a client/server system that allows its users to monitor and control a number of processes on UNIX-like operating systems.
+This plugin adds tab-completion for `supervisord`/`supervisorctl` in [Supervisor](http://supervisord.org/).
+Supervisor is a client/server system that allows its users to monitor and control a number
+of processes on UNIX-like operating systems.
To use it, add `supervisor` to the plugins array in your zshrc file:
-
```zsh
plugins=(... supervisor)
```
From aebf333b0ce05bb6710729180335957ceed80dd4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marco=20Z=C3=BChlke?=
Date: Sat, 19 Oct 2019 17:39:03 +0200
Subject: [PATCH 129/302] magic-enter: update README (#8284)
---
plugins/magic-enter/Readme.md | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/plugins/magic-enter/Readme.md b/plugins/magic-enter/Readme.md
index b401ab415..78514c67d 100644
--- a/plugins/magic-enter/Readme.md
+++ b/plugins/magic-enter/Readme.md
@@ -1,14 +1,17 @@
-## Magic Enter
+## Magic Enter plugin
-**Maintainer:** [@dufferzafar](https://github.com/dufferzafar)
+This plugin makes your enter key magical, by binding commonly used commands to it.
-Makes your enter key magical, by binding commonly used commands to it.
+To use it, add `magic-enter` to the plugins array in your zshrc file. You can set the
+commands to be run in your .zshrc, before the line containing plugins. If no command
+is specified in a git directory, `git status` is executed; in other directories, `ls`.
-You can set the commands to be run in your .zshrc, before the line containing plugins!
-
-```bash
+```zsh
+# defaults
MAGIC_ENTER_GIT_COMMAND='git status -u .'
MAGIC_ENTER_OTHER_COMMAND='ls -lh .'
-plugins=(magic-enter)
+plugins=(... magic-enter)
```
+
+**Maintainer:** [@dufferzafar](https://github.com/dufferzafar)
From 05dfd0ae8520e58e852c574f55c83fe6f49fb189 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Sat, 19 Oct 2019 17:51:28 +0200
Subject: [PATCH 130/302] cargo: update completion to latest version (cdac4a8)
https://github.com/rust-lang/cargo/blob/cdac4a8/src/etc/_cargo
---
plugins/cargo/_cargo | 789 ++++++++++++++++++-------------------------
1 file changed, 326 insertions(+), 463 deletions(-)
diff --git a/plugins/cargo/_cargo b/plugins/cargo/_cargo
index 395c517cd..12694901e 100644
--- a/plugins/cargo/_cargo
+++ b/plugins/cargo/_cargo
@@ -2,489 +2,367 @@
autoload -U regexp-replace
-zstyle -T ':completion:*:*:cargo:*' tag-order && \
- zstyle ':completion:*:*:cargo:*' tag-order 'common-commands'
-
_cargo() {
-local context state state_descr line
-typeset -A opt_args
+ local curcontext="$curcontext" ret=1
+ local -a command_scope_spec common parallel features msgfmt triple target registry
+ local -a state line state_descr # These are set by _arguments
+ typeset -A opt_args
-# leading items in parentheses are an exclusion list for the arguments following that arg
-# See: http://zsh.sourceforge.net/Doc/Release/Completion-System.html#Completion-Functions
-# - => exclude all other options
-# 1 => exclude positional arg 1
-# * => exclude all other args
-# +blah => exclude +blah
-_arguments \
- '(- 1 *)'{-h,--help}'[show help message]' \
- '(- 1 *)--list[list installed commands]' \
- '(- 1 *)'{-V,--version}'[show version information]' \
- {-v,--verbose}'[use verbose output]' \
- --color'[colorization option]' \
- '(+beta +nightly)+stable[use the stable toolchain]' \
- '(+stable +nightly)+beta[use the beta toolchain]' \
- '(+stable +beta)+nightly[use the nightly toolchain]' \
- '1: :->command' \
- '*:: :->args'
+ common=(
+ '(-q --quiet)*'{-v,--verbose}'[use verbose output]'
+ '(-q --quiet -v --verbose)'{-q,--quiet}'[no output printed to stdout]'
+ '-Z+[pass unstable (nightly-only) flags to cargo]: :_cargo_unstable_flags'
+ '--frozen[require that Cargo.lock and cache are up-to-date]'
+ '--locked[require that Cargo.lock is up-to-date]'
+ '--color=[specify colorization option]:coloring:(auto always never)'
+ '(- 1 *)'{-h,--help}'[show help message]'
+ )
-case $state in
- command)
- _alternative 'common-commands:common:_cargo_cmds' 'all-commands:all:_cargo_all_cmds'
- ;;
+ # leading items in parentheses are an exclusion list for the arguments following that arg
+ # See: http://zsh.sourceforge.net/Doc/Release/Completion-System.html#Completion-Functions
+ # - => exclude all other options
+ # 1 => exclude positional arg 1
+ # * => exclude all other args
+ # +blah => exclude +blah
+ _arguments -s -S -C $common \
+ '(- 1 *)--list[list installed commands]' \
+ '(- 1 *)--explain=[provide a detailed explanation of an error message]:error code' \
+ '(- 1 *)'{-V,--version}'[show version information]' \
+ '(+beta +nightly)+stable[use the stable toolchain]' \
+ '(+stable +nightly)+beta[use the beta toolchain]' \
+ '(+stable +beta)+nightly[use the nightly toolchain]' \
+ '1: :_cargo_cmds' \
+ '*:: :->args'
- args)
- case $words[1] in
- bench)
- _arguments \
- '--features=[space separated feature list]' \
- '--all-features[enable all available features]' \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '(-j, --jobs)'{-j,--jobs}'[number of parallel jobs, defaults to # of CPUs]' \
- "${command_scope_spec[@]}" \
- '--manifest-path=[path to manifest]: :_files -/' \
- '--no-default-features[do not build the default features]' \
- '--no-run[compile but do not run]' \
- '(-p,--package)'{-p=,--package=}'[package to run benchmarks for]:packages:_get_package_names' \
- '--target=[target triple]' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
- '--color=:colorization option:(auto always never)' \
- ;;
+ # These flags are mutually exclusive specifiers for the scope of a command; as
+ # they are used in multiple places without change, they are expanded into the
+ # appropriate command's `_arguments` where appropriate.
+ command_scope_spec=(
+ '(--bin --example --test --lib)--bench=[specify benchmark name]: :_cargo_benchmark_names'
+ '(--bench --bin --test --lib)--example=[specify example name]:example name'
+ '(--bench --example --test --lib)--bin=[specify binary name]:binary name'
+ '(--bench --bin --example --test)--lib=[specify library name]:library name'
+ '(--bench --bin --example --lib)--test=[specify test name]:test name'
+ )
- build)
- _arguments \
- '--features=[space separated feature list]' \
- '--all-features[enable all available features]' \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '(-j, --jobs)'{-j,--jobs}'[number of parallel jobs, defaults to # of CPUs]' \
- "${command_scope_spec[@]}" \
- '--manifest-path=[path to manifest]: :_files -/' \
- '--no-default-features[do not build the default features]' \
- '(-p,--package)'{-p=,--package=}'[package to build]:packages:_get_package_names' \
- '--release=[build in release mode]' \
- '--target=[target triple]' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
- '--color=:colorization option:(auto always never)' \
- ;;
+ parallel=(
+ '(-j --jobs)'{-j+,--jobs=}'[specify number of parallel jobs]:jobs [# of CPUs]'
+ )
- check)
- _arguments \
- '--features=[space separated feature list]' \
- '--all-features[enable all available features]' \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '(-j, --jobs)'{-j,--jobs}'[number of parallel jobs, defaults to # of CPUs]' \
- "${command_scope_spec[@]}" \
- '--manifest-path=[path to manifest]: :_files -/' \
- '--no-default-features[do not check the default features]' \
- '(-p,--package)'{-p=,--package=}'[package to check]:packages:_get_package_names' \
- '--release=[check in release mode]' \
- '--target=[target triple]' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
- '--color=:colorization option:(auto always never)' \
- ;;
+ features=(
+ '(--all-features)--features=[specify features to activate]:feature'
+ '(--features)--all-features[activate all available features]'
+ "--no-default-features[don't build the default features]"
+ )
- clean)
- _arguments \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '--manifest-path=[path to manifest]: :_files -/' \
- '(-p,--package)'{-p=,--package=}'[package to clean]:packages:_get_package_names' \
- '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
- '--release[whether or not to clean release artifacts]' \
- '--target=[target triple(default:all)]' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- '--color=:colorization option:(auto always never)' \
- ;;
+ msgfmt='--message-format=[specify error format]:error format [human]:(human json short)'
+ triple='--target=[specify target triple]:target triple'
+ target='--target-dir=[specify directory for all generated artifacts]:directory:_directories'
+ manifest='--manifest-path=[specify path to manifest]:path:_directories'
+ registry='--registry=[specify registry to use]:registry'
- doc)
- _arguments \
- '--features=[space separated feature list]' \
- '--all-features[enable all available features]' \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '(-j, --jobs)'{-j,--jobs}'[number of parallel jobs, defaults to # of CPUs]' \
- '--manifest-path=[path to manifest]: :_files -/' \
- '--no-deps[do not build docs for dependencies]' \
- '--no-default-features[do not build the default features]' \
- '--open[open docs in browser after the build]' \
- '(-p, --package)'{-p,--package}'=[package to document]' \
- '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
- '--release[build artifacts in release mode, with optimizations]' \
- '--target=[build for the target triple]' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- '--color=:colorization option:(auto always never)' \
- ;;
+ case $state in
+ args)
+ curcontext="${curcontext%:*}-${words[1]}:"
+ case ${words[1]} in
+ bench)
+ _arguments -s -A "^--" $common $parallel $features $msgfmt $triple $target $manifest \
+ "${command_scope_spec[@]}" \
+ '--all-targets[benchmark all targets]' \
+ "--no-run[compile but don't run]" \
+ '(-p --package)'{-p+,--package=}'[specify package to run benchmarks for]:package:_cargo_package_names' \
+ '--exclude=[exclude packages from the benchmark]:spec' \
+ '--no-fail-fast[run all benchmarks regardless of failure]' \
+ '1: :_guard "^-*" "bench name"' \
+ '*:args:_default'
+ ;;
- fetch)
- _arguments \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '--manifest-path=[path to manifest]: :_files -/' \
- '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- '--color=:colorization option:(auto always never)' \
- ;;
+ build)
+ _arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \
+ '--all-targets[equivalent to specifying --lib --bins --tests --benches --examples]' \
+ "${command_scope_spec[@]}" \
+ '(-p --package)'{-p+,--package=}'[specify package to build]:package:_cargo_package_names' \
+ '--release[build in release mode]' \
+ '--build-plan[output the build plan in JSON]' \
+ ;;
- generate-lockfile)
- _arguments \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '--manifest-path=[path to manifest]: :_files -/' \
- '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- '--color=:colorization option:(auto always never)' \
- ;;
+ check)
+ _arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \
+ '--all-targets[equivalent to specifying --lib --bins --tests --benches --examples]' \
+ "${command_scope_spec[@]}" \
+ '(-p --package)'{-p+,--package=}'[specify package to check]:package:_cargo_package_names' \
+ '--release[check in release mode]' \
+ ;;
- git-checkout)
- _arguments \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
- '--reference=[REF]' \
- '--url=[URL]' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- '--color=:colorization option:(auto always never)' \
- ;;
+ clean)
+ _arguments -s -S $common $triple $target $manifest \
+ '(-p --package)'{-p+,--package=}'[specify package to clean]:package:_cargo_package_names' \
+ '--release[clean release artifacts]' \
+ '--doc[clean just the documentation directory]'
+ ;;
- help)
- _arguments \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '*: :_cargo_cmds' \
- ;;
+ doc)
+ _arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \
+ '--no-deps[do not build docs for dependencies]' \
+ '--document-private-items[include non-public items in the documentation]' \
+ '--open[open docs in browser after the build]' \
+ '(-p --package)'{-p+,--package=}'[specify package to document]:package:_cargo_package_names' \
+ '--release[build artifacts in release mode, with optimizations]' \
+ ;;
- init)
- _arguments \
- '--bin[use binary template]' \
- '--vcs:initialize a new repo with a given VCS:(git hg none)' \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '--name=[set the resulting package name]' \
- '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- '--color=:colorization option:(auto always never)' \
- ;;
+ fetch)
+ _arguments -s -S $common $triple $manifest
+ ;;
- install)
- _arguments \
- '--bin=[only install the specified binary]' \
- '--branch=[branch to use when installing from git]' \
- '--color=:colorization option:(auto always never)' \
- '--debug[build in debug mode instead of release mode]' \
- '--example[install the specified example instead of binaries]' \
- '--features=[space separated feature list]' \
- '--all-features[enable all available features]' \
- '--git=[URL from which to install the crate]' \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '(-j, --jobs)'{-j,--jobs}'[number of parallel jobs, defaults to # of CPUs]' \
- '--no-default-features[do not build the default features]' \
- '--path=[local filesystem path to crate to install]: :_files -/' \
- '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
- '--rev=[specific commit to use when installing from git]' \
- '--root=[directory to install packages into]: :_files -/' \
- '--tag=[tag to use when installing from git]' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- '--vers=[version to install from crates.io]' \
- ;;
+ fix)
+ _arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \
+ "${command_scope_spec[@]}" \
+ '--broken-code[fix code even if it already has compiler errors]' \
+ '--edition[fix in preparation for the next edition]' \
+ '--edition-idioms[fix warnings to migrate to the idioms of an edition]' \
+ '--allow-no-vcs[fix code even if a VCS was not detected]' \
+ '--allow-dirty[fix code even if the working directory is dirty]' \
+ '--allow-staged[fix code even if the working directory has staged changes]'
+ ;;
- locate-project)
- _arguments \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '--manifest-path=[path to manifest]: :_files -/' \
- ;;
+ generate-lockfile)
+ _arguments -s -S $common $manifest
+ ;;
- login)
- _arguments \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '--host=[Host to set the token for]' \
- '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- '--color=:colorization option:(auto always never)' \
- ;;
+ git-checkout)
+ _arguments -s -S $common \
+ '--reference=:reference' \
+ '--url=:url:_urls'
+ ;;
- metadata)
- _arguments \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- "--no-deps[output information only about the root package and don't fetch dependencies]" \
- '--no-default-features[do not include the default feature]' \
- '--manifest-path=[path to manifest]: :_files -/' \
- '--features=[space separated feature list]' \
- '--all-features[enable all available features]' \
- '--format-version=[format version(default: 1)]' \
- '--color=:colorization option:(auto always never)' \
- ;;
+ help)
+ _cargo_cmds
+ ;;
- new)
- _arguments \
- '--bin[use binary template]' \
- '--vcs:initialize a new repo with a given VCS:(git hg none)' \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '--name=[set the resulting package name]' \
- '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- '--color=:colorization option:(auto always never)' \
- ;;
+ init)
+ _arguments -s -S $common $registry \
+ '--lib[use library template]' \
+ '--edition=[specify edition to set for the crate generated]:edition:(2015 2018)' \
+ '--vcs=[initialize a new repo with a given VCS]:vcs:(git hg pijul fossil none)' \
+ '--name=[set the resulting package name]:name' \
+ '1:path:_directories'
+ ;;
- owner)
- _arguments \
- '(-a, --add)'{-a,--add}'[add owner LOGIN]' \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '--index[registry index]' \
- '(-l, --list)'{-l,--list}'[list owners of a crate]' \
- '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
- '(-r, --remove)'{-r,--remove}'[remove owner LOGIN]' \
- '--token[API token to use when authenticating]' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- '--color=:colorization option:(auto always never)' \
- ;;
+ install)
+ _arguments -s -S $common $parallel $features $triple $registry \
+ '(-f --force)'{-f,--force}'[force overwriting of existing crates or binaries]' \
+ '--bin=[only install the specified binary]:binary' \
+ '--branch=[branch to use when installing from git]:branch' \
+ '--debug[build in debug mode instead of release mode]' \
+ '--example=[install the specified example instead of binaries]:example' \
+ '--git=[specify URL from which to install the crate]:url:_urls' \
+ '--path=[local filesystem path to crate to install]: :_directories' \
+ '--rev=[specific commit to use when installing from git]:commit' \
+ '--root=[directory to install packages into]: :_directories' \
+ '--tag=[tag to use when installing from git]:tag' \
+ '--vers=[version to install from crates.io]:version' \
+ '--list[list all installed packages and their versions]' \
+ '*: :_guard "^-*" "crate"'
+ ;;
- package)
- _arguments \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '(-l, --list)'{-l,--list}'[print files included in a package without making one]' \
- '--manifest-path=[path to manifest]: :_files -/' \
- '--no-metadata[ignore warnings about a lack of human-usable metadata]' \
- '--no-verify[do not build to verify contents]' \
- '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- '--color=:colorization option:(auto always never)' \
- ;;
+ locate-project)
+ _arguments -s -S $common $manifest
+ ;;
- pkgid)
- _arguments \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '--manifest-path=[path to manifest]: :_files -/' \
- '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- '--color=:colorization option:(auto always never)' \
- ;;
+ login)
+ _arguments -s -S $common $registry \
+ '*: :_guard "^-*" "token"'
+ ;;
- publish)
- _arguments \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '--host=[Host to set the token for]' \
- '--manifest-path=[path to manifest]: :_files -/' \
- '--no-verify[Do not verify tarball until before publish]' \
- '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
- '--token[token to use when uploading]' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- '--color=:colorization option:(auto always never)' \
- ;;
+ metadata)
+ _arguments -s -S $common $features $manifest \
+ "--no-deps[output information only about the root package and don't fetch dependencies]" \
+ '--format-version=[specify format version]:version [1]:(1)'
+ ;;
- read-manifest)
- _arguments \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '--manifest-path=[path to manifest]: :_files -/' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- '--color=:colorization option:(auto always never)' \
- ;;
+ new)
+ _arguments -s -S $common $registry \
+ '--lib[use library template]' \
+ '--vcs:initialize a new repo with a given VCS:(git hg none)' \
+ '--name=[set the resulting package name]'
+ ;;
- run)
- _arguments \
- '--example=[name of the bin target]' \
- '--features=[space separated feature list]' \
- '--all-features[enable all available features]' \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '(-j, --jobs)'{-j,--jobs}'[number of parallel jobs, defaults to # of CPUs]' \
- '--manifest-path=[path to manifest]: :_files -/' \
- '--bin=[name of the bin target]' \
- '--no-default-features[do not build the default features]' \
- '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
- '--release=[build in release mode]' \
- '--target=[target triple]' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- '--color=:colorization option:(auto always never)' \
- '*: :_normal' \
- ;;
+ owner)
+ _arguments -s -S $common $registry \
+ '(-a --add)'{-a,--add}'[specify name of a user or team to invite as an owner]:name' \
+ '--index=[specify registry index]:index' \
+ '(-l --list)'{-l,--list}'[list owners of a crate]' \
+ '(-r --remove)'{-r,--remove}'[specify name of a user or team to remove as an owner]:name' \
+ '--token=[specify API token to use when authenticating]:token' \
+ '*: :_guard "^-*" "crate"'
+ ;;
- rustc)
- _arguments \
- '--color=:colorization option:(auto always never)' \
- '--features=[features to compile for the package]' \
- '--all-features[enable all available features]' \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '(-j, --jobs)'{-j,--jobs}'=[number of parallel jobs, defaults to # of CPUs]' \
- '--manifest-path=[path to the manifest to fetch dependencies for]: :_files -/' \
- '--no-default-features[do not compile default features for the package]' \
- '(-p, --package)'{-p,--package}'=[profile to compile for]' \
- '--profile=[profile to build the selected target for]' \
- '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
- '--release[build artifacts in release mode, with optimizations]' \
- '--target=[target triple which compiles will be for]' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- "${command_scope_spec[@]}" \
- ;;
+ package)
+ _arguments -s -S $common $parallel $features $triple $target $manifest \
+ '(-l --list)'{-l,--list}'[print files included in a package without making one]' \
+ '--no-metadata[ignore warnings about a lack of human-usable metadata]' \
+ '--allow-dirty[allow dirty working directories to be packaged]' \
+ "--no-verify[don't build to verify contents]"
+ ;;
- rustdoc)
- _arguments \
- '--color=:colorization option:(auto always never)' \
- '--features=[space-separated list of features to also build]' \
- '--all-features[enable all available features]' \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '(-j, --jobs)'{-j,--jobs}'=[number of parallel jobs, defaults to # of CPUs]' \
- '--manifest-path=[path to the manifest to document]: :_files -/' \
- '--no-default-features[do not build the `default` feature]' \
- '--open[open the docs in a browser after the operation]' \
- '(-p, --package)'{-p,--package}'=[package to document]' \
- '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
- '--release[build artifacts in release mode, with optimizations]' \
- '--target=[build for the target triple]' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- "${command_scope_spec[@]}" \
- ;;
+ pkgid)
+ _arguments -s -S $common $manifest \
+ '(-p --package)'{-p+,--package=}'[specify package to get ID specifier for]:package:_cargo_package_names' \
+ '*: :_guard "^-*" "spec"'
+ ;;
- search)
- _arguments \
- '--color=:colorization option:(auto always never)' \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '--host=[host of a registry to search in]' \
- '--limit=[limit the number of results]' \
- '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- ;;
+ publish)
+ _arguments -s -S $common $parallel $features $triple $target $manifest $registry \
+ '--index=[specify registry index]:index' \
+ '--allow-dirty[allow dirty working directories to be packaged]' \
+ "--no-verify[don't verify the contents by building them]" \
+ '--token=[specify token to use when uploading]:token' \
+ '--dry-run[perform all checks without uploading]'
+ ;;
- test)
- _arguments \
- '--features=[space separated feature list]' \
- '--all-features[enable all available features]' \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '(-j, --jobs)'{-j,--jobs}'[number of parallel jobs, defaults to # of CPUs]' \
- '--manifest-path=[path to manifest]: :_files -/' \
- '--test=[test name]: :_test_names' \
- '--no-default-features[do not build the default features]' \
- '--no-fail-fast[run all tests regardless of failure]' \
- '--no-run[compile but do not run]' \
- '(-p,--package)'{-p=,--package=}'[package to run tests for]:packages:_get_package_names' \
- '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
- '--release[build artifacts in release mode, with optimizations]' \
- '--target=[target triple]' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- '--color=:colorization option:(auto always never)' \
- '1: :_test_names' \
- '(--doc --bin --example --test --bench)--lib[only test library]' \
- '(--lib --bin --example --test --bench)--doc[only test documentation]' \
- '(--lib --doc --example --test --bench)--bin=[binary name]' \
- '(--lib --doc --bin --test --bench)--example=[example name]' \
- '(--lib --doc --bin --example --bench)--test=[test name]' \
- '(--lib --doc --bin --example --test)--bench=[benchmark name]' \
- '--message-format:error format:(human json short)' \
- '--frozen[require lock and cache up to date]' \
- '--locked[require lock up to date]'
- ;;
+ read-manifest)
+ _arguments -s -S $common $manifest
+ ;;
- uninstall)
- _arguments \
- '--bin=[only uninstall the binary NAME]' \
- '--color=:colorization option:(auto always never)' \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '(-q, --quiet)'{-q,--quiet}'[less output printed to stdout]' \
- '--root=[directory to uninstall packages from]: :_files -/' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- ;;
+ run)
+ _arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \
+ '--example=[name of the bin target]:name' \
+ '--bin=[name of the bin target]:name' \
+ '(-p --package)'{-p+,--package=}'[specify package with the target to run]:package:_cargo_package_names' \
+ '--release[build in release mode]' \
+ '*: :_default'
+ ;;
- update)
- _arguments \
- '--aggressive=[force dependency update]' \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '--manifest-path=[path to manifest]: :_files -/' \
- '(-p,--package)'{-p=,--package=}'[package to update]:packages:__get_package_names' \
- '--precise=[update single dependency to PRECISE]: :' \
- '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- '--color=:colorization option:(auto always never)' \
- ;;
+ rustc)
+ _arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \
+ '(-p --package)'{-p+,--package=}'[specify package to build]:package:_cargo_package_names' \
+ '--profile=[specify profile to build the selected target for]:profile' \
+ '--release[build artifacts in release mode, with optimizations]' \
+ "${command_scope_spec[@]}" \
+ '*: : _dispatch rustc rustc -default-'
+ ;;
- verify-project)
- _arguments \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '--manifest-path=[path to manifest]: :_files -/' \
- '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- '--color=:colorization option:(auto always never)' \
- ;;
+ rustdoc)
+ _arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \
+ '--document-private-items[include non-public items in the documentation]' \
+ '--open[open the docs in a browser after the operation]' \
+ '(-p --package)'{-p+,--package=}'[specify package to document]:package:_cargo_package_names' \
+ '--release[build artifacts in release mode, with optimizations]' \
+ "${command_scope_spec[@]}" \
+ '*: : _dispatch rustdoc rustdoc -default-'
+ ;;
- version)
- _arguments \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- '--color=:colorization option:(auto always never)' \
- ;;
+ search)
+ _arguments -s -S $common $registry \
+ '--index=[specify registry index]:index' \
+ '--limit=[limit the number of results]:results [10]' \
+ '*: :_guard "^-*" "query"'
+ ;;
- yank)
- _arguments \
- '(-h, --help)'{-h,--help}'[show help message]' \
- '--index[registry index]' \
- '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
- '--token[API token to use when authenticating]' \
- '--undo[undo a yank, putting a version back into the index]' \
- '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
- '--color=:colorization option:(auto always never)' \
- '--vers[yank version]' \
- ;;
- esac
- ;;
-esac
+ test)
+ _arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \
+ '--test=[test name]: :_cargo_test_names' \
+ '--no-fail-fast[run all tests regardless of failure]' \
+ '--no-run[compile but do not run]' \
+ '(-p --package)'{-p+,--package=}'[package to run tests for]:package:_cargo_package_names' \
+ '--all[test all packages in the workspace]' \
+ '--release[build artifacts in release mode, with optimizations]' \
+ '1: :_cargo_test_names' \
+ '(--doc --bin --example --test --bench)--lib[only test library]' \
+ '(--lib --bin --example --test --bench)--doc[only test documentation]' \
+ '(--lib --doc --example --test --bench)--bin=[binary name]' \
+ '(--lib --doc --bin --test --bench)--example=[example name]' \
+ '(--lib --doc --bin --example --bench)--test=[test name]' \
+ '(--lib --doc --bin --example --test)--bench=[benchmark name]' \
+ '*: :_default'
+ ;;
+
+ uninstall)
+ _arguments -s -S $common \
+ '(-p --package)'{-p+,--package=}'[specify package to uninstall]:package:_cargo_package_names' \
+ '--bin=[only uninstall the specified binary]:name' \
+ '--root=[directory to uninstall packages from]: :_files -/' \
+ '*:crate:_cargo_installed_crates -F line'
+ ;;
+
+ update)
+ _arguments -s -S $common $manifest \
+ '--aggressive=[force dependency update]' \
+ "--dry-run[don't actually write the lockfile]" \
+ '(-p --package)'{-p+,--package=}'[specify package to update]:package:_cargo_package_names' \
+ '--precise=[update single dependency to precise release]:release'
+ ;;
+
+ verify-project)
+ _arguments -s -S $common $manifest
+ ;;
+
+ version)
+ _arguments -s -S $common
+ ;;
+
+ yank)
+ _arguments -s -S $common $registry \
+ '--vers=[specify yank version]:version' \
+ '--undo[undo a yank, putting a version back into the index]' \
+ '--index=[specify registry index to yank from]:registry index' \
+ '--token=[specify API token to use when authenticating]:token' \
+ '*: :_guard "^-*" "crate"'
+ ;;
+ *)
+ # allow plugins to define their own functions
+ if ! _call_function ret _cargo-${words[1]}; then
+ # fallback on default completion for unknown commands
+ _default && ret=0
+ fi
+ (( ! ret ))
+ ;;
+ esac
+ ;;
+ esac
}
-_cargo_cmds(){
-local -a commands;commands=(
-'bench:execute all benchmarks of a local package'
-'build:compile the current package'
-'check:check the current package without compiling'
-'clean:remove generated artifacts'
-'doc:build package documentation'
-'fetch:fetch package dependencies'
-'generate-lockfile:create lockfile'
-'git-checkout:git checkout'
-'help:get help for commands'
-'init:create new package in current directory'
-'install:install a Rust binary'
-'locate-project:print "Cargo.toml" location'
-'login:login to remote server'
-'metadata:the metadata for a package in json'
-'new:create a new package'
-'owner:manage the owners of a crate on the registry'
-'package:assemble local package into a distributable tarball'
-'pkgid:print a fully qualified package specification'
-'publish:upload package to the registry'
-'read-manifest:print manifest in JSON format'
-'run:run the main binary of the local package'
-'rustc:compile a package and all of its dependencies'
-'rustdoc:build documentation for a package'
-'search:search packages on crates.io'
-'test:execute all unit and tests of a local package'
-'uninstall:remove a Rust binary'
-'update:update dependencies'
-'verify-project:check Cargo.toml'
-'version:show version information'
-'yank:remove pushed file from index'
-)
-_describe -t common-commands 'common commands' commands
+_cargo_unstable_flags() {
+ local flags
+ flags=( help ${${${(M)${(f)"$(_call_program flags cargo -Z help)"}:#*--*}/ #-- #/:}##*-Z } )
+ _describe -t flags 'unstable flag' flags
}
-_cargo_all_cmds(){
-local -a commands;commands=($(cargo --list))
-_describe -t all-commands 'all commands' commands
+_cargo_installed_crates() {
+ local expl
+ _description crates expl 'crate'
+ compadd "$@" "$expl[@]" - ${${${(f)"$(cargo install --list)"}:# *}%% *}
+}
+
+_cargo_cmds() {
+ local -a commands
+ # This uses Parameter Expansion Flags, which are a built-in Zsh feature.
+ # See more: http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion-Flags
+ # and http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion
+ #
+ # # How this work?
+ #
+ # First it splits the result of `cargo --list` at newline, then it removes the first line.
+ # Then it removes indentation (4 whitespaces) before each items. (Note the x## pattern [1]).
+ # Then it replaces those spaces between item and description with a `:`
+ #
+ # [1]: https://github.com/zsh-users/zsh-completions/blob/master/zsh-completions-howto.org#patterns
+ commands=( ${${${(M)"${(f)$(_call_program commands cargo --list)}":# *}/ ##/}/ ##/:} )
+ _describe -t commands 'command' commands
}
#FIXME: Disabled until fixed
#gets package names from the manifest file
-_get_package_names()
-{
-}
-
-#TODO:see if it makes sense to have 'locate-project' to have non-json output.
-#strips package name from json stuff
-_locate_manifest(){
-local manifest=`cargo locate-project 2>/dev/null`
-regexp-replace manifest '\{"root":"|"\}' ''
-echo $manifest
+_cargo_package_names() {
+ _message -e packages package
}
# Extracts the values of "name" from the array given in $1 and shows them as
# command line options for completion
-_get_names_from_array()
-{
- local -a filelist;
- local manifest=$(_locate_manifest)
+_cargo_names_from_array() {
+ # strip json from the path
+ local manifest=${${${"$(cargo locate-project)"}%\"\}}##*\"}
if [[ -z $manifest ]]; then
return 0
fi
@@ -494,51 +372,36 @@ _get_names_from_array()
local in_block=false
local block_name=$1
names=()
- while read line
- do
+ while read -r line; do
if [[ $last_line == "[[$block_name]]" ]]; then
in_block=true
else
- if [[ $last_line =~ '.*\[\[.*' ]]; then
+ if [[ $last_line =~ '\s*\[\[.*' ]]; then
in_block=false
fi
fi
if [[ $in_block == true ]]; then
- if [[ $line =~ '.*name.*=' ]]; then
- regexp-replace line '^.*name *= *|"' ""
- names+=$line
+ if [[ $line =~ '\s*name\s*=' ]]; then
+ regexp-replace line '^\s*name\s*=\s*|"' ''
+ names+=( "$line" )
fi
fi
last_line=$line
- done < $manifest
- _describe $block_name names
+ done < "$manifest"
+ _describe "$block_name" names
}
#Gets the test names from the manifest file
-_test_names()
-{
- _get_names_from_array "test"
+_cargo_test_names() {
+ _cargo_names_from_array "test"
}
#Gets the bench names from the manifest file
-_benchmark_names()
-{
- _get_names_from_array "bench"
+_cargo_benchmark_names() {
+ _cargo_names_from_array "bench"
}
-# These flags are mutually exclusive specifiers for the scope of a command; as
-# they are used in multiple places without change, they are expanded into the
-# appropriate command's `_arguments` where appropriate.
-set command_scope_spec
-command_scope_spec=(
- '(--bin --example --test --lib)--bench=[benchmark name]: :_benchmark_names'
- '(--bench --bin --test --lib)--example=[example name]'
- '(--bench --example --test --lib)--bin=[binary name]'
- '(--bench --bin --example --test)--lib=[library name]'
- '(--bench --bin --example --lib)--test=[test name]'
-)
-
_cargo
From 090ab73daa587cd592bbd03445223bc570f91367 Mon Sep 17 00:00:00 2001
From: Netoun
Date: Sun, 20 Oct 2019 19:19:58 +0200
Subject: [PATCH 131/302] safe-paste: add README (#8292)
---
plugins/safe-paste/README.md | 9 +++++++++
1 file changed, 9 insertions(+)
create mode 100644 plugins/safe-paste/README.md
diff --git a/plugins/safe-paste/README.md b/plugins/safe-paste/README.md
new file mode 100644
index 000000000..a2e7ddbfc
--- /dev/null
+++ b/plugins/safe-paste/README.md
@@ -0,0 +1,9 @@
+# safe-paste
+
+Preventing any code from actually running while pasting, so you have a chance to review what was actually pasted before running it.
+
+To use it, add `safe-paste` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... safe-paste)
+```
From a7c740b1d7d0033c6de118439c7935962b2a5c2a Mon Sep 17 00:00:00 2001
From: Kenny Heaton
Date: Sun, 20 Oct 2019 13:16:37 -0500
Subject: [PATCH 132/302] rbenv: add README (#8293)
---
plugins/rbenv/README.md | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
create mode 100644 plugins/rbenv/README.md
diff --git a/plugins/rbenv/README.md b/plugins/rbenv/README.md
new file mode 100644
index 000000000..43a2e93ac
--- /dev/null
+++ b/plugins/rbenv/README.md
@@ -0,0 +1,26 @@
+# rbenv plugin
+
+The primary job of this plugin is to provide `rbenv_prompt_info` which can be added to your theme to include Ruby
+version and gemset information into your prompt.
+
+Some functionality of this plugin will not work unless you also have the rbenv plugin *gemset* installed.
+https://github.com/jf/rbenv-gemset
+
+To use it, add `rbenv` to the plugins array in your zshrc file:
+```zsh
+plugins=(... rbenv)
+```
+
+## Alias
+
+| Alias | Command | Description |
+|----------------|---------------------|----------------------------------|
+| rubies | `rbenv versions` | List the installed Ruby versions |
+| gemsets | `rbenv gemset list` | List the existing gemsets |
+
+## Functions
+
+* `current_ruby`: The version of Ruby currently being used.
+* `current_gemset`: The name of the current gemset.
+* `gems`: Lists installed gems with enhanced formatting and color.
+* `rbenv_prompt_info`: For adding information to your prompt. Format: `@`.
From 534ec60bfd14ee640076c7594ee4fa723fafd1b1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Mon, 21 Oct 2019 16:42:06 +0200
Subject: [PATCH 133/302] Set default git-config values known to fix repository
issues
- core.autocrlf=false -> #4069
- fsck.zeroPaddedFilemode -> #4963
Fixes #4069
Fixes #4963
---
tools/install.sh | 6 +++++-
tools/upgrade.sh | 12 +++++++++++-
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/tools/install.sh b/tools/install.sh
index 61010214e..a5a90e6f6 100755
--- a/tools/install.sh
+++ b/tools/install.sh
@@ -90,7 +90,11 @@ setup_ohmyzsh() {
exit 1
fi
- git clone --depth=1 --branch "$BRANCH" "$REMOTE" "$ZSH" || {
+ git clone -c core.eol=lf -c core.autocrlf=false \
+ -c fsck.zeroPaddedFilemode=ignore \
+ -c fetch.fsck.zeroPaddedFilemode=ignore \
+ -c receive.fsck.zeroPaddedFilemode=ignore \
+ --depth=1 --branch "$BRANCH" "$REMOTE" "$ZSH" || {
error "git clone of oh-my-zsh repo failed"
exit 1
}
diff --git a/tools/upgrade.sh b/tools/upgrade.sh
index d234c7f88..0dd855b70 100644
--- a/tools/upgrade.sh
+++ b/tools/upgrade.sh
@@ -20,8 +20,18 @@ else
NORMAL=""
fi
-printf "${BLUE}%s${NORMAL}\n" "Updating Oh My Zsh"
cd "$ZSH"
+
+# Set git-config values known to fix git errors
+# Line endings (#4069)
+git config core.eol lf
+git config core.autocrlf false
+# zeroPaddedFilemode fsck errors (#4963)
+git config fsck.zeroPaddedFilemode ignore
+git config fetch.fsck.zeroPaddedFilemode ignore
+git config receive.fsck.zeroPaddedFilemode ignore
+
+printf "${BLUE}%s${NORMAL}\n" "Updating Oh My Zsh"
if git pull --rebase --stat origin master
then
printf '%s' "$GREEN"
From 40df67bc3b9b51caa24df5d220487043040d1f9a Mon Sep 17 00:00:00 2001
From: Tim <0xTim@users.noreply.github.com>
Date: Tue, 22 Oct 2019 17:24:05 +0100
Subject: [PATCH 134/302] swiftpm: update completion for Swift 5.1 (#8248)
---
plugins/swiftpm/README.md | 2 +-
plugins/swiftpm/_swift | 234 ++++++++++++++++++++------------------
2 files changed, 122 insertions(+), 114 deletions(-)
diff --git a/plugins/swiftpm/README.md b/plugins/swiftpm/README.md
index 291458511..a722c03e4 100644
--- a/plugins/swiftpm/README.md
+++ b/plugins/swiftpm/README.md
@@ -2,7 +2,7 @@
## Description
-This plugin provides a few utilities that make you faster on your daily work with the [Swift Package Manager](https://github.com/apple/swift-package-manager), as well as autocompletion for Swift 5.0.
+This plugin provides a few utilities that make you faster on your daily work with the [Swift Package Manager](https://github.com/apple/swift-package-manager), as well as autocompletion for Swift 5.1.
To start using it, add the `swiftpm` plugin to your `plugins` array in `~/.zshrc`:
diff --git a/plugins/swiftpm/_swift b/plugins/swiftpm/_swift
index 1366b4d9c..fe6f1c9aa 100644
--- a/plugins/swiftpm/_swift
+++ b/plugins/swiftpm/_swift
@@ -82,13 +82,15 @@ _swift_build() {
"(--verbose -v)"{--verbose,-v}"[Increase verbosity of informational output]"
"--no-static-swift-stdlib[Do not link Swift stdlib statically \[default\]]"
"--static-swift-stdlib[Link Swift stdlib statically]"
- "--enable-llbuild-library[Enable building with the llbuild library]"
"--force-resolved-versions[]"
"--disable-automatic-resolution[Disable automatic resolution if Package.resolved file is out-of-date]"
"--enable-index-store[Enable indexing-while-building feature]"
"--disable-index-store[Disable indexing-while-building feature]"
"--enable-pubgrub-resolver[\[Experimental\] Enable the new Pubgrub dependency resolver]"
"--enable-parseable-module-interfaces[]"
+ "--trace-resolver[]"
+ "(--jobs -j)"{--jobs,-j}"[The number of jobs to spawn in parallel during the build process]:The number of jobs to spawn in parallel during the build process: "
+ "--enable-test-discovery[Enable test discovery on platforms without Objective-C runtime]"
"--build-tests[Build both source and test targets]"
"--product[Build the specified product]:Build the specified product: "
"--target[Build the specified target]:Build the specified target: "
@@ -125,13 +127,15 @@ _swift_run() {
"(--verbose -v)"{--verbose,-v}"[Increase verbosity of informational output]"
"--no-static-swift-stdlib[Do not link Swift stdlib statically \[default\]]"
"--static-swift-stdlib[Link Swift stdlib statically]"
- "--enable-llbuild-library[Enable building with the llbuild library]"
"--force-resolved-versions[]"
"--disable-automatic-resolution[Disable automatic resolution if Package.resolved file is out-of-date]"
"--enable-index-store[Enable indexing-while-building feature]"
"--disable-index-store[Disable indexing-while-building feature]"
"--enable-pubgrub-resolver[\[Experimental\] Enable the new Pubgrub dependency resolver]"
"--enable-parseable-module-interfaces[]"
+ "--trace-resolver[]"
+ "(--jobs -j)"{--jobs,-j}"[The number of jobs to spawn in parallel during the build process]:The number of jobs to spawn in parallel during the build process: "
+ "--enable-test-discovery[Enable test discovery on platforms without Objective-C runtime]"
"--skip-build[Skip building the executable product]"
"--build-tests[Build both source and test targets]"
"--repl[Launch Swift REPL for the package]"
@@ -166,13 +170,15 @@ _swift_package() {
"(--verbose -v)"{--verbose,-v}"[Increase verbosity of informational output]"
"--no-static-swift-stdlib[Do not link Swift stdlib statically \[default\]]"
"--static-swift-stdlib[Link Swift stdlib statically]"
- "--enable-llbuild-library[Enable building with the llbuild library]"
"--force-resolved-versions[]"
"--disable-automatic-resolution[Disable automatic resolution if Package.resolved file is out-of-date]"
"--enable-index-store[Enable indexing-while-building feature]"
"--disable-index-store[Disable indexing-while-building feature]"
"--enable-pubgrub-resolver[\[Experimental\] Enable the new Pubgrub dependency resolver]"
"--enable-parseable-module-interfaces[]"
+ "--trace-resolver[]"
+ "(--jobs -j)"{--jobs,-j}"[The number of jobs to spawn in parallel during the build process]:The number of jobs to spawn in parallel during the build process: "
+ "--enable-test-discovery[Enable test discovery on platforms without Objective-C runtime]"
'(-): :->command'
'(-)*:: :->arg'
)
@@ -181,49 +187,61 @@ _swift_package() {
(command)
local modes
modes=(
- 'update:Update package dependencies'
- 'describe:Describe the current package'
- 'resolve:Resolve package dependencies'
- 'tools-version:Manipulate tools version of the current package'
- 'unedit:Remove a package from editable mode'
- 'show-dependencies:Print the resolved dependency graph'
- 'fetch:'
+ 'completion-tool:Completion tool (for shell completions)'
'dump-package:Print parsed Package.swift as JSON'
+ 'describe:Describe the current package'
+ 'clean:Delete build artifacts'
+ 'show-dependencies:Print the resolved dependency graph'
+ 'init:Initialize a new package'
+ 'unedit:Remove a package from editable mode'
+ 'tools-version:Manipulate tools version of the current package'
+ 'fetch:'
+ 'resolve:Resolve package dependencies'
+ 'reset:Reset the complete cache/build directory'
+ 'generate-xcodeproj:Generates an Xcode project'
'edit:Put a package in editable mode'
'config:Manipulate configuration of the package'
- 'completion-tool:Completion tool (for shell completions)'
- 'clean:Delete build artifacts'
- 'generate-xcodeproj:Generates an Xcode project'
- 'reset:Reset the complete cache/build directory'
- 'init:Initialize a new package'
+ 'update:Update package dependencies'
)
_describe "mode" modes
;;
(arg)
case ${words[1]} in
- (update)
- _swift_package_update
+ (completion-tool)
+ _swift_package_completion-tool
+ ;;
+ (dump-package)
+ _swift_package_dump-package
;;
(describe)
_swift_package_describe
;;
- (resolve)
- _swift_package_resolve
- ;;
- (tools-version)
- _swift_package_tools-version
- ;;
- (unedit)
- _swift_package_unedit
+ (clean)
+ _swift_package_clean
;;
(show-dependencies)
_swift_package_show-dependencies
;;
+ (init)
+ _swift_package_init
+ ;;
+ (unedit)
+ _swift_package_unedit
+ ;;
+ (tools-version)
+ _swift_package_tools-version
+ ;;
(fetch)
_swift_package_fetch
;;
- (dump-package)
- _swift_package_dump-package
+ (resolve)
+ _swift_package_resolve
+ ;;
+ (reset)
+ _swift_package_reset
+ ;;
+ (generate-xcodeproj)
+ _swift_package_generate-xcodeproj
;;
(edit)
_swift_package_edit
@@ -231,27 +249,22 @@ _swift_package() {
(config)
_swift_package_config
;;
- (completion-tool)
- _swift_package_completion-tool
- ;;
- (clean)
- _swift_package_clean
- ;;
- (generate-xcodeproj)
- _swift_package_generate-xcodeproj
- ;;
- (reset)
- _swift_package_reset
- ;;
- (init)
- _swift_package_init
+ (update)
+ _swift_package_update
;;
esac
;;
esac
}
-_swift_package_update() {
+_swift_package_completion-tool() {
+ arguments=(
+ ": :{_values '' 'generate-bash-script[generate Bash completion script]' 'generate-zsh-script[generate Bash completion script]' 'list-dependencies[list all dependencies' names]' 'list-executables[list all executables' names]'}"
+ )
+ _arguments $arguments && return
+}
+
+_swift_package_dump-package() {
arguments=(
)
_arguments $arguments && return
@@ -264,6 +277,49 @@ _swift_package_describe() {
_arguments $arguments && return
}
+_swift_package_clean() {
+ arguments=(
+ )
+ _arguments $arguments && return
+}
+
+_swift_package_show-dependencies() {
+ arguments=(
+ "--format[text|dot|json|flatlist]: :{_values '' 'text[list dependencies using text format]' 'dot[list dependencies using dot format]' 'json[list dependencies using JSON format]'}"
+ )
+ _arguments $arguments && return
+}
+
+_swift_package_init() {
+ arguments=(
+ "--type[empty|library|executable|system-module|manifest]: :{_values '' 'empty[generates an empty project]' 'library[generates project for a dynamic library]' 'executable[generates a project for a cli executable]' 'system-module[generates a project for a system module]'}"
+ "--name[Provide custom package name]:Provide custom package name: "
+ )
+ _arguments $arguments && return
+}
+
+_swift_package_unedit() {
+ arguments=(
+ ":The name of the package to unedit:_swift_dependency"
+ "--force[Unedit the package even if it has uncommited and unpushed changes.]"
+ )
+ _arguments $arguments && return
+}
+
+_swift_package_tools-version() {
+ arguments=(
+ "--set[Set tools version of package to the given value]:Set tools version of package to the given value: "
+ "--set-current[Set tools version of package to the current tools version in use]"
+ )
+ _arguments $arguments && return
+}
+
+_swift_package_fetch() {
+ arguments=(
+ )
+ _arguments $arguments && return
+}
+
_swift_package_resolve() {
arguments=(
":The name of the package to resolve:_swift_dependency"
@@ -274,37 +330,20 @@ _swift_package_resolve() {
_arguments $arguments && return
}
-_swift_package_tools-version() {
- arguments=(
- "--set[Set tools version of package to the given value]:Set tools version of package to the given value: "
- "--set-current[Set tools version of package to the current tools version in use]"
- )
- _arguments $arguments && return
-}
-
-_swift_package_unedit() {
- arguments=(
- ":The name of the package to unedit:_swift_dependency"
- "--force[Unedit the package even if it has uncommited and unpushed changes.]"
- )
- _arguments $arguments && return
-}
-
-_swift_package_show-dependencies() {
- arguments=(
- "--format[text|dot|json|flatlist]: :{_values '' 'text[list dependencies using text format]' 'dot[list dependencies using dot format]' 'json[list dependencies using JSON format]'}"
- )
- _arguments $arguments && return
-}
-
-_swift_package_fetch() {
+_swift_package_reset() {
arguments=(
)
_arguments $arguments && return
}
-_swift_package_dump-package() {
+_swift_package_generate-xcodeproj() {
arguments=(
+ "--xcconfig-overrides[Path to xcconfig file]:Path to xcconfig file:_files"
+ "--enable-code-coverage[Enable code coverage in the generated project]"
+ "--output[Path where the Xcode project should be generated]:Path where the Xcode project should be generated:_files"
+ "--legacy-scheme-generator[Use the legacy scheme generator]"
+ "--watch[Watch for changes to the Package manifest to regenerate the Xcode project]"
+ "--skip-extra-files[Do not add file references for extra files to the generated Xcode project]"
)
_arguments $arguments && return
}
@@ -330,8 +369,8 @@ _swift_package_config() {
local modes
modes=(
'unset-mirror:Remove an existing mirror'
- 'set-mirror:Set a mirror for a dependency'
'get-mirror:Print mirror configuration for the given package dependency'
+ 'set-mirror:Set a mirror for a dependency'
)
_describe "mode" modes
;;
@@ -340,12 +379,12 @@ _swift_package_config() {
(unset-mirror)
_swift_package_config_unset-mirror
;;
- (set-mirror)
- _swift_package_config_set-mirror
- ;;
(get-mirror)
_swift_package_config_get-mirror
;;
+ (set-mirror)
+ _swift_package_config_set-mirror
+ ;;
esac
;;
esac
@@ -359,6 +398,13 @@ _swift_package_config_unset-mirror() {
_arguments $arguments && return
}
+_swift_package_config_get-mirror() {
+ arguments=(
+ "--package-url[The package dependency url]:The package dependency url: "
+ )
+ _arguments $arguments && return
+}
+
_swift_package_config_set-mirror() {
arguments=(
"--package-url[The package dependency url]:The package dependency url: "
@@ -367,48 +413,8 @@ _swift_package_config_set-mirror() {
_arguments $arguments && return
}
-_swift_package_config_get-mirror() {
+_swift_package_update() {
arguments=(
- "--package-url[The package dependency url]:The package dependency url: "
- )
- _arguments $arguments && return
-}
-
-_swift_package_completion-tool() {
- arguments=(
- ": :{_values '' 'generate-bash-script[generate Bash completion script]' 'generate-zsh-script[generate Bash completion script]' 'list-dependencies[list all dependencies' names]' 'list-executables[list all executables' names]'}"
- )
- _arguments $arguments && return
-}
-
-_swift_package_clean() {
- arguments=(
- )
- _arguments $arguments && return
-}
-
-_swift_package_generate-xcodeproj() {
- arguments=(
- "--xcconfig-overrides[Path to xcconfig file]:Path to xcconfig file:_files"
- "--enable-code-coverage[Enable code coverage in the generated project]"
- "--output[Path where the Xcode project should be generated]:Path where the Xcode project should be generated:_files"
- "--legacy-scheme-generator[Use the legacy scheme generator]"
- "--watch[Watch for changes to the Package manifest to regenerate the Xcode project]"
- "--skip-extra-files[Do not add file references for extra files to the generated Xcode project]"
- )
- _arguments $arguments && return
-}
-
-_swift_package_reset() {
- arguments=(
- )
- _arguments $arguments && return
-}
-
-_swift_package_init() {
- arguments=(
- "--type[empty|library|executable|system-module]: :{_values '' 'empty[generates an empty project]' 'library[generates project for a dynamic library]' 'executable[generates a project for a cli executable]' 'system-module[generates a project for a system module]'}"
- "--name[Provide custom package name]:Provide custom package name: "
)
_arguments $arguments && return
}
@@ -440,13 +446,15 @@ _swift_test() {
"(--verbose -v)"{--verbose,-v}"[Increase verbosity of informational output]"
"--no-static-swift-stdlib[Do not link Swift stdlib statically \[default\]]"
"--static-swift-stdlib[Link Swift stdlib statically]"
- "--enable-llbuild-library[Enable building with the llbuild library]"
"--force-resolved-versions[]"
"--disable-automatic-resolution[Disable automatic resolution if Package.resolved file is out-of-date]"
"--enable-index-store[Enable indexing-while-building feature]"
"--disable-index-store[Disable indexing-while-building feature]"
"--enable-pubgrub-resolver[\[Experimental\] Enable the new Pubgrub dependency resolver]"
"--enable-parseable-module-interfaces[]"
+ "--trace-resolver[]"
+ "(--jobs -j)"{--jobs,-j}"[The number of jobs to spawn in parallel during the build process]:The number of jobs to spawn in parallel during the build process: "
+ "--enable-test-discovery[Enable test discovery on platforms without Objective-C runtime]"
"--skip-build[Skip building the test target]"
"(--list-tests -l)"{--list-tests,-l}"[Lists test methods in specifier format]"
"--generate-linuxmain[Generate LinuxMain.swift entries for the package]"
From eaa682c0a64daad3138e6f08e7b6c8825700049f Mon Sep 17 00:00:00 2001
From: Lukasz Chrzaszcz
Date: Thu, 24 Oct 2019 17:42:33 +0200
Subject: [PATCH 135/302] Add profiles documentation
---
plugins/profiles/README.md | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
create mode 100644 plugins/profiles/README.md
diff --git a/plugins/profiles/README.md b/plugins/profiles/README.md
new file mode 100644
index 000000000..b590a370f
--- /dev/null
+++ b/plugins/profiles/README.md
@@ -0,0 +1,21 @@
+# profiles plugin
+
+This plugin allows you to create separate configuration files for zsh based
+on a domain of your host.
+
+It takes your `HOST` and looks for files named according to the domain parts
+in `$ZSH_CUSTOM/profiles/` directory.
+
+For example, for `HOST=my.domain.com`, it will try to load the following files:
+
+```text
+$ZSH_CUSTOM/profiles/my.domain.com
+$ZSH_CUSTOM/profiles/domain.com
+$ZSH_CUSTOM/profiles/com
+```
+
+To use it, add profiles to the plugins array of your zshrc file:
+
+```sh
+plugins=(... profiles)
+```
From 225425fe091ca052997833279ccc08643818c24a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Thu, 24 Oct 2019 17:56:08 +0200
Subject: [PATCH 136/302] Fix target_list creation. Supports fabric 1 and 2
---
plugins/fabric/_fab | 22 ++++++++++++++--------
1 file changed, 14 insertions(+), 8 deletions(-)
diff --git a/plugins/fabric/_fab b/plugins/fabric/_fab
index 79d596ed6..89e73e58b 100644
--- a/plugins/fabric/_fab
+++ b/plugins/fabric/_fab
@@ -4,13 +4,19 @@
local curcontext=$curcontext state line
declare -A opt_args
-declare target_list
-IFS="$(printf '\n+')" target_list=($(fab -l | awk '{
- if(NR > 2)
- printf "%s:%s\n", $1, substr($0, index($0, $2))
-}' 2>/dev/null))
+declare -a target_list
+target_list=("${(@f)$(fab -l 2>/dev/null | awk '{
+ if (NF == 0 || NR == 1) return
+ if (NF < 2) print $1
+ else {
+ docstring=substr($0, index($0,$2))
+ gsub(":", "\\:", docstring)
+ print $1":"docstring
+ }
+}')}")
-_targets() {
+_fab_targets() {
+ [[ -n "$target_list" ]] || return
_describe -t commands "fabric targets" target_list
}
@@ -31,7 +37,7 @@ _arguments -w -S -C \
'(-)--shortlist[print non-verbose list of possible commands and exit]: :->noargs' \
'(--reject-unknown-hosts)--reject-unknown-hosts[reject unknown hosts]' \
'(--no-pty)--no-pty[do not use pseudo-terminal in run/sudo]' \
- "(-d+ --display=-)"{-d+,--display=-}"[print detailed info about a given command]: :_targets" \
+ "(-d+ --display=-)"{-d+,--display=-}"[print detailed info about a given command]: :_fab_targets" \
'(-D --disable-known-hosts)'{-D,--disable-known-hosts}'[do not load user known_hosts file]' \
'(-r --reject-unknown-hosts)'{-r,--reject-unknown-hosts}'[reject unknown hosts]' \
'(-u+ --user=-)'{-u+,--user=-}'[username to use when connecting to remote hosts]: :' \
@@ -56,7 +62,7 @@ if [[ CURRENT -ge 1 ]]; then
levels)
_describe -t commands "output levels" output_levels;;
*)
- _targets;;
+ _fab_targets;;
esac
return
From 4eab95f08a7bd9f5378568a3b7740dae803dcecc Mon Sep 17 00:00:00 2001
From: Anton Balaniuc
Date: Fri, 25 Oct 2019 11:59:53 +0100
Subject: [PATCH 137/302] mvn: add autocompletion for openliberty (#8244)
---
plugins/mvn/mvn.plugin.zsh | 2 ++
1 file changed, 2 insertions(+)
diff --git a/plugins/mvn/mvn.plugin.zsh b/plugins/mvn/mvn.plugin.zsh
index 01aef814d..0866e5553 100644
--- a/plugins/mvn/mvn.plugin.zsh
+++ b/plugins/mvn/mvn.plugin.zsh
@@ -267,6 +267,8 @@ function listMavenCompletions {
stage:copy
# toolchain
toolchain:toolchain
+ #liberty
+ liberty:clean-server liberty:compile-jsp liberty:configure-arquillian liberty:create-server liberty:debug liberty:debug-server liberty:deploy liberty:dev liberty:display-url liberty:dump-server liberty:install-apps liberty:install-feature liberty:install-server liberty:java-dump-server liberty:package-server liberty:run liberty:run-server liberty:server-status liberty:start liberty:start-server liberty:status liberty:stop liberty:stop-server liberty:test-start-server liberty:test-stop-server liberty:undeploy liberty:uninstall-feature
# options
"-Dmaven.test.skip=true" -DskipTests -DskipITs -Dmaven.surefire.debug -DenableCiProfile "-Dpmd.skip=true" "-Dcheckstyle.skip=true" "-Dtycho.mode=maven" "-Dmaven.test.failure.ignore=true" "-DgroupId=" "-DartifactId=" "-Dversion=" "-Dpackaging=jar" "-Dfile="
From c1e5cbed5bbefbe09608581d0b47774652221780 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Fri, 25 Oct 2019 13:14:36 +0200
Subject: [PATCH 138/302] Fix order and reword some things
---
plugins/profiles/README.md | 28 ++++++++++++++++------------
1 file changed, 16 insertions(+), 12 deletions(-)
diff --git a/plugins/profiles/README.md b/plugins/profiles/README.md
index b590a370f..5aa1918e2 100644
--- a/plugins/profiles/README.md
+++ b/plugins/profiles/README.md
@@ -1,21 +1,25 @@
# profiles plugin
This plugin allows you to create separate configuration files for zsh based
-on a domain of your host.
-
-It takes your `HOST` and looks for files named according to the domain parts
-in `$ZSH_CUSTOM/profiles/` directory.
-
-For example, for `HOST=my.domain.com`, it will try to load the following files:
-
-```text
-$ZSH_CUSTOM/profiles/my.domain.com
-$ZSH_CUSTOM/profiles/domain.com
-$ZSH_CUSTOM/profiles/com
-```
+on your long hostname (including the domain).
To use it, add profiles to the plugins array of your zshrc file:
```sh
plugins=(... profiles)
```
+
+It takes your `$HOST` variable and looks for files named according to the
+domain parts in `$ZSH_CUSTOM/profiles/` directory.
+
+For example, for `HOST=host.domain.com`, it will try to load the following files,
+in this order:
+
+```text
+$ZSH_CUSTOM/profiles/com
+$ZSH_CUSTOM/profiles/domain.com
+$ZSH_CUSTOM/profiles/host.domain.com
+```
+
+This means that if there are conflicting settings on those files, the one to take
+precedence will be the last applied, i.e. the one in host.domain.com.
From 36092aac0c3e1979caf4afb9fa9bd2115f404fc4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=81ukasz=20Chrz=C4=85szcz?=
Date: Fri, 25 Oct 2019 13:14:53 +0200
Subject: [PATCH 139/302] powder: add README (#8310)
---
plugins/powder/README.md | 8 ++++++++
1 file changed, 8 insertions(+)
create mode 100644 plugins/powder/README.md
diff --git a/plugins/powder/README.md b/plugins/powder/README.md
new file mode 100644
index 000000000..a83b1f2d3
--- /dev/null
+++ b/plugins/powder/README.md
@@ -0,0 +1,8 @@
+# Powder
+
+This plugin provides completion for [powder](https://github.com/powder-rb/powder/).
+
+To use it, add powder to the plugins array of your zshrc file:
+```
+plugins=(... powder)
+```
From 9785d24172a8cc558e90dd266e37ef5ffa29aa80 Mon Sep 17 00:00:00 2001
From: Michael
Date: Fri, 25 Oct 2019 11:24:35 +0000
Subject: [PATCH 140/302] python: fix and extend pyclean (#7762)
Deleting `.mypy_cache` did not work, because the directories were not
empty. They contain JSON files instead of compiled byte-code.
This extends the cleanup by also getting rid of `.pytest_cache`
directories.
---
plugins/python/python.plugin.zsh | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/plugins/python/python.plugin.zsh b/plugins/python/python.plugin.zsh
index 950b0e01a..f39cd80b7 100644
--- a/plugins/python/python.plugin.zsh
+++ b/plugins/python/python.plugin.zsh
@@ -1,13 +1,14 @@
# Find python file
alias pyfind='find . -name "*.py"'
-# Remove python compiled byte-code and mypy cache in either current directory or in a
-# list of specified directories
+# Remove python compiled byte-code and mypy/pytest cache in either the current
+# directory or in a list of specified directories (including sub directories).
function pyclean() {
ZSH_PYCLEAN_PLACES=${*:-'.'}
find ${ZSH_PYCLEAN_PLACES} -type f -name "*.py[co]" -delete
find ${ZSH_PYCLEAN_PLACES} -type d -name "__pycache__" -delete
- find ${ZSH_PYCLEAN_PLACES} -type d -name ".mypy_cache" -delete
+ find ${ZSH_PYCLEAN_PLACES} -depth -type d -name ".mypy_cache" -exec rm -r "{}" +
+ find ${ZSH_PYCLEAN_PLACES} -depth -type d -name ".pytest_cache" -exec rm -r "{}" +
}
# Grep among .py files
From e363109a6d3367d8be1dd66f05a38eb38b4257d7 Mon Sep 17 00:00:00 2001
From: Vice Versa <0x7c48@gmail.com>
Date: Sun, 27 Oct 2019 18:36:00 +0200
Subject: [PATCH 141/302] alias-finder: fix wc numeric conditional (#8251)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Never use `[[` for numeric comparisons, for that, we’ll use `((`.
---
plugins/alias-finder/alias-finder.plugin.zsh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/alias-finder/alias-finder.plugin.zsh b/plugins/alias-finder/alias-finder.plugin.zsh
index 2bfaad597..6b8fa66ce 100644
--- a/plugins/alias-finder/alias-finder.plugin.zsh
+++ b/plugins/alias-finder/alias-finder.plugin.zsh
@@ -14,7 +14,7 @@ alias-finder() {
esac
done
cmd=$(sed 's/[].\|$(){}?+*^[]/\\&/g' <<< $cmd) # adds escaping for grep
- if [[ $(wc -l <<< $cmd) == 1 ]]; then
+ if (( $(wc -l <<< $cmd) == 1 )); then
while [[ $cmd != "" ]]; do
if [[ $longer = true ]]; then
wordStart="'{0,1}"
From 687c50bdf999f8efd45f3c8f578a62329b0633da Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Wed, 30 Oct 2019 23:12:45 +0100
Subject: [PATCH 142/302] fabric: fix awk "return not in function" error in
completion
Fixes #8337
---
plugins/fabric/_fab | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/fabric/_fab b/plugins/fabric/_fab
index 89e73e58b..9102dadef 100644
--- a/plugins/fabric/_fab
+++ b/plugins/fabric/_fab
@@ -6,7 +6,7 @@ declare -A opt_args
declare -a target_list
target_list=("${(@f)$(fab -l 2>/dev/null | awk '{
- if (NF == 0 || NR == 1) return
+ if (NF == 0 || NR == 1) next
if (NF < 2) print $1
else {
docstring=substr($0, index($0,$2))
From 0ec59e25c7f6ac11d0988082fef908ff753126a2 Mon Sep 17 00:00:00 2001
From: Sudhin MN <34642968+sudhinm@users.noreply.github.com>
Date: Tue, 5 Nov 2019 17:57:19 +0530
Subject: [PATCH 143/302] fasd: add README (#8334)
---
plugins/fasd/README.md | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
create mode 100644 plugins/fasd/README.md
diff --git a/plugins/fasd/README.md b/plugins/fasd/README.md
new file mode 100644
index 000000000..1641a92d0
--- /dev/null
+++ b/plugins/fasd/README.md
@@ -0,0 +1,21 @@
+# fasd
+
+[`Fasd`](https://github.com/clvv/fasd) (pronounced similar to "fast") is a command-line productivity booster. Fasd offers quick access to files and directories for POSIX shells.
+
+To use it, add `fasd` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... fd)
+```
+
+## Installation
+
+Please find detailed installation guide [`here`](https://github.com/clvv/fasd#install)
+
+## Aliases
+
+| Alias | Command | Description |
+|-------|-------------------------------------------|-------------------------------------------------------------|
+| v | `fasd -f -e "$EDITOR"` | List frequent/recent files matching the given filename. |
+| o | `fasd -a -e xdg-open` | List frequent/recent files and directories matching. |
+| j | `fasd_cd -d -i` | cd with interactive selection |
\ No newline at end of file
From 7cc3a32bff9b283bf5eea139b92cbfddf3b75de5 Mon Sep 17 00:00:00 2001
From: Wang Guan
Date: Thu, 31 Oct 2013 05:46:27 +0900
Subject: [PATCH 144/302] Add an option about git submodules to ignore
$GIT_STATUS_IGNORE_SUBMODULES can be used to specify handling of
submodules. It can be:
not set : ignore dirty submodules (this was default zsh behavior)
"git" : do not use "--ignore-submodules" and let git choose,
this obeys setting in .gitmodules
other : comes into "--ignore-submodules=$GIT_STATUS_IGNORE_SUBMODULES"
---
lib/git.zsh | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/lib/git.zsh b/lib/git.zsh
index 640561e97..e8ef0d78d 100644
--- a/lib/git.zsh
+++ b/lib/git.zsh
@@ -17,6 +17,19 @@ function parse_git_dirty() {
if [[ "$DISABLE_UNTRACKED_FILES_DIRTY" == "true" ]]; then
FLAGS+='--untracked-files=no'
fi
+ case "$GIT_STATUS_IGNORE_SUBMODULES" in
+ "")
+ # if unset: ignore dirty submodules
+ FLAGS+="--ignore-submodules=dirty"
+ ;;
+ "git")
+ # let git decide (this respects per-repo config in .gitmodules)
+ ;;
+ *)
+ # other values are passed to --ignore-submodules
+ FLAGS+="--ignore-submodules=$GIT_STATUS_IGNORE_SUBMODULES"
+ ;;
+ esac
STATUS=$(command git status ${FLAGS} 2> /dev/null | tail -n1)
fi
if [[ -n $STATUS ]]; then
From b7e37cea90b2bc718c66f90c0f9d52d1aa49ca79 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Wed, 6 Nov 2019 19:41:13 +0100
Subject: [PATCH 145/302] Clean up ignore submodules logic in parse_git_dirty
---
lib/git.zsh | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/lib/git.zsh b/lib/git.zsh
index e8ef0d78d..7affdec68 100644
--- a/lib/git.zsh
+++ b/lib/git.zsh
@@ -18,16 +18,13 @@ function parse_git_dirty() {
FLAGS+='--untracked-files=no'
fi
case "$GIT_STATUS_IGNORE_SUBMODULES" in
- "")
- # if unset: ignore dirty submodules
- FLAGS+="--ignore-submodules=dirty"
- ;;
- "git")
+ git)
# let git decide (this respects per-repo config in .gitmodules)
;;
*)
+ # if unset: ignore dirty submodules
# other values are passed to --ignore-submodules
- FLAGS+="--ignore-submodules=$GIT_STATUS_IGNORE_SUBMODULES"
+ FLAGS+="--ignore-submodules=${GIT_STATUS_IGNORE_SUBMODULES:-dirty}"
;;
esac
STATUS=$(command git status ${FLAGS} 2> /dev/null | tail -n1)
From 1546e1226a7b739776bda43f264b221739ba0397 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Wed, 6 Nov 2019 19:46:52 +0100
Subject: [PATCH 146/302] Fix badly resolved rebase conflict
---
lib/git.zsh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/git.zsh b/lib/git.zsh
index 7affdec68..2054fe272 100644
--- a/lib/git.zsh
+++ b/lib/git.zsh
@@ -12,7 +12,7 @@ function git_prompt_info() {
function parse_git_dirty() {
local STATUS
local -a FLAGS
- FLAGS=('--porcelain' '--ignore-submodules=dirty')
+ FLAGS=('--porcelain')
if [[ "$(command git config --get oh-my-zsh.hide-dirty)" != "1" ]]; then
if [[ "$DISABLE_UNTRACKED_FILES_DIRTY" == "true" ]]; then
FLAGS+='--untracked-files=no'
From fc99e6db3e917a0556afe56273c901220c8105a9 Mon Sep 17 00:00:00 2001
From: Eric Dobbs
Date: Wed, 6 Nov 2019 12:25:36 -0700
Subject: [PATCH 147/302] emacs: support BSD mktemp in emacsclient.sh (#8351)
Piping stdin to emacs alias on MacOS was breaking (--tmpdir is not
supported in BSD flavored mktemp).
Tested in MacOS 10.14 and debian:buster to confirm it still works in
linux.
---
plugins/emacs/emacsclient.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/plugins/emacs/emacsclient.sh b/plugins/emacs/emacsclient.sh
index 26b28d495..0aa8d6f40 100755
--- a/plugins/emacs/emacsclient.sh
+++ b/plugins/emacs/emacsclient.sh
@@ -20,7 +20,8 @@ _emacsfun()
# tempfile. (first argument will be `--no-wait` passed in by the plugin.zsh)
if [ "$#" -ge "2" -a "$2" = "-" ]
then
- tempfile="$(mktemp emacs-stdin-$USER.XXXXXXX --tmpdir)"
+ tempfile="$(mktemp --tmpdir emacs-stdin-$USER.XXXXXXX 2>/dev/null \
+ || mktemp -t emacs-stdin-$USER)" # support BSD mktemp
cat - > "$tempfile"
_emacsfun --no-wait $tempfile
else
From 107e512c9e62b140d8591c578527c901b1db9d37 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Wed, 6 Nov 2019 21:22:15 +0100
Subject: [PATCH 148/302] Remove line below copyright so that GitHub shows
LICENSE details
---
LICENSE.txt | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/LICENSE.txt b/LICENSE.txt
index 4d465b1c3..eb9978a7a 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -1,7 +1,6 @@
-The MIT License (MIT)
+MIT License
-Copyright (c) 2009-2019 Robby Russell and contributors
-See the full list at https://github.com/robbyrussell/oh-my-zsh/contributors
+Copyright (c) 2009-2019 Robby Russell and contributors (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
From ef96a38fa599c983823f0e1ef530de847ee76da0 Mon Sep 17 00:00:00 2001
From: Isaac Clayton
Date: Fri, 8 Nov 2019 22:42:02 +0800
Subject: [PATCH 149/302] Upgrade some URLs to HTTPS (#8202)
* Update http to https in Solarized
* Upgrade http to https for 'Burger In Your Shell'
* Upgrade http to https for tmux.github.io
---
plugins/emoji-clock/emoji-clock.plugin.zsh | 2 +-
plugins/tmux/README.md | 2 +-
themes/sunrise.zsh-theme | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/plugins/emoji-clock/emoji-clock.plugin.zsh b/plugins/emoji-clock/emoji-clock.plugin.zsh
index 0a55528f0..bdd606f89 100644
--- a/plugins/emoji-clock/emoji-clock.plugin.zsh
+++ b/plugins/emoji-clock/emoji-clock.plugin.zsh
@@ -2,7 +2,7 @@
# FILE: emoji-clock.plugin.zsh
# DESCRIPTION: The current time with half hour accuracy as an emoji symbol.
# Inspired by Andre Torrez' "Put A Burger In Your Shell"
-# http://notes.torrez.org/2013/04/put-a-burger-in-your-shell.html
+# https://notes.torrez.org/2013/04/put-a-burger-in-your-shell.html
# AUTHOR: Alexis Hildebrandt (afh[at]surryhill.net)
# VERSION: 1.0.0
# -----------------------------------------------------------------------------
diff --git a/plugins/tmux/README.md b/plugins/tmux/README.md
index 427119d3d..e887ceebb 100644
--- a/plugins/tmux/README.md
+++ b/plugins/tmux/README.md
@@ -1,6 +1,6 @@
# tmux
-This plugin provides aliases for [tmux](http://tmux.github.io/), the terminal multiplexer.
+This plugin provides aliases for [tmux](https://tmux.github.io/), the terminal multiplexer.
To use it add `tmux` to the plugins array in your zshrc file.
```zsh
diff --git a/themes/sunrise.zsh-theme b/themes/sunrise.zsh-theme
index e3f4019d6..2111576c3 100644
--- a/themes/sunrise.zsh-theme
+++ b/themes/sunrise.zsh-theme
@@ -1,5 +1,5 @@
# Sunrise theme for oh-my-zsh
-# Intended to be used with Solarized: http://ethanschoonover.com/solarized
+# Intended to be used with Solarized: https://ethanschoonover.com/solarized
# Color shortcuts
R=$fg_no_bold[red]
From 86b39cfa0a42cd0962be2b8072e73229280c362b Mon Sep 17 00:00:00 2001
From: StelFux <22601105+StelFux@users.noreply.github.com>
Date: Fri, 8 Nov 2019 21:44:44 +0100
Subject: [PATCH 150/302] tmux: allow to define a custom configuration path
(#7606)
---
plugins/tmux/README.md | 1 +
plugins/tmux/tmux.extra.conf | 2 +-
plugins/tmux/tmux.plugin.zsh | 9 ++++++---
3 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/plugins/tmux/README.md b/plugins/tmux/README.md
index e887ceebb..1e25af38f 100644
--- a/plugins/tmux/README.md
+++ b/plugins/tmux/README.md
@@ -37,3 +37,4 @@ The plugin also supports the following -
| `ZSH_TMUX_ITERM2` | Sets the `-CC` option for iTerm2 tmux integration (default: `false`) |
| `ZSH_TMUX_FIXTERM_WITHOUT_256COLOR` | `$TERM` to use for non 256-color terminals (default: `screen`) |
| `ZSH_TMUX_FIXTERM_WITH_256COLOR` | `$TERM` to use for 256-color terminals (default: `screen-256color` |
+| `ZSH_TMUX_CONFIG` | Set the configuration path (default: `$HOME/.tmux.conf`) |
\ No newline at end of file
diff --git a/plugins/tmux/tmux.extra.conf b/plugins/tmux/tmux.extra.conf
index beffd380c..3420d19d4 100644
--- a/plugins/tmux/tmux.extra.conf
+++ b/plugins/tmux/tmux.extra.conf
@@ -1,2 +1,2 @@
set -g default-terminal $ZSH_TMUX_TERM
-source $HOME/.tmux.conf
+source $ZSH_TMUX_CONFIG
\ No newline at end of file
diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh
index 2f3c3e79d..d7b299690 100644
--- a/plugins/tmux/tmux.plugin.zsh
+++ b/plugins/tmux/tmux.plugin.zsh
@@ -34,6 +34,8 @@ alias tkss='tmux kill-session -t'
# Tmux states this should be screen-256color, but you may need to change it on
# systems without the proper terminfo
: ${ZSH_TMUX_FIXTERM_WITH_256COLOR:=screen-256color}
+# Set the configuration path
+: ${ZSH_TMUX_CONFIG:=$HOME/.tmux.conf}
# Determine if the terminal supports 256 colors
if [[ $terminfo[colors] == 256 ]]; then
@@ -43,7 +45,7 @@ else
fi
# Set the correct local config file to use.
-if [[ "$ZSH_TMUX_ITERM2" == "false" && -e "$HOME/.tmux.conf" ]]; then
+if [[ "$ZSH_TMUX_ITERM2" == "false" && -e "$ZSH_TMUX_CONFIG" ]]; then
export _ZSH_TMUX_FIXED_CONFIG="${0:h:a}/tmux.extra.conf"
else
export _ZSH_TMUX_FIXED_CONFIG="${0:h:a}/tmux.only.conf"
@@ -65,8 +67,9 @@ function _zsh_tmux_plugin_run() {
# If failed, just run tmux, fixing the TERM variable if requested.
if [[ $? -ne 0 ]]; then
- [[ "$ZSH_TMUX_FIXTERM" == "true" ]] && tmux_cmd+=(-f "$_ZSH_TMUX_FIXED_CONFIG")
- $tmux_cmd new-session
+ [[ "$ZSH_TMUX_FIXTERM" == "true" ]] && tmux_cmd+=(-f "$_ZSH_TMUX_FIXED_CONFIG") || \
+ [[ -e "$ZSH_TMUX_CONFIG" ]] && tmux_cmd+=(-f "$ZSH_TMUX_CONFIG")
+ $tmux_cmd new-session
fi
if [[ "$ZSH_TMUX_AUTOQUIT" == "true" ]]; then
From 24726678dd39ab69f5a14a789775fe53ccfd7c1d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Sat, 9 Nov 2019 12:37:41 +0100
Subject: [PATCH 151/302] extract: keep *.gz files with pigz and gunzip
Fixes #8368
---
plugins/extract/extract.plugin.zsh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh
index 5e9b9ff24..d3d847daf 100644
--- a/plugins/extract/extract.plugin.zsh
+++ b/plugins/extract/extract.plugin.zsh
@@ -41,7 +41,7 @@ extract() {
&& tar --lzma -xvf "$1" \
|| lzcat "$1" | tar xvf - ;;
(*.tar) tar xvf "$1" ;;
- (*.gz) (( $+commands[pigz] )) && pigz -d "$1" || gunzip "$1" ;;
+ (*.gz) (( $+commands[pigz] )) && pigz -dk "$1" || gunzip -k "$1" ;;
(*.bz2) bunzip2 "$1" ;;
(*.xz) unxz "$1" ;;
(*.lzma) unlzma "$1" ;;
From 8b6b2ea07e7e18129757195731a3df5d57465807 Mon Sep 17 00:00:00 2001
From: Quentin Dreyer
Date: Sat, 9 Nov 2019 12:49:17 +0100
Subject: [PATCH 152/302] upgrade: remove double whitespace in message (#7517)
---
tools/upgrade.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/upgrade.sh b/tools/upgrade.sh
index 0dd855b70..f64a0096e 100644
--- a/tools/upgrade.sh
+++ b/tools/upgrade.sh
@@ -43,7 +43,7 @@ then
printf '%s\n' ' /____/ '
printf "${BLUE}%s\n" "Hooray! Oh My Zsh has been updated and/or is at the current version."
printf "${BLUE}${BOLD}%s${NORMAL}\n" "To keep up on the latest news and updates, follow us on twitter: https://twitter.com/ohmyzsh"
- printf "${BLUE}${BOLD}%s${NORMAL}\n" "Get your Oh My Zsh swag at: https://shop.planetargon.com/collections/oh-my-zsh"
+ printf "${BLUE}${BOLD}%s${NORMAL}\n" "Get your Oh My Zsh swag at: https://shop.planetargon.com/collections/oh-my-zsh"
else
printf "${RED}%s${NORMAL}\n" 'There was an error updating. Try again later?'
fi
From 24d83d1e8c84689d6fe0953f6fa6743d983fa07a Mon Sep 17 00:00:00 2001
From: Yuan-Hao Chen
Date: Thu, 14 Nov 2019 20:34:02 +0800
Subject: [PATCH 153/302] tmux: fix bad tmux config syntax and logical
expression error in 86b39cf (#8374)
---
plugins/tmux/tmux.extra.conf | 2 +-
plugins/tmux/tmux.plugin.zsh | 9 ++++++---
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/plugins/tmux/tmux.extra.conf b/plugins/tmux/tmux.extra.conf
index 3420d19d4..c4aaad0b0 100644
--- a/plugins/tmux/tmux.extra.conf
+++ b/plugins/tmux/tmux.extra.conf
@@ -1,2 +1,2 @@
set -g default-terminal $ZSH_TMUX_TERM
-source $ZSH_TMUX_CONFIG
\ No newline at end of file
+source-file $ZSH_TMUX_CONFIG
\ No newline at end of file
diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh
index d7b299690..5b5d1b1ba 100644
--- a/plugins/tmux/tmux.plugin.zsh
+++ b/plugins/tmux/tmux.plugin.zsh
@@ -67,9 +67,12 @@ function _zsh_tmux_plugin_run() {
# If failed, just run tmux, fixing the TERM variable if requested.
if [[ $? -ne 0 ]]; then
- [[ "$ZSH_TMUX_FIXTERM" == "true" ]] && tmux_cmd+=(-f "$_ZSH_TMUX_FIXED_CONFIG") || \
- [[ -e "$ZSH_TMUX_CONFIG" ]] && tmux_cmd+=(-f "$ZSH_TMUX_CONFIG")
- $tmux_cmd new-session
+ if [[ "$ZSH_TMUX_FIXTERM" == "true" ]]; then
+ tmux_cmd+=(-f "$_ZSH_TMUX_FIXED_CONFIG")
+ elif [[ -e "$ZSH_TMUX_CONFIG" ]]; then
+ tmux_cmd+=(-f "$ZSH_TMUX_CONFIG")
+ fi
+ $tmux_cmd new-session
fi
if [[ "$ZSH_TMUX_AUTOQUIT" == "true" ]]; then
From e453731fc93419cb71661dd1f277965e3d07ff0e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?P=C3=A9ter=20H=C3=89JA?=
Date: Thu, 14 Nov 2019 18:32:21 +0100
Subject: [PATCH 154/302] osx: fix exit on unknown command in spotify function
(#8375)
---
plugins/osx/spotify | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/osx/spotify b/plugins/osx/spotify
index 39f8e0437..78d6c7d0f 100644
--- a/plugins/osx/spotify
+++ b/plugins/osx/spotify
@@ -470,7 +470,7 @@ while [ $# -gt 0 ]; do
break ;;
* )
showHelp;
- exit 1;
+ break;
esac
done
From 0ad988c598cf9ceda392815ea0c823a76720d17e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Paulo=20Diovani=20Gon=C3=A7alves?=
Date: Fri, 15 Nov 2019 12:47:11 -0300
Subject: [PATCH 155/302] tmux: export ZSH_TMUX_CONFIG again to provide to tmux
(#8390)
---
plugins/tmux/tmux.plugin.zsh | 1 +
1 file changed, 1 insertion(+)
diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh
index 5b5d1b1ba..dad3db578 100644
--- a/plugins/tmux/tmux.plugin.zsh
+++ b/plugins/tmux/tmux.plugin.zsh
@@ -46,6 +46,7 @@ fi
# Set the correct local config file to use.
if [[ "$ZSH_TMUX_ITERM2" == "false" && -e "$ZSH_TMUX_CONFIG" ]]; then
+ export ZSH_TMUX_CONFIG
export _ZSH_TMUX_FIXED_CONFIG="${0:h:a}/tmux.extra.conf"
else
export _ZSH_TMUX_FIXED_CONFIG="${0:h:a}/tmux.only.conf"
From 66e2284a08f86e5dcf661e3cf220483e1fb1f530 Mon Sep 17 00:00:00 2001
From: "Aaron N. Brock"
Date: Fri, 15 Nov 2019 14:11:50 -0500
Subject: [PATCH 156/302] Add support for chroma
---
plugins/colorize/colorize.plugin.zsh | 47 ++++++++++++++++++++++------
1 file changed, 38 insertions(+), 9 deletions(-)
diff --git a/plugins/colorize/colorize.plugin.zsh b/plugins/colorize/colorize.plugin.zsh
index 565ba5a36..051d2269c 100644
--- a/plugins/colorize/colorize.plugin.zsh
+++ b/plugins/colorize/colorize.plugin.zsh
@@ -3,21 +3,46 @@ alias ccat='colorize_via_pygmentize'
alias cless='colorize_via_pygmentize_less'
colorize_via_pygmentize() {
- if ! (( $+commands[pygmentize] )); then
- echo "package 'Pygments' is not installed!"
+
+ if [[ $ZSH_COLORIZE_TOOL != "chroma" && $ZSH_COLORIZE_TOOL != "pygmentize" ]]; then
+ echo "ZSH_COLORIZE_TOOL not recognized. Options are 'pygmentize' or 'chroma'"
return 1
fi
- # If the environment varianle ZSH_COLORIZE_STYLE
+ if [ -z $ZSH_COLORIZE_TOOL ]; then
+ if (( $+commands[pygmentize] )); then
+ ZSH_COLORIZE_TOOL="pygmentize"
+ elif (( $+commands[chroma] )); then
+ ZSH_COLORIZE_TOOL="chroma"
+ else
+ echo "niether 'Pygments' nor 'chroma' is not installed!"
+ return 1
+ fi
+ fi
+
+ echo "Tool: $ZSH_COLORIZE_TOOL"
+
+ # If the environment variable ZSH_COLORIZE_STYLE
# is set, use that theme instead. Otherwise,
# use the default.
if [ -z $ZSH_COLORIZE_STYLE ]; then
- ZSH_COLORIZE_STYLE="default"
+ if [[ $ZSH_COLORIZE_TOOL == "pygmentize" ]]; then
+ ZSH_COLORIZE_STYLE="default"
+ else
+ # Choosing 'emacs' to match pygmentize's default as per:
+ # https://github.com/pygments/pygments/blob/master/pygments/styles/default.py#L19
+ ZSH_COLORIZE_STYLE="emacs"
+ fi
fi
+ echo "color style: $ZSH_COLORIZE_STYLE"
# pygmentize stdin if no arguments passed
if [ $# -eq 0 ]; then
- pygmentize -O style="$ZSH_COLORIZE_STYLE" -g
+ if [[ $ZSH_COLORIZE_TOOL == "pygmentize" ]]; then
+ pygmentize -O style="$ZSH_COLORIZE_STYLE" -g
+ else
+ chroma --style="$ZSH_COLORIZE_STYLE"
+ fi
return $?
fi
@@ -27,11 +52,15 @@ colorize_via_pygmentize() {
local FNAME lexer
for FNAME in "$@"
do
- lexer=$(pygmentize -N "$FNAME")
- if [[ $lexer != text ]]; then
- pygmentize -O style="$ZSH_COLORIZE_STYLE" -l "$lexer" "$FNAME"
+ if [[ $ZSH_COLORIZE_TOOL == "pygmentize" ]]; then
+ lexer=$(pygmentize -N "$FNAME")
+ if [[ $lexer != text ]]; then
+ pygmentize -O style="$ZSH_COLORIZE_STYLE" -l "$lexer" "$FNAME"
+ else
+ pygmentize -O style="$ZSH_COLORIZE_STYLE" -g "$FNAME"
+ fi
else
- pygmentize -O style="$ZSH_COLORIZE_STYLE" -g "$FNAME"
+ chroma --style="$ZSH_COLORIZE_STYLE" "$FNAME"
fi
done
}
From 8aa070db0e1f8a5752f0e45834b7093b9b72860f Mon Sep 17 00:00:00 2001
From: "Aaron N. Brock"
Date: Fri, 15 Nov 2019 15:34:24 -0500
Subject: [PATCH 157/302] Update README.md
---
plugins/colorize/README.md | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/plugins/colorize/README.md b/plugins/colorize/README.md
index d1f878e62..b6e27fd27 100644
--- a/plugins/colorize/README.md
+++ b/plugins/colorize/README.md
@@ -10,12 +10,23 @@ To use it, add colorize to the plugins array of your zshrc file:
```
plugins=(... colorize)
```
+## Configuration
-## Styles
+### Colorize tool
+
+Colorize supports using either the `pygmentize` tool or the `chroma` tool. By default colorize uses `pygmentize` unless it's not installed & `chroma` is installed. However, you can override this with the `ZSH_COLORIZE_TOOL` environment variable:
+
+```
+ZSH_COLORIZE_TOOL=chroma
+```
+
+### Styles
Pygments offers multiple styles. By default, the `default` style is used, but you can choose another theme by setting the `ZSH_COLORIZE_STYLE` environment variable:
-`ZSH_COLORIZE_STYLE="colorful"`
+```
+ZSH_COLORIZE_STYLE="colorful"
+```
## Usage
@@ -32,4 +43,6 @@ In the latter form, the file contents will be concatenated and presented by less
## Requirements
-You have to install Pygments first: [pygments.org](http://pygments.org/download/)
+You have to either install Pygments: [pygments.org](http://pygments.org/download/)
+
+Or install chroma: [https://github.com/alecthomas/chroma](https://github.com/alecthomas/chroma)
\ No newline at end of file
From 451fb257032a37a7d9cae4631c03f65fd3aa7f1c Mon Sep 17 00:00:00 2001
From: James Jensen
Date: Sat, 16 Nov 2019 05:59:20 +0800
Subject: [PATCH 158/302] osx: modify itunes function to support Apple Music
(#8372)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Change `itunes` to `music`, as iTunes was renamed to Music in _**macOS** Catalina 10.15_
Co-authored-by: Marc Cornellà
---
plugins/osx/README.md | 35 +++++++++++++++--------------
plugins/osx/osx.plugin.zsh | 46 ++++++++++++++++++++++++--------------
2 files changed, 47 insertions(+), 34 deletions(-)
diff --git a/plugins/osx/README.md b/plugins/osx/README.md
index 4595ee319..f3881ec6b 100644
--- a/plugins/osx/README.md
+++ b/plugins/osx/README.md
@@ -42,20 +42,21 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
## Commands
-| Command | Description |
-| :-------------- | :-------------------------------------------------- |
-| `tab` | Open the current directory in a new tab |
-| `split_tab` | Split the current terminal tab horizontally |
-| `vsplit_tab` | Split the current terminal tab vertically |
-| `ofd` | Open the current directory in a Finder window |
-| `pfd` | Return the path of the frontmost Finder window |
-| `pfs` | Return the current Finder selection |
-| `cdf` | `cd` to the current Finder directory |
-| `pushdf` | `pushd` to the current Finder directory |
-| `quick-look` | Quick-Look a specified file |
-| `man-preview` | Open a specified man page in Preview app |
-| `showfiles` | Show hidden files |
-| `hidefiles` | Hide the hidden files |
-| `itunes` | Control iTunes. Use `itunes -h` for usage details |
-| `spotify` | Control Spotify and search by artist, album, track… |
-| `rmdsstore` | Remove .DS\_Store files recursively in a directory |
+| Command | Description |
+| :-------------- | :---------------------------------------------------- |
+| `tab` | Open the current directory in a new tab |
+| `split_tab` | Split the current terminal tab horizontally |
+| `vsplit_tab` | Split the current terminal tab vertically |
+| `ofd` | Open the current directory in a Finder window |
+| `pfd` | Return the path of the frontmost Finder window |
+| `pfs` | Return the current Finder selection |
+| `cdf` | `cd` to the current Finder directory |
+| `pushdf` | `pushd` to the current Finder directory |
+| `quick-look` | Quick-Look a specified file |
+| `man-preview` | Open a specified man page in Preview app |
+| `showfiles` | Show hidden files |
+| `hidefiles` | Hide the hidden files |
+| `itunes` | DEPRECATED. Use `music` from macOS Catalina on |
+| `music` | Control Apple Music. Use `music -h` for usage details |
+| `spotify` | Control Spotify and search by artist, album, track… |
+| `rmdsstore` | Remove .DS\_Store files recursively in a directory |
diff --git a/plugins/osx/osx.plugin.zsh b/plugins/osx/osx.plugin.zsh
index eb3c4fb7a..03e9c1c8c 100644
--- a/plugins/osx/osx.plugin.zsh
+++ b/plugins/osx/osx.plugin.zsh
@@ -219,7 +219,19 @@ function vncviewer() {
}
# iTunes control function
-function itunes() {
+function itunes music() {
+ local APP_NAME=Music
+
+ autoload is-at-least
+ if is-at-least 10.15 $(sw_vers -productVersion); then
+ if [[ $0 = itunes ]]; then
+ echo >&2 The itunes function name is deprecated. Use \`music\' instead.
+ return 1
+ fi
+ else
+ APP_NAME=iTunes
+ fi
+
local opt=$1
local playlist=$2
shift
@@ -236,7 +248,7 @@ function itunes() {
opt="$opt track"
;;
vol)
- local new_volume volume=$(osascript -e 'tell application "iTunes" to get sound volume')
+ local new_volume volume=$(osascript -e "tell application \"$APP_NAME\" to get sound volume")
if [[ $# -eq 0 ]]; then
echo "Current volume is ${volume}."
return 0
@@ -251,26 +263,26 @@ function itunes() {
opt="set sound volume to ${new_volume}"
;;
playlist)
- # Inspired by: https://gist.github.com/nakajijapan/ac8b45371064ae98ea7f
-if [[ ! -z "$playlist" ]]; then
- osascript -e 'tell application "iTunes"' -e "set new_playlist to \"$playlist\" as string" -e "play playlist new_playlist" -e "end tell" 2>/dev/null;
+ # Inspired by: https://gist.github.com/nakajijapan/ac8b45371064ae98ea7f
+ if [[ ! -z "$playlist" ]]; then
+ osascript -e "tell application \"$APP_NAME\"" -e "set new_playlist to \"$playlist\" as string" -e "play playlist new_playlist" -e "end tell" 2>/dev/null;
if [[ $? -eq 0 ]]; then
opt="play"
else
opt="stop"
fi
- else
- opt="set allPlaylists to (get name of every playlist)"
- fi
- ;;
+ else
+ opt="set allPlaylists to (get name of every playlist)"
+ fi
+ ;;
playing|status)
- local state=`osascript -e 'tell application "iTunes" to player state as string'`
+ local state=`osascript -e "tell application \"$APP_NAME\" to player state as string"`
if [[ "$state" = "playing" ]]; then
- currenttrack=`osascript -e 'tell application "iTunes" to name of current track as string'`
- currentartist=`osascript -e 'tell application "iTunes" to artist of current track as string'`
+ currenttrack=`osascript -e "tell application \"$APP_NAME\" to name of current track as string"`
+ currentartist=`osascript -e "tell application \"$APP_NAME\" to artist of current track as string"`
echo -E "Listening to $fg[yellow]$currenttrack$reset_color by $fg[yellow]$currentartist$reset_color";
else
- echo "iTunes is" $state;
+ echo "$APP_NAME is" $state;
fi
return 0
;;
@@ -284,7 +296,7 @@ if [[ ! -z "$playlist" ]]; then
if [[ -n "$state" && ! "$state" =~ "^(on|off|toggle)$" ]]
then
- print "Usage: itunes shuffle [on|off|toggle]. Invalid option."
+ print "Usage: $0 shuffle [on|off|toggle]. Invalid option."
return 1
fi
@@ -305,14 +317,14 @@ EOF
esac
;;
""|-h|--help)
- echo "Usage: itunes
+[![Discord server](https://img.shields.io/discord/642496866407284746)](https://discord.gg/bpXWhnN)
+
Oh My Zsh is an open source, community-driven framework for managing your [zsh](https://www.zsh.org/) configuration.
Sounds boring. Let's try again.
From 4888d4ad1aefc9fa73d3b62500facaa1d97f31d8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Mon, 18 Nov 2019 00:07:06 +0100
Subject: [PATCH 164/302] Add Twitter follow badge to README
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index 713af1e86..2a5ec178a 100644
--- a/README.md
+++ b/README.md
@@ -3,6 +3,7 @@
[![Discord server](https://img.shields.io/discord/642496866407284746)](https://discord.gg/bpXWhnN)
+[![Follow @ohmyzsh](https://img.shields.io/twitter/follow/ohmyzsh?label=Follow+@ohmyzsh&style=flat)](https://twitter.com/intent/follow?screen_name=ohmyzsh)
Oh My Zsh is an open source, community-driven framework for managing your [zsh](https://www.zsh.org/) configuration.
From 26df8a22741ea4bb5264233344e42ce900fd26b6 Mon Sep 17 00:00:00 2001
From: Syphdias
Date: Mon, 18 Nov 2019 20:14:07 +0100
Subject: [PATCH 165/302] git-auto-fetch: stop plugin from asking for ssh-key
passphrase (#8399)
---
plugins/git-auto-fetch/git-auto-fetch.plugin.zsh | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh b/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh
index 56ab86dbe..5c42c21a7 100644
--- a/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh
+++ b/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh
@@ -1,16 +1,17 @@
GIT_AUTO_FETCH_INTERVAL=${GIT_AUTO_FETCH_INTERVAL:=60}
function git-fetch-all {
- (`git rev-parse --is-inside-work-tree 2>/dev/null` &&
- dir=`git rev-parse --git-dir` &&
+ (`command git rev-parse --is-inside-work-tree 2>/dev/null` &&
+ dir=`command git rev-parse --git-dir` &&
[[ ! -f $dir/NO_AUTO_FETCH ]] &&
(( `date +%s` - `date -r $dir/FETCH_LOG +%s 2>/dev/null || echo 0` > $GIT_AUTO_FETCH_INTERVAL )) &&
- git fetch --all 2>/dev/null &>! $dir/FETCH_LOG &)
+ GIT_SSH_COMMAND="command ssh -o BatchMode=yes" \
+ command git fetch --all 2>/dev/null &>! $dir/FETCH_LOG &)
}
function git-auto-fetch {
- `git rev-parse --is-inside-work-tree 2>/dev/null` || return
- guard="`git rev-parse --git-dir`/NO_AUTO_FETCH"
+ `command git rev-parse --is-inside-work-tree 2>/dev/null` || return
+ guard="`command git rev-parse --git-dir`/NO_AUTO_FETCH"
(rm $guard 2>/dev/null &&
echo "${fg_bold[green]}enabled${reset_color}") ||
From 68c4c06283739cc0c7f619172b35544e88921308 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Richard=20P=C3=B6ttler?=
Date: Tue, 19 Nov 2019 17:00:53 +0100
Subject: [PATCH 166/302] extract: add RPM archive support (#8347)
Also more quiet extraction. -D for cpio was not used due to additional
output.
---
plugins/extract/README.md | 1 +
plugins/extract/_extract | 2 +-
plugins/extract/extract.plugin.zsh | 1 +
3 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/plugins/extract/README.md b/plugins/extract/README.md
index 83b878c32..41b6a61f1 100644
--- a/plugins/extract/README.md
+++ b/plugins/extract/README.md
@@ -27,6 +27,7 @@ plugins=(... extract)
| `jar` | Java Archive |
| `lzma` | LZMA archive |
| `rar` | WinRAR archive |
+| `rpm` | RPM package |
| `sublime-package` | Sublime Text package |
| `tar` | Tarball |
| `tar.bz2` | Tarball with bzip2 compression |
diff --git a/plugins/extract/_extract b/plugins/extract/_extract
index 33d49fcc5..0257ce231 100644
--- a/plugins/extract/_extract
+++ b/plugins/extract/_extract
@@ -3,5 +3,5 @@
_arguments \
'(-r --remove)'{-r,--remove}'[Remove archive.]' \
- "*::archive file:_files -g '(#i)*.(7z|Z|apk|aar|bz2|deb|gz|ipsw|jar|lzma|rar|sublime-package|tar|tar.bz2|tar.gz|tar.xz|tar.zma|tbz|tbz2|tgz|tlz|txz|war|whl|xpi|xz|zip)(-.)'" \
+ "*::archive file:_files -g '(#i)*.(7z|Z|apk|aar|bz2|deb|gz|ipsw|jar|lzma|rar|rpm|sublime-package|tar|tar.bz2|tar.gz|tar.xz|tar.zma|tbz|tbz2|tgz|tlz|txz|war|whl|xpi|xz|zip)(-.)'" \
&& return 0
diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh
index d3d847daf..27b9e50f1 100644
--- a/plugins/extract/extract.plugin.zsh
+++ b/plugins/extract/extract.plugin.zsh
@@ -48,6 +48,7 @@ extract() {
(*.z) uncompress "$1" ;;
(*.zip|*.war|*.jar|*.sublime-package|*.ipsw|*.xpi|*.apk|*.aar|*.whl) unzip "$1" -d $extract_dir ;;
(*.rar) unrar x -ad "$1" ;;
+ (*.rpm) mkdir "$extract_dir" && cd "$extract_dir" && rpm2cpio "../$1" | cpio --quiet -id && cd .. ;;
(*.7z) 7za x "$1" ;;
(*.deb)
mkdir -p "$extract_dir/control"
From d4f32e9f3a6471ce689aa8fb5a9f04e8565bcff6 Mon Sep 17 00:00:00 2001
From: Taico Aerts
Date: Tue, 19 Nov 2019 17:03:37 +0100
Subject: [PATCH 167/302] rails: fix rendering issue in README (#8410)
---
plugins/rails/README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/plugins/rails/README.md b/plugins/rails/README.md
index 5549ba18b..ad83fffe8 100644
--- a/plugins/rails/README.md
+++ b/plugins/rails/README.md
@@ -18,7 +18,7 @@ plugins=(... rails)
| `rcs` | `rails console --sandbox` | Test code in a sandbox, without changing any data |
| `rd` | `rails destroy` | Undo a generate operation |
| `rdb` | `rails dbconsole` | Interact with your db from the console |
-| `rgen` | `rails generate` | Generate boilerplate code |
+| `rgen`| `rails generate` | Generate boilerplate code |
| `rgm` | `rails generate migration` | Generate a db migration |
| `rp` | `rails plugin` | Run a Rails plugin command |
| `ru` | `rails runner` | Run Ruby code in the context of Rails |
@@ -44,7 +44,7 @@ plugins=(... rails)
| `rlc` | `rake log:clear` | Clear Rails logs |
| `rn` | `rake notes` | Search for notes (`FIXME`, `TODO`) in code comments |
| `rr` | `rake routes` | List all defined routes |
-| `rrg` | `rake routes | grep` | List and filter the defined routes |
+| `rrg` | `rake routes \| grep` | List and filter the defined routes |
| `rt` | `rake test` | Run Rails tests |
| `rmd` | `rake middleware` | Interact with Rails middlewares |
| `rsts` | `rake stats` | Print code statistics |
From 1ba0af650ac575a7d35b10146d2e7a7b3b2e2ae6 Mon Sep 17 00:00:00 2001
From: Jacob Tomaw
Date: Tue, 19 Nov 2019 12:47:12 -0500
Subject: [PATCH 168/302] Use safer append to hook function arrays (#8406)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Use add-zsh-hook to add functions to hooks. That way they won't be added again
when doing `source ~/.zshrc` multiple times.
Co-authored-by: Marc Cornellà
---
.gitignore | 1 +
lib/termsupport.zsh | 7 ++++---
plugins/alias-finder/alias-finder.plugin.zsh | 5 +++--
plugins/dirhistory/dirhistory.plugin.zsh | 3 ++-
plugins/dirpersist/dirpersist.plugin.zsh | 3 ++-
plugins/git-prompt/git-prompt.plugin.zsh | 7 ++++---
plugins/last-working-dir/last-working-dir.plugin.zsh | 3 ++-
plugins/pipenv/pipenv.plugin.zsh | 3 ++-
plugins/timer/timer.plugin.zsh | 5 +++--
plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh | 5 ++---
themes/pygmalion-virtualenv.zsh-theme | 5 ++---
themes/pygmalion.zsh-theme | 5 ++---
12 files changed, 29 insertions(+), 23 deletions(-)
diff --git a/.gitignore b/.gitignore
index 87a79cdae..251c9dc9f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,4 @@ custom/
# temp files directories
cache/
log/
+*.swp
diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh
index aa14f3f07..f5e367fcb 100644
--- a/lib/termsupport.zsh
+++ b/lib/termsupport.zsh
@@ -75,8 +75,9 @@ function omz_termsupport_preexec {
title '$CMD' '%100>...>$LINE%<<'
}
-precmd_functions+=(omz_termsupport_precmd)
-preexec_functions+=(omz_termsupport_preexec)
+autoload -U add-zsh-hook
+add-zsh-hook precmd omz_termsupport_precmd
+add-zsh-hook preexec omz_termsupport_preexec
# Keep Apple Terminal.app's current working directory updated
@@ -99,7 +100,7 @@ if [[ "$TERM_PROGRAM" == "Apple_Terminal" ]] && [[ -z "$INSIDE_EMACS" ]]; then
}
# Use a precmd hook instead of a chpwd hook to avoid contaminating output
- precmd_functions+=(update_terminalapp_cwd)
+ add-zsh-hook precmd update_terminalapp_cwd
# Run once to get initial cwd set
update_terminalapp_cwd
fi
diff --git a/plugins/alias-finder/alias-finder.plugin.zsh b/plugins/alias-finder/alias-finder.plugin.zsh
index 6b8fa66ce..caee9b5a3 100644
--- a/plugins/alias-finder/alias-finder.plugin.zsh
+++ b/plugins/alias-finder/alias-finder.plugin.zsh
@@ -4,7 +4,7 @@ alias-finder() {
case $i in
-e|--exact) exact=true;;
-l|--longer) longer=true;;
- *)
+ *)
if [[ -z $cmd ]]; then
cmd=$i
else
@@ -43,4 +43,5 @@ preexec_alias-finder() {
fi
}
-preexec_functions+=(preexec_alias-finder)
+autoload -U add-zsh-hook
+add-zsh-hook preexec preexec_alias-finder
diff --git a/plugins/dirhistory/dirhistory.plugin.zsh b/plugins/dirhistory/dirhistory.plugin.zsh
index 239915e48..35c43d76a 100644
--- a/plugins/dirhistory/dirhistory.plugin.zsh
+++ b/plugins/dirhistory/dirhistory.plugin.zsh
@@ -53,7 +53,8 @@ function push_future() {
}
# Called by zsh when directory changes
-chpwd_functions+=(chpwd_dirhistory)
+autoload -U add-zsh-hook
+add-zsh-hook chpwd chpwd_dirhistory
function chpwd_dirhistory() {
push_past $PWD
# If DIRHISTORY_CD is not set...
diff --git a/plugins/dirpersist/dirpersist.plugin.zsh b/plugins/dirpersist/dirpersist.plugin.zsh
index 616e2c3c6..daadc3850 100644
--- a/plugins/dirpersist/dirpersist.plugin.zsh
+++ b/plugins/dirpersist/dirpersist.plugin.zsh
@@ -11,7 +11,8 @@ if [[ -f ${dirstack_file} ]] && [[ ${#dirstack[*]} -eq 0 ]] ; then
[[ -d $dirstack[1] ]] && cd $dirstack[1] && cd $OLDPWD
fi
-chpwd_functions+=(chpwd_dirpersist)
+autoload -U add-zsh-hook
+add-zsh-hook chpwd chpwd_dirpersist
chpwd_dirpersist() {
if (( $DIRSTACKSIZE <= 0 )) || [[ -z $dirstack_file ]]; then return; fi
local -ax my_stack
diff --git a/plugins/git-prompt/git-prompt.plugin.zsh b/plugins/git-prompt/git-prompt.plugin.zsh
index 76ac2e62b..da674af98 100644
--- a/plugins/git-prompt/git-prompt.plugin.zsh
+++ b/plugins/git-prompt/git-prompt.plugin.zsh
@@ -20,9 +20,10 @@ function precmd_update_git_vars() {
fi
}
-chpwd_functions+=(chpwd_update_git_vars)
-precmd_functions+=(precmd_update_git_vars)
-preexec_functions+=(preexec_update_git_vars)
+autoload -U add-zsh-hook
+add-zsh-hook chpwd chpwd_update_git_vars
+add-zsh-hook precmd precmd_update_git_vars
+add-zsh-hook preexec preexec_update_git_vars
## Function definitions
diff --git a/plugins/last-working-dir/last-working-dir.plugin.zsh b/plugins/last-working-dir/last-working-dir.plugin.zsh
index 53bb19e46..fd21705ae 100644
--- a/plugins/last-working-dir/last-working-dir.plugin.zsh
+++ b/plugins/last-working-dir/last-working-dir.plugin.zsh
@@ -2,7 +2,8 @@
typeset -g ZSH_LAST_WORKING_DIRECTORY
# Updates the last directory once directory is changed
-chpwd_functions+=(chpwd_last_working_dir)
+autoload -U add-zsh-hook
+add-zsh-hook chpwd chpwd_last_working_dir
chpwd_last_working_dir() {
if [ "$ZSH_SUBSHELL" = 0 ]; then
local cache_file="$ZSH_CACHE_DIR/last-working-dir"
diff --git a/plugins/pipenv/pipenv.plugin.zsh b/plugins/pipenv/pipenv.plugin.zsh
index 0a5dc56a4..ec41c3e02 100644
--- a/plugins/pipenv/pipenv.plugin.zsh
+++ b/plugins/pipenv/pipenv.plugin.zsh
@@ -23,7 +23,8 @@ _togglePipenvShell() {
fi
fi
}
-chpwd_functions+=(_togglePipenvShell)
+autoload -U add-zsh-hook
+add-zsh-hook chpwd _togglePipenvShell
# Aliases
alias pch="pipenv check"
diff --git a/plugins/timer/timer.plugin.zsh b/plugins/timer/timer.plugin.zsh
index 231134e7d..728377c5c 100644
--- a/plugins/timer/timer.plugin.zsh
+++ b/plugins/timer/timer.plugin.zsh
@@ -25,5 +25,6 @@ __timer_display_timer_precmd() {
fi
}
-preexec_functions+=(__timer_save_time_preexec)
-precmd_functions+=(__timer_display_timer_precmd)
+autoload -U add-zsh-hook
+add-zsh-hook preexec __timer_save_time_preexec
+add-zsh-hook precmd __timer_display_timer_precmd
diff --git a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh
index e27c6bb76..2a4b43189 100644
--- a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh
+++ b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh
@@ -96,7 +96,6 @@ if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then
# Append workon_cwd to the chpwd_functions array, so it will be called on cd
# http://zsh.sourceforge.net/Doc/Release/Functions.html
- if ! (( $chpwd_functions[(I)workon_cwd] )); then
- chpwd_functions+=(workon_cwd)
- fi
+ autoload -U add-zsh-hook
+ add-zsh-hook chpwd workon_cwd
fi
diff --git a/themes/pygmalion-virtualenv.zsh-theme b/themes/pygmalion-virtualenv.zsh-theme
index ea28e125a..605e3d10c 100644
--- a/themes/pygmalion-virtualenv.zsh-theme
+++ b/themes/pygmalion-virtualenv.zsh-theme
@@ -28,7 +28,8 @@ prompt_setup_pygmalion(){
base_prompt_nocolor=$(echo "$base_prompt" | perl -pe "s/%\{[^}]+\}//g")
post_prompt_nocolor=$(echo "$post_prompt" | perl -pe "s/%\{[^}]+\}//g")
- precmd_functions+=(prompt_pygmalion_precmd)
+ autoload -U add-zsh-hook
+ add-zsh-hook precmd prompt_pygmalion_precmd
}
prompt_pygmalion_precmd(){
@@ -46,5 +47,3 @@ prompt_pygmalion_precmd(){
}
prompt_setup_pygmalion
-
-
diff --git a/themes/pygmalion.zsh-theme b/themes/pygmalion.zsh-theme
index 5f5fe7f9a..cd773e4a4 100644
--- a/themes/pygmalion.zsh-theme
+++ b/themes/pygmalion.zsh-theme
@@ -12,7 +12,8 @@ prompt_setup_pygmalion(){
base_prompt_nocolor=$(echo "$base_prompt" | perl -pe "s/%\{[^}]+\}//g")
post_prompt_nocolor=$(echo "$post_prompt" | perl -pe "s/%\{[^}]+\}//g")
- precmd_functions+=(prompt_pygmalion_precmd)
+ autoload -U add-zsh-hook
+ add-zsh-hook precmd prompt_pygmalion_precmd
}
prompt_pygmalion_precmd(){
@@ -30,5 +31,3 @@ prompt_pygmalion_precmd(){
}
prompt_setup_pygmalion
-
-
From c130aadb6a66aa680a322c08d87ad773316f713d Mon Sep 17 00:00:00 2001
From: Jacob Tomaw
Date: Tue, 19 Nov 2019 13:44:00 -0500
Subject: [PATCH 169/302] Replace "restart shell" documentation "exec zsh"
(#8411)
Running `source ~/.zshrc` can have side effects, it's better to reload the whole
zsh session with `exec zsh`.
---
plugins/catimg/README.md | 4 ++--
plugins/dircycle/README.md | 4 ++--
plugins/encode64/README.md | 4 ++--
plugins/lol/README.md | 4 ++--
plugins/sudo/README.md | 4 ++--
5 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/plugins/catimg/README.md b/plugins/catimg/README.md
index 2fc28a1c6..42b59a62c 100644
--- a/plugins/catimg/README.md
+++ b/plugins/catimg/README.md
@@ -17,10 +17,10 @@ Plugin for displaying images on the terminal using the the `catimg.sh` script pr
)
```
-2. Reload the source file or restart your Terminal session:
+2. Restart the shell or restart your Terminal session:
```console
- $ source ~/.zshrc
+ $ exec zsh
$
```
diff --git a/plugins/dircycle/README.md b/plugins/dircycle/README.md
index 3ac162f05..3c9b3a96f 100644
--- a/plugins/dircycle/README.md
+++ b/plugins/dircycle/README.md
@@ -15,10 +15,10 @@ This plugin enables directory navigation similar to using back and forward on br
)
```
-2. Reload the source file or restart your Terminal session:
+2. Restart the shell or restart your Terminal session:
```console
- $ source ~/.zshrc
+ $ exec zsh
$
```
diff --git a/plugins/encode64/README.md b/plugins/encode64/README.md
index 9850da85f..66fc7cba4 100644
--- a/plugins/encode64/README.md
+++ b/plugins/encode64/README.md
@@ -20,10 +20,10 @@ Alias plugin for encoding or decoding using `base64` command
)
```
-2. Restart your terminal session or reload configuration by running:
+2. Restart your terminal session or restart the shell:
```sh
- source ~/.zshrc
+ exec zsh
```
## Usage and examples
diff --git a/plugins/lol/README.md b/plugins/lol/README.md
index b0e54f575..8fba7b713 100644
--- a/plugins/lol/README.md
+++ b/plugins/lol/README.md
@@ -13,10 +13,10 @@ Plugin for adding catspeak aliases, because why not
)
```
-2. Reload the source file or restart your Terminal session:
+2. Restart your terminal session or restart the shell:
```console
- $ source ~/.zshrc
+ $ exec zsh
$
```
diff --git a/plugins/sudo/README.md b/plugins/sudo/README.md
index ebfdfd10d..25eb85829 100644
--- a/plugins/sudo/README.md
+++ b/plugins/sudo/README.md
@@ -13,10 +13,10 @@ Easily prefix your current or previous commands with `sudo` by pressing esc
)
```
-2. Reload the source file or restart your Terminal session:
+2. Restart your shell or restart your Terminal session:
```console
- $ source ~/.zshrc
+ $ exec zsh
$
```
From 2e88a21f6996ab199936fc80e974e4ff7f572b9a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?H=C3=A5vard=20Moen?=
Date: Wed, 20 Nov 2019 17:47:46 +0100
Subject: [PATCH 170/302] terraform: update completion (#8396)
---
plugins/terraform/_terraform | 95 +++++++++++++++++++++++++++++++++---
1 file changed, 89 insertions(+), 6 deletions(-)
diff --git a/plugins/terraform/_terraform b/plugins/terraform/_terraform
index 1d1315a8a..5b3655801 100644
--- a/plugins/terraform/_terraform
+++ b/plugins/terraform/_terraform
@@ -1,6 +1,6 @@
#compdef terraform
-local -a _terraform_cmds
+local -a _terraform_cmds opt_args
_terraform_cmds=(
'apply:Builds or changes infrastructure'
'console:Interactive console for Terraform interpolations'
@@ -16,13 +16,21 @@ _terraform_cmds=(
'push:Upload this Terraform module to Atlas to run'
'refresh:Update local state file against real resources'
'show:Inspect Terraform state or plan'
+ 'state:Advanced state management'
'taint:Manually mark a resource for recreation'
'untaint:Manually unmark a resource as tainted'
'validate:Validates the Terraform files'
'version:Prints the Terraform version'
'workspace:Workspace management'
+ '0.12upgrade:Rewrites pre-0.12 module source code for v0.12'
)
+__012upgrade() {
+ _arguments \
+ '-yes[Skip the initial introduction messages and interactive confirmation. This can be used to run this command in batch from a script.]' \
+ '-force[ Override the heuristic that attempts to detect if a configuration is already written for v0.12 or later. Some of the transformations made by this command are not idempotent, so re-running against the same module may change the meanings expressions in the module.]'
+}
+
__apply() {
_arguments \
'-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]' \
@@ -35,7 +43,7 @@ __apply() {
'-refresh=[(true) Update state prior to checking for differences. This has no effect if a plan file is given to apply.]' \
'-state=[(terraform.tfstate) Path to read and save state (unless state-out is specified).]' \
'-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]' \
- '-target=[(resource) Resource to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]' \
+ '-target=[(resource) Resource to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]:target:__statelist' \
'-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \
'-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]'
}
@@ -59,7 +67,7 @@ __destroy() {
'-refresh=[(true) Update state prior to checking for differences. This has no effect if a plan file is given to apply.]' \
'-state=[(terraform.tfstate) Path to read and save state (unless state-out is specified).]' \
'-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]' \
- '-target=[(resource) Resource to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]' \
+ '-target=[(resource) Resource to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]:target:__statelist' \
'-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \
'-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]'
}
@@ -140,7 +148,7 @@ __plan() {
'-parallelism=[(10) Limit the number of concurrent operations.]' \
'-refresh=[(true) Update state prior to checking for differences.]' \
'-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default it will use the state "terraform.tfstate" if it exists.]' \
- '-target=[(resource) Resource to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]' \
+ '-target=[(resource) Resource to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]:target:__statelist' \
'-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \
'-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]' \
}
@@ -172,7 +180,7 @@ __refresh() {
'-no-color[If specified, output will not contain any color.]' \
'-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]' \
'-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]' \
- '-target=[(resource) A Resource Address to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]' \
+ '-target=[(resource) A Resource Address to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]:target:__statelist' \
'-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \
'-var-file=[(path) Set variables in the Terraform configuration from a file. If "terraform.tfvars" is present, it will be automatically loaded if this flag is not specified.]'
}
@@ -183,6 +191,70 @@ __show() {
'-no-color[If specified, output will not contain any color.]'
}
+__state() {
+ local -a __state_cmds
+ __state_cmds=(
+ 'list:List resources in the state'
+ 'mv:Move an item in the state'
+ 'pull:Pull current state and output to stdout'
+ 'push:Update remote state from a local state file'
+ 'rm:Remove instances from the state'
+ 'show:Show a resource in the state'
+ )
+ _describe -t state "state commands" __state_cmds
+}
+
+__state_list() {
+ _arguments \
+ '-state=[(path) Path to a Terraform state file to use to look up Terraform-managed resources. By default it will use the state "terraform.tfstate" if it exists.]' \
+ '-id=[(id) Filters the results to include only instances whose resource types have an attribute named id whose value equals the given id string.]' \
+ "*:address:__statelist"
+}
+
+__state_mv() {
+ _arguments \
+ "-dry-run[If set, prints out what would've been moved but doesn't actually move anything.]" \
+ "-backup=[(path) Path where Terraform should write the backup for the original state. This can't be disabled. If not set, Terraform will write it to the same path as the statefile with a \".backup\" extension.]:file:_files" \
+ "-backup-out=[(path) Path where Terraform should write the backup for the destination state. This can't be disabled. If not set, Terraform will write it to the same path as the destination state file with a backup extension. This only needs to be specified if -state-out is set to a different path than -state.]:file:_files" \
+ "-lock=[(true|false) Lock the state files when locking is supported.]:lock:(true false)" \
+ "-lock-timeout=[(seconds) Duration to retry a state lock.]" \
+ '-state=[(path) Path to the source state file. Defaults to the configured backend, or "terraform.tfstate"]:file:_files' \
+ "-state-out=[(path) Path to the destination state file to write to. If this isn't specified, the source state file will be used. This can be a new or existing path.]:file:_files" \
+ "::" \
+ ":source:__statelist" \
+ ":destination: "
+}
+
+__state_push() {
+ _arguments \
+ "-force[Write the state even if lineages don't match or the remote serial is higher.]" \
+ '-lock=[(true|false) Lock the state file when locking is supported.]:lock:(true false)' \
+ "-lock-timeout=[(seconds) Duration to retry a state lock.]" \
+ "::" \
+ ":destination:_files"
+}
+
+__state_rm() {
+ _arguments \
+ "-dry-run[If set, prints out what would've been removed but doesn't actually remove anything.]" \
+ "-backup=[(path) Path where Terraform should write the backup for the original state.]:file:_files" \
+ "-lock=[(true|false) Lock the state files when locking is supported.]:lock:(true false)" \
+ "-lock-timeout=[(seconds) Duration to retry a state lock.]" \
+ '-state=[(path) Path to the state file to update. Defaults to the current workspace state.]:file:_files' \
+ "*:address:__statelist"
+}
+
+
+__state_show() {
+ _arguments \
+ '-state=[(path) Path to a Terraform state file to use to look up Terraform-managed resources. By default it will use the state "terraform.tfstate" if it exists.]' \
+ "*:address:__statelist"
+}
+
+__statelist() {
+ compadd $(terraform state list $opt_args[-state])
+}
+
__taint() {
_arguments \
'-allow-missing[If specified, the command will succeed (exit code 0) even if the resource is missing.]' \
@@ -192,7 +264,8 @@ __taint() {
'-module=[(path) The module path where the resource lives. By default this will be root. Child modules can be specified by names. Ex. "consul" or "consul.vpc" (nested modules).]' \
'-no-color[If specified, output will not contain any color.]' \
'-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]' \
- '-state-out=[(path) Path to write updated state file. By default, the "-state" path will be used.]'
+ '-state-out=[(path) Path to write updated state file. By default, the "-state" path will be used.]' \
+ "*:address:__statelist"
}
__untaint() {
@@ -236,6 +309,8 @@ fi
local -a _command_args
case "$words[1]" in
+ 0.12upgrade)
+ __012upgrade ;;
apply)
__apply ;;
console)
@@ -264,6 +339,14 @@ case "$words[1]" in
__refresh ;;
show)
__show ;;
+ state)
+ test $CURRENT -lt 3 && __state
+ [[ $words[2] = "list" ]] && __state_list
+ [[ $words[2] = "mv" ]] && __state_mv
+ [[ $words[2] = "push" ]] && __state_push
+ [[ $words[2] = "rm" ]] && __state_rm
+ [[ $words[2] = "show" ]] && __state_show
+ ;;
taint)
__taint ;;
untaint)
From 9b5aebac2be65c4752f727b2b558acdf96077475 Mon Sep 17 00:00:00 2001
From: Jacob Tomaw
Date: Wed, 20 Nov 2019 11:53:45 -0500
Subject: [PATCH 171/302] colorize: update Pygments download link (#8407)
---
plugins/colorize/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/colorize/README.md b/plugins/colorize/README.md
index d1f878e62..32dc97b6e 100644
--- a/plugins/colorize/README.md
+++ b/plugins/colorize/README.md
@@ -32,4 +32,4 @@ In the latter form, the file contents will be concatenated and presented by less
## Requirements
-You have to install Pygments first: [pygments.org](http://pygments.org/download/)
+You have to install Pygments first: [pygments.org](http://pygments.org/download.html)
From bb10c979ef22b2c5242dc0348b3ea3a1bf9b731d Mon Sep 17 00:00:00 2001
From: Jason Pickens
Date: Wed, 20 Nov 2019 19:05:16 +0200
Subject: [PATCH 172/302] jenv: only add to PATH if not already on it (#8414)
This prevents the jenv plugin from messing up the PATH and putting `user/local/bin` back at the front of the PATH, undoing any careful setup done before enabling this plugin.
---
plugins/jenv/jenv.plugin.zsh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/jenv/jenv.plugin.zsh b/plugins/jenv/jenv.plugin.zsh
index 2eda8037b..b85906a0b 100644
--- a/plugins/jenv/jenv.plugin.zsh
+++ b/plugins/jenv/jenv.plugin.zsh
@@ -15,7 +15,7 @@ if [[ $FOUND_JENV -eq 0 ]]; then
fi
if [[ $FOUND_JENV -eq 1 ]]; then
- export PATH="${jenvdir}/bin:$PATH"
+ (( $+commands[jenv] )) || export PATH="${jenvdir}/bin:$PATH"
eval "$(jenv init - zsh)"
function jenv_prompt_info() { jenv version-name 2>/dev/null }
From b80b1a1e8b30e5f2a7c4977019cf56e72c434037 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Thu, 21 Nov 2019 02:26:18 +0100
Subject: [PATCH 173/302] Actions to take after repository migration is
complete (#8394)
* Change project URL from robbyrussell to ohmyzsh org
* Update git remote to use ohmyzsh org repository
---
CONTRIBUTING.md | 10 ++++-----
LICENSE.txt | 2 +-
README.md | 26 +++++++++++-----------
plugins/bundler/README.md | 2 +-
plugins/emotty/README.md | 2 +-
plugins/fedora/README.md | 2 +-
plugins/gitfast/README.md | 2 +-
plugins/go/README.md | 2 +-
plugins/history-substring-search/README.md | 2 +-
plugins/meteor/README.md | 2 +-
plugins/mvn/README.md | 2 +-
plugins/ng/README.md | 2 +-
plugins/percol/README.md | 4 ++--
plugins/rake/README.md | 2 +-
plugins/thefuck/README.md | 2 +-
plugins/urltools/README.md | 8 +++----
plugins/wd/README.md | 6 ++---
templates/zshrc.zsh-template | 2 +-
themes/gallifrey.zsh-theme | 2 +-
tools/install.sh | 10 ++++-----
tools/upgrade.sh | 6 +++++
21 files changed, 52 insertions(+), 46 deletions(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index f575157c2..be67e93b0 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -31,7 +31,7 @@ your problem.
If you find one, comment on it so we can know there are more people experiencing it.
-If not, look at the [Troubleshooting](https://github.com/robbyrussell/oh-my-zsh/wiki/Troubleshooting)
+If not, look at the [Troubleshooting](https://github.com/ohmyzsh/ohmyzsh/wiki/Troubleshooting)
page for instructions on how to gather data to better debug your problem.
Then, you can go ahead and create an issue with as much detail as you can provide.
@@ -62,7 +62,7 @@ maintainers) by mentioning their GitHub handle (starting with `@`) in your messa
You should be familiar with the basics of
[contributing on GitHub](https://help.github.com/articles/using-pull-requests) and have a fork
-[properly set up](https://github.com/robbyrussell/oh-my-zsh/wiki/Contribution-Technical-Practices).
+[properly set up](https://github.com/ohmyzsh/ohmyzsh/wiki/Contribution-Technical-Practices).
You MUST always create PRs with _a dedicated branch_ based on the latest upstream tree.
@@ -85,7 +85,7 @@ maintainers) by mentioning their GitHub handle (starting with `@`) in your messa
### You have an addition
-Please [do not](https://github.com/robbyrussell/oh-my-zsh/wiki/Themes#dont-send-us-your-theme-for-now)
+Please [do not](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes#dont-send-us-your-theme-for-now)
send themes for now.
Please be so kind as to [search](#use-the-search-luke) for any pending, merged or rejected Pull Requests
@@ -109,7 +109,7 @@ to help you check whether a similar contribution to yours already exists. Please
before making any contribution, it avoids duplicates and eases maintenance. Trust me,
that works 90% of the time.
-You can also take a look at the [FAQ](https://github.com/robbyrussell/oh-my-zsh/wiki/FAQ)
+You can also take a look at the [FAQ](https://github.com/ohmyzsh/ohmyzsh/wiki/FAQ)
to be sure your contribution has not already come up.
If all fails, your thing has probably not been reported yet, so you can go ahead
@@ -121,5 +121,5 @@ and [create an issue](#reporting-issues) or [submit a PR](#submitting-pull-reque
Very nice!! :)
-Please have a look at the [Volunteer](https://github.com/robbyrussell/oh-my-zsh/wiki/Volunteers)
+Please have a look at the [Volunteer](https://github.com/ohmyzsh/ohmyzsh/wiki/Volunteers)
page for instructions on where to start and more.
diff --git a/LICENSE.txt b/LICENSE.txt
index eb9978a7a..7431907a6 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2009-2019 Robby Russell and contributors (https://github.com/robbyrussell/oh-my-zsh/contributors)
+Copyright (c) 2009-2019 Robby Russell and contributors (https://github.com/ohmyzsh/ohmyzsh/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
diff --git a/README.md b/README.md
index 2a5ec178a..ac4b3879c 100644
--- a/README.md
+++ b/README.md
@@ -22,7 +22,7 @@ To learn more, visit [ohmyz.sh](https://ohmyz.sh) and follow [@ohmyzsh](https://
### Prerequisites
* A Unix-like operating system: macOS, Linux, BSD. On Windows: WSL is preferred, but cygwin or msys also mostly work.
-* [Zsh](https://www.zsh.org) should be installed (v4.3.9 or more recent). If not pre-installed (run `zsh --version` to confirm), check the following instructions here: [Installing ZSH](https://github.com/robbyrussell/oh-my-zsh/wiki/Installing-ZSH)
+* [Zsh](https://www.zsh.org) should be installed (v4.3.9 or more recent). If not pre-installed (run `zsh --version` to confirm), check the following instructions here: [Installing ZSH](https://github.com/ohmyzsh/ohmyzsh/wiki/Installing-ZSH)
* `curl` or `wget` should be installed
* `git` should be installed
@@ -33,13 +33,13 @@ Oh My Zsh is installed by running one of the following commands in your terminal
#### via curl
```shell
-sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
+sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
```
#### via wget
```shell
-sh -c "$(wget -O- https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
+sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
```
#### Manual inspection
@@ -49,7 +49,7 @@ that by downloading the install script first, looking through it so everything l
then running it:
```shell
-curl -Lo install.sh https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh
+curl -Lo install.sh https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh
sh install.sh
```
@@ -57,7 +57,7 @@ sh install.sh
### Plugins
-Oh My Zsh comes with a shitload of plugins to take advantage of. You can take a look in the [plugins](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins) directory and/or the [wiki](https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins) to see what's currently available.
+Oh My Zsh comes with a shitload of plugins to take advantage of. You can take a look in the [plugins](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins) directory and/or the [wiki](https://github.com/ohmyzsh/ohmyzsh/wiki/Plugins) to see what's currently available.
#### Enabling Plugins
@@ -89,7 +89,7 @@ Most plugins (should! we're working on this) include a __README__, which documen
### Themes
-We'll admit it. Early in the Oh My Zsh world, we may have gotten a bit too theme happy. We have over one hundred themes now bundled. Most of them have [screenshots](https://github.com/robbyrussell/oh-my-zsh/wiki/Themes) on the wiki. Check them out!
+We'll admit it. Early in the Oh My Zsh world, we may have gotten a bit too theme happy. We have over one hundred themes now bundled. Most of them have [screenshots](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes) on the wiki. Check them out!
#### Selecting a Theme
@@ -105,7 +105,7 @@ To use a different theme, simply change the value to match the name of your desi
```shell
ZSH_THEME="agnoster" # (this is one of the fancy ones)
-# see https://github.com/robbyrussell/oh-my-zsh/wiki/Themes#agnoster
+# see https://github.com/ohmyzsh/ohmyzsh/wiki/Themes#agnoster
```
_Note: many themes require installing the [Powerline Fonts](https://github.com/powerline/fonts) in order to render properly._
@@ -114,7 +114,7 @@ Open up a new terminal window and your prompt should look something like this:
![Agnoster theme](https://cloud.githubusercontent.com/assets/2618447/6316862/70f58fb6-ba03-11e4-82c9-c083bf9a6574.png)
-In case you did not find a suitable theme for your needs, please have a look at the wiki for [more of them](https://github.com/robbyrussell/oh-my-zsh/wiki/External-themes).
+In case you did not find a suitable theme for your needs, please have a look at the wiki for [more of them](https://github.com/ohmyzsh/ohmyzsh/wiki/External-themes).
If you're feeling feisty, you can let the computer select one randomly for you each time you open a new terminal window.
@@ -160,14 +160,14 @@ flag `--unattended` to the `install.sh` script. This will have the effect of not
the default shell, and also won't run `zsh` when the installation has finished.
```shell
-sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" "" --unattended
+sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
```
#### Installing from a forked repository
The install script also accepts these variables to allow installation of a different repository:
-- `REPO` (default: `robbyrussell/oh-my-zsh`): this takes the form of `owner/repository`. If you set
+- `REPO` (default: `ohmyzsh/ohmyzsh`): this takes the form of `owner/repository`. If you set
this variable, the installer will look for a repository at `https://github.com/{owner}/{repository}`.
- `REMOTE` (default: `https://github.com/${REPO}.git`): this is the full URL of the git repository
@@ -191,7 +191,7 @@ REPO=apjanke/oh-my-zsh BRANCH=edge sh install.sh
##### 1. Clone the repository:
```shell
-git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
+git clone https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh
```
##### 2. *Optionally*, backup your existing `~/.zshrc` file:
@@ -273,13 +273,13 @@ Before you participate in our delightful community, please read the [code of con
I'm far from being a [Zsh](https://www.zsh.org/) expert and suspect there are many ways to improve – if you have ideas on how to make the configuration easier to maintain (and faster), don't hesitate to fork and send pull requests!
-We also need people to test out pull-requests. So take a look through [the open issues](https://github.com/robbyrussell/oh-my-zsh/issues) and help where you can.
+We also need people to test out pull-requests. So take a look through [the open issues](https://github.com/ohmyzsh/ohmyzsh/issues) and help where you can.
See [Contributing](CONTRIBUTING.md) for more details.
### Do NOT send us themes
-We have (more than) enough themes for the time being. Please add your theme to the [external themes](https://github.com/robbyrussell/oh-my-zsh/wiki/External-themes) wiki page.
+We have (more than) enough themes for the time being. Please add your theme to the [external themes](https://github.com/ohmyzsh/ohmyzsh/wiki/External-themes) wiki page.
## Contributors
diff --git a/plugins/bundler/README.md b/plugins/bundler/README.md
index a7d40cd0a..9f211b02f 100644
--- a/plugins/bundler/README.md
+++ b/plugins/bundler/README.md
@@ -42,7 +42,7 @@ This will exclude the `foreman` and `spin` gems (i.e. their executable) from bei
## Excluded gems
-These gems should not be called with `bundle exec`. Please see [issue #2923](https://github.com/robbyrussell/oh-my-zsh/pull/2923) on GitHub for clarification.
+These gems should not be called with `bundle exec`. Please see [issue #2923](https://github.com/ohmyzsh/ohmyzsh/pull/2923) on GitHub for clarification.
`berks`
`foreman`
diff --git a/plugins/emotty/README.md b/plugins/emotty/README.md
index 2cfbe120c..ee571705a 100644
--- a/plugins/emotty/README.md
+++ b/plugins/emotty/README.md
@@ -8,7 +8,7 @@ To use it, add emotty to the plugins array in your zshrc file:
plugins=(... emotty)
```
-**NOTE:** it requires the [emoji plugin](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/emoji).
+**NOTE:** it requires the [emoji plugin](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/emoji).
## Usage
diff --git a/plugins/fedora/README.md b/plugins/fedora/README.md
index 6594799b3..85d8d7dea 100644
--- a/plugins/fedora/README.md
+++ b/plugins/fedora/README.md
@@ -1 +1 @@
-The fedora plugin is deprecated. Use the [dnf plugin](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/dnf) instead.
+The fedora plugin is deprecated. Use the [dnf plugin](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/dnf) instead.
diff --git a/plugins/gitfast/README.md b/plugins/gitfast/README.md
index 84e35d77c..23db5393b 100644
--- a/plugins/gitfast/README.md
+++ b/plugins/gitfast/README.md
@@ -11,5 +11,5 @@ plugins=(... gitfast)
## Aliases
An earlier version of the plugin also loaded the git plugin. If you want to keep those
-aliases enable the [git plugin](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/git)
+aliases enable the [git plugin](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/git)
as well.
diff --git a/plugins/go/README.md b/plugins/go/README.md
index 6ce6f4ee2..bf43b9feb 100644
--- a/plugins/go/README.md
+++ b/plugins/go/README.md
@@ -1 +1 @@
-The go plugin is deprecated. Use the [golang plugin](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/golang) instead.
+The go plugin is deprecated. Use the [golang plugin](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/golang) instead.
diff --git a/plugins/history-substring-search/README.md b/plugins/history-substring-search/README.md
index 7fb0fa0b6..0ffb21351 100644
--- a/plugins/history-substring-search/README.md
+++ b/plugins/history-substring-search/README.md
@@ -9,7 +9,7 @@ You can also use K and J in VI mode or ^P and ^N in EMACS mode for the same.
[1]: https://fishshell.com
[2]: https://www.zsh.org/mla/users/2009/msg00818.html
[3]: https://sourceforge.net/projects/fizsh/
-[4]: https://github.com/robbyrussell/oh-my-zsh/pull/215
+[4]: https://github.com/ohmyzsh/ohmyzsh/pull/215
[5]: https://github.com/zsh-users/zsh-history-substring-search
[6]: https://github.com/zsh-users/zsh-syntax-highlighting
diff --git a/plugins/meteor/README.md b/plugins/meteor/README.md
index 4bee87f8f..187a45a62 100644
--- a/plugins/meteor/README.md
+++ b/plugins/meteor/README.md
@@ -1,6 +1,6 @@
## Introduction
-The [meteor plugin](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/meteor) provides many
+The [meteor plugin](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/meteor) provides many
[useful aliases](#aliases) as well as completion for the `meteor` command.
Enable it by adding `meteor` to the plugins array in your zshrc file:
diff --git a/plugins/mvn/README.md b/plugins/mvn/README.md
index 88f5be8ba..3bbba5b4f 100644
--- a/plugins/mvn/README.md
+++ b/plugins/mvn/README.md
@@ -55,4 +55,4 @@ has colored output, so this function will be soon removed from the plugin.
### Known bugs
It has a bug where it will swallow mvn prompts for user input, _e.g._ when using
-`archetype:generate`. See [#5052](https://github.com/robbyrussell/oh-my-zsh/issues/5052).
+`archetype:generate`. See [#5052](https://github.com/ohmyzsh/ohmyzsh/issues/5052).
diff --git a/plugins/ng/README.md b/plugins/ng/README.md
index 86ad64041..94a450c18 100644
--- a/plugins/ng/README.md
+++ b/plugins/ng/README.md
@@ -1,6 +1,6 @@
## NG Plugin
-This [ng plugin](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/ng)
+This [ng plugin](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/ng)
adds completion support for Angular's CLI (named ng).
Ng is hosted on [ng home](https://github.com/catull/angular-cli)
diff --git a/plugins/percol/README.md b/plugins/percol/README.md
index b262e414e..ec5de4f86 100644
--- a/plugins/percol/README.md
+++ b/plugins/percol/README.md
@@ -1,6 +1,6 @@
## percol
-Provides some useful function to make [percol](https://github.com/mooz/percol) work with zsh history and [jump plugin](https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/jump/jump.plugin.zsh)
+Provides some useful function to make [percol](https://github.com/mooz/percol) work with zsh history and [jump plugin](https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/jump/jump.plugin.zsh)
### Requirements
@@ -8,7 +8,7 @@ Provides some useful function to make [percol](https://github.com/mooz/percol) w
pip install percol
```
-And [jump](https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/jump/jump.plugin.zsh) for `oh-my-zsh` is a optional requirement.
+And [jump](https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/jump/jump.plugin.zsh) for `oh-my-zsh` is a optional requirement.
### Usage
diff --git a/plugins/rake/README.md b/plugins/rake/README.md
index e235bd91a..e888c0785 100644
--- a/plugins/rake/README.md
+++ b/plugins/rake/README.md
@@ -34,4 +34,4 @@ The plugin also aliases `rake` to [`jimweirich`](https://github.com/jimweirich),
and big time contributor to the Ruby open source community. He passed away in 2014:
> Thank you Jim for everything you contributed to the Ruby and open source community
-> over the years. We will miss you dearly. — [**@robbyrussell**](https://github.com/robbyrussell/oh-my-zsh/commit/598a9c6f990756386517d66b6bcf77e53791e905)
+> over the years. We will miss you dearly. — [**@robbyrussell**](https://github.com/ohmyzsh/ohmyzsh/commit/598a9c6f990756386517d66b6bcf77e53791e905)
diff --git a/plugins/thefuck/README.md b/plugins/thefuck/README.md
index a9b7550d7..bd407b316 100644
--- a/plugins/thefuck/README.md
+++ b/plugins/thefuck/README.md
@@ -6,4 +6,4 @@
Press `ESC` twice to correct previous console command.
## Notes
-`Esc`-`Esc` key binding conflicts with [sudo](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/sudo) plugin.
+`Esc`-`Esc` key binding conflicts with [sudo](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/sudo) plugin.
diff --git a/plugins/urltools/README.md b/plugins/urltools/README.md
index 548301c72..29c371070 100644
--- a/plugins/urltools/README.md
+++ b/plugins/urltools/README.md
@@ -21,9 +21,9 @@ Original idea and aliases: [Ruslan Spivak](https://ruslanspivak.wordpress.com/20
## Examples
```zsh
-urlencode 'https://github.com/robbyrussell/oh-my-zsh/search?q=urltools&type=Code'
-# returns https%3A%2F%2Fgithub.com%2Frobbyrussell%2Foh-my-zsh%2Fsearch%3Fq%3Durltools%26type%3DCode
+urlencode 'https://github.com/ohmyzsh/ohmyzsh/search?q=urltools&type=Code'
+# returns https%3A%2F%2Fgithub.com%2Fohmyzsh%2Fohmyzsh%2Fsearch%3Fq%3Durltools%26type%3DCode
-urldecode 'https%3A%2F%2Fgithub.com%2Frobbyrussell%2Foh-my-zsh%2Fsearch%3Fq%3Durltools%26type%3DCode'
-# returns https://github.com/robbyrussell/oh-my-zsh/search?q=urltools&type=Code
+urldecode 'https%3A%2F%2Fgithub.com%2Fohmyzsh%2Fohmyzsh%2Fsearch%3Fq%3Durltools%26type%3DCode'
+# returns https://github.com/ohmyzsh/ohmyzsh/search?q=urltools&type=Code
```
diff --git a/plugins/wd/README.md b/plugins/wd/README.md
index b1deeffd5..91d5d0ae7 100644
--- a/plugins/wd/README.md
+++ b/plugins/wd/README.md
@@ -13,7 +13,7 @@ wd
### oh-my-zsh
-`wd` comes bundled with [oh-my-zshell](https://github.com/robbyrussell/oh-my-zsh)!
+`wd` comes bundled with [oh-my-zshell](https://github.com/ohmyzsh/ohmyzsh)!
Just add the plugin in your `~/.zshrc` file:
@@ -53,7 +53,7 @@ Run either in terminal:
#### Completion
-If you're NOT using [oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh) and you want to utilize the zsh-completion feature, you will also need to add the path to your `wd` installation (`~/bin/wd` if you used the automatic installer) to your `fpath`. E.g. in your `~/.zshrc`:
+If you're NOT using [oh-my-zsh](https://github.com/ohmyzsh/ohmyzsh) and you want to utilize the zsh-completion feature, you will also need to add the path to your `wd` installation (`~/bin/wd` if you used the automatic installer) to your `fpath`. E.g. in your `~/.zshrc`:
fpath=(~/path/to/wd $fpath)
@@ -85,7 +85,7 @@ Also, you may have to force a rebuild of `zcompdump` by running:
$ wd ...
This is a wrapper for the zsh `dirs` function.
- (You might need `setopt AUTO_PUSHD` in your `.zshrc` if you hare not using [oh-my-zshell](https://github.com/robbyrussell/oh-my-zsh)).
+ (You might need `setopt AUTO_PUSHD` in your `.zshrc` if you hare not using [oh-my-zshell](https://github.com/ohmyzsh/ohmyzsh)).
* Remove warp point test point:
diff --git a/templates/zshrc.zsh-template b/templates/zshrc.zsh-template
index 3cc5ad46c..d16713ccb 100644
--- a/templates/zshrc.zsh-template
+++ b/templates/zshrc.zsh-template
@@ -7,7 +7,7 @@ export ZSH=$HOME/.oh-my-zsh
# Set name of the theme to load --- if set to "random", it will
# load a random theme each time oh-my-zsh is loaded, in which case,
# to know which specific one was loaded, run: echo $RANDOM_THEME
-# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
+# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
ZSH_THEME="robbyrussell"
# Set list of themes to pick from when loading at random
diff --git a/themes/gallifrey.zsh-theme b/themes/gallifrey.zsh-theme
index 768547064..47b057fa3 100644
--- a/themes/gallifrey.zsh-theme
+++ b/themes/gallifrey.zsh-theme
@@ -1,4 +1,4 @@
-# ZSH Theme - Preview: https://github.com/robbyrussell/oh-my-zsh/wiki/Themes#gallifrey
+# ZSH Theme - Preview: https://github.com/ohmyzsh/ohmyzsh/wiki/Themes#gallifrey
return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
host_color="%(!.%{$fg[red]%}.%{$fg[green]%})"
diff --git a/tools/install.sh b/tools/install.sh
index a5a90e6f6..ae248be89 100755
--- a/tools/install.sh
+++ b/tools/install.sh
@@ -1,12 +1,12 @@
#!/bin/sh
#
# This script should be run via curl:
-# sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
+# sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# or wget:
-# sh -c "$(wget -qO- https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
+# sh -c "$(wget -qO- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
#
# As an alternative, you can first download the install script and run it afterwards:
-# wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh
+# wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh
# sh install.sh
#
# You can tweak the install behavior by setting variables when running the script. For
@@ -15,7 +15,7 @@
#
# Respects the following environment variables:
# ZSH - path to the Oh My Zsh repository folder (default: $HOME/.oh-my-zsh)
-# REPO - name of the GitHub repo to install from (default: robbyrussell/oh-my-zsh)
+# REPO - name of the GitHub repo to install from (default: ohmyzsh/ohmyzsh)
# REMOTE - full remote URL of the git repo to install (default: GitHub via HTTPS)
# BRANCH - branch to check out immediately after install (default: master)
#
@@ -33,7 +33,7 @@ set -e
# Default settings
ZSH=${ZSH:-~/.oh-my-zsh}
-REPO=${REPO:-robbyrussell/oh-my-zsh}
+REPO=${REPO:-ohmyzsh/ohmyzsh}
REMOTE=${REMOTE:-https://github.com/${REPO}.git}
BRANCH=${BRANCH:-master}
diff --git a/tools/upgrade.sh b/tools/upgrade.sh
index f64a0096e..55768cd6e 100644
--- a/tools/upgrade.sh
+++ b/tools/upgrade.sh
@@ -31,6 +31,12 @@ git config fsck.zeroPaddedFilemode ignore
git config fetch.fsck.zeroPaddedFilemode ignore
git config receive.fsck.zeroPaddedFilemode ignore
+# Update upstream remote to ohmyzsh org
+remote=$(git remote -v | awk '/https:\/\/github\.com\/robbyrussell\/oh-my-zsh\.git/{ print $1; exit }')
+if [[ -n "$remote" ]]; then
+ git remote set-url "$remote" "https://github.com/ohmyzsh/ohmyzsh.git"
+fi
+
printf "${BLUE}%s${NORMAL}\n" "Updating Oh My Zsh"
if git pull --rebase --stat origin master
then
From 1c98b9cc38d34647f1d6357919a0f4e1d5ebd4cd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Thu, 21 Nov 2019 03:29:16 +0100
Subject: [PATCH 174/302] Remove current directory from sys.path in python
invocations (#8408)
* Remove current directory from sys.path in python invocations
---
plugins/django/django.plugin.zsh | 3 ++-
plugins/jsontools/jsontools.plugin.zsh | 13 ++++++++-----
plugins/salt/_salt | 2 +-
plugins/urltools/urltools.plugin.zsh | 8 ++++----
4 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/plugins/django/django.plugin.zsh b/plugins/django/django.plugin.zsh
index 86558ff2e..c2d00c171 100644
--- a/plugins/django/django.plugin.zsh
+++ b/plugins/django/django.plugin.zsh
@@ -374,7 +374,8 @@ _managepy-commands() {
_applist() {
local line
local -a apps
- _call_program help-command "python -c \"import os.path as op, re, django.conf, sys;\\
+ _call_program help-command "python -c \"import sys; del sys.path[0];\\
+ import os.path as op, re, django.conf;\\
bn=op.basename(op.abspath(op.curdir));[sys\\
.stdout.write(str(re.sub(r'^%s\.(.*?)$' %
bn, r'\1', i)) + '\n') for i in django.conf.settings.\\
diff --git a/plugins/jsontools/jsontools.plugin.zsh b/plugins/jsontools/jsontools.plugin.zsh
index 20d5eb1c9..912c83509 100644
--- a/plugins/jsontools/jsontools.plugin.zsh
+++ b/plugins/jsontools/jsontools.plugin.zsh
@@ -11,9 +11,10 @@ if [[ $(whence node) != "" && ( "x$JSONTOOLS_METHOD" = "x" || "x$JSONTOOLS_METH
alias urlencode_json='xargs -0 node -e "console.log(encodeURIComponent(process.argv[1]))"'
alias urldecode_json='xargs -0 node -e "console.log(decodeURIComponent(process.argv[1]))"'
elif [[ $(whence python) != "" && ( "x$JSONTOOLS_METHOD" = "x" || "x$JSONTOOLS_METHOD" = "xpython" ) ]]; then
- alias pp_json='python -mjson.tool'
+ alias pp_json='python -c "import sys; del sys.path[0]; import runpy; runpy._run_module_as_main(\"json.tool\")"'
alias is_json='python -c "
-import json, sys;
+import sys; del sys.path[0];
+import json;
try:
json.loads(sys.stdin.read())
except ValueError, e:
@@ -22,11 +23,13 @@ else:
print True
sys.exit(0)"'
alias urlencode_json='python -c "
-import urllib, json, sys;
+import sys; del sys.path[0];
+import urllib, json;
print urllib.quote_plus(sys.stdin.read())
sys.exit(0)"'
alias urldecode_json='python -c "
-import urllib, json, sys;
+import sys; del sys.path[0];
+import urllib, json;
print urllib.unquote_plus(sys.stdin.read())
sys.exit(0)"'
elif [[ $(whence ruby) != "" && ( "x$JSONTOOLS_METHOD" = "x" || "x$JSONTOOLS_METHOD" = "xruby" ) ]]; then
@@ -36,4 +39,4 @@ elif [[ $(whence ruby) != "" && ( "x$JSONTOOLS_METHOD" = "x" || "x$JSONTOOLS_MET
alias urldecode_json='ruby -e "require \"uri\"; puts URI.unescape(STDIN.read)"'
fi
-unset JSONTOOLS_METHOD
\ No newline at end of file
+unset JSONTOOLS_METHOD
diff --git a/plugins/salt/_salt b/plugins/salt/_salt
index 10b782af4..78d8611d2 100644
--- a/plugins/salt/_salt
+++ b/plugins/salt/_salt
@@ -271,7 +271,7 @@ _salt_comp(){
fi
if _cache_invalid salt/salt_dir || ! _retrieve_cache salt/salt_dir; then
- salt_dir="${$(python2 -c 'import salt; print(salt.__file__);')%__init__*}"
+ salt_dir="${$(python2 -c 'import sys; del sys.path[0]; import salt; print(salt.__file__);')%__init__*}"
_store_cache salt/salt_dir salt_dir
fi
}
diff --git a/plugins/urltools/urltools.plugin.zsh b/plugins/urltools/urltools.plugin.zsh
index 47d9a34e4..b443e5027 100644
--- a/plugins/urltools/urltools.plugin.zsh
+++ b/plugins/urltools/urltools.plugin.zsh
@@ -12,11 +12,11 @@ if [[ $(whence node) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD
alias urlencode='node -e "console.log(encodeURIComponent(process.argv[1]))"'
alias urldecode='node -e "console.log(decodeURIComponent(process.argv[1]))"'
elif [[ $(whence python3) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xpython" ) ]]; then
- alias urlencode='python3 -c "import sys, urllib.parse as up; print(up.quote_plus(sys.argv[1]))"'
- alias urldecode='python3 -c "import sys, urllib.parse as up; print(up.unquote_plus(sys.argv[1]))"'
+ alias urlencode='python3 -c "import sys; del sys.path[0]; import urllib.parse as up; print(up.quote_plus(sys.argv[1]))"'
+ alias urldecode='python3 -c "import sys; del sys.path[0]; import urllib.parse as up; print(up.unquote_plus(sys.argv[1]))"'
elif [[ $(whence python2) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xpython" ) ]]; then
- alias urlencode='python2 -c "import sys, urllib as ul; print ul.quote_plus(sys.argv[1])"'
- alias urldecode='python2 -c "import sys, urllib as ul; print ul.unquote_plus(sys.argv[1])"'
+ alias urlencode='python2 -c "import sys; del sys.path[0]; import urllib as ul; print ul.quote_plus(sys.argv[1])"'
+ alias urldecode='python2 -c "import sys; del sys.path[0]; import urllib as ul; print ul.unquote_plus(sys.argv[1])"'
elif [[ $(whence xxd) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xshell" ) ]]; then
function urlencode() {echo $@ | tr -d "\n" | xxd -plain | sed "s/\(..\)/%\1/g"}
function urldecode() {printf $(echo -n $@ | sed 's/\\/\\\\/g;s/\(%\)\([0-9a-fA-F][0-9a-fA-F]\)/\\x\2/g')"\n"}
From 3cc1fa40466ea5cee134e6e780786f4fba7eef4f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Thu, 21 Nov 2019 19:10:30 +0100
Subject: [PATCH 175/302] Fix non-POSIX conditional syntax
Fixes #8416
---
tools/upgrade.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/upgrade.sh b/tools/upgrade.sh
index 55768cd6e..3005e6542 100644
--- a/tools/upgrade.sh
+++ b/tools/upgrade.sh
@@ -33,7 +33,7 @@ git config receive.fsck.zeroPaddedFilemode ignore
# Update upstream remote to ohmyzsh org
remote=$(git remote -v | awk '/https:\/\/github\.com\/robbyrussell\/oh-my-zsh\.git/{ print $1; exit }')
-if [[ -n "$remote" ]]; then
+if [ -n "$remote" ]; then
git remote set-url "$remote" "https://github.com/ohmyzsh/ohmyzsh.git"
fi
From 76d6b0256398ad1becbc304a78f51bbacfee50e5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Thu, 21 Nov 2019 19:16:41 +0100
Subject: [PATCH 176/302] lol: fix yolo alias using https URL
Fixes #8418
---
plugins/lol/lol.plugin.zsh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/lol/lol.plugin.zsh b/plugins/lol/lol.plugin.zsh
index 585f96e4f..3c30259a1 100644
--- a/plugins/lol/lol.plugin.zsh
+++ b/plugins/lol/lol.plugin.zsh
@@ -45,7 +45,7 @@ alias bringz='git pull'
alias chicken='git add'
alias oanward='git commit -m'
alias ooanward='git commit -am'
-alias yolo='git commit -m "$(curl -s https://whatthecommit.com/index.txt)"'
+alias yolo='git commit -m "$(curl -s http://whatthecommit.com/index.txt)"'
alias letcat='git checkout'
alias violenz='git rebase'
From be73666f34c3a2762d606be7f1997b120929e17c Mon Sep 17 00:00:00 2001
From: Peter Mosmans
Date: Thu, 16 Jun 2016 11:05:09 +1000
Subject: [PATCH 177/302] tmux: add support for forced unicode support (#5166)
When ZSH_TMUX_UNICODE=true then tmux is informed that UTF-8 is supported.
Closes #5166
---
plugins/tmux/tmux.plugin.zsh | 3 +++
1 file changed, 3 insertions(+)
diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh
index dad3db578..e52443a71 100644
--- a/plugins/tmux/tmux.plugin.zsh
+++ b/plugins/tmux/tmux.plugin.zsh
@@ -36,6 +36,8 @@ alias tkss='tmux kill-session -t'
: ${ZSH_TMUX_FIXTERM_WITH_256COLOR:=screen-256color}
# Set the configuration path
: ${ZSH_TMUX_CONFIG:=$HOME/.tmux.conf}
+# Set -u option to support unicode
+: ${ZSH_TMUX_UNICODE:=false}
# Determine if the terminal supports 256 colors
if [[ $terminfo[colors] == 256 ]]; then
@@ -62,6 +64,7 @@ function _zsh_tmux_plugin_run() {
local -a tmux_cmd
tmux_cmd=(command tmux)
[[ "$ZSH_TMUX_ITERM2" == "true" ]] && tmux_cmd+=(-CC)
+ [[ "$ZSH_TMUX_UNICODE" == "true" ]] && tmux_cmd+=(-u)
# Try to connect to an existing session.
[[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]] && $tmux_cmd attach
From 7b73c9ca1ced57cdf545e860e880658753b81777 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Sat, 23 Nov 2019 22:14:27 +0100
Subject: [PATCH 178/302] tmux: add ZSH_TMUX_UNICODE to README
---
plugins/tmux/README.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/plugins/tmux/README.md b/plugins/tmux/README.md
index 1e25af38f..db57f5be2 100644
--- a/plugins/tmux/README.md
+++ b/plugins/tmux/README.md
@@ -37,4 +37,5 @@ The plugin also supports the following -
| `ZSH_TMUX_ITERM2` | Sets the `-CC` option for iTerm2 tmux integration (default: `false`) |
| `ZSH_TMUX_FIXTERM_WITHOUT_256COLOR` | `$TERM` to use for non 256-color terminals (default: `screen`) |
| `ZSH_TMUX_FIXTERM_WITH_256COLOR` | `$TERM` to use for 256-color terminals (default: `screen-256color` |
-| `ZSH_TMUX_CONFIG` | Set the configuration path (default: `$HOME/.tmux.conf`) |
\ No newline at end of file
+| `ZSH_TMUX_CONFIG` | Set the configuration path (default: `$HOME/.tmux.conf`) |
+| `ZSH_TMUX_UNICODE` | Set `tmux -u` option to support unicode |
From 4deafdff962eca8739e321113f5ba338d3990756 Mon Sep 17 00:00:00 2001
From: Giuseppe
Date: Mon, 25 Nov 2019 16:36:33 +0100
Subject: [PATCH 179/302] Fix change to old shell on uninstall (#8430)
If there's no `~/.shell.pre-oh-my-zsh`, don't assume the default choice
is Bash. In fact Zsh is the default shell for macOS since Catalina
(10.15) [1], yet users of other OSes have likely to have Bash as their
default.
This commit fix issue #8252
[1] https://support.apple.com/en-us/HT208050
---
tools/uninstall.sh | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/tools/uninstall.sh b/tools/uninstall.sh
index da31a6a14..b327a0163 100644
--- a/tools/uninstall.sh
+++ b/tools/uninstall.sh
@@ -25,18 +25,14 @@ if [ -e "$ZSHRC_ORIG" ]; then
echo "Your original zsh config was restored."
fi
-if hash chsh >/dev/null 2>&1; then
- if [ -f ~/.shell.pre-oh-my-zsh ]; then
- old_shell=$(cat ~/.shell.pre-oh-my-zsh)
- else
- old_shell=/bin/bash
- fi
+if hash chsh >/dev/null 2>&1 && [ -f ~/.shell.pre-oh-my-zsh ]; then
+ old_shell=$(cat ~/.shell.pre-oh-my-zsh)
echo "Switching your shell back to '$old_shell':"
if chsh -s "$old_shell"; then
rm -f ~/.shell.pre-oh-my-zsh
else
echo "Could not change default shell. Change it manually by running chsh"
- echo "or editing the /etc/passwd file."
+ echo "or editing the /etc/passwd file."
fi
fi
From 671d21ac5305e815668500563a6b7ef61057b659 Mon Sep 17 00:00:00 2001
From: Michal Bultrowicz
Date: Mon, 25 Nov 2019 18:59:31 +0100
Subject: [PATCH 180/302] Mention FAQ in the README (#8051)
---
README.md | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/README.md b/README.md
index ac4b3879c..bfb42c0fd 100644
--- a/README.md
+++ b/README.md
@@ -132,6 +132,10 @@ ZSH_THEME_RANDOM_CANDIDATES=(
)
```
+### FAQ
+
+If you have some more questions or issues, you might find a solution in our [FAQ](https://github.com/ohmyzsh/ohmyzsh/wiki/FAQ).
+
## Advanced Topics
If you're the type that likes to get their hands dirty, these sections might resonate.
From 6390afd6de2978ca19920adb4d8958c1ee788f49 Mon Sep 17 00:00:00 2001
From: Meng Bo
Date: Thu, 28 Nov 2019 22:41:58 +0800
Subject: [PATCH 181/302] fzf: change debian completion file path (#8402)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Newer Debian packages install completions file in
/usr/share/doc/fzf/examples/completion.zsh
* Default to buster/stretch path if completion file not found
See file list in order from older to newer fzf package versions:
- https://packages.debian.org/stretch-backports/amd64/fzf/filelist
- https://packages.debian.org/buster/amd64/fzf/filelist
- https://packages.debian.org/bullseye/amd64/fzf/filelist
- https://packages.debian.org/sid/amd64/fzf/filelist
Co-authored-by: Marc Cornellà
---
plugins/fzf/fzf.plugin.zsh | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/plugins/fzf/fzf.plugin.zsh b/plugins/fzf/fzf.plugin.zsh
index fe471a363..83626009d 100644
--- a/plugins/fzf/fzf.plugin.zsh
+++ b/plugins/fzf/fzf.plugin.zsh
@@ -67,7 +67,10 @@ function setup_using_debian_package() {
# NOTE: There is no need to configure PATH for debian package, all binaries
# are installed to /usr/bin by default
- local completions="/usr/share/zsh/vendor-completions/_fzf"
+ # Determine completion file path: first bullseye/sid, then buster/stretch
+ local completions="/usr/share/doc/fzf/examples/completion.zsh"
+ [[ -f "$completions" ]] || completions="/usr/share/zsh/vendor-completions/_fzf"
+
local key_bindings="/usr/share/doc/fzf/examples/key-bindings.zsh"
# Auto-completion
From 16154453ea701772acd144f22d3ddf9b6f3a40d3 Mon Sep 17 00:00:00 2001
From: Reza Hamouleh
Date: Thu, 28 Nov 2019 20:10:34 +0330
Subject: [PATCH 182/302] sbt: use new sbt command naming convention (#8426)
---
plugins/sbt/README.md | 10 +++++-----
plugins/sbt/_sbt | 20 ++++++++++----------
plugins/sbt/sbt.plugin.zsh | 10 +++++-----
3 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/plugins/sbt/README.md b/plugins/sbt/README.md
index f1a5753b9..f0201938e 100644
--- a/plugins/sbt/README.md
+++ b/plugins/sbt/README.md
@@ -17,16 +17,16 @@ plugins=(... sbt)
| sbcln | `sbt clean` | Deletes all generated files |
| sbcc | `sbt clean compile` | Deletes generated files, compiles the main sources |
| sbco | `sbt console` | Starts Scala with the compiled sources and all dependencies |
-| sbcq | `sbt console-quick` | Starts Scala with all dependencies |
-| sbcp | `sbt console-project` | Starts Scala with sbt and the build definitions |
+| sbcq | `sbt consoleQuick` | Starts Scala with all dependencies |
+| sbcp | `sbt consoleProject` | Starts Scala with sbt and the build definitions |
| sbd | `sbt doc` | Generates API documentation for Scala source files |
| sbdc | `sbt dist:clean` | Deletes the distribution packages |
| sbdi | `sbt dist` | Creates the distribution packages |
-| sbgi | `sbt gen-idea` | Create Idea project files |
+| sbgi | `sbt genIdea` | Create Idea project files |
| sbp | `sbt publish` | Publishes artifacts to the repository |
-| sbpl | `sbt publish-local` | Publishes artifacts to the local Ivy repository |
+| sbpl | `sbt publishLocal` | Publishes artifacts to the local Ivy repository |
| sbr | `sbt run` | Runs the main class for the project |
-| sbrm | `sbt run-main` | Runs the specified main class for the project |
+| sbrm | `sbt runMain` | Runs the specified main class for the project |
| sbu | `sbt update` | Resolves and retrieves external dependencies |
| sbx | `sbt test` | Compiles and runs all tests |
| sba | `sbt assembly` | Create a fat JAR with all dependencies |
diff --git a/plugins/sbt/_sbt b/plugins/sbt/_sbt
index a601c9b97..2138a722f 100644
--- a/plugins/sbt/_sbt
+++ b/plugins/sbt/_sbt
@@ -6,23 +6,23 @@ _sbt_commands=(
'clean:delete files produced by the build'
'compile:compile sources'
'console:start the Scala REPL with project classes on the classpath'
- 'console-quick:start the Scala REPL with project deps on the classpath'
- 'console-project:start the Scala REPL w/sbt+build-def on the classpath'
+ 'consoleQuick:start the Scala REPL with project deps on the classpath'
+ 'consoleProject:start the Scala REPL w/sbt+build-def on the classpath'
'dist:generate distribution artifacts'
'dist\:clean:clean distribution artifacts'
'doc:generate API documentation'
- 'gen-idea:generate Intellij Idea project files'
+ 'genIdea:generate Intellij Idea project files'
'package:produce the main artifact, such as a binary jar'
- 'package-doc:produce a doc artifact, such as a jar containing API docs'
- 'package-src:produce a source artifact, such as a jar containing sources'
+ 'packageDoc:produce a doc artifact, such as a jar containing API docs'
+ 'packageSrc:produce a source artifact, such as a jar containing sources'
'publish:publish artifacts to a repository'
- 'publish-local:publish artifacts to the local repository'
- 'publish-m2:publish artifacts to the local Maven 2 repository'
+ 'publishLocal:publish artifacts to the local repository'
+ 'publishM2:publish artifacts to the local Maven 2 repository'
'run:run a main class'
- 'run-main:run the main class selected by the first argument'
+ 'runMain:run the main class selected by the first argument'
'test:execute all tests'
- 'test-only:execute the tests provided as arguments'
- 'test-quick:execute previously failed tests'
+ 'testOnly:execute the tests provided as arguments'
+ 'testQuick:execute previously failed tests'
'update:resolve and optionally retrieve dependencies'
)
diff --git a/plugins/sbt/sbt.plugin.zsh b/plugins/sbt/sbt.plugin.zsh
index f883b7fee..851302c68 100644
--- a/plugins/sbt/sbt.plugin.zsh
+++ b/plugins/sbt/sbt.plugin.zsh
@@ -9,17 +9,17 @@
alias sbc='sbt compile'
alias sbcc='sbt clean compile'
alias sbco='sbt console'
-alias sbcq='sbt console-quick'
+alias sbcq='sbt consoleQuick'
alias sbcln='sbt clean'
-alias sbcp='sbt console-project'
+alias sbcp='sbt consoleProject'
alias sbd='sbt doc'
alias sbdc='sbt dist:clean'
alias sbdi='sbt dist'
-alias sbgi='sbt gen-idea'
+alias sbgi='sbt genIdea'
alias sbp='sbt publish'
-alias sbpl='sbt publish-local'
+alias sbpl='sbt publishLocal'
alias sbr='sbt run'
-alias sbrm='sbt run-main'
+alias sbrm='sbt runMain'
alias sbu='sbt update'
alias sbx='sbt test'
alias sba='sbt assembly'
From 903a3e9daa110944a9edc37a5952b4a9ff630b39 Mon Sep 17 00:00:00 2001
From: matthewhembree <47449406+matthewhembree@users.noreply.github.com>
Date: Thu, 28 Nov 2019 15:37:37 -0600
Subject: [PATCH 183/302] keychain: pass host as argument to keychain (#8436)
---
plugins/keychain/keychain.plugin.zsh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/keychain/keychain.plugin.zsh b/plugins/keychain/keychain.plugin.zsh
index af34793e7..def97d8d1 100644
--- a/plugins/keychain/keychain.plugin.zsh
+++ b/plugins/keychain/keychain.plugin.zsh
@@ -15,7 +15,7 @@ function _start_agent() {
zstyle -a :omz:plugins:keychain options options
# start keychain...
- keychain ${^options:-} --agents ${agents:-gpg} ${^identities}
+ keychain ${^options:-} --agents ${agents:-gpg} ${^identities} --host $SHORT_HOST
# Get the filenames to store/lookup the environment from
_keychain_env_sh="$HOME/.keychain/$SHORT_HOST-sh"
From 664664f6cd8a1c02a38063c8f2104f0515a19399 Mon Sep 17 00:00:00 2001
From: jtagcat <38327267+jtagcat@users.noreply.github.com>
Date: Sat, 7 Dec 2019 20:03:13 +0000
Subject: [PATCH 184/302] arcanist: clarify README (#8461)
---
plugins/arcanist/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/arcanist/README.md b/plugins/arcanist/README.md
index 4bb8c8090..f2ca8cf55 100644
--- a/plugins/arcanist/README.md
+++ b/plugins/arcanist/README.md
@@ -2,4 +2,4 @@
**Maintainer:** [@emzar](https://github.com/emzar)
-This plugin adds many useful aliases.
+This plugin adds many useful aliases for [arcanist](https://github.com/phacility/arcanist).
From 1761685d3e8d0594ff580c968874665e64a9a9cb Mon Sep 17 00:00:00 2001
From: Filipe Nascimento
Date: Tue, 17 Dec 2019 13:35:40 -0300
Subject: [PATCH 185/302] extract: add zstd support (#8469)
---
plugins/extract/README.md | 3 +++
plugins/extract/_extract | 2 +-
plugins/extract/extract.plugin.zsh | 5 +++++
3 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/plugins/extract/README.md b/plugins/extract/README.md
index 41b6a61f1..aca300097 100644
--- a/plugins/extract/README.md
+++ b/plugins/extract/README.md
@@ -34,15 +34,18 @@ plugins=(... extract)
| `tar.gz` | Tarball with gzip compression |
| `tar.xz` | Tarball with lzma2 compression |
| `tar.zma` | Tarball with lzma compression |
+| `tar.zst` | Tarball with zstd compression |
| `tbz` | Tarball with bzip compression |
| `tbz2` | Tarball with bzip2 compression |
| `tgz` | Tarball with gzip compression |
| `tlz` | Tarball with lzma compression |
| `txz` | Tarball with lzma2 compression |
+| `tzst` | Tarball with zstd compression |
| `war` | Web Application archive (Java-based) |
| `xpi` | Mozilla XPI module file |
| `xz` | LZMA2 archive |
| `zip` | Zip archive |
+| `zst` | Zstandard file (zstd) |
See [list of archive formats](https://en.wikipedia.org/wiki/List_of_archive_formats) for
more information regarding archive formats.
diff --git a/plugins/extract/_extract b/plugins/extract/_extract
index 0257ce231..47b918b29 100644
--- a/plugins/extract/_extract
+++ b/plugins/extract/_extract
@@ -3,5 +3,5 @@
_arguments \
'(-r --remove)'{-r,--remove}'[Remove archive.]' \
- "*::archive file:_files -g '(#i)*.(7z|Z|apk|aar|bz2|deb|gz|ipsw|jar|lzma|rar|rpm|sublime-package|tar|tar.bz2|tar.gz|tar.xz|tar.zma|tbz|tbz2|tgz|tlz|txz|war|whl|xpi|xz|zip)(-.)'" \
+ "*::archive file:_files -g '(#i)*.(7z|Z|apk|aar|bz2|deb|gz|ipsw|jar|lzma|rar|rpm|sublime-package|tar|tar.bz2|tar.gz|tar.xz|tar.zma|tar.zst|tbz|tbz2|tgz|tlz|txz|tzst|war|whl|xpi|xz|zip|zst)(-.)'" \
&& return 0
diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh
index 27b9e50f1..b7d4e3ba7 100644
--- a/plugins/extract/extract.plugin.zsh
+++ b/plugins/extract/extract.plugin.zsh
@@ -40,6 +40,10 @@ extract() {
tar --lzma --help &> /dev/null \
&& tar --lzma -xvf "$1" \
|| lzcat "$1" | tar xvf - ;;
+ (*.tar.zst|*.tzst)
+ tar --zstd --help &> /dev/null \
+ && tar --zstd -xvf "$1" \
+ || zstdcat "$1" | tar xvf - ;;
(*.tar) tar xvf "$1" ;;
(*.gz) (( $+commands[pigz] )) && pigz -dk "$1" || gunzip -k "$1" ;;
(*.bz2) bunzip2 "$1" ;;
@@ -59,6 +63,7 @@ extract() {
cd ..; rm *.tar.* debian-binary
cd ..
;;
+ (*.zst) unzstd "$1" ;;
(*)
echo "extract: '$1' cannot be extracted" >&2
success=1
From ad1169bf39d8cab3e0139299d8200dd18bdc2038 Mon Sep 17 00:00:00 2001
From: Mustaqim Malim
Date: Wed, 18 Dec 2019 09:53:54 +0000
Subject: [PATCH 186/302] extract: add tar.lz support (#8479)
---
plugins/extract/README.md | 1 +
plugins/extract/_extract | 2 +-
plugins/extract/extract.plugin.zsh | 1 +
3 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/plugins/extract/README.md b/plugins/extract/README.md
index aca300097..d6e4fa116 100644
--- a/plugins/extract/README.md
+++ b/plugins/extract/README.md
@@ -32,6 +32,7 @@ plugins=(... extract)
| `tar` | Tarball |
| `tar.bz2` | Tarball with bzip2 compression |
| `tar.gz` | Tarball with gzip compression |
+| `tar.lz` | Tarball with lzip compression |
| `tar.xz` | Tarball with lzma2 compression |
| `tar.zma` | Tarball with lzma compression |
| `tar.zst` | Tarball with zstd compression |
diff --git a/plugins/extract/_extract b/plugins/extract/_extract
index 47b918b29..e9d12d4d3 100644
--- a/plugins/extract/_extract
+++ b/plugins/extract/_extract
@@ -3,5 +3,5 @@
_arguments \
'(-r --remove)'{-r,--remove}'[Remove archive.]' \
- "*::archive file:_files -g '(#i)*.(7z|Z|apk|aar|bz2|deb|gz|ipsw|jar|lzma|rar|rpm|sublime-package|tar|tar.bz2|tar.gz|tar.xz|tar.zma|tar.zst|tbz|tbz2|tgz|tlz|txz|tzst|war|whl|xpi|xz|zip|zst)(-.)'" \
+ "*::archive file:_files -g '(#i)*.(7z|Z|apk|aar|bz2|deb|gz|ipsw|jar|lzma|rar|rpm|sublime-package|tar|tar.bz2|tar.gz|tar.lz|tar.xz|tar.zma|tar.zst|tbz|tbz2|tgz|tlz|txz|tzst|war|whl|xpi|xz|zip|zst)(-.)'" \
&& return 0
diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh
index b7d4e3ba7..5cc30d1ce 100644
--- a/plugins/extract/extract.plugin.zsh
+++ b/plugins/extract/extract.plugin.zsh
@@ -45,6 +45,7 @@ extract() {
&& tar --zstd -xvf "$1" \
|| zstdcat "$1" | tar xvf - ;;
(*.tar) tar xvf "$1" ;;
+ (*.tar.lz) (( $+commands[lzip] )) && tar xvf "$1" ;;
(*.gz) (( $+commands[pigz] )) && pigz -dk "$1" || gunzip -k "$1" ;;
(*.bz2) bunzip2 "$1" ;;
(*.xz) unxz "$1" ;;
From 7dddfe0a39b75acbe265c47b6d1dc575d6dedd9f Mon Sep 17 00:00:00 2001
From: Anatoli Babenia
Date: Wed, 18 Dec 2019 13:06:39 +0300
Subject: [PATCH 187/302] fasd: fix plugins name in README (#8483)
---
plugins/fasd/README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/plugins/fasd/README.md b/plugins/fasd/README.md
index 1641a92d0..a5c74e5b8 100644
--- a/plugins/fasd/README.md
+++ b/plugins/fasd/README.md
@@ -5,7 +5,7 @@
To use it, add `fasd` to the plugins array in your zshrc file:
```zsh
-plugins=(... fd)
+plugins=(... fasd)
```
## Installation
@@ -18,4 +18,4 @@ Please find detailed installation guide [`here`](https://github.com/clvv/fasd#in
|-------|-------------------------------------------|-------------------------------------------------------------|
| v | `fasd -f -e "$EDITOR"` | List frequent/recent files matching the given filename. |
| o | `fasd -a -e xdg-open` | List frequent/recent files and directories matching. |
-| j | `fasd_cd -d -i` | cd with interactive selection |
\ No newline at end of file
+| j | `fasd_cd -d -i` | cd with interactive selection |
From 4338a731b77d9f7a73b554667626e35b3fb5f7e3 Mon Sep 17 00:00:00 2001
From: pprugger
Date: Thu, 19 Dec 2019 10:50:20 +0100
Subject: [PATCH 188/302] fzf: add support for FreeBSD (#8474)
---
plugins/fzf/fzf.plugin.zsh | 1 +
1 file changed, 1 insertion(+)
diff --git a/plugins/fzf/fzf.plugin.zsh b/plugins/fzf/fzf.plugin.zsh
index 83626009d..c8aefd7ab 100644
--- a/plugins/fzf/fzf.plugin.zsh
+++ b/plugins/fzf/fzf.plugin.zsh
@@ -12,6 +12,7 @@ function setup_using_base_dir() {
"${HOME}/.fzf"
"/usr/local/opt/fzf"
"/usr/share/fzf"
+ "/usr/local/share/examples/fzf"
)
for dir in ${fzfdirs}; do
if [[ -d "${dir}" ]]; then
From 3d6be08e71219e75405ef0d535cc9c3defbb3367 Mon Sep 17 00:00:00 2001
From: giovanepadawan <51273591+giovanepadawan@users.noreply.github.com>
Date: Fri, 20 Dec 2019 03:35:50 +0100
Subject: [PATCH 189/302] yarn: add alias for yarn lint (#8481)
---
plugins/yarn/README.md | 1 +
plugins/yarn/yarn.plugin.zsh | 1 +
2 files changed, 2 insertions(+)
diff --git a/plugins/yarn/README.md b/plugins/yarn/README.md
index e6daae44f..05f18a499 100644
--- a/plugins/yarn/README.md
+++ b/plugins/yarn/README.md
@@ -27,6 +27,7 @@ plugins=(... yarn)
| yh | `yarn help` | Show help for a yarn command |
| yi | `yarn init` | Interactively creates or updates a package.json file |
| yin | `yarn install` | Install dependencies defined in `package.json` |
+| yln | `yarn lint` | Run the lint script defined in `package.json` |
| yls | `yarn list` | List installed packages |
| yout | `yarn outdated` | Check for outdated package dependencies |
| yp | `yarn pack` | Create a compressed gzip archive of package dependencies |
diff --git a/plugins/yarn/yarn.plugin.zsh b/plugins/yarn/yarn.plugin.zsh
index 18c5dcc89..9cfcb7539 100644
--- a/plugins/yarn/yarn.plugin.zsh
+++ b/plugins/yarn/yarn.plugin.zsh
@@ -12,6 +12,7 @@ alias ygu="yarn global upgrade"
alias yh="yarn help"
alias yi="yarn init"
alias yin="yarn install"
+alias yln="yarn lint"
alias yls="yarn list"
alias yout="yarn outdated"
alias yp="yarn pack"
From 1a0500b00dd417ea2d9d3ea12bbad5318f8d7e55 Mon Sep 17 00:00:00 2001
From: Jay Tavares
Date: Sat, 21 Dec 2019 00:08:03 -0500
Subject: [PATCH 190/302] Change order of automatic virtualenv
activation/deactivation (#6687)
When navigating from a virtualenv project directory, first deactivate the virtualenv.
Then, check to see if destination directory is also a virtualenv project directory.
If it is activate that virtualenv. See #5817.
---
plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh
index 2a4b43189..b07b2a306 100644
--- a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh
+++ b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh
@@ -77,6 +77,12 @@ if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then
else
ENV_NAME=""
fi
+
+ if [[ -n $CD_VIRTUAL_ENV && "$ENV_NAME" != "$CD_VIRTUAL_ENV" ]]; then
+ # We've just left the repo, deactivate the environment
+ # Note: this only happens if the virtualenv was activated automatically
+ deactivate && unset CD_VIRTUAL_ENV
+ fi
if [[ "$ENV_NAME" != "" ]]; then
# Activate the environment only if it is not already active
if [[ "$VIRTUAL_ENV" != "$WORKON_HOME/$ENV_NAME" ]]; then
@@ -86,10 +92,6 @@ if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then
source $ENV_NAME/bin/activate && export CD_VIRTUAL_ENV="$ENV_NAME"
fi
fi
- elif [[ -n $CD_VIRTUAL_ENV && -n $VIRTUAL_ENV ]]; then
- # We've just left the repo, deactivate the environment
- # Note: this only happens if the virtualenv was activated automatically
- deactivate && unset CD_VIRTUAL_ENV
fi
fi
}
From 16ef5cca44d23fbde33de77cf44d0f05804d43e9 Mon Sep 17 00:00:00 2001
From: Robby Russell
Date: Fri, 20 Dec 2019 21:45:39 -0800
Subject: [PATCH 191/302] Update link for Pygments
Also moving the dependencies section up
---
plugins/colorize/README.md | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/plugins/colorize/README.md b/plugins/colorize/README.md
index 32dc97b6e..036724a1a 100644
--- a/plugins/colorize/README.md
+++ b/plugins/colorize/README.md
@@ -6,11 +6,17 @@ Colorize will highlight the content based on the filename extension. If it can't
method for a given extension, it will try to find one by looking at the file contents. If no highlight method
is found it will just cat the file normally, without syntax highlighting.
+## Setup
+
To use it, add colorize to the plugins array of your zshrc file:
```
plugins=(... colorize)
```
+### Requirements
+
+This plugin requires that Pygments be installed: [pygments.org](https://pygments.org/)
+
## Styles
Pygments offers multiple styles. By default, the `default` style is used, but you can choose another theme by setting the `ZSH_COLORIZE_STYLE` environment variable:
@@ -29,7 +35,3 @@ Note that `cless` will behave as less when provided more than one file: you have
the commands `:n` for next and `:p` for previous. The downside is that less options are not supported.
But you can circumvent this by either using the LESS environment variable, or by running `ccat file1 file2|less --opts`.
In the latter form, the file contents will be concatenated and presented by less as a single file.
-
-## Requirements
-
-You have to install Pygments first: [pygments.org](http://pygments.org/download.html)
From e204c596ef5a1075914c5e7810ec1eba4bbe7411 Mon Sep 17 00:00:00 2001
From: lieryan
Date: Sat, 21 Dec 2019 18:33:39 +1100
Subject: [PATCH 192/302] Rewrite gitstatus collection to be more robust
(#7322)
Fix the finicky parsing logic and just ask git the necessary information
directly.
---
plugins/git-prompt/gitstatus.py | 21 ++++++++-------------
1 file changed, 8 insertions(+), 13 deletions(-)
diff --git a/plugins/git-prompt/gitstatus.py b/plugins/git-prompt/gitstatus.py
index 390a50a6f..300365d71 100644
--- a/plugins/git-prompt/gitstatus.py
+++ b/plugins/git-prompt/gitstatus.py
@@ -4,26 +4,21 @@ from __future__ import print_function
import os
import sys
import re
-import shlex
from subprocess import Popen, PIPE, check_output
def get_tagname_or_hash():
"""return tagname if exists else hash"""
- cmd = 'git log -1 --format="%h%d"'
- output = check_output(shlex.split(cmd)).decode('utf-8').strip()
- hash_, tagname = None, None
# get hash
- m = re.search('\(.*\)$', output)
- if m:
- hash_ = output[:m.start()-1]
- # get tagname
- m = re.search('tag: .*[,\)]', output)
- if m:
- tagname = 'tags/' + output[m.start()+len('tag: '): m.end()-1]
+ hash_cmd = ['git', 'rev-parse', '--short', 'HEAD']
+ hash_ = check_output(hash_cmd).strip()
- if tagname:
- return tagname.replace(' ', '')
+ # get tagname
+ tags_cmd = ['git', 'for-each-ref', '--points-at=HEAD', '--count=2', '--sort=-version:refname', '--format=%(refname:short)', 'refs/tags']
+ tags = check_output(tags_cmd).split()
+
+ if tags:
+ return tags[0] + ('+' if len(tags) > 1 else '')
elif hash_:
return hash_
return None
From e21fbe7dffff1619c2deb02eea8cccbd7e9814f4 Mon Sep 17 00:00:00 2001
From: ProbstDJakob
Date: Sun, 22 Dec 2019 21:21:14 +0100
Subject: [PATCH 193/302] colorize: update plugin to support less options
(#8392)
---
plugins/colorize/README.md | 18 +++---
plugins/colorize/colorize.plugin.zsh | 83 +++++++++++++++++++---------
2 files changed, 64 insertions(+), 37 deletions(-)
diff --git a/plugins/colorize/README.md b/plugins/colorize/README.md
index d37443011..ee4ab8036 100644
--- a/plugins/colorize/README.md
+++ b/plugins/colorize/README.md
@@ -17,10 +17,10 @@ plugins=(... colorize)
### Requirements
-This plugin requires that either of the following tools be installed:
+This plugin requires that at least one of the following tools is installed:
-* Chroma: [https://github.com/alecthomas/chroma](https://github.com/alecthomas/chroma)
-* Pygments be installed: [pygments.org](https://pygments.org/)
+* [Chroma](https://github.com/alecthomas/chroma)
+* [Pygments](https://pygments.org/download/)
### Colorize tool
@@ -41,12 +41,8 @@ ZSH_COLORIZE_STYLE="colorful"
## Usage
* `ccat [files]`: colorize the contents of the file (or files, if more than one are provided).
- If no arguments are passed it will colorize the standard input or stdin.
+ If no files are passed it will colorize the standard input.
-* `cless [files]`: colorize the contents of the file (or files, if more than one are provided) and
- open less. If no arguments are passed it will colorize the standard input or stdin.
-
-Note that `cless` will behave as less when provided more than one file: you have to navigate files with
-the commands `:n` for next and `:p` for previous. The downside is that less options are not supported.
-But you can circumvent this by either using the LESS environment variable, or by running `ccat file1 file2|less --opts`.
-In the latter form, the file contents will be concatenated and presented by less as a single file.
+* `cless [less-options] [files]`: colorize the contents of the file (or files, if more than one are provided) and open less.
+ If no files are passed it will colorize the standard input.
+ The LESSOPEN and LESSCLOSE will be overwritten for this to work, but only in a local scope.
diff --git a/plugins/colorize/colorize.plugin.zsh b/plugins/colorize/colorize.plugin.zsh
index 3e91a9f46..6ed9739fa 100644
--- a/plugins/colorize/colorize.plugin.zsh
+++ b/plugins/colorize/colorize.plugin.zsh
@@ -1,8 +1,11 @@
-# easier alias to use the plugin
-alias ccat='colorize_via_pygmentize'
-alias cless='colorize_via_pygmentize_less'
+# Easier alias to use the plugin
+alias ccat="colorize_cat"
+alias cless="colorize_less"
-colorize_via_pygmentize() {
+# '$0:A' gets the absolute path of this file
+ZSH_COLORIZE_PLUGIN_PATH=$0:A
+
+colorize_check_requirements() {
local available_tools=("chroma" "pygmentize")
if [ -z "$ZSH_COLORIZE_TOOL" ]; then
@@ -23,6 +26,12 @@ colorize_via_pygmentize() {
echo "Package '$ZSH_COLORIZE_TOOL' is not installed!" >&2
return 1
fi
+}
+
+colorize_cat() {
+ if ! colorize_check_requirements; then
+ return 1
+ fi
# If the environment variable ZSH_COLORIZE_STYLE
# is set, use that theme instead. Otherwise,
@@ -32,7 +41,7 @@ colorize_via_pygmentize() {
ZSH_COLORIZE_STYLE="emacs"
fi
- # pygmentize stdin if no arguments passed
+ # Use stdin if no arguments have been passed.
if [ $# -eq 0 ]; then
if [[ "$ZSH_COLORIZE_TOOL" == "pygmentize" ]]; then
pygmentize -O style="$ZSH_COLORIZE_STYLE" -g
@@ -42,12 +51,9 @@ colorize_via_pygmentize() {
return $?
fi
- # guess lexer from file extension, or
- # guess it from file contents if unsuccessful
-
+ # Guess lexer from file extension, or guess it from file contents if unsuccessful.
local FNAME lexer
- for FNAME in "$@"
- do
+ for FNAME in "$@"; do
if [[ "$ZSH_COLORIZE_TOOL" == "pygmentize" ]]; then
lexer=$(pygmentize -N "$FNAME")
if [[ $lexer != text ]]; then
@@ -61,22 +67,47 @@ colorize_via_pygmentize() {
done
}
-colorize_via_pygmentize_less() (
- # this function is a subshell so tmp_files can be shared to cleanup function
- declare -a tmp_files
+# The less option 'F - Forward forever; like "tail -f".' will not work in this implementation
+# caused by the lack of the ability to follow the file within pygmentize.
+colorize_less() {
+ if ! colorize_check_requirements; then
+ return 1
+ fi
- cleanup () {
- [[ ${#tmp_files} -gt 0 ]] && rm -f "${tmp_files[@]}"
- exit
+ _cless() {
+ # LESS="-R $LESS" enables raw ANSI colors, while maintain already set options.
+ local LESS="-R $LESS"
+
+ # This variable tells less to pipe every file through the specified command
+ # (see the man page of less INPUT PREPROCESSOR).
+ # 'zsh -ic "colorize_cat %s 2> /dev/null"' would not work for huge files like
+ # the ~/.zsh_history. For such files the tty of the preprocessor will be supended.
+ # Therefore we must source this file to make colorize_cat available in the
+ # preprocessor without the interactive mode.
+ # `2>/dev/null` will suppress the error for large files 'broken pipe' of the python
+ # script pygmentize, which will show up if less has not fully "loaded the file"
+ # (e.g. when not scrolled to the bottom) while already the next file will be displayed.
+ local LESSOPEN="| zsh -c 'source \"$ZSH_COLORIZE_PLUGIN_PATH\"; \
+ ZSH_COLORIZE_TOOL=$ZSH_COLORIZE_TOOL ZSH_COLORIZE_STYLE=$ZSH_COLORIZE_STYLE \
+ colorize_cat %s 2> /dev/null'"
+
+ # LESSCLOSE will be set to prevent any errors by executing a user script
+ # which assumes that his LESSOPEN has been executed.
+ local LESSCLOSE=""
+
+ LESS="$LESS" LESSOPEN="$LESSOPEN" LESSCLOSE="$LESSCLOSE" less "$@"
}
- trap 'cleanup' EXIT HUP TERM INT
- while (( $# != 0 )); do #TODO: filter out less opts
- tmp_file="$(mktemp -t "tmp.colorize.XXXX.$(sed 's/\//./g' <<< "$1")")"
- tmp_files+=("$tmp_file")
- colorize_via_pygmentize "$1" > "$tmp_file"
- shift 1
- done
-
- less -f "${tmp_files[@]}"
-)
+ if [ -t 0 ]; then
+ _cless "$@"
+ else
+ # The input is not associated with a terminal, therefore colorize_cat will
+ # colorize this input and pass it to less.
+ # Less has now to decide what to use. If any files have been provided, less
+ # will ignore the input by default, otherwise the colorized input will be used.
+ # If files have been supplied and the input has been redirected, this will
+ # lead to unnecessary overhead, but retains the ability to use the less options
+ # without checking for them inside this script.
+ colorize_cat | _cless "$@"
+ fi
+}
From 38929084f98684b9267d7f0cfe3e7f9aa5f861d2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Sun, 22 Dec 2019 23:03:54 +0100
Subject: [PATCH 194/302] fastfile: add README
---
plugins/fastfile/README.md | 84 ++++++++++++++++++++++++++++
plugins/fastfile/fastfile.plugin.zsh | 39 +++++--------
2 files changed, 98 insertions(+), 25 deletions(-)
create mode 100644 plugins/fastfile/README.md
diff --git a/plugins/fastfile/README.md b/plugins/fastfile/README.md
new file mode 100644
index 000000000..37f5b2f53
--- /dev/null
+++ b/plugins/fastfile/README.md
@@ -0,0 +1,84 @@
+# Fastfile plugin
+
+This plugin adds a way to reference certain files or folders used frequently using
+a global alias or shortcut.
+
+To use it, add `fastfile` to the plugins array in your zshrc file:
+```zsh
+plugins=(... fastfile)
+```
+
+## Usage
+
+Example: you access folder `/code/project/backend/database` very frequently.
+
+First, generate a shortcut with the name `pjdb`:
+```zsh
+$ fastfile pjdb /code/project/backend/database
+```
+
+Next time you want to access it, use `§pjdb`. For example:
+```zsh
+$ cd §pjdb
+$ subl §pjdb
+```
+where § is the fastfile prefix (see [below](#options) for how to change).
+
+**Note:** shortcuts with spaces in the name are assigned a global alias
+where the spaces have been substituted with underscores (`_`). For example:
+a shortcut named `"hello world"` corresponds with `§hello_world`.
+
+
+## Functions
+
+- `fastfile `: generate a shortcut.
+
+- `fastfile_print `: prints a shortcut, with the format
+ ` -> `.
+
+- `fastfile_ls`: lists all shortcuts.
+
+- `fastfile_rm `: remove a shortcut.
+
+- `fastfile_sync`: generates the global aliases for the shortcuts.
+
+
+### Internal functions
+
+- `fastfile_resolv `: resolves the location of the shortcut
+ file, i.e., the file in the fastfile directory where the shortcut path
+ is stored.
+
+- `fastfile_get `: get the real path of the shortcut.
+
+
+## Aliases
+
+| Alias | Function |
+|--------|------------------|
+| ff | `fastfile` |
+| ffp | `fastfile_print` |
+| ffrm | `fastfile_rm` |
+| ffls | `fastfile_ls` |
+| ffsync | `fastfile_sync` |
+
+
+## Options
+
+These are options you can set to change certain parts of the plugin. To change
+them, add `=` to your zshrc file, before Oh My Zsh is sourced.
+For example: `fastfile_var_prefix='@'`.
+
+- `fastfile_var_prefix`: prefix for the global aliases created. Controls the prefix of the
+ created global aliases.
+ **Default:** `§` (section sign), easy to type in a german keyboard via the combination
+ [`⇧ Shift`+`3`](https://en.wikipedia.org/wiki/German_keyboard_layout#/media/File:KB_Germany.svg),
+ or using `⌥ Option`+`6` in macOS.
+
+- `fastfile_dir`: directory where the fastfile shortcuts are stored. Needs to end
+ with a trailing slash.
+ **Default:** `$HOME/.fastfile/`.
+
+## Author
+
+- [Karolin Varner](https://github.com/koraa)
diff --git a/plugins/fastfile/fastfile.plugin.zsh b/plugins/fastfile/fastfile.plugin.zsh
index 775e9483e..a4229e4c2 100644
--- a/plugins/fastfile/fastfile.plugin.zsh
+++ b/plugins/fastfile/fastfile.plugin.zsh
@@ -1,15 +1,5 @@
-################################################################################
-# FILE: fastfile.plugin.zsh
-# DESCRIPTION: oh-my-zsh plugin file.
-# AUTHOR: Michael Varner (musikmichael@web.de)
-# VERSION: 1.0.0
-#
-# This plugin adds the ability to on the fly generate and access file shortcuts.
-#
-################################################################################
-
###########################
-# Settings
+# Settings
# These can be overwritten any time.
# If they are not set yet, they will be
@@ -33,7 +23,7 @@ default fastfile_var_prefix "§"
function fastfile() {
test "$2" || 2="."
file=$(readlink -f "$2")
-
+
test "$1" || 1="$(basename "$file")"
name=$(echo "$1" | tr " " "_")
@@ -51,7 +41,7 @@ function fastfile() {
# Arguments:
# 1. name - The name of the shortcut
# STDOUT:
-# The path
+# The path to the shortcut file
#
function fastfile_resolv() {
echo "${fastfile_dir}${1}"
@@ -88,12 +78,12 @@ function fastfile_print() {
# (=> fastfle_print) for each shortcut
#
function fastfile_ls() {
- for f in "${fastfile_dir}"/*; do
- file=`basename "$f"` # To enable simpler handeling of spaces in file names
- varkey=`echo "$file" | tr " " "_"`
+ for f in "${fastfile_dir}"/*; do
+ file=`basename "$f"` # To enable simpler handeling of spaces in file names
+ varkey=`echo "$file" | tr " " "_"`
- # Special format for colums
- echo "${fastfile_var_prefix}${varkey}|->|$(fastfile_get "$file")"
+ # Special format for colums
+ echo "${fastfile_var_prefix}${varkey}|->|$(fastfile_get "$file")"
done | column -t -s "|"
}
@@ -102,7 +92,6 @@ function fastfile_ls() {
#
# Arguments:
# 1. name - The name of the shortcut (default: name of the file)
-# 2. file - The file or directory to make the shortcut for
# STDOUT:
# => fastfle_print
#
@@ -115,11 +104,11 @@ function fastfile_rm() {
# Generate the aliases for the shortcuts
#
function fastfile_sync() {
- for f in "${fastfile_dir}"/*; do
- file=`basename "$f"` # To enable simpler handeling of spaces in file names
- varkey=`echo "$file" | tr " " "_"`
+ for f in "${fastfile_dir}"/*; do
+ file=`basename "$f"` # To enable simpler handeling of spaces in file names
+ varkey=`echo "$file" | tr " " "_"`
- alias -g "${fastfile_var_prefix}${varkey}"="'$(fastfile_get "$file")'"
+ alias -g "${fastfile_var_prefix}${varkey}"="'$(fastfile_get "$file")'"
done
}
@@ -133,6 +122,6 @@ alias ffls=fastfile_ls
alias ffsync=fastfile_sync
##################################
-# Init
+# Init
-fastfile_sync
\ No newline at end of file
+fastfile_sync
From 7360d898d8b64b40276eab72bcd9e1ea4fc8f7ee Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Thu, 26 Dec 2019 23:12:17 +0100
Subject: [PATCH 195/302] gas: add README
---
plugins/gas/README.md | 9 +++++++++
1 file changed, 9 insertions(+)
create mode 100644 plugins/gas/README.md
diff --git a/plugins/gas/README.md b/plugins/gas/README.md
new file mode 100644
index 000000000..cd8800e7d
--- /dev/null
+++ b/plugins/gas/README.md
@@ -0,0 +1,9 @@
+# Gas plugin
+
+This plugin adds autocompletion for the [gas](http://walle.github.com/gas) command,
+a utility to manage Git authors.
+
+To use it, add `gas` to the plugins array of your zshrc file:
+```zsh
+plugins=(... gas)
+```
From 59930902e1bee022ec031cd276df66174e1990d3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Thu, 26 Dec 2019 23:23:23 +0100
Subject: [PATCH 196/302] glassfish: add README
---
plugins/glassfish/README.md | 9 +++++++++
plugins/glassfish/glassfish.plugin.zsh | 3 ---
2 files changed, 9 insertions(+), 3 deletions(-)
create mode 100644 plugins/glassfish/README.md
diff --git a/plugins/glassfish/README.md b/plugins/glassfish/README.md
new file mode 100644
index 000000000..1f4a8be34
--- /dev/null
+++ b/plugins/glassfish/README.md
@@ -0,0 +1,9 @@
+# glassfish
+
+The glassfish plugin adds completion for the `asadmin` utility, a command to manage
+[Oracle GlassFish](https://docs.oracle.com/cd/E18930_01/html/821-2416/giobi.html) servers.
+
+To use it, add `glassfish` to the plugins array in your zshrc file:
+```zsh
+plugins=(... glassfish)
+```
diff --git a/plugins/glassfish/glassfish.plugin.zsh b/plugins/glassfish/glassfish.plugin.zsh
index fde2edb2a..e69de29bb 100644
--- a/plugins/glassfish/glassfish.plugin.zsh
+++ b/plugins/glassfish/glassfish.plugin.zsh
@@ -1,3 +0,0 @@
-# if there is a user named 'glassfish' on the system, we'll assume
-# that is the user asadmin should be run as
-# grep -e '^glassfish' /etc/passwd > /dev/null && alias asadmin='sudo -u glassfish asadmin'
\ No newline at end of file
From a952854c122c0e728f7bb5577fabda6b6a0c6a79 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Fri, 27 Dec 2019 00:04:40 +0100
Subject: [PATCH 197/302] gnu-utils: add README, simplify plugin
---
plugins/gnu-utils/README.md | 38 +++++++
plugins/gnu-utils/gnu-utils.plugin.zsh | 148 ++++++++++++-------------
2 files changed, 112 insertions(+), 74 deletions(-)
create mode 100644 plugins/gnu-utils/README.md
diff --git a/plugins/gnu-utils/README.md b/plugins/gnu-utils/README.md
new file mode 100644
index 000000000..f5fa81e2f
--- /dev/null
+++ b/plugins/gnu-utils/README.md
@@ -0,0 +1,38 @@
+# gnu-utils plugin
+
+This plugin binds GNU coreutils to their default names, so that you don't have
+to call them using their prefixed name, which starts with `g`. This is useful
+in systems which don't have GNU coreutils installed by default, mainly macOS
+or FreeBSD, which use BSD coreutils.
+
+To use it, add `gnu-utils` to the plugins array in your zshrc file:
+```zsh
+plugins=(... gnu-utils)
+```
+
+The plugin works by changing the path that the command hash points to, so
+instead of `ls` pointing to `/bin/ls`, it points to wherever `gls` is
+installed.
+
+Since `hash -rf` or `rehash` refreshes the command hashes, it also wraps
+`hash` and `rehash` so that the coreutils binding is always done again
+after calling these two commands.
+
+Look at the source code of the plugin to see which GNU coreutils are tried
+to rebind. Open an issue if there are some missing.
+
+## Other methods
+
+The plugin also documents two other ways to do this:
+
+1. Using a function wrapper, such that, for example, there exists a function
+named `ls` which calls `gls` instead. Since functions have a higher preference
+than commands, this ends up calling the GNU coreutil. It has also a higher
+preference over shell builtins (`gecho` is called instead of the builtin `echo`).
+
+2. Using an alias. This has an even higher preference than functions, but they
+could be overridden because of a user setting.
+
+## Author
+
+- [Sorin Ionescu](https://github.com/sorin-ionescu).
diff --git a/plugins/gnu-utils/gnu-utils.plugin.zsh b/plugins/gnu-utils/gnu-utils.plugin.zsh
index b66e25d7f..967b8b4ea 100644
--- a/plugins/gnu-utils/gnu-utils.plugin.zsh
+++ b/plugins/gnu-utils/gnu-utils.plugin.zsh
@@ -5,79 +5,79 @@
# VERSION: 1.0.0
# ------------------------------------------------------------------------------
-
-if [[ -x "${commands[gwhoami]}" ]]; then
- __gnu_utils() {
- emulate -L zsh
- local gcmds
- local gcmd
- local cmd
- local prefix
-
- # coreutils
- gcmds=('g[' 'gbase64' 'gbasename' 'gcat' 'gchcon' 'gchgrp' 'gchmod'
- 'gchown' 'gchroot' 'gcksum' 'gcomm' 'gcp' 'gcsplit' 'gcut' 'gdate'
- 'gdd' 'gdf' 'gdir' 'gdircolors' 'gdirname' 'gdu' 'gecho' 'genv' 'gexpand'
- 'gexpr' 'gfactor' 'gfalse' 'gfmt' 'gfold' 'ggroups' 'ghead' 'ghostid'
- 'gid' 'ginstall' 'gjoin' 'gkill' 'glink' 'gln' 'glogname' 'gls' 'gmd5sum'
- 'gmkdir' 'gmkfifo' 'gmknod' 'gmktemp' 'gmv' 'gnice' 'gnl' 'gnohup' 'gnproc'
- 'god' 'gpaste' 'gpathchk' 'gpinky' 'gpr' 'gprintenv' 'gprintf' 'gptx' 'gpwd'
- 'greadlink' 'grm' 'grmdir' 'gruncon' 'gseq' 'gsha1sum' 'gsha224sum'
- 'gsha256sum' 'gsha384sum' 'gsha512sum' 'gshred' 'gshuf' 'gsleep' 'gsort'
- 'gsplit' 'gstat' 'gstty' 'gsum' 'gsync' 'gtac' 'gtail' 'gtee' 'gtest'
- 'gtimeout' 'gtouch' 'gtr' 'gtrue' 'gtruncate' 'gtsort' 'gtty' 'guname'
- 'gunexpand' 'guniq' 'gunlink' 'guptime' 'gusers' 'gvdir' 'gwc' 'gwho'
- 'gwhoami' 'gyes')
-
- # findutils
- gcmds+=('gfind' 'gxargs' 'glocate')
-
- # Not part of either coreutils or findutils, installed separately.
- gcmds+=('gsed' 'gtar' 'gtime')
-
- for gcmd in "${gcmds[@]}"; do
- #
- # This method allows for builtin commands to be primary but it's
- # lost if hash -r or rehash -f is executed. Thus, those two
- # functions have to be wrapped.
- #
- (( ${+commands[$gcmd]} )) && hash ${gcmd[2,-1]}=${commands[$gcmd]}
-
- #
- # This method generates wrapper functions.
- # It will override shell builtins.
- #
- # (( ${+commands[$gcmd]} )) && \
- # eval "function $gcmd[2,-1]() { \"${prefix}/${gcmd//"["/"\\["}\" \"\$@\"; }"
-
- #
- # This method is inflexible since the aliases are at risk of being
- # overridden resulting in the BSD coreutils being called.
- #
- # (( ${+commands[$gcmd]} )) && \
- # alias "$gcmd[2,-1]"="${prefix}/${gcmd//"["/"\\["}"
- done
-
- return 0
- }
- __gnu_utils;
-
- function hash() {
- if [[ "$*" =~ "-(r|f)" ]]; then
- builtin hash "$@"
- __gnu_utils
- else
- builtin hash "$@"
- fi
- }
-
- function rehash() {
- if [[ "$*" =~ "-f" ]]; then
- builtin rehash "$@"
- __gnu_utils
- else
- builtin rehash "$@"
- fi
- }
+# Detect if GNU coreutils are installed by looking for gwhoami
+if [[ ! -x "${commands[gwhoami]}" ]]; then
+ return
fi
+__gnu_utils() {
+ emulate -L zsh
+ local gcmds
+ local gcmd
+ local cmd
+ local prefix
+
+ # coreutils
+ gcmds=('g[' 'gbase64' 'gbasename' 'gcat' 'gchcon' 'gchgrp' 'gchmod'
+ 'gchown' 'gchroot' 'gcksum' 'gcomm' 'gcp' 'gcsplit' 'gcut' 'gdate'
+ 'gdd' 'gdf' 'gdir' 'gdircolors' 'gdirname' 'gdu' 'gecho' 'genv' 'gexpand'
+ 'gexpr' 'gfactor' 'gfalse' 'gfmt' 'gfold' 'ggroups' 'ghead' 'ghostid'
+ 'gid' 'ginstall' 'gjoin' 'gkill' 'glink' 'gln' 'glogname' 'gls' 'gmd5sum'
+ 'gmkdir' 'gmkfifo' 'gmknod' 'gmktemp' 'gmv' 'gnice' 'gnl' 'gnohup' 'gnproc'
+ 'god' 'gpaste' 'gpathchk' 'gpinky' 'gpr' 'gprintenv' 'gprintf' 'gptx' 'gpwd'
+ 'greadlink' 'grm' 'grmdir' 'gruncon' 'gseq' 'gsha1sum' 'gsha224sum'
+ 'gsha256sum' 'gsha384sum' 'gsha512sum' 'gshred' 'gshuf' 'gsleep' 'gsort'
+ 'gsplit' 'gstat' 'gstty' 'gsum' 'gsync' 'gtac' 'gtail' 'gtee' 'gtest'
+ 'gtimeout' 'gtouch' 'gtr' 'gtrue' 'gtruncate' 'gtsort' 'gtty' 'guname'
+ 'gunexpand' 'guniq' 'gunlink' 'guptime' 'gusers' 'gvdir' 'gwc' 'gwho'
+ 'gwhoami' 'gyes')
+
+ # findutils
+ gcmds+=('gfind' 'gxargs' 'glocate')
+
+ # Not part of either coreutils or findutils, installed separately.
+ gcmds+=('gsed' 'gtar' 'gtime')
+
+ for gcmd in "${gcmds[@]}"; do
+ # Do nothing if the command isn't found
+ (( ${+commands[$gcmd]} )) || continue
+
+ # This method allows for builtin commands to be primary but it's
+ # lost if hash -r or rehash -f is executed. Thus, those two
+ # functions have to be wrapped.
+ #
+ hash ${gcmd[2,-1]}=${commands[$gcmd]}
+
+ # This method generates wrapper functions.
+ # It will override shell builtins.
+ #
+ # eval "function $gcmd[2,-1]() { \"${prefix}/${gcmd//"["/"\\["}\" \"\$@\"; }"
+
+ # This method is inflexible since the aliases are at risk of being
+ # overridden resulting in the BSD coreutils being called.
+ #
+ # alias "$gcmd[2,-1]"="${prefix}/${gcmd//"["/"\\["}"
+ done
+
+ return 0
+}
+__gnu_utils
+
+function hash() {
+ if [[ "$*" =~ "-(r|f)" ]]; then
+ builtin hash "$@"
+ __gnu_utils
+ else
+ builtin hash "$@"
+ fi
+}
+
+function rehash() {
+ if [[ "$*" =~ "-f" ]]; then
+ builtin rehash "$@"
+ __gnu_utils
+ else
+ builtin rehash "$@"
+ fi
+}
+
From 132607447d24477bcedac7e0accd3fe83b9b6a1a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Fri, 27 Dec 2019 00:49:50 +0100
Subject: [PATCH 198/302] knife: add README and reformat completion file
---
plugins/knife/README.md | 25 +++++
plugins/knife/_knife | 215 +++++++++++++++++++++-------------------
2 files changed, 136 insertions(+), 104 deletions(-)
create mode 100644 plugins/knife/README.md
diff --git a/plugins/knife/README.md b/plugins/knife/README.md
new file mode 100644
index 000000000..b167f1655
--- /dev/null
+++ b/plugins/knife/README.md
@@ -0,0 +1,25 @@
+# knife plugin
+
+This plugin adds completion for [knife](https://docs.chef.io/knife.html), a command-line tool
+to interact with [Chef](https://chef.io), a platform to automate and manage infrastructure via
+code.
+
+To use it, add `knife` to the plugins array in your zshrc file:
+```zsh
+plugins=(... knife)
+```
+
+## Options
+
+- `KNIFE_RELATIVE_PATH`: if set to `true`, the completion script will look for local cookbooks
+ under the `cookbooks` folder in the chef root directory. It has preference over the other two
+ options below. **Default:** empty.
+
+- `KNIFE_COOKBOOK_PATH`: if set, it points to the folder that contains local cookbooks, for
+ example: `/path/to/my/chef/cookbooks`. **Default:** `cookbook_path` field in `knife.rb`
+ (see below).
+
+- `KNIFE_CONF_PATH`: variable pointing to the `knife.rb` configuration file, for example
+ `/path/to/my/.chef/knife.rb`. Only used if `$KNIFE_COOKBOOK_PATH` isn't set. If it exists,
+ `$PWD/.chef/knife.rb` is used instead. Otherwise, if it's set, its value is used.
+ **Default**: `$HOME/.chef/knife.rb`.
diff --git a/plugins/knife/_knife b/plugins/knife/_knife
index 0d61ff15c..06b12a3b0 100644
--- a/plugins/knife/_knife
+++ b/plugins/knife/_knife
@@ -3,13 +3,13 @@
# You can override the path to knife.rb and your cookbooks by setting
# KNIFE_CONF_PATH=/path/to/my/.chef/knife.rb
# KNIFE_COOKBOOK_PATH=/path/to/my/chef/cookbooks
-# If you want your local cookbooks path to be calculated relative to where you are then
+# If you want your local cookbooks path to be calculated relative to where you are then
# set the below option
-# KNIFE_RELATIVE_PATH=true
+# KNIFE_RELATIVE_PATH=true
# Read around where these are used for more detail.
# These flags should be available everywhere according to man knife
-knife_general_flags=( --help --server-url --key --config --editor --format --log_level --logfile --no-editor --user --print-after --version --yes )
+knife_general_flags=(--help --server-url --key --config --editor --format --log_level --logfile --no-editor --user --print-after --version --yes)
# knife has a very special syntax, some example calls are:
# knife status
@@ -25,183 +25,191 @@ _knife() {
typeset -A opt_args
cloudproviders=(bluebox ec2 rackspace slicehost terremark)
_arguments \
- '1: :->knifecmd'\
- '2: :->knifesubcmd'\
+ '1: :->knifecmd' \
+ '2: :->knifesubcmd' \
'3: :->knifesubcmd2' \
'4: :->knifesubcmd3' \
'5: :->knifesubcmd4' \
'6: :->knifesubcmd5'
-
+
case $state in
knifecmd)
compadd -Q "$@" bootstrap client configure cookbook "cookbook site" "data bag" diff exec environment index node recipe role search ssh status upload vault windows $cloudproviders
- ;;
+ ;;
knifesubcmd)
case $words[2] in
- (bluebox|ec2|rackspace|slicehost|terremark)
+ bluebox|ec2|rackspace|slicehost|terremark)
compadd "$@" server images
- ;;
+ ;;
client)
compadd -Q "$@" "bulk delete" list create show delete edit reregister
- ;;
+ ;;
configure)
compadd "$@" client
- ;;
+ ;;
cookbook)
compadd -Q "$@" test list create download delete "metadata from" show "bulk delete" metadata upload
- ;;
+ ;;
diff)
_arguments '*:file or directory:_files -g "*"'
- ;;
+ ;;
environment)
compadd -Q "$@" list create delete edit show "from file"
- ;;
+ ;;
node)
- compadd -Q "$@" "from file" create show edit delete list run_list "bulk delete"
- ;;
+ compadd -Q "$@" "from file" create show edit delete list run_list "bulk delete"
+ ;;
recipe)
- compadd "$@" list
- ;;
+ compadd "$@" list
+ ;;
role)
compadd -Q "$@" "bulk delete" create delete edit "from file" list show
- ;;
+ ;;
upload)
- _arguments '*:file or directory:_files -g "*"'
- ;;
+ _arguments '*:file or directory:_files -g "*"'
+ ;;
vault)
compadd -Q "$@" create decrypt delete edit remove "rotate all keys" "rotate keys" show update
- ;;
+ ;;
windows)
compadd "$@" bootstrap
- ;;
+ ;;
*)
- _arguments '2:Subsubcommands:($(_knife_options1))'
+ _arguments '2:Subsubcommands:($(_knife_options1))'
+ ;;
esac
- ;;
- knifesubcmd2)
+ ;;
+ knifesubcmd2)
case $words[3] in
- server)
+ server)
compadd "$@" list create delete
- ;;
- images)
+ ;;
+ images)
compadd "$@" list
- ;;
- site)
+ ;;
+ site)
compadd "$@" vendor show share search download list unshare
- ;;
- (show|delete|edit)
- _arguments '3:Subsubcommands:($(_chef_$words[2]s_remote))'
- ;;
- (upload|test)
- _arguments '3:Subsubcommands:($(_chef_$words[2]s_local) --all)'
- ;;
+ ;;
+ show|delete|edit)
+ _arguments '3:Subsubcommands:($(_chef_$words[2]s_remote))'
+ ;;
+ upload|test)
+ _arguments '3:Subsubcommands:($(_chef_$words[2]s_local) --all)'
+ ;;
list)
- compadd -a "$@" knife_general_flags
- ;;
+ compadd -a "$@" knife_general_flags
+ ;;
bag)
compadd -Q "$@" show edit list "from file" create delete
- ;;
+ ;;
*)
_arguments '3:Subsubcommands:($(_knife_options2))'
+ ;;
esac
- ;;
- knifesubcmd3)
- case $words[3] in
- show)
- case $words[2] in
- cookbook)
- versioncomp=1
- _arguments '4:Cookbookversions:($(_cookbook_versions) latest)'
- ;;
- (node|client|role)
- compadd "$@" --attribute
- esac
- esac
- case $words[4] in
- (show|edit)
- _arguments '4:Subsubsubcommands:($(_chef_$words[2]_$words[3]s_remote))'
;;
- file)
+ knifesubcmd3)
+ case $words[3] in
+ show)
+ case $words[2] in
+ cookbook)
+ versioncomp=1
+ _arguments '4:Cookbookversions:($(_cookbook_versions) latest)'
+ ;;
+ node|client|role)
+ compadd "$@" --attribute
+ ;;
+ esac
+ ;;
+ esac
+ case $words[4] in
+ show|edit)
+ _arguments '4:Subsubsubcommands:($(_chef_$words[2]_$words[3]s_remote))'
+ ;;
+ file)
case $words[2] in
environment)
_arguments '*:files:_path_files -g "*.(rb|json)" -W "$(_chef_root)/environments"'
- ;;
+ ;;
node)
_arguments '*:files:_path_files -g "*.(rb|json)" -W "$(_chef_root)/nodes"'
- ;;
+ ;;
role)
_arguments '*:files:_path_files -g "*.(rb|json)" -W "$(_chef_root)/roles"'
- ;;
+ ;;
*)
_arguments '*:Subsubcommands:($(_knife_options3))'
- esac
- ;;
- list)
- compadd -a "$@" knife_general_flags
- ;;
- *)
- _arguments '*:Subsubcommands:($(_knife_options3))'
+ ;;
+ esac
+ ;;
+ list)
+ compadd -a "$@" knife_general_flags
+ ;;
+ *)
+ _arguments '*:Subsubcommands:($(_knife_options3))'
+ ;;
esac
;;
- knifesubcmd4)
- if (( versioncomp > 0 )); then
- compadd "$@" attributes definitions files libraries providers recipes resources templates
- else
- case $words[5] in
- file)
- _arguments '*:directory:_path_files -/ -W "$(_chef_root)/data_bags" -qS \ '
+ knifesubcmd4)
+ if ((versioncomp > 0)); then
+ compadd "$@" attributes definitions files libraries providers recipes resources templates
+ else
+ case $words[5] in
+ file)
+ _arguments '*:directory:_path_files -/ -W "$(_chef_root)/data_bags" -qS \ '
;;
- *) _arguments '*:Subsubcommands:($(_knife_options2))'
+ *) _arguments '*:Subsubcommands:($(_knife_options2))' ;;
esac
- fi
- ;;
- knifesubcmd5)
- case $words[5] in
- file)
- _arguments '*:files:_path_files -g "*.json" -W "$(_chef_root)/data_bags/$words[6]"'
- ;;
- *)
- _arguments '*:Subsubcommands:($(_knife_options3))'
- esac
- esac
+ fi
+ ;;
+ knifesubcmd5)
+ case $words[5] in
+ file)
+ _arguments '*:files:_path_files -g "*.json" -W "$(_chef_root)/data_bags/$words[6]"'
+ ;;
+ *)
+ _arguments '*:Subsubcommands:($(_knife_options3))'
+ ;;
+ esac
+ ;;
+ esac
}
# Helper functions to provide the argument completion for several depths of commands
_knife_options1() {
- ( for line in $( knife $words[2] --help | grep -v "^knife" ); do echo $line | grep "\-\-"; done )
+ (for line in $(knife $words[2] --help | grep -v "^knife"); do echo $line | grep "\-\-"; done)
}
_knife_options2() {
- ( for line in $( knife $words[2] $words[3] --help | grep -v "^knife" ); do echo $line | grep "\-\-"; done )
+ (for line in $(knife $words[2] $words[3] --help | grep -v "^knife"); do echo $line | grep "\-\-"; done)
}
_knife_options3() {
- ( for line in $( knife $words[2] $words[3] $words[4] --help | grep -v "^knife" ); do echo $line | grep "\-\-"; done )
+ (for line in $(knife $words[2] $words[3] $words[4] --help | grep -v "^knife"); do echo $line | grep "\-\-"; done)
}
# The chef_x_remote functions use knife to get a list of objects of type x on the server
_chef_roles_remote() {
- (knife role list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
+ (knife role list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
}
_chef_clients_remote() {
- (knife client list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
+ (knife client list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
}
_chef_nodes_remote() {
- (knife node list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
+ (knife node list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
}
_chef_cookbooks_remote() {
- (knife cookbook list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
+ (knife cookbook list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
}
_chef_sitecookbooks_remote() {
- (knife cookbook site list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
+ (knife cookbook site list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
}
_chef_data_bags_remote() {
- (knife data bag list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
+ (knife data bag list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
}
_chef_environments_remote() {
@@ -210,14 +218,14 @@ _chef_environments_remote() {
# The chef_x_local functions use the knife config to find the paths of relevant objects x to be uploaded to the server
_chef_cookbooks_local() {
- if [ $KNIFE_RELATIVE_PATH ]; then
+ if [ $KNIFE_RELATIVE_PATH ]; then
local cookbook_path="$(_chef_root)/cookbooks"
- else
+ else
local knife_rb=${KNIFE_CONF_PATH:-${HOME}/.chef/knife.rb}
if [ -f ./.chef/knife.rb ]; then
knife_rb="./.chef/knife.rb"
fi
- local cookbook_path=${KNIFE_COOKBOOK_PATH:-$(grep cookbook_path $knife_rb | awk 'BEGIN {FS = "[" }; {print $2}' | sed 's/\,//g' | sed "s/'//g" | sed 's/\(.*\)]/\1/' )}
+ local cookbook_path=${KNIFE_COOKBOOK_PATH:-$(grep cookbook_path $knife_rb | awk 'BEGIN {FS = "[" }; {print $2}' | sed 's/\,//g' | sed "s/'//g" | sed 's/\(.*\)]/\1/')}
fi
(for i in $cookbook_path; do ls $i; done)
}
@@ -227,12 +235,11 @@ _cookbook_versions() {
(knife cookbook show $words[4] | grep -v $words[4] | grep -v -E '\]|\[|\{|\}' | sed 's/ //g' | sed 's/"//g')
}
-# Searches up from current directory to find the closest folder that has a .chef folder
-# Useful for the knife upload/from file commands
-_chef_root () {
+# Searches up from current directory to find the closest folder that has a .chef folder
+# Useful for the knife upload/from file commands
+_chef_root() {
directory="$PWD"
- while [ $directory != '/' ]
- do
+ while [ $directory != '/' ]; do
test -e "$directory/.chef" && echo "$directory" && return
directory="${directory:h}"
done
From 9c0ceb7a5291950551d95d9314573c26c73e6b0e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Fri, 27 Dec 2019 00:56:03 +0100
Subject: [PATCH 199/302] knife_ssh: add README
---
plugins/knife_ssh/README.md | 14 ++++++++++++++
1 file changed, 14 insertions(+)
create mode 100644 plugins/knife_ssh/README.md
diff --git a/plugins/knife_ssh/README.md b/plugins/knife_ssh/README.md
new file mode 100644
index 000000000..cb836b7f3
--- /dev/null
+++ b/plugins/knife_ssh/README.md
@@ -0,0 +1,14 @@
+# knife_ssh plugin
+
+This plugin adds a `knife_ssh` function as well as completion for it, to allow
+connecting via ssh to servers managed with [Chef](https://www.chef.io/).
+
+To use it, add `knife_ssh` to the plugins array in your zshrc file:
+```zsh
+plugins=(... knife_ssh)
+```
+
+The plugin creates a cache of the Chef node list via `knife`, and stores it
+in `$HOME/.knife_comp~`, when first triggering knife_ssh completion.
+
+**Requirements:** `knife` has to be installed.
From e891fbff9e2e70acfbeff0734cd1fc012861e6ef Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Fri, 27 Dec 2019 00:58:31 +0100
Subject: [PATCH 200/302] knife_ssh: small tweaks
---
plugins/knife_ssh/knife_ssh.plugin.zsh | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/plugins/knife_ssh/knife_ssh.plugin.zsh b/plugins/knife_ssh/knife_ssh.plugin.zsh
index 7fdd42a1e..dc425a33e 100644
--- a/plugins/knife_ssh/knife_ssh.plugin.zsh
+++ b/plugins/knife_ssh/knife_ssh.plugin.zsh
@@ -1,17 +1,17 @@
function knife_ssh() {
- grep -q $1 ~/.knife_comp~ 2> /dev/null || rm -f ~/.knife_comp~;
+ grep -q $1 ~/.knife_comp~ 2> /dev/null || rm -f ~/.knife_comp~
ssh $(knife node show $1 | awk '/IP:/{print $2}')
}
_knife_ssh() {
if hash knife 2>/dev/null; then
if [[ ! -f ~/.knife_comp~ ]]; then
- echo "\nGenerating ~/.knife_comp~..." >/dev/stderr
+ echo "\nGenerating ~/.knife_comp~..." >&2
knife node list > ~/.knife_comp~
fi
- compadd $(<~/.knife_comp~)
+ compadd $(< ~/.knife_comp~)
else
- echo "Could not find knife" > /dev/stderr;
+ echo "Could not find knife" >&2
fi
}
From 4fd25920070f85bf358d297e79af1e85aac07f5a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Fri, 27 Dec 2019 01:05:47 +0100
Subject: [PATCH 201/302] paver: add README
---
plugins/paver/README.md | 12 ++++++++++++
plugins/paver/paver.plugin.zsh | 6 +++---
2 files changed, 15 insertions(+), 3 deletions(-)
create mode 100644 plugins/paver/README.md
diff --git a/plugins/paver/README.md b/plugins/paver/README.md
new file mode 100644
index 000000000..c38d898ba
--- /dev/null
+++ b/plugins/paver/README.md
@@ -0,0 +1,12 @@
+# Paver
+
+This plugin adds completion for the `paver` command-line tool of [Paver](https://pythonhosted.org/Paver/).
+
+To use it, add `paver` to the plugins array of your zshrc file:
+```zsh
+plugins=(... paver)
+```
+
+The completion function creates a cache of paver tasks with the name `.paver_tasks`,
+in the current working directory. It regenerates that cache when the `pavement.py`
+changes.
diff --git a/plugins/paver/paver.plugin.zsh b/plugins/paver/paver.plugin.zsh
index 40bdbd12f..7e70ea37c 100644
--- a/plugins/paver/paver.plugin.zsh
+++ b/plugins/paver/paver.plugin.zsh
@@ -1,7 +1,7 @@
_paver_does_target_list_need_generating () {
- [ ! -f .paver_targets ] && return 0;
- [ pavement.py -nt .paver_targets ] && return 0;
- return 1;
+ [ ! -f .paver_targets ] && return 0
+ [ pavement.py -nt .paver_targets ] && return 0
+ return 1
}
_paver () {
From 9655377b9e02284188deddd3829159a0e35cc48f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Fri, 27 Dec 2019 01:54:02 +0100
Subject: [PATCH 202/302] rbfu: add README
---
plugins/rbfu/README.md | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
create mode 100644 plugins/rbfu/README.md
diff --git a/plugins/rbfu/README.md b/plugins/rbfu/README.md
new file mode 100644
index 000000000..f1f9fa2f7
--- /dev/null
+++ b/plugins/rbfu/README.md
@@ -0,0 +1,17 @@
+# rbfu plugin
+
+This plugin starts [rbfu](https://github.com/hmans/rbfu), a minimal Ruby version
+manager, and adds some useful functions.
+
+To use it, add `rbfu` to the plugins array in your zshrc file:
+```zsh
+plugins=(... rbfu)
+```
+
+**Note: `rbfu` is deprecated and should no longer be used.**
+
+## Functions
+
+- `rbfu-rubies`: lists all installed rubies available to rbfu.
+
+- `rvm_prompt_info`: shows the Ruby version being used with rbfu.
From 0c2f7514fc65d23fe86ad4c8eb6807ec7c18043f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Fri, 27 Dec 2019 02:07:59 +0100
Subject: [PATCH 203/302] sfffe: add README
---
plugins/sfffe/README.md | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
create mode 100644 plugins/sfffe/README.md
diff --git a/plugins/sfffe/README.md b/plugins/sfffe/README.md
new file mode 100644
index 000000000..29044e85b
--- /dev/null
+++ b/plugins/sfffe/README.md
@@ -0,0 +1,17 @@
+# "Search files for Front-End"
+
+This plugin adds a few functions for searching files used in Front-End web development.
+
+To use it, add `sfffe` to the plugins array in your zshrc file:
+```zsh
+plugins=(... sfffe)
+```
+
+**Requires:** `ack`
+
+## Functions
+
+- `ajs`: look for string in `.js` files.
+- `acss`: look for string in `.css` files.
+- `fjs`: search for `.js` files under the current working directory.
+- `fcss`: search for `.css` files under the current working directory.
From ca8a5a0a84d4bb38c0a953e633a7ee446037a616 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Fri, 27 Dec 2019 02:25:59 +0100
Subject: [PATCH 204/302] svn-fast-info: add README, reorg. plugin
---
plugins/svn-fast-info/README.md | 55 +++++++++++++++++++
.../svn-fast-info/svn-fast-info.plugin.zsh | 42 +++++++-------
2 files changed, 75 insertions(+), 22 deletions(-)
create mode 100644 plugins/svn-fast-info/README.md
diff --git a/plugins/svn-fast-info/README.md b/plugins/svn-fast-info/README.md
new file mode 100644
index 000000000..04c596fd8
--- /dev/null
+++ b/plugins/svn-fast-info/README.md
@@ -0,0 +1,55 @@
+# svn-fast-info plugin
+
+Faster alternative to the main SVN plugin implementation. Works with svn 1.6 and newer.
+Use as a drop-in replacement to the svn plugin, not as complementary.
+
+To use it, add `svn-fast-info` to the plugins array in your zshrc file:
+```zsh
+plugins=(... svn-fast-info)
+```
+
+It's faster because his efficient use of svn (single svn call) which saves a lot on a huge codebase
+It displays the current status of the local files (added, deleted, modified, replaced, or else...)
+
+Use `svn_prompt_info` method to display the svn repository status in your theme.
+
+## Functions
+
+- `svn_prompt_info`: displays all the available information regarding the status of the svn repository.
+
+- `svn_repo_need_upgrade`: shows whether the repository needs upgrading. `svn_prompt_info` queries the
+ rest of functions or not based on the result of this function.
+
+- `svn_current_branch_name`: shows the current branch.
+
+- `svn_repo_root_name`: displays the repository root.
+
+- `svn_current_revision`: shows the currently checked-out revision.
+
+- `svn_status_info`: shows a bunch of symbols depending on the status of the files in the repository.
+
+## Options
+
+- `ZSH_THEME_SVN_PROMPT_PREFIX`: sequence displayed at the beginning of the prompt info output.
+
+- `ZSH_THEME_SVN_PROMPT_SUFFIX`: sequence displayed at the end of the prompt info output.
+
+- `ZSH_THEME_SVN_PROMPT_CLEAN`: sequence displayed when the status of the repository is clean.
+
+- `ZSH_THEME_SVN_PROMPT_ADDITIONS`: sequence displayed if there are added files in the repository.
+ **Default:** `+`.
+
+- `ZSH_THEME_SVN_PROMPT_DELETIONS`: sequence displayed if there are deleted files in the repository.
+ **Default:** `✖`.
+
+- `ZSH_THEME_SVN_PROMPT_MODIFICATIONS`: sequence displayed if there are modified files in the repository.
+ **Default:** `✎`.
+
+- `ZSH_THEME_SVN_PROMPT_REPLACEMENTS`: sequence displayed if there are replaced files in the repository.
+ **Default:** `∿`.
+
+- `ZSH_THEME_SVN_PROMPT_UNTRACKED`: sequence displayed if there are untracked files in the repository.
+ **Default:** `?`.
+
+- `ZSH_THEME_SVN_PROMPT_DIRTY`: sequence displayed if the repository is dirty.
+ **Default:** `!`.
diff --git a/plugins/svn-fast-info/svn-fast-info.plugin.zsh b/plugins/svn-fast-info/svn-fast-info.plugin.zsh
index fe5265315..f40a59685 100644
--- a/plugins/svn-fast-info/svn-fast-info.plugin.zsh
+++ b/plugins/svn-fast-info/svn-fast-info.plugin.zsh
@@ -1,17 +1,6 @@
-# vim:ft=zsh ts=2 sw=2 sts=2 et
-#
-# Faster alternative to the current SVN plugin implementation.
-#
-# Works with svn 1.6, 1.7, 1.8.
-# Use `svn_prompt_info` method to enquire the svn data.
-# It's faster because his efficient use of svn (single svn call) which saves a lot on a huge codebase
-# It displays the current status of the local files (added, deleted, modified, replaced, or else...)
-#
-# Use as a drop-in replacement of the svn plugin not as complementary plugin
-
function svn_prompt_info() {
local info
- info=$(svn info 2>&1) || return 1; # capture stdout and stderr
+ info=$(svn info 2>&1) || return 1 # capture stdout and stderr
local repo_need_upgrade=$(svn_repo_need_upgrade $info)
if [[ -n $repo_need_upgrade ]]; then
@@ -27,7 +16,6 @@ function svn_prompt_info() {
printf '%s%s%s%s %s%s%s:%s%s%s%s' \
"$ZSH_PROMPT_BASE_COLOR" \
"$ZSH_THEME_SVN_PROMPT_PREFIX" \
- \
"$(svn_status_info $info)" \
"$ZSH_PROMPT_BASE_COLOR" \
\
@@ -37,14 +25,13 @@ function svn_prompt_info() {
\
"$(svn_current_revision $info)" \
"$ZSH_PROMPT_BASE_COLOR" \
- \
"$ZSH_THEME_SVN_PROMPT_SUFFIX" \
"$ZSH_PROMPT_BASE_COLOR"
fi
}
function svn_repo_need_upgrade() {
- grep -q "E155036" <<< ${1:-$(svn info 2> /dev/null)} && \
+ grep -q "E155036" <<< "${1:-$(svn info 2> /dev/null)}" && \
echo "E155036: upgrade repo with svn upgrade"
}
@@ -63,12 +50,23 @@ function svn_current_revision() {
function svn_status_info() {
local svn_status_string="$ZSH_THEME_SVN_PROMPT_CLEAN"
local svn_status="$(svn status 2> /dev/null)";
- if command grep -E '^\s*A' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string${ZSH_THEME_SVN_PROMPT_ADDITIONS:-+}"; fi
- if command grep -E '^\s*D' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string${ZSH_THEME_SVN_PROMPT_DELETIONS:-✖}"; fi
- if command grep -E '^\s*M' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string${ZSH_THEME_SVN_PROMPT_MODIFICATIONS:-✎}"; fi
- if command grep -E '^\s*[R~]' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string${ZSH_THEME_SVN_PROMPT_REPLACEMENTS:-∿}"; fi
- if command grep -E '^\s*\?' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string${ZSH_THEME_SVN_PROMPT_UNTRACKED:-?}"; fi
- if command grep -E '^\s*[CI!L]' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string${ZSH_THEME_SVN_PROMPT_DIRTY:-!}"; fi
+ if command grep -E '^\s*A' &> /dev/null <<< $svn_status; then
+ svn_status_string="$svn_status_string${ZSH_THEME_SVN_PROMPT_ADDITIONS:-+}"
+ fi
+ if command grep -E '^\s*D' &> /dev/null <<< $svn_status; then
+ svn_status_string="$svn_status_string${ZSH_THEME_SVN_PROMPT_DELETIONS:-✖}"
+ fi
+ if command grep -E '^\s*M' &> /dev/null <<< $svn_status; then
+ svn_status_string="$svn_status_string${ZSH_THEME_SVN_PROMPT_MODIFICATIONS:-✎}"
+ fi
+ if command grep -E '^\s*[R~]' &> /dev/null <<< $svn_status; then
+ svn_status_string="$svn_status_string${ZSH_THEME_SVN_PROMPT_REPLACEMENTS:-∿}"
+ fi
+ if command grep -E '^\s*\?' &> /dev/null <<< $svn_status; then
+ svn_status_string="$svn_status_string${ZSH_THEME_SVN_PROMPT_UNTRACKED:-?}"
+ fi
+ if command grep -E '^\s*[CI!L]' &> /dev/null <<< $svn_status; then
+ svn_status_string="$svn_status_string${ZSH_THEME_SVN_PROMPT_DIRTY:-!}"
+ fi
echo $svn_status_string
}
-
From 8ea20fdca794a2a2c2f39cebd1e1861f9f0c6fbb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Fri, 27 Dec 2019 02:34:35 +0100
Subject: [PATCH 205/302] tmux-cssh: add README
---
plugins/tmux-cssh/README.md | 10 ++++++++++
plugins/tmux-cssh/_tmux-cssh | 24 ++++++++++++------------
2 files changed, 22 insertions(+), 12 deletions(-)
create mode 100644 plugins/tmux-cssh/README.md
diff --git a/plugins/tmux-cssh/README.md b/plugins/tmux-cssh/README.md
new file mode 100644
index 000000000..4602a502a
--- /dev/null
+++ b/plugins/tmux-cssh/README.md
@@ -0,0 +1,10 @@
+# tmux-cssh plugin
+
+This plugin adds autocompletion for [`tmux-cssh`](https://github.com/zinic/tmux-cssh/).
+
+To use it, add `tmux-cssh` to the plugins array in your zshrc file:
+```zsh
+plugins=(... tmux-cssh)
+```
+
+First upstream repo, now disappeared: https://github.com/dennishafemann/tmux-cssh.
diff --git a/plugins/tmux-cssh/_tmux-cssh b/plugins/tmux-cssh/_tmux-cssh
index 604e2e478..3e81b82ea 100644
--- a/plugins/tmux-cssh/_tmux-cssh
+++ b/plugins/tmux-cssh/_tmux-cssh
@@ -5,21 +5,21 @@
# Author: Manfred Touron (@moul)
_arguments \
-'(-h --help)'{-h,--help}'[This help.]' \
-'(-u --user)'{-u,--user}'[User to use.]' \
-'(-c --certificate)'{-c,--certificate}'[Path to ssh-certificate to use.]' \
-'(-sc --ssh)'{-sc,--ssh}'[SSH-connection-string, multiple.]' \
-'(-sa --ssh)'{-sa,--ssh}'[SSH connection arguments, used on every session.]' \
-'(-ts --tmux)'{-ts,--tmux}'[Alternative tmux-session-name, default: tmux-cssh]' \
-'(-ns --new)'{-ns,--new}'[Initializes a new session, like -ts \[name\].]' \
-'(-q --quiet)'{-q,--quiet}'[Quiet-mode.]' \
-'(-f --filename)'{-f,--filename}'[Filename of textfile to get -sc connection-strings from, line separated.]' \
-'(-cs --config)'{-cs,--config}'[Name of config-settings which should be get from config-file "$HOME/.tmux-cssh". Which can be a grep-regular expression to find the name(s).]' \
+ '(-h --help)'{-h,--help}'[This help.]' \
+ '(-u --user)'{-u,--user}'[User to use.]' \
+ '(-c --certificate)'{-c,--certificate}'[Path to ssh-certificate to use.]' \
+ '(-sc --ssh)'{-sc,--ssh}'[SSH-connection-string, multiple.]' \
+ '(-sa --ssh)'{-sa,--ssh}'[SSH connection arguments, used on every session.]' \
+ '(-ts --tmux)'{-ts,--tmux}'[Alternative tmux-session-name, default: tmux-cssh]' \
+ '(-ns --new)'{-ns,--new}'[Initializes a new session, like -ts \[name\].]' \
+ '(-q --quiet)'{-q,--quiet}'[Quiet-mode.]' \
+ '(-f --filename)'{-f,--filename}'[Filename of textfile to get -sc connection-strings from, line separated.]' \
+ '(-cs --config)'{-cs,--config}'[Name of config-settings which should be get from config-file "$HOME/.tmux-cssh". Which can be a grep-regular expression to find the name(s).]' \
':hosts:_hosts' \
'*:: :->subcmds' \
&& return 0
if (( CURRENT == 1 )); then
- _describe -t commands "tmux-cssh command"
- return
+ _describe -t commands "tmux-cssh command"
+ return
fi
From 67b5bfaaa316212221a01d4fe2eedcd0fc64c230 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Fri, 27 Dec 2019 02:37:27 +0100
Subject: [PATCH 206/302] Rename some plugin READMEs for consistency
---
plugins/firewalld/{readme.md => README.md} | 0
plugins/magic-enter/{Readme.md => README.md} | 0
plugins/ros/{README.mkd => README.md} | 0
3 files changed, 0 insertions(+), 0 deletions(-)
rename plugins/firewalld/{readme.md => README.md} (100%)
rename plugins/magic-enter/{Readme.md => README.md} (100%)
rename plugins/ros/{README.mkd => README.md} (100%)
diff --git a/plugins/firewalld/readme.md b/plugins/firewalld/README.md
similarity index 100%
rename from plugins/firewalld/readme.md
rename to plugins/firewalld/README.md
diff --git a/plugins/magic-enter/Readme.md b/plugins/magic-enter/README.md
similarity index 100%
rename from plugins/magic-enter/Readme.md
rename to plugins/magic-enter/README.md
diff --git a/plugins/ros/README.mkd b/plugins/ros/README.md
similarity index 100%
rename from plugins/ros/README.mkd
rename to plugins/ros/README.md
From c63fca8581352028651f6bc9c2074620c3a27352 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Fri, 27 Dec 2019 02:47:26 +0100
Subject: [PATCH 207/302] otp: add README and use clipcopy
---
plugins/otp/README.md | 22 ++++++++++++++++++++++
plugins/otp/otp.plugin.zsh | 19 +++++--------------
2 files changed, 27 insertions(+), 14 deletions(-)
create mode 100644 plugins/otp/README.md
diff --git a/plugins/otp/README.md b/plugins/otp/README.md
new file mode 100644
index 000000000..8331fd02b
--- /dev/null
+++ b/plugins/otp/README.md
@@ -0,0 +1,22 @@
+# otp plugin
+
+This plugin allows you to create one-time passwords using [`oathtool`](https://www.nongnu.org/oath-toolkit/man-oathtool.html),
+able to replace MFA devices. The oathtool key is kept in a GPG-encrypted file so the codes
+can only be generated by a user able to decrypt it.
+
+To use it, add `otp` to the plugins array in your zshrc file:
+```zsh
+plugins=(... otp)
+```
+
+Provided aliases:
+
+- `otp_add_device`: creates a new encrypted storage for an oathtool key and stores it
+ on the disk. For encrypting the key, it will ask for a GPG user ID (your GPG key's
+ email address). Then the OTP key needs to be pasted, followed by a CTRL+D character
+ inserted on an empty line.
+
+- `ot`: generates a MFA code based on the given key and copies it to the clipboard
+ (on Linux it relies on xsel, on MacOS X it uses pbcopy instead).
+
+The plugin uses `$HOME/.otp` to store its internal files.
diff --git a/plugins/otp/otp.plugin.zsh b/plugins/otp/otp.plugin.zsh
index 4bce34fd3..8be125c93 100644
--- a/plugins/otp/otp.plugin.zsh
+++ b/plugins/otp/otp.plugin.zsh
@@ -12,32 +12,23 @@ function ot () {
return 1
fi
- if [[ `uname` == 'Darwin' ]] then # MacOS X
- export COPY_CMD='pbcopy'
- elif command -v xsel > /dev/null 2>&1; then # Any Unix with xsel installed
- export COPY_CMD='xsel --clipboard --input'
- else
- COPY_CMD='true'
- fi
+ COPY_CMD='true'
- if [[ "x$1" == "x" ]]; then
- echo "usage: otpw "
+ if [[ -z "$1" ]]; then
+ echo "usage: $0 "
return 1
elif [ ! -f $OTP_HOME/$1.otp.asc ]; then
echo "missing profile $1, you might need to create it first using otp_add_device"
return 1
else
totpkey=$(gpg --decrypt $OTP_HOME/$1.otp.asc)
- oathtool --totp --b $totpkey | tee /dev/stderr | `echo $COPY_CMD`
- if [[ $COPY_CMD == 'true' ]] then
- echo "Note: you might consider installing xsel for clipboard integration"
- fi
+ oathtool --totp --b $totpkey | tee /dev/stderr | clipcopy
fi
}
function otp_add_device () {
if [[ "x$1" == "x" ]] then
- echo "usage: otp_add "
+ echo "usage: $0 "
return 1
else
echo "Enter an email address attached to your GPG private key, then paste the secret configuration key followed by ^D"
From d99ddab0cadfbb047f23b5d2037b54b4f4437ae4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Fri, 27 Dec 2019 02:51:54 +0100
Subject: [PATCH 208/302] codeclimate: add README
---
plugins/codeclimate/README.md | 8 ++++++++
1 file changed, 8 insertions(+)
create mode 100644 plugins/codeclimate/README.md
diff --git a/plugins/codeclimate/README.md b/plugins/codeclimate/README.md
new file mode 100644
index 000000000..0d712ac63
--- /dev/null
+++ b/plugins/codeclimate/README.md
@@ -0,0 +1,8 @@
+# codeclimate plugin
+
+This plugin adds autocompletion for the [`codeclimate` CLI](https://github.com/codeclimate/codeclimate).
+
+To use it, add `codeclimate` to the plugins array in your zshrc file:
+```zsh
+plugins=(... codeclimate)
+```
From cf9aa420d6bc48cd8780a58b7cff854add0f3897 Mon Sep 17 00:00:00 2001
From: Robby Russell
Date: Fri, 27 Dec 2019 06:43:43 -0800
Subject: [PATCH 209/302] Relocating chat/twitter
Moving down below the intro copy so that first content to new-comers is a description of the project
---
README.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index bfb42c0fd..291fb512b 100644
--- a/README.md
+++ b/README.md
@@ -2,9 +2,6 @@
-[![Discord server](https://img.shields.io/discord/642496866407284746)](https://discord.gg/bpXWhnN)
-[![Follow @ohmyzsh](https://img.shields.io/twitter/follow/ohmyzsh?label=Follow+@ohmyzsh&style=flat)](https://twitter.com/intent/follow?screen_name=ohmyzsh)
-
Oh My Zsh is an open source, community-driven framework for managing your [zsh](https://www.zsh.org/) configuration.
Sounds boring. Let's try again.
@@ -15,7 +12,10 @@ Once installed, your terminal shell will become the talk of the town _or your mo
Finally, you'll begin to get the sort of attention that you have always felt you deserved. ...or maybe you'll use the time that you're saving to start flossing more often. 😬
-To learn more, visit [ohmyz.sh](https://ohmyz.sh) and follow [@ohmyzsh](https://twitter.com/ohmyzsh) on Twitter.
+To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twitter.com/ohmyzsh) on Twitter, and/or join us on Discord.
+
+[![Follow @ohmyzsh](https://img.shields.io/twitter/follow/ohmyzsh?label=Follow+@ohmyzsh&style=flat)](https://twitter.com/intent/follow?screen_name=ohmyzsh)
+[![Discord server](https://img.shields.io/discord/642496866407284746)](https://discord.gg/bpXWhnN)
## Getting Started
From 31219c02463f1f57271a3d336b4c25b9902ca4ad Mon Sep 17 00:00:00 2001
From: Carver Schmidt <46279291+carverschmidt@users.noreply.github.com>
Date: Sat, 28 Dec 2019 11:01:26 -0600
Subject: [PATCH 210/302] osx: fix exit on quit command in spotify function
(#8504)
---
plugins/osx/spotify | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/osx/spotify b/plugins/osx/spotify
index 78d6c7d0f..6233d813d 100644
--- a/plugins/osx/spotify
+++ b/plugins/osx/spotify
@@ -307,7 +307,7 @@ while [ $# -gt 0 ]; do
"quit" ) cecho "Quitting Spotify.";
osascript -e 'tell application "Spotify" to quit';
- exit 0 ;;
+ break ;;
"next" ) cecho "Going to next track." ;
osascript -e 'tell application "Spotify" to next track';
From 9bfcab7d10e216df9fe7110334a41cf2f802bace Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Sat, 28 Dec 2019 18:00:35 +0100
Subject: [PATCH 211/302] osx: use return instead of exit in spotify function
---
plugins/osx/spotify | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/plugins/osx/spotify b/plugins/osx/spotify
index 6233d813d..663215a74 100644
--- a/plugins/osx/spotify
+++ b/plugins/osx/spotify
@@ -148,11 +148,11 @@ if [ $# = 0 ]; then
else
if [ ! -d /Applications/Spotify.app ] && [ ! -d $HOME/Applications/Spotify.app ]; then
echo "The Spotify application must be installed."
- exit 1
+ return 1
fi
if [ $(osascript -e 'application "Spotify" is running') = "false" ]; then
- osascript -e 'tell application "Spotify" to activate' || exit 1
+ osascript -e 'tell application "Spotify" to activate' || return 1
sleep 2
fi
fi
@@ -170,12 +170,12 @@ while [ $# -gt 0 ]; do
if [ -z "${CLIENT_ID}" ]; then
cecho "Invalid Client ID, please update ${USER_CONFIG_FILE}";
showAPIHelp;
- exit 1;
+ return 1
fi
if [ -z "${CLIENT_SECRET}" ]; then
cecho "Invalid Client Secret, please update ${USER_CONFIG_FILE}";
showAPIHelp;
- exit 1;
+ return 1
fi
SHPOTIFY_CREDENTIALS=$(printf "${CLIENT_ID}:${CLIENT_SECRET}" | base64 | tr -d "\n"|tr -d '\r');
SPOTIFY_PLAY_URI="";
@@ -194,7 +194,7 @@ while [ $# -gt 0 ]; do
cecho "Autorization failed, please check ${USER_CONFG_FILE}"
cecho "${SPOTIFY_TOKEN_RESPONSE_DATA}"
showAPIHelp
- exit 1
+ return 1
fi
SPOTIFY_ACCESS_TOKEN=$( \
printf "${SPOTIFY_TOKEN_RESPONSE_DATA}" \
@@ -358,7 +358,7 @@ while [ $# -gt 0 ]; do
echo " vol down # Decreases the volume by 10%.";
echo " vol [amount] # Sets the volume to an amount between 0 and 100.";
echo " vol # Shows the current Spotify volume.";
- exit 1;
+ return 1
fi
osascript -e "tell application \"Spotify\" to set sound volume to $newvol";
@@ -468,9 +468,10 @@ while [ $# -gt 0 ]; do
"help" )
showHelp;
break ;;
+
* )
showHelp;
- break;
+ return 1 ;;
esac
done
From d56d6dc145e20dbea9c45f7aa1c09f8e2b5859a1 Mon Sep 17 00:00:00 2001
From: Khas'Mek
Date: Sat, 28 Dec 2019 21:17:37 -0700
Subject: [PATCH 212/302] Plugins: repo - add more aliases. (#3917)
---
plugins/repo/repo.plugin.zsh | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/plugins/repo/repo.plugin.zsh b/plugins/repo/repo.plugin.zsh
index 33f4195c7..51cd32fc4 100644
--- a/plugins/repo/repo.plugin.zsh
+++ b/plugins/repo/repo.plugin.zsh
@@ -16,3 +16,15 @@ compdef _repo ru='repo upload'
alias rst='repo status'
compdef _repo rst='repo status'
+
+alias rsto='repo status -o'
+compdef _repo rsto='repo status -o'
+
+alias rfa='repo forall -c'
+compdef _repo rfa='repo forall -c'
+
+alias rfap='repo forall -p -c'
+compdef _repo rfap='repo forall -p -c'
+
+alias rinf='repo info'
+compdef _repo rinf='repo info'
From 016dd30f4c215dcc326f2ddc68dcb54603915f43 Mon Sep 17 00:00:00 2001
From: Charles Assus
Date: Sun, 29 Dec 2019 05:29:07 +0100
Subject: [PATCH 213/302] New alias zwip that launch cucumber with the :wip
profile (#4111)
* Add zeus rake cucumber:wip, alias swip
* Add the right command for zwip alias :D
* Add the right command
* respect the coding style
* respect the coding final
---
plugins/zeus/README.md | 1 +
plugins/zeus/zeus.plugin.zsh | 1 +
2 files changed, 2 insertions(+)
diff --git a/plugins/zeus/README.md b/plugins/zeus/README.md
index 451880049..84ed70c91 100644
--- a/plugins/zeus/README.md
+++ b/plugins/zeus/README.md
@@ -24,6 +24,7 @@
* `zcu` aliases `zeus cucumber`
* `zucumber` aliases `zeus cucumber`
+* `zwip` aliases `zeus cucumber --profile wip`
* `zspec` aliases `zeus rspec`
diff --git a/plugins/zeus/zeus.plugin.zsh b/plugins/zeus/zeus.plugin.zsh
index 0c01083a5..5dec1a48c 100644
--- a/plugins/zeus/zeus.plugin.zsh
+++ b/plugins/zeus/zeus.plugin.zsh
@@ -33,6 +33,7 @@ alias zunner='zeus runner'
# Cucumber
alias zcu='zeus cucumber'
alias zucumber='zeus cucumber'
+alias zwip='zeus cucumber --profile wip'
# Rspec
alias zspec='zeus rspec'
From b0be0439e5d99e186a9ae084eb4ed69c51d4b7cb Mon Sep 17 00:00:00 2001
From: khalil choudhry
Date: Sun, 29 Dec 2019 09:35:31 +0500
Subject: [PATCH 214/302] Feature/ionic plugin aliases (#8494)
* Add DS_Store to gitignore
* Add ionic aliases
* Add ionic plugin readme
---
.gitignore | 1 +
plugins/ionic/README.md | 30 ++++++++++++++++++++++++++++++
plugins/ionic/ionic.plugin.zsh | 15 +++++++++++++++
3 files changed, 46 insertions(+)
create mode 100644 plugins/ionic/README.md
create mode 100644 plugins/ionic/ionic.plugin.zsh
diff --git a/.gitignore b/.gitignore
index 251c9dc9f..ec24a19bb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,4 @@ custom/
cache/
log/
*.swp
+.DS_Store
diff --git a/plugins/ionic/README.md b/plugins/ionic/README.md
new file mode 100644
index 000000000..3ec4fc8b7
--- /dev/null
+++ b/plugins/ionic/README.md
@@ -0,0 +1,30 @@
+# Ionic plugin
+
+This plugin adds completion for the [Ionic CLI](https://ionicframework.com/docs/cli),
+as well as some aliases for common Ionic commands.
+
+To use it, add `ionic` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... ionic)
+```
+
+## Aliases
+
+| Alias | Command | Description |
+|-------|--------------------------------------|------------------------------------------------------------------|
+| iv | `ionic --version` | Check Ionic version |
+| ih | `ionic --help` | Ionic help command |
+| ist | `ionic start` | Create a new project |
+| ii | `ionic info` | Print system/environment info |
+| is | `ionic serve` | Start a local dev server for app dev/testing |
+| icba | `ionic cordova build android` | Build web assets and prepare app for android platform targets |
+| icbi | `ionic cordova build ios` | Build web assets and prepare app for ios platform targets |
+| icra | `ionic cordova run android` | Run an Ionic project on a connected android device |
+| icri | `ionic cordova run ios` | Run an Ionic project on a connected ios device |
+| icrsa | `ionic cordova resources android` | Automatically create icon and splash screen resources for android|
+| icrsi | `ionic cordova resources ios` | Automatically create icon and splash screen resources for ios |
+| icpaa | `ionic cordova platform add android` | Add Cordova android platform targets |
+| icpai | `ionic cordova platform add ios` | Add Cordova ios platform targets |
+| icpra | `ionic cordova platform rm android` | Remove Cordova platform targets |
+| icpri | `ionic cordova platform rm ios` | Remove Cordova platform targets |
diff --git a/plugins/ionic/ionic.plugin.zsh b/plugins/ionic/ionic.plugin.zsh
new file mode 100644
index 000000000..cf388af1b
--- /dev/null
+++ b/plugins/ionic/ionic.plugin.zsh
@@ -0,0 +1,15 @@
+alias iv="ionic --version"
+alias ih="ionic --help"
+alias ist="ionic start"
+alias ii="ionic info"
+alias is="ionic serve"
+alias icba="ionic cordova build android"
+alias icbi="ionic cordova build ios"
+alias icra="ionic cordova run android"
+alias icri="ionic cordova run ios"
+alias icrsa="ionic cordova resources android"
+alias icrsi="ionic cordova resources ios"
+alias icpaa="ionic cordova platform add android"
+alias icpai="ionic cordova platform add ios"
+alias icpra="ionic cordova platform rm android"
+alias icpri="ionic cordova platform rm ios"
From 6bac9eb103fe6c777182746e3a6e84dfc882338b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Sun, 29 Dec 2019 05:36:29 +0100
Subject: [PATCH 215/302] extract: add lrz support (#8500)
---
plugins/extract/README.md | 2 ++
plugins/extract/_extract | 2 +-
plugins/extract/extract.plugin.zsh | 2 ++
3 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/plugins/extract/README.md b/plugins/extract/README.md
index d6e4fa116..a6630de3f 100644
--- a/plugins/extract/README.md
+++ b/plugins/extract/README.md
@@ -25,6 +25,7 @@ plugins=(... extract)
| `gz` | Gzip file |
| `ipsw` | iOS firmware file |
| `jar` | Java Archive |
+| `lrz` | LRZ archive |
| `lzma` | LZMA archive |
| `rar` | WinRAR archive |
| `rpm` | RPM package |
@@ -32,6 +33,7 @@ plugins=(... extract)
| `tar` | Tarball |
| `tar.bz2` | Tarball with bzip2 compression |
| `tar.gz` | Tarball with gzip compression |
+| `tar.lrz` | Tarball with lrzip compression |
| `tar.lz` | Tarball with lzip compression |
| `tar.xz` | Tarball with lzma2 compression |
| `tar.zma` | Tarball with lzma compression |
diff --git a/plugins/extract/_extract b/plugins/extract/_extract
index e9d12d4d3..034fe6df0 100644
--- a/plugins/extract/_extract
+++ b/plugins/extract/_extract
@@ -3,5 +3,5 @@
_arguments \
'(-r --remove)'{-r,--remove}'[Remove archive.]' \
- "*::archive file:_files -g '(#i)*.(7z|Z|apk|aar|bz2|deb|gz|ipsw|jar|lzma|rar|rpm|sublime-package|tar|tar.bz2|tar.gz|tar.lz|tar.xz|tar.zma|tar.zst|tbz|tbz2|tgz|tlz|txz|tzst|war|whl|xpi|xz|zip|zst)(-.)'" \
+ "*::archive file:_files -g '(#i)*.(7z|Z|apk|aar|bz2|deb|gz|ipsw|jar|lrz|lzma|rar|rpm|sublime-package|tar|tar.bz2|tar.gz|tar.lrz|tar.lz|tar.xz|tar.zma|tar.zst|tbz|tbz2|tgz|tlz|txz|tzst|war|whl|xpi|xz|zip|zst)(-.)'" \
&& return 0
diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh
index 5cc30d1ce..349c9a776 100644
--- a/plugins/extract/extract.plugin.zsh
+++ b/plugins/extract/extract.plugin.zsh
@@ -46,9 +46,11 @@ extract() {
|| zstdcat "$1" | tar xvf - ;;
(*.tar) tar xvf "$1" ;;
(*.tar.lz) (( $+commands[lzip] )) && tar xvf "$1" ;;
+ (*.tar.lrz) (( $+commands[lrzuntar] )) && lrzuntar "$1" ;;
(*.gz) (( $+commands[pigz] )) && pigz -dk "$1" || gunzip -k "$1" ;;
(*.bz2) bunzip2 "$1" ;;
(*.xz) unxz "$1" ;;
+ (*.lrz) (( $+commands[lrunzip] )) && lrunzip "$1" ;;
(*.lzma) unlzma "$1" ;;
(*.z) uncompress "$1" ;;
(*.zip|*.war|*.jar|*.sublime-package|*.ipsw|*.xpi|*.apk|*.aar|*.whl) unzip "$1" -d $extract_dir ;;
From 8ed19ab54d6980da777ccea185658e213b26f533 Mon Sep 17 00:00:00 2001
From: Shaun Tabone
Date: Sun, 29 Dec 2019 05:37:38 +0100
Subject: [PATCH 216/302] Added MicroK8s plugin for ZSH (#8499)
* Added MicroK8s plugin for ZSH
* Added caching for kubectl and helm commands
* Added title in compadd and enhanced README
---
plugins/microk8s/README.md | 24 ++++++++
plugins/microk8s/microk8s.plugin.zsh | 82 ++++++++++++++++++++++++++++
2 files changed, 106 insertions(+)
create mode 100644 plugins/microk8s/README.md
create mode 100644 plugins/microk8s/microk8s.plugin.zsh
diff --git a/plugins/microk8s/README.md b/plugins/microk8s/README.md
new file mode 100644
index 000000000..2b4ea206f
--- /dev/null
+++ b/plugins/microk8s/README.md
@@ -0,0 +1,24 @@
+# MicroK8s plugin
+
+This plugin provides completion and useful aliases for [MicroK8s](https://microk8s.io/).
+
+To use it, add `microk8s` to the plugins array in your zshrc file.
+
+```zsh
+plugins=(... microk8s)
+```
+
+## Aliases
+
+| Alias | Command | Description |
+|-------|------------------|----------------------------------------------------------------------------------------------------------|
+| mco | microk8s.config | Shows the Kubernetes config file. |
+| mct | microk8s.ctr | Interact with containerd CLI. |
+| mdi | microk8s.disable | Disables an addon. |
+| me | microk8s.enable | Enables an addon. |
+| mh | microk8s.helm | Interact with Helm CLI. |
+| mis | microk8s.istio | Interact with Istio CLI. |
+| mk | microk8s.kubectl | Interact with Kubernetes CLI. |
+| msp | microk8s.stop | Stops all Kubernetes services. |
+| mst | microk8s.start | Starts MicroK8s after it is being stopped. |
+| msts | microk8s.status | Provides an overview of the MicroK8s state (running / not running) as well as the set of enabled addons. |
\ No newline at end of file
diff --git a/plugins/microk8s/microk8s.plugin.zsh b/plugins/microk8s/microk8s.plugin.zsh
new file mode 100644
index 000000000..048a9ab83
--- /dev/null
+++ b/plugins/microk8s/microk8s.plugin.zsh
@@ -0,0 +1,82 @@
+# ---------------------------------------------------------- #
+# Aliases and Completions for MicroK8s (https://microk8s.io) #
+# Author: Shaun Tabone (https://github.com/xontab) #
+# ---------------------------------------------------------- #
+
+# Helper function to cache and load completions
+_microk8s_cache_completion() {
+ local cache="${ZSH_CACHE_DIR}/microk8s_$(echo $1)_completion"
+ if [[ ! -f $cache ]]; then
+ $2 $cache
+ fi
+
+ [[ -f $cache ]] && source $cache
+}
+
+# ---------------------------------------------------------- #
+# microk8s.enable #
+# ALIAS: me #
+# ---------------------------------------------------------- #
+_microk8s_enable_get_command_list() {
+ microk8s.enable --help | tail -n +7 | awk '{$1=$1;print}'
+}
+
+_microk8s_enable() {
+ compadd -X "MicroK8s Addons" $(_microk8s_enable_get_command_list)
+}
+
+compdef _microk8s_enable microk8s.enable
+alias me='microk8s.enable'
+
+# ---------------------------------------------------------- #
+# microk8s.disable #
+# ALIAS: mdi #
+# ---------------------------------------------------------- #
+_microk8s_disable_get_command_list() {
+ microk8s.disable --help | tail -n +7 | awk '{$1=$1;print}'
+}
+
+_microk8s_disable() {
+ compadd -X "MicroK8s Addons" $(_microk8s_disable_get_command_list)
+}
+
+compdef _microk8s_disable microk8s.disable
+alias mdi='microk8s.disable'
+
+# ---------------------------------------------------------- #
+# microk8s.kubectl #
+# ALIAS: mk #
+# ---------------------------------------------------------- #
+_microk8s_kubectl_completion() {
+ if [ $commands[microk8s.kubectl] ]; then
+ microk8s.kubectl 2>/dev/null >/dev/null && microk8s.kubectl completion zsh | sed 's/__start_kubectl kubectl/__start_kubectl microk8s.kubectl/g' >$1
+ fi
+}
+
+_microk8s_cache_completion 'kubectl' _microk8s_kubectl_completion
+
+alias mk='microk8s.kubectl'
+
+# ---------------------------------------------------------- #
+# microk8s.helm #
+# ALIAS: mh #
+# ---------------------------------------------------------- #
+_microk8s_helm_completion() {
+ if [ $commands[microk8s.helm] ]; then
+ microk8s.helm completion zsh | sed 's/__start_helm helm/__start_helm microk8s.helm/g' >$1
+ fi
+}
+
+_microk8s_cache_completion 'helm' _microk8s_helm_completion
+
+alias mh='microk8s.helm'
+
+# ---------------------------------------------------------- #
+# Other Aliases #
+# ---------------------------------------------------------- #
+alias mco='microk8s.config'
+alias mct='microk8s.ctr'
+alias mis='microk8s.istio'
+alias mst='microk8s.start'
+alias msts='microk8s.status'
+alias msp='microk8s.stop'
From d5f8fac465857941eabfbd0fcb58610c0fc002dc Mon Sep 17 00:00:00 2001
From: Shaun Tabone
Date: Sun, 29 Dec 2019 05:54:58 +0100
Subject: [PATCH 217/302] Feature/add dotnet plugin (#8503)
* Added dotnet CLI aliases and completions
* Modified README
---
plugins/dotnet/README.md | 21 ++++++
plugins/dotnet/dotnet.plugin.zsh | 117 +++++++++++++++++++++++++++++++
2 files changed, 138 insertions(+)
create mode 100644 plugins/dotnet/README.md
create mode 100644 plugins/dotnet/dotnet.plugin.zsh
diff --git a/plugins/dotnet/README.md b/plugins/dotnet/README.md
new file mode 100644
index 000000000..7a6d6a995
--- /dev/null
+++ b/plugins/dotnet/README.md
@@ -0,0 +1,21 @@
+# .NET Core CLI plugin
+
+This plugin provides completion and useful aliases for [.NET Core CLI](https://dotnet.microsoft.com/).
+
+To use it, add `dotnet` to the plugins array in your zshrc file.
+
+```
+plugins=(... dotnet)
+```
+
+## Aliases
+
+| Alias | Command | Description |
+|-------|--------------|-------------------------------------------------------------------|
+| dn | dotnet new | Create a new .NET project or file. |
+| dr | dotnet run | Build and run a .NET project output. |
+| dt | dotnet test | Run unit tests using the test runner specified in a .NET project. |
+| ds | dotnet sln | Modify Visual Studio solution files. |
+| da | dotnet add | Add a package or reference to a .NET project. |
+| dp | dotnet pack | Create a NuGet package. |
+| dng | dotnet nuget | Provides additional NuGet commands. |
\ No newline at end of file
diff --git a/plugins/dotnet/dotnet.plugin.zsh b/plugins/dotnet/dotnet.plugin.zsh
new file mode 100644
index 000000000..8b9a45a97
--- /dev/null
+++ b/plugins/dotnet/dotnet.plugin.zsh
@@ -0,0 +1,117 @@
+# --------------------------------------------------------------------- #
+# Aliases and Completions for .NET Core (https://dotnet.microsoft.com/) #
+# Author: Shaun Tabone (https://github.com/xontab) #
+# --------------------------------------------------------------------- #
+
+# Helper function to cache and load completions
+local cache_base_path="${ZSH_CACHE_DIR}/dotnet_"
+_dotnet_cache_completion() {
+ local cache="${cache_base_path}$(echo $1)_completion"
+ if [[ ! -f $cache ]]; then
+ $2 $cache
+ fi
+
+ [[ -f $cache ]] && cat $cache
+}
+
+_dotnet_cache_completion_cleanup() {
+ local cache="${cache_base_path}$(echo $1)_completion"
+ rm -f $cache
+}
+
+# --------------------------------------------------------------------- #
+# dotnet new #
+# ALIAS: dn #
+# --------------------------------------------------------------------- #
+_dotnet_new_completion() {
+ if [ $commands[dotnet] ]; then
+ dotnet new -l | tail -n +21 | sed 's/ \+/:/g' | cut -d : -f 2 >$1
+ fi
+}
+
+_dotnet_new_completion_cached() {
+ _dotnet_cache_completion 'new' _dotnet_new_completion
+}
+
+_dotnet_cache_completion_cleanup 'new'
+
+alias dn='dotnet new'
+
+# --------------------------------------------------------------------- #
+# dotnet #
+# --------------------------------------------------------------------- #
+_dotnet() {
+ if [ $CURRENT -eq 2 ]; then
+ _arguments \
+ '--diagnostics[Enable diagnostic output.]' \
+ '--help[Show command line help.]' \
+ '--info[Display .NET Core information.]' \
+ '--list-runtimes[Display the installed runtimes.]' \
+ '--list-sdks[Display the installed SDKs.]' \
+ '--version[Display .NET Core SDK version in use.]'
+
+ _values \
+ 'add[Add a package or reference to a .NET project.]' \
+ 'build[Build a .NET project.]' \
+ 'build-server[Interact with servers started by a build.]' \
+ 'clean[Clean build outputs of a .NET project.]' \
+ 'help[Show command line help.]' \
+ 'list[List project references of a .NET project.]' \
+ 'msbuild[Run Microsoft Build Engine (MSBuild) commands.]' \
+ 'new[Create a new .NET project or file.]' \
+ 'nuget[Provides additional NuGet commands.]' \
+ 'pack[Create a NuGet package.]' \
+ 'publish[Publish a .NET project for deployment.]' \
+ 'remove[Remove a package or reference from a .NET project.]' \
+ 'restore[Restore dependencies specified in a .NET project.]' \
+ 'run[Build and run a .NET project output.]' \
+ 'sln[Modify Visual Studio solution files.]' \
+ 'store[Store the specified assemblies in the runtime package store.]' \
+ 'test[Run unit tests using the test runner specified in a .NET project.]' \
+ 'tool[Install or manage tools that extend the .NET experience.]' \
+ 'vstest[Run Microsoft Test Engine (VSTest) commands.]' \
+ 'dev-certs[Create and manage development certificates.]' \
+ 'fsi[Start F# Interactive / execute F# scripts.]' \
+ 'sql-cache[SQL Server cache command-line tools.]' \
+ 'user-secrets[Manage development user secrets.]' \
+ 'watch[Start a file watcher that runs a command when files change.]'
+ return
+ fi
+
+ if [ $CURRENT -eq 3 ]; then
+ case ${words[2]} in
+ "new")
+ compadd -X ".NET Installed Templates" $(_dotnet_new_completion_cached)
+ return
+ ;;
+ "sln")
+ _values \
+ 'add[Add one or more projects to a solution file.]' \
+ 'list[List all projects in a solution file.]' \
+ 'remove[Remove one or more projects from a solution file.]'
+ return
+ ;;
+ "nuget")
+ _values \
+ 'delete[Deletes a package from the server.]' \
+ 'locals[Clears or lists local NuGet resources such as http requests cache, packages folder, plugin operations cache or machine-wide global packages folder.]' \
+ 'push[Pushes a package to the server and publishes it.]'
+ return
+ ;;
+ esac
+ fi
+
+ _arguments '*::arguments: _normal'
+}
+
+compdef _dotnet dotnet
+
+# --------------------------------------------------------------------- #
+# Other Aliases #
+# --------------------------------------------------------------------- #
+alias dr='dotnet run'
+alias dt='dotnet test'
+alias ds='dotnet sln'
+alias da='dotnet add'
+alias dp='dotnet pack'
+alias dng='dotnet nuget'
From df55690daddb4e57b5cef719263f2fa988da04ee Mon Sep 17 00:00:00 2001
From: Alaa Qutaish
Date: Sun, 29 Dec 2019 05:58:31 +0100
Subject: [PATCH 218/302] Add kubectl log since aliases (#8448)
---
plugins/kubectl/kubectl.plugin.zsh | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/plugins/kubectl/kubectl.plugin.zsh b/plugins/kubectl/kubectl.plugin.zsh
index 6c1696d5e..369b6ad25 100644
--- a/plugins/kubectl/kubectl.plugin.zsh
+++ b/plugins/kubectl/kubectl.plugin.zsh
@@ -115,7 +115,13 @@ alias kgaa='kubectl get all --all-namespaces'
# Logs
alias kl='kubectl logs'
+alias kl1h='kubectl logs --since 1h'
+alias kl1m='kubectl logs --since 1m'
+alias kl1s='kubectl logs --since 1s'
alias klf='kubectl logs -f'
+alias klf1h='kubectl logs --since 1h -f'
+alias klf1m='kubectl logs --since 1m -f'
+alias klf1s='kubectl logs --since 1s -f'
# File copy
alias kcp='kubectl cp'
From 42d04d386d357319a034d0c373daf119370637c0 Mon Sep 17 00:00:00 2001
From: Alaa Qutaish
Date: Sun, 29 Dec 2019 05:59:14 +0100
Subject: [PATCH 219/302] Add kubectl all-namespaces aliases for k8s objects
(#8434)
---
plugins/kubectl/kubectl.plugin.zsh | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/plugins/kubectl/kubectl.plugin.zsh b/plugins/kubectl/kubectl.plugin.zsh
index 369b6ad25..cc447b87e 100644
--- a/plugins/kubectl/kubectl.plugin.zsh
+++ b/plugins/kubectl/kubectl.plugin.zsh
@@ -37,6 +37,7 @@ alias kdelf='kubectl delete -f'
# Pod management.
alias kgp='kubectl get pods'
+alias kgpa='kubectl get pods --all-namespaces'
alias kgpw='kgp --watch'
alias kgpwide='kgp -o wide'
alias kep='kubectl edit pods'
@@ -48,6 +49,7 @@ alias kgpl='kgp -l'
# Service management.
alias kgs='kubectl get svc'
+alias kgsa='kubectl get svc --all-namespaces'
alias kgsw='kgs --watch'
alias kgswide='kgs -o wide'
alias kes='kubectl edit svc'
@@ -56,6 +58,7 @@ alias kdels='kubectl delete svc'
# Ingress management
alias kgi='kubectl get ingress'
+alias kgia='kubectl get ingress --all-namespaces'
alias kei='kubectl edit ingress'
alias kdi='kubectl describe ingress'
alias kdeli='kubectl delete ingress'
@@ -69,17 +72,20 @@ alias kcn='kubectl config set-context $(kubectl config current-context) --namesp
# ConfigMap management
alias kgcm='kubectl get configmaps'
+alias kgcma='kubectl get configmaps --all-namespaces'
alias kecm='kubectl edit configmap'
alias kdcm='kubectl describe configmap'
alias kdelcm='kubectl delete configmap'
# Secret management
alias kgsec='kubectl get secret'
+alias kgseca='kubectl get secret --all-namespaces'
alias kdsec='kubectl describe secret'
alias kdelsec='kubectl delete secret'
# Deployment management.
alias kgd='kubectl get deployment'
+alias kgda='kubectl get deployment --all-namespaces'
alias kgdw='kgd --watch'
alias kgdwide='kgd -o wide'
alias ked='kubectl edit deployment'
@@ -98,6 +104,7 @@ alias kru='kubectl rollout undo'
# Statefulset management.
alias kgss='kubectl get statefulset'
+alias kgssa='kubectl get statefulset --all-namespaces'
alias kgssw='kgss --watch'
alias kgsswide='kgss -o wide'
alias kess='kubectl edit statefulset'
@@ -134,6 +141,7 @@ alias kdelno='kubectl delete node'
# PVC management.
alias kgpvc='kubectl get pvc'
+alias kgpvca='kubectl get pvc --all-namespaces'
alias kgpvcw='kgpvc --watch'
alias kepvc='kubectl edit pvc'
alias kdpvc='kubectl describe pvc'
From e034030f3974f725ce11360dcdd166c2ae32e2b8 Mon Sep 17 00:00:00 2001
From: Zeshan Khattak
Date: Sun, 29 Dec 2019 10:03:26 +0500
Subject: [PATCH 220/302] Laravel artisan commands extension (#8425)
---
plugins/laravel/README.md | 17 +++++++++++++++++
plugins/laravel/laravel.plugin.zsh | 15 +++++++++++++++
2 files changed, 32 insertions(+)
diff --git a/plugins/laravel/README.md b/plugins/laravel/README.md
index 44798b68d..95f590191 100644
--- a/plugins/laravel/README.md
+++ b/plugins/laravel/README.md
@@ -29,6 +29,12 @@ plugins=(... laravel)
| `pamc` | `php artisan make:controller` |
| `pams` | `php artisan make:seeder` |
| `pamt` | `php artisan make:test` |
+| `pamfa` | `php artisan make:factory` |
+| `pamp` | `php artisan make:policy` |
+| `pame` | `php artisan make:event` |
+| `pamj` | `php artisan make:job` |
+| `paml` | `php artisan make:listener` |
+| `pamn` | `php artisan make:notification` |
## Clears
@@ -38,3 +44,14 @@ plugins=(... laravel)
| `pacoc` | `php artisan config:clear` |
| `pavic` | `php artisan view:clear` |
| `paroc` | `php artisan route:clear` |
+
+## Queues
+
+| Alias | Description |
+|:-:|:-:|
+| `paqf` | `php artisan queue:failed` |
+| `paqft` | `php artisan queue:failed-table` |
+| `paql` | `php artisan queue:listen` |
+| `paqr` | `php artisan queue:retry` |
+| `paqt` | `php artisan queue:table` |
+| `paqw` | `php artisan queue:work` |
diff --git a/plugins/laravel/laravel.plugin.zsh b/plugins/laravel/laravel.plugin.zsh
index 7ddfd85ba..a8382d3c9 100644
--- a/plugins/laravel/laravel.plugin.zsh
+++ b/plugins/laravel/laravel.plugin.zsh
@@ -17,6 +17,13 @@ alias pamm='php artisan make:model'
alias pamc='php artisan make:controller'
alias pams='php artisan make:seeder'
alias pamt='php artisan make:test'
+alias pamfa='php artisan make:factory'
+alias pamp='php artisan make:policy'
+alias pame='php artisan make:event'
+alias pamj='php artisan make:job'
+alias paml='php artisan make:listener'
+alias pamn='php artisan make:notification'
+alias pampp='php artisan make:provider'
# Clears
@@ -24,3 +31,11 @@ alias pacac='php artisan cache:clear'
alias pacoc='php artisan config:clear'
alias pavic='php artisan view:clear'
alias paroc='php artisan route:clear'
+
+# queues
+alias paqf='php artisan queue:failed'
+alias paqft='php artisan queue:failed-table'
+alias paql='php artisan queue:listen'
+alias paqr='php artisan queue:retry'
+alias paqt='php artisan queue:table'
+alias paqw='php artisan queue:work'
From d9e64344aa151f9b8e13a4f8054509a5d78bb718 Mon Sep 17 00:00:00 2001
From: sinrimin
Date: Sun, 29 Dec 2019 13:04:24 +0800
Subject: [PATCH 221/302] -mAdd hitokoto plugin (#8422)
---
plugins/hitokoto/README.md | 15 +++++++++++++++
plugins/hitokoto/hitokoto.plugin.zsh | 14 ++++++++++++++
2 files changed, 29 insertions(+)
create mode 100644 plugins/hitokoto/README.md
create mode 100644 plugins/hitokoto/hitokoto.plugin.zsh
diff --git a/plugins/hitokoto/README.md b/plugins/hitokoto/README.md
new file mode 100644
index 000000000..3a8758f56
--- /dev/null
+++ b/plugins/hitokoto/README.md
@@ -0,0 +1,15 @@
+# hitokoto plugin
+
+Displays a random quote taken from [hitokoto.cn](https://v1.hitokoto.cn/)
+
+Created by [Sinrimin](https://github.com/sinrimin)
+
+## Usage
+
+Add the plugin to the plugins array in your zshrc file and restart zsh:
+
+```zsh
+plugins=(... hitokoto)
+```
+
+Then, run `hitokoto` to get a new random quote.
diff --git a/plugins/hitokoto/hitokoto.plugin.zsh b/plugins/hitokoto/hitokoto.plugin.zsh
new file mode 100644
index 000000000..8646ebf3b
--- /dev/null
+++ b/plugins/hitokoto/hitokoto.plugin.zsh
@@ -0,0 +1,14 @@
+if ! (( $+commands[curl] )); then
+ echo "hitokoto plugin needs curl to work" >&2
+ return
+fi
+
+function hitokoto {
+ emulate -L zsh
+ Q=$(curl -s --connect-timeout 2 "https://v1.hitokoto.cn" | jq -j '.hitokoto+"\t"+.from')
+
+ TXT=$(echo "$Q" | awk -F '\t' '{print $1}')
+ WHO=$(echo "$Q" | awk -F '\t' '{print $2}')
+
+ [[ -n "$WHO" && -n "$TXT" ]] && print -P "%F{3}${WHO}%f: “%F{5}${TXT}%f”"
+}
From ca627655dbd1d110dbea34ec4a8c1964a1da83d2 Mon Sep 17 00:00:00 2001
From: Angel_Kitty
Date: Wed, 1 Jan 2020 11:45:52 +0800
Subject: [PATCH 222/302] Bump license year (#8512)
---
LICENSE.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/LICENSE.txt b/LICENSE.txt
index 7431907a6..45ba85a37 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2009-2019 Robby Russell and contributors (https://github.com/ohmyzsh/ohmyzsh/contributors)
+Copyright (c) 2009-2020 Robby Russell and contributors (https://github.com/ohmyzsh/ohmyzsh/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
From 78b07e92fd4a3a5e1f92ee4e3d680c39b72c2245 Mon Sep 17 00:00:00 2001
From: Aloxaf
Date: Sun, 5 Jan 2020 00:15:24 +0800
Subject: [PATCH 223/302] extract: add lz4 support (#8510)
---
plugins/extract/README.md | 2 ++
plugins/extract/_extract | 2 +-
plugins/extract/extract.plugin.zsh | 2 ++
3 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/plugins/extract/README.md b/plugins/extract/README.md
index a6630de3f..81e8e1d23 100644
--- a/plugins/extract/README.md
+++ b/plugins/extract/README.md
@@ -26,6 +26,7 @@ plugins=(... extract)
| `ipsw` | iOS firmware file |
| `jar` | Java Archive |
| `lrz` | LRZ archive |
+| `lz4` | LZ4 archive |
| `lzma` | LZMA archive |
| `rar` | WinRAR archive |
| `rpm` | RPM package |
@@ -35,6 +36,7 @@ plugins=(... extract)
| `tar.gz` | Tarball with gzip compression |
| `tar.lrz` | Tarball with lrzip compression |
| `tar.lz` | Tarball with lzip compression |
+| `tar.lz4` | Tarball with lz4 compression |
| `tar.xz` | Tarball with lzma2 compression |
| `tar.zma` | Tarball with lzma compression |
| `tar.zst` | Tarball with zstd compression |
diff --git a/plugins/extract/_extract b/plugins/extract/_extract
index 034fe6df0..1a263a744 100644
--- a/plugins/extract/_extract
+++ b/plugins/extract/_extract
@@ -3,5 +3,5 @@
_arguments \
'(-r --remove)'{-r,--remove}'[Remove archive.]' \
- "*::archive file:_files -g '(#i)*.(7z|Z|apk|aar|bz2|deb|gz|ipsw|jar|lrz|lzma|rar|rpm|sublime-package|tar|tar.bz2|tar.gz|tar.lrz|tar.lz|tar.xz|tar.zma|tar.zst|tbz|tbz2|tgz|tlz|txz|tzst|war|whl|xpi|xz|zip|zst)(-.)'" \
+ "*::archive file:_files -g '(#i)*.(7z|Z|apk|aar|bz2|deb|gz|ipsw|jar|lrz|lz4|lzma|rar|rpm|sublime-package|tar|tar.bz2|tar.gz|tar.lrz|tar.lz|tar.lz4|tar.xz|tar.zma|tar.zst|tbz|tbz2|tgz|tlz|txz|tzst|war|whl|xpi|xz|zip|zst)(-.)'" \
&& return 0
diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh
index 349c9a776..a5594b81a 100644
--- a/plugins/extract/extract.plugin.zsh
+++ b/plugins/extract/extract.plugin.zsh
@@ -46,11 +46,13 @@ extract() {
|| zstdcat "$1" | tar xvf - ;;
(*.tar) tar xvf "$1" ;;
(*.tar.lz) (( $+commands[lzip] )) && tar xvf "$1" ;;
+ (*.tar.lz4) lz4 -c -d "$1" | tar xvf - ;;
(*.tar.lrz) (( $+commands[lrzuntar] )) && lrzuntar "$1" ;;
(*.gz) (( $+commands[pigz] )) && pigz -dk "$1" || gunzip -k "$1" ;;
(*.bz2) bunzip2 "$1" ;;
(*.xz) unxz "$1" ;;
(*.lrz) (( $+commands[lrunzip] )) && lrunzip "$1" ;;
+ (*.lz4) lz4 -d "$1" ;;
(*.lzma) unlzma "$1" ;;
(*.z) uncompress "$1" ;;
(*.zip|*.war|*.jar|*.sublime-package|*.ipsw|*.xpi|*.apk|*.aar|*.whl) unzip "$1" -d $extract_dir ;;
From aaa87063a27cd581b5f0fa1f23a0170f623686a9 Mon Sep 17 00:00:00 2001
From: Vlad Dmitrievich <2tunnels@gmail.com>
Date: Wed, 15 Jan 2020 15:08:45 +0200
Subject: [PATCH 224/302] pyenv: only run if pyenv not in $PATH (#8462)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This is needed if in between the update of `$PATH` the `$commands` parameter hasn't
been updated, i.e. if there was no `rehash` or `hash -rf` or automatic rehash.
Co-authored-by: Marc Cornellà
---
plugins/pyenv/pyenv.plugin.zsh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/plugins/pyenv/pyenv.plugin.zsh b/plugins/pyenv/pyenv.plugin.zsh
index 40e58b5c2..4c75156bd 100644
--- a/plugins/pyenv/pyenv.plugin.zsh
+++ b/plugins/pyenv/pyenv.plugin.zsh
@@ -1,7 +1,8 @@
# This plugin loads pyenv into the current shell and provides prompt info via
# the 'pyenv_prompt_info' function. Also loads pyenv-virtualenv if available.
-FOUND_PYENV=$+commands[pyenv]
+# Load pyenv only if command not already available
+command -v pyenv &> /dev/null && FOUND_PYENV=1 || FOUND_PYENV=0
if [[ $FOUND_PYENV -ne 1 ]]; then
pyenvdirs=("$HOME/.pyenv" "/usr/local/pyenv" "/opt/pyenv" "/usr/local/opt/pyenv")
From 56297902e9d0f7a14f6d4d88b24eaea7392f3c32 Mon Sep 17 00:00:00 2001
From: Andras Svraka
Date: Thu, 16 Jan 2020 18:19:56 +0100
Subject: [PATCH 225/302] lib: add MSYS2 support to clipboard integration
(#8542)
---
lib/clipboard.zsh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/clipboard.zsh b/lib/clipboard.zsh
index 2c93d1bb5..5bba11d16 100644
--- a/lib/clipboard.zsh
+++ b/lib/clipboard.zsh
@@ -24,7 +24,7 @@ function clipcopy() {
else
cat $file | pbcopy
fi
- elif [[ $OSTYPE == cygwin* ]]; then
+ elif [[ $OSTYPE == (cygwin|msys)* ]]; then
if [[ -z $file ]]; then
cat > /dev/clipboard
else
@@ -71,7 +71,7 @@ function clippaste() {
emulate -L zsh
if [[ $OSTYPE == darwin* ]]; then
pbpaste
- elif [[ $OSTYPE == cygwin* ]]; then
+ elif [[ $OSTYPE == (cygwin|msys)* ]]; then
cat /dev/clipboard
else
if (( $+commands[xclip] )); then
From ce298d090b737cbce2a87afaada2195b0bb2e801 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Sun, 19 Jan 2020 13:39:18 +0100
Subject: [PATCH 226/302] yarn: use zsh-completions latest version (493984e)
---
plugins/yarn/_yarn | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/plugins/yarn/_yarn b/plugins/yarn/_yarn
index 3689ae960..70e783b86 100644
--- a/plugins/yarn/_yarn
+++ b/plugins/yarn/_yarn
@@ -86,9 +86,11 @@ _yarn_scripts() {
local i runJSON
runJSON=$(yarn run --json 2>/dev/null)
- binaries=($(sed -E '/Commands available/!d;s/.*Commands available from binary scripts: ([^"]+)".*/\1/;s/.*"items":\[([^]]+).*/\1/;s/[" ]//g;s/:/\\:/g;s/,/\n/g' <<< "$runJSON"))
- scriptNames=($(sed -E '/possibleCommands/!d;s/.*"items":\[([^]]+).*/\1/;s/[" ]//g;s/:/\\:/g;s/,/\n/g' <<< "$runJSON"))
- scriptCommands=("${(@f)$(sed -E '/possibleCommands/!d;s/.*"hints":\{([^}]+)\}.*/\1/;s/"[^"]+"://g;s/:/\\:/g;s/","/\n/g;s/(^"|"$)//g' <<< "$runJSON")}")
+ # Some sed utilities (e.g. Mac OS / BSD) don't interpret `\n` in a replacement
+ # pattern as a newline. See https://superuser.com/q/307165
+ binaries=($(sed -E '/Commands available/!d;s/.*Commands available from binary scripts: ([^"]+)".*/\1/;s/.*"items":\[([^]]+).*/\1/;s/[" ]//g;s/:/\\:/g;s/,/\'$'\n/g' <<< "$runJSON"))
+ scriptNames=($(sed -E '/possibleCommands/!d;s/.*"items":\[([^]]+).*/\1/;s/[" ]//g;s/:/\\:/g;s/,/\'$'\n/g' <<< "$runJSON"))
+ scriptCommands=("${(@f)$(sed -E '/possibleCommands/!d;s/.*"hints":\{(.+")\}.*/\1/;s/"[^"]+"://g;s/:/\\:/g;s/","/\'$'\n/g;s/(^"|"$)//g' <<< "$runJSON")}")
for (( i=1; i <= $#scriptNames; i++ )); do
scripts+=("${scriptNames[$i]}:${scriptCommands[$i]}")
From 530056d50d63b67dfaa169e2600a7c600ea18aa1 Mon Sep 17 00:00:00 2001
From: James Wright
Date: Sun, 19 Jan 2020 09:47:28 -0700
Subject: [PATCH 227/302] colored-man-pages: force `env` command (#8551)
Invoke `env` via `command` to ignore shell functions and aliases.
---
plugins/colored-man-pages/colored-man-pages.plugin.zsh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/colored-man-pages/colored-man-pages.plugin.zsh b/plugins/colored-man-pages/colored-man-pages.plugin.zsh
index ac6a94654..f74105d40 100644
--- a/plugins/colored-man-pages/colored-man-pages.plugin.zsh
+++ b/plugins/colored-man-pages/colored-man-pages.plugin.zsh
@@ -17,7 +17,7 @@ EOF
fi
function colored() {
- env \
+ command env \
LESS_TERMCAP_mb=$(printf "\e[1;31m") \
LESS_TERMCAP_md=$(printf "\e[1;31m") \
LESS_TERMCAP_me=$(printf "\e[0m") \
From a04728f1681ca2a185245fb9f6f6eb869c113ad0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Sun, 19 Jan 2020 17:52:15 +0100
Subject: [PATCH 228/302] init: force use of builtin test in is_plugin
Fixes #8545
---
oh-my-zsh.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh
index 6b2662d5e..c3fae6efb 100644
--- a/oh-my-zsh.sh
+++ b/oh-my-zsh.sh
@@ -32,8 +32,8 @@ fi
is_plugin() {
local base_dir=$1
local name=$2
- test -f $base_dir/plugins/$name/$name.plugin.zsh \
- || test -f $base_dir/plugins/$name/_$name
+ builtin test -f $base_dir/plugins/$name/$name.plugin.zsh \
+ || builtin test -f $base_dir/plugins/$name/_$name
}
# Add all defined plugins to fpath. This must be done
From 4e45e12dc355e3ba34e7e40ce4936fb222f0155c Mon Sep 17 00:00:00 2001
From: Jimmy Merrild Krag
Date: Sun, 19 Jan 2020 20:42:45 +0100
Subject: [PATCH 229/302] virtualenvwrapper: fix finding script on Ubuntu 19.10
(#8451)
---
plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh
index b07b2a306..b2d2c5cd6 100644
--- a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh
+++ b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh
@@ -22,6 +22,13 @@ elif [[ -f "/usr/local/bin/virtualenvwrapper.sh" ]]; then
virtualenvwrapper="/usr/local/bin/virtualenvwrapper.sh"
source "/usr/local/bin/virtualenvwrapper.sh"
}
+elif [[ -f "/usr/share/virtualenvwrapper/virtualenvwrapper.sh" ]]; then
+ function {
+ setopt local_options
+ unsetopt equals
+ virtualenvwrapper="/usr/share/virtualenvwrapper/virtualenvwrapper.sh"
+ source "/usr/share/virtualenvwrapper/virtualenvwrapper.sh"
+ }
elif [[ -f "/etc/bash_completion.d/virtualenvwrapper" ]]; then
function {
setopt local_options
From 64a7f6b38833d007394b9b4bf5d17e48db77c0d7 Mon Sep 17 00:00:00 2001
From: Modded Gamers <35778371+ModdedGamers@users.noreply.github.com>
Date: Tue, 28 Jan 2020 18:22:27 -0500
Subject: [PATCH 230/302] Create Github Action to run tests (#8569)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The published workflow tests the installer and checks the syntax of known zsh files
in the project.
Co-authored-by: Marc Cornellà
---
.github/workflows/check-suite.yml | 36 +++++++++++++++++++++++++++++++
README.md | 1 +
2 files changed, 37 insertions(+)
create mode 100644 .github/workflows/check-suite.yml
diff --git a/.github/workflows/check-suite.yml b/.github/workflows/check-suite.yml
new file mode 100644
index 000000000..3a7ad354d
--- /dev/null
+++ b/.github/workflows/check-suite.yml
@@ -0,0 +1,36 @@
+name: Check Suite
+on:
+ pull_request:
+ types:
+ - opened
+ - synchronize
+ branches:
+ - master
+ push:
+ branches:
+ - master
+
+jobs:
+ tests:
+ name: Run tests
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [ubuntu-latest, macos-latest]
+ steps:
+ - name: Set up git repository
+ uses: actions/checkout@v2
+ - name: Install zsh
+ if: runner.os == 'Linux'
+ run: sudo apt-get update; sudo apt-get install zsh
+ - name: Test installer
+ run: sh ./tools/install.sh
+ - name: Check syntax
+ run: |
+ for file in ./oh-my-zsh.sh \
+ ./lib/*.zsh \
+ ./plugins/*/*.plugin.zsh \
+ ./plugins/*/_* \
+ ./themes/*.zsh-theme; do
+ zsh -n "$file" || return 1
+ done
diff --git a/README.md b/README.md
index 291fb512b..fddc7c241 100644
--- a/README.md
+++ b/README.md
@@ -14,6 +14,7 @@ Finally, you'll begin to get the sort of attention that you have always felt you
To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twitter.com/ohmyzsh) on Twitter, and/or join us on Discord.
+![Check Suite](https://github.com/ohmyzsh/ohmyzsh/workflows/Check%20Suite/badge.svg)
[![Follow @ohmyzsh](https://img.shields.io/twitter/follow/ohmyzsh?label=Follow+@ohmyzsh&style=flat)](https://twitter.com/intent/follow?screen_name=ohmyzsh)
[![Discord server](https://img.shields.io/discord/642496866407284746)](https://discord.gg/bpXWhnN)
From 7ff77120c17b83ca1c5d4939d21c1a84a4b2ffbb Mon Sep 17 00:00:00 2001
From: "Babak K. Shandiz"
Date: Wed, 29 Jan 2020 16:21:40 +0330
Subject: [PATCH 231/302] vscode: use insiders build if stable not found
(#8568)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* 🔨 Add calling VS Code Insiders
* ✏️ Update README.md
---
plugins/vscode/README.md | 12 +++++++-----
plugins/vscode/vscode.plugin.zsh | 14 +++++++++++---
2 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/plugins/vscode/README.md b/plugins/vscode/README.md
index 74b5a45aa..2c6530650 100644
--- a/plugins/vscode/README.md
+++ b/plugins/vscode/README.md
@@ -1,6 +1,6 @@
-# VS code
+# VS Code
-This plugin makes interaction between the command line and the code editor easier.
+This plugin makes interaction between the command line and the VS Code editor easier.
To start using it, add the `vscode` plugin to your `plugins` array in `~/.zshrc`:
@@ -8,9 +8,11 @@ To start using it, add the `vscode` plugin to your `plugins` array in `~/.zshrc`
plugins=(... vscode)
```
-If you are using [Visual Studio Code Insiders](https://code.visualstudio.com/insiders/),
-add the following line in the oh-my-zsh settings section (between the `ZSH_THEME` and
-the `plugins=()` line). This will make the plugin use the Insiders version instead.
+## VS Code Insiders
+
+🍏 **If you are only using [VS Code Insiders](https://code.visualstudio.com/insiders/), the plugin will automatically bind to your Insiders installation.**
+
+But, if you have both Stable and Insiders versions and want to configure the plugin to just use the Insiders version, add the following line in the oh-my-zsh settings section (between the `ZSH_THEME` and the `plugins=()` line). This will make the plugin use the Insiders version instead.
```zsh
ZSH_THEME=...
diff --git a/plugins/vscode/vscode.plugin.zsh b/plugins/vscode/vscode.plugin.zsh
index 4c15df2b0..0144e0baa 100644
--- a/plugins/vscode/vscode.plugin.zsh
+++ b/plugins/vscode/vscode.plugin.zsh
@@ -1,9 +1,17 @@
# VScode zsh plugin
-# author: https://github.com/MarsiBarsi
+# Authors:
+# https://github.com/MarsiBarsi (original author)
+# https://github.com/babakks
-# Use main Visual Studio Code version by default
-: ${VSCODE:=code}
+# Use the stable VS Code release, unless the Insiders version is the only
+# available installation
+if ! which code > /dev/null && which code-insiders > /dev/null; then
+ : ${VSCODE:=code-insiders}
+else
+ : ${VSCODE:=code}
+fi
+# Define aliases
alias vsc="$VSCODE ."
alias vsca="$VSCODE --add"
alias vscd="$VSCODE --diff"
From 05a38c8b99ea5bc54e7fdfc1cc1ea6d2729c05e5 Mon Sep 17 00:00:00 2001
From: Nikita Sharnin <43130421+HikiShi@users.noreply.github.com>
Date: Wed, 29 Jan 2020 21:28:34 +0600
Subject: [PATCH 232/302] lol: fix docs for yolo alias (#8576)
---
plugins/lol/README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/plugins/lol/README.md b/plugins/lol/README.md
index 8fba7b713..1791de493 100644
--- a/plugins/lol/README.md
+++ b/plugins/lol/README.md
@@ -61,7 +61,7 @@ Plugin for adding catspeak aliases, because why not
| `violenz` | `git rebase` |
| `visible` | `echo` |
| `wtf` | `dmesg` |
-| `yolo` | `git commit -m "$(curl -s https://whatthecommit.com/index.txt)"` |
+| `yolo` | `git commit -m "$(curl -s http://whatthecommit.com/index.txt)"` |
## Usage Examples
@@ -78,6 +78,6 @@ nowai u=r,go= some.file
# ssh root@catserver.org
pwned root@catserver.org
-# git commit -m "$(curl -s https://whatthecommit.com/index.txt)"
+# git commit -m "$(curl -s http://whatthecommit.com/index.txt)"
yolo
```
From dcffc895806f5c2aaade3fce09772e1c9f52504e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Thu, 30 Jan 2020 13:31:33 +0100
Subject: [PATCH 233/302] aws: fix array assignment in asp function
Older zsh versions require this syntax change.
Fixes #8525
---
plugins/aws/aws.plugin.zsh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh
index 231ac5ad2..567311372 100644
--- a/plugins/aws/aws.plugin.zsh
+++ b/plugins/aws/aws.plugin.zsh
@@ -10,7 +10,8 @@ function asp() {
return
fi
- local available_profiles=($(aws_profiles))
+ local -a available_profiles
+ available_profiles=($(aws_profiles))
if [[ -z "${available_profiles[(r)$1]}" ]]; then
echo "${fg[red]}Profile '$1' not found in '${AWS_CONFIG_FILE:-$HOME/.aws/config}'" >&2
echo "Available profiles: ${(j:, :)available_profiles:-no profiles found}${reset_color}" >&2
From 69caf98cf754553fda969b0bf1d4966f0498f58f Mon Sep 17 00:00:00 2001
From: Dennis Rausch
Date: Thu, 30 Jan 2020 18:32:53 -0600
Subject: [PATCH 234/302] fix: Update tmux plugin to use modern terminfo.
(#8582)
* fix: Update tmux plugin to use modern terminfo.
* doc: Update documentation for tmux plugin.
---
plugins/tmux/README.md | 4 ++--
plugins/tmux/tmux.plugin.zsh | 10 +++++-----
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/plugins/tmux/README.md b/plugins/tmux/README.md
index db57f5be2..86a95bd4f 100644
--- a/plugins/tmux/README.md
+++ b/plugins/tmux/README.md
@@ -35,7 +35,7 @@ The plugin also supports the following -
| `ZSH_TMUX_AUTOQUIT` | Automatically closes terminal once tmux exits (default: `ZSH_TMUX_AUTOSTART`) |
| `ZSH_TMUX_FIXTERM` | Sets `$TERM` to 256-color term or not based on current terminal support |
| `ZSH_TMUX_ITERM2` | Sets the `-CC` option for iTerm2 tmux integration (default: `false`) |
-| `ZSH_TMUX_FIXTERM_WITHOUT_256COLOR` | `$TERM` to use for non 256-color terminals (default: `screen`) |
-| `ZSH_TMUX_FIXTERM_WITH_256COLOR` | `$TERM` to use for 256-color terminals (default: `screen-256color` |
+| `ZSH_TMUX_FIXTERM_WITHOUT_256COLOR` | `$TERM` to use for non 256-color terminals (default: `tmux`) |
+| `ZSH_TMUX_FIXTERM_WITH_256COLOR` | `$TERM` to use for 256-color terminals (default: `tmux-256color` |
| `ZSH_TMUX_CONFIG` | Set the configuration path (default: `$HOME/.tmux.conf`) |
| `ZSH_TMUX_UNICODE` | Set `tmux -u` option to support unicode |
diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh
index e52443a71..5ee37dff0 100644
--- a/plugins/tmux/tmux.plugin.zsh
+++ b/plugins/tmux/tmux.plugin.zsh
@@ -22,18 +22,18 @@ alias tkss='tmux kill-session -t'
: ${ZSH_TMUX_AUTOCONNECT:=true}
# Automatically close the terminal when tmux exits
: ${ZSH_TMUX_AUTOQUIT:=$ZSH_TMUX_AUTOSTART}
-# Set term to screen or screen-256color based on current terminal support
+# Set term to tmux or tmux-256color based on current terminal support
: ${ZSH_TMUX_FIXTERM:=true}
# Set '-CC' option for iTerm2 tmux integration
: ${ZSH_TMUX_ITERM2:=false}
# The TERM to use for non-256 color terminals.
-# Tmux states this should be screen, but you may need to change it on
+# Tmux states this should be tmux, but you may need to change it on
# systems without the proper terminfo
-: ${ZSH_TMUX_FIXTERM_WITHOUT_256COLOR:=screen}
+: ${ZSH_TMUX_FIXTERM_WITHOUT_256COLOR:=tmux}
# The TERM to use for 256 color terminals.
-# Tmux states this should be screen-256color, but you may need to change it on
+# Tmux states this should be tmux-256color, but you may need to change it on
# systems without the proper terminfo
-: ${ZSH_TMUX_FIXTERM_WITH_256COLOR:=screen-256color}
+: ${ZSH_TMUX_FIXTERM_WITH_256COLOR:=tmux-256color}
# Set the configuration path
: ${ZSH_TMUX_CONFIG:=$HOME/.tmux.conf}
# Set -u option to support unicode
From df56d1ee1fb7430d8979973300bf0c6b53a5446c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Tue, 4 Feb 2020 13:02:20 +0100
Subject: [PATCH 235/302] Rename GitHub Action to CI
---
.github/workflows/{check-suite.yml => main.yml} | 2 +-
README.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
rename .github/workflows/{check-suite.yml => main.yml} (97%)
diff --git a/.github/workflows/check-suite.yml b/.github/workflows/main.yml
similarity index 97%
rename from .github/workflows/check-suite.yml
rename to .github/workflows/main.yml
index 3a7ad354d..7ab7efdd6 100644
--- a/.github/workflows/check-suite.yml
+++ b/.github/workflows/main.yml
@@ -1,4 +1,4 @@
-name: Check Suite
+name: CI
on:
pull_request:
types:
diff --git a/README.md b/README.md
index fddc7c241..d36591abc 100644
--- a/README.md
+++ b/README.md
@@ -14,7 +14,7 @@ Finally, you'll begin to get the sort of attention that you have always felt you
To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twitter.com/ohmyzsh) on Twitter, and/or join us on Discord.
-![Check Suite](https://github.com/ohmyzsh/ohmyzsh/workflows/Check%20Suite/badge.svg)
+![CI](https://github.com/ohmyzsh/ohmyzsh/workflows/CI/badge.svg)
[![Follow @ohmyzsh](https://img.shields.io/twitter/follow/ohmyzsh?label=Follow+@ohmyzsh&style=flat)](https://twitter.com/intent/follow?screen_name=ohmyzsh)
[![Discord server](https://img.shields.io/discord/642496866407284746)](https://discord.gg/bpXWhnN)
From 578b0860112af83af25afb687887109748a03c08 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Tue, 4 Feb 2020 13:07:40 +0100
Subject: [PATCH 236/302] Link to Actions page in GitHub Action badge
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index d36591abc..187cceb7d 100644
--- a/README.md
+++ b/README.md
@@ -14,7 +14,7 @@ Finally, you'll begin to get the sort of attention that you have always felt you
To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twitter.com/ohmyzsh) on Twitter, and/or join us on Discord.
-![CI](https://github.com/ohmyzsh/ohmyzsh/workflows/CI/badge.svg)
+[![CI](https://github.com/ohmyzsh/ohmyzsh/workflows/CI/badge.svg)](https://github.com/ohmyzsh/ohmyzsh/actions?query=workflow%3ACI)
[![Follow @ohmyzsh](https://img.shields.io/twitter/follow/ohmyzsh?label=Follow+@ohmyzsh&style=flat)](https://twitter.com/intent/follow?screen_name=ohmyzsh)
[![Discord server](https://img.shields.io/discord/642496866407284746)](https://discord.gg/bpXWhnN)
From 6bebc254e88ac9b7fdaa7491d031f82ec107e418 Mon Sep 17 00:00:00 2001
From: Aliaksei Maiseyeu
Date: Tue, 4 Feb 2020 15:27:18 +0300
Subject: [PATCH 237/302] af-magic: fix showing aws prompt out of the box
(#8243)
Fix issue related to #7615, #7747 and #6346
After the update, aws prompt (which should be visible out of the box) disappears when a user uses a theme af-magic, because of fact that plugins are loaded before themes.
This pull request fixes issue with not showing aws prompt in theme af-magic, by appending RPROMPT in theme af-magic instead overwriting.
---
themes/af-magic.zsh-theme | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/themes/af-magic.zsh-theme b/themes/af-magic.zsh-theme
index d185fa1ab..30e997f8c 100644
--- a/themes/af-magic.zsh-theme
+++ b/themes/af-magic.zsh-theme
@@ -21,9 +21,9 @@ eval my_orange='$FG[214]'
# right prompt
if type "virtualenv_prompt_info" > /dev/null
then
- RPROMPT='$FG[078]$(virtualenv_prompt_info)%{$reset_color%} $my_gray%n@%m%{$reset_color%}%'
+ RPROMPT="${RPROMPT}"'$FG[078]$(virtualenv_prompt_info)%{$reset_color%} $my_gray%n@%m%{$reset_color%}%'
else
- RPROMPT='$my_gray%n@%m%{$reset_color%}%'
+ RPROMPT="${RPROMPT}"'$my_gray%n@%m%{$reset_color%}%'
fi
# git settings
From 77aa1795d2f05583d4fc63a63abb0144beb5ecff Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Tue, 4 Feb 2020 19:41:39 +0100
Subject: [PATCH 238/302] Revert "fix: Update tmux plugin to use modern
terminfo. (#8582)"
This reverts commit 69caf98cf754553fda969b0bf1d4966f0498f58f.
---
plugins/tmux/README.md | 4 ++--
plugins/tmux/tmux.plugin.zsh | 10 +++++-----
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/plugins/tmux/README.md b/plugins/tmux/README.md
index 86a95bd4f..db57f5be2 100644
--- a/plugins/tmux/README.md
+++ b/plugins/tmux/README.md
@@ -35,7 +35,7 @@ The plugin also supports the following -
| `ZSH_TMUX_AUTOQUIT` | Automatically closes terminal once tmux exits (default: `ZSH_TMUX_AUTOSTART`) |
| `ZSH_TMUX_FIXTERM` | Sets `$TERM` to 256-color term or not based on current terminal support |
| `ZSH_TMUX_ITERM2` | Sets the `-CC` option for iTerm2 tmux integration (default: `false`) |
-| `ZSH_TMUX_FIXTERM_WITHOUT_256COLOR` | `$TERM` to use for non 256-color terminals (default: `tmux`) |
-| `ZSH_TMUX_FIXTERM_WITH_256COLOR` | `$TERM` to use for 256-color terminals (default: `tmux-256color` |
+| `ZSH_TMUX_FIXTERM_WITHOUT_256COLOR` | `$TERM` to use for non 256-color terminals (default: `screen`) |
+| `ZSH_TMUX_FIXTERM_WITH_256COLOR` | `$TERM` to use for 256-color terminals (default: `screen-256color` |
| `ZSH_TMUX_CONFIG` | Set the configuration path (default: `$HOME/.tmux.conf`) |
| `ZSH_TMUX_UNICODE` | Set `tmux -u` option to support unicode |
diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh
index 5ee37dff0..e52443a71 100644
--- a/plugins/tmux/tmux.plugin.zsh
+++ b/plugins/tmux/tmux.plugin.zsh
@@ -22,18 +22,18 @@ alias tkss='tmux kill-session -t'
: ${ZSH_TMUX_AUTOCONNECT:=true}
# Automatically close the terminal when tmux exits
: ${ZSH_TMUX_AUTOQUIT:=$ZSH_TMUX_AUTOSTART}
-# Set term to tmux or tmux-256color based on current terminal support
+# Set term to screen or screen-256color based on current terminal support
: ${ZSH_TMUX_FIXTERM:=true}
# Set '-CC' option for iTerm2 tmux integration
: ${ZSH_TMUX_ITERM2:=false}
# The TERM to use for non-256 color terminals.
-# Tmux states this should be tmux, but you may need to change it on
+# Tmux states this should be screen, but you may need to change it on
# systems without the proper terminfo
-: ${ZSH_TMUX_FIXTERM_WITHOUT_256COLOR:=tmux}
+: ${ZSH_TMUX_FIXTERM_WITHOUT_256COLOR:=screen}
# The TERM to use for 256 color terminals.
-# Tmux states this should be tmux-256color, but you may need to change it on
+# Tmux states this should be screen-256color, but you may need to change it on
# systems without the proper terminfo
-: ${ZSH_TMUX_FIXTERM_WITH_256COLOR:=tmux-256color}
+: ${ZSH_TMUX_FIXTERM_WITH_256COLOR:=screen-256color}
# Set the configuration path
: ${ZSH_TMUX_CONFIG:=$HOME/.tmux.conf}
# Set -u option to support unicode
From e81782ac3faf24cac2384a99366f748040b3f20a Mon Sep 17 00:00:00 2001
From: Alastair Rankine
Date: Fri, 7 Feb 2020 06:06:06 -0500
Subject: [PATCH 239/302] virtualenvwrapper: rewrite init script location code
(#8521)
---
.../virtualenvwrapper.plugin.zsh | 64 ++++++-------------
1 file changed, 19 insertions(+), 45 deletions(-)
diff --git a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh
index b2d2c5cd6..267bcaeb5 100644
--- a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh
+++ b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh
@@ -1,55 +1,29 @@
-virtualenvwrapper='virtualenvwrapper.sh'
-virtualenvwrapper_lazy='virtualenvwrapper_lazy.sh'
+function {
+ # search in these locations for the init script:
+ for f in $commands[virtualenvwrapper_lazy.sh] \
+ $commands[virtualenvwrapper.sh] \
+ /usr/share/virtualenvwrapper/virtualenvwrapper{_lazy,}.sh \
+ /usr/local/bin/virtualenvwrapper{_lazy,}.sh \
+ /etc/bash_completion.d/virtualenvwrapper \
+ /usr/share/bash-completion/completions/virtualenvwrapper
+ do
+ if [[ -f $f ]]; then
+ source $f
+ return
+ fi
+ done
+ print "[oh-my-zsh] virtualenvwrapper plugin: Cannot find virtualenvwrapper.sh.\n"\
+ "Please install with \`pip install virtualenvwrapper\`" >&2
+}
-if (( $+commands[$virtualenvwrapper_lazy] )); then
- function {
- setopt local_options
- unsetopt equals
- virtualenvwrapper=${${virtualenvwrapper_lazy}:c}
- source ${${virtualenvwrapper_lazy}:c}
- [[ -z "$WORKON_HOME" ]] && WORKON_HOME="$HOME/.virtualenvs"
- }
-elif (( $+commands[$virtualenvwrapper] )); then
- function {
- setopt local_options
- unsetopt equals
- source ${${virtualenvwrapper}:c}
- }
-elif [[ -f "/usr/local/bin/virtualenvwrapper.sh" ]]; then
- function {
- setopt local_options
- unsetopt equals
- virtualenvwrapper="/usr/local/bin/virtualenvwrapper.sh"
- source "/usr/local/bin/virtualenvwrapper.sh"
- }
-elif [[ -f "/usr/share/virtualenvwrapper/virtualenvwrapper.sh" ]]; then
- function {
- setopt local_options
- unsetopt equals
- virtualenvwrapper="/usr/share/virtualenvwrapper/virtualenvwrapper.sh"
- source "/usr/share/virtualenvwrapper/virtualenvwrapper.sh"
- }
-elif [[ -f "/etc/bash_completion.d/virtualenvwrapper" ]]; then
- function {
- setopt local_options
- unsetopt equals
- virtualenvwrapper="/etc/bash_completion.d/virtualenvwrapper"
- source "/etc/bash_completion.d/virtualenvwrapper"
- }
-else
- print "[oh-my-zsh] virtualenvwrapper plugin: Cannot find ${virtualenvwrapper}.\n"\
- "Please install with \`pip install virtualenvwrapper\`" >&2
- return
-fi
if ! type workon &>/dev/null; then
print "[oh-my-zsh] virtualenvwrapper plugin: shell function 'workon' not defined.\n"\
"Please check ${virtualenvwrapper}" >&2
return
fi
-if [[ "$WORKON_HOME" == "" ]]; then
- print "[oh-my-zsh] \$WORKON_HOME is not defined so plugin virtualenvwrapper will not work" >&2
- return
+if [[ -z "$WORKON_HOME" ]]; then
+ WORKON_HOME="$HOME/.virtualenvs"
fi
if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then
From beab76edfce3500b2fb357c69f3d4fb2a17898fe Mon Sep 17 00:00:00 2001
From: Larson Carter
Date: Fri, 13 Dec 2019 08:18:25 -0600
Subject: [PATCH 240/302] Update issues and PR templates (#8471)
Closes #8471
---
.github/ISSUE_TEMPLATE/bug_report.md | 32 +++++++++++------------
.github/ISSUE_TEMPLATE/feature_request.md | 10 +++----
.github/ISSUE_TEMPLATE/support.md | 2 --
.github/PULL_REQUEST_TEMPLATE.md | 17 ++++++++++++
4 files changed, 37 insertions(+), 24 deletions(-)
create mode 100644 .github/PULL_REQUEST_TEMPLATE.md
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 076c35544..7c1cb8967 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -1,6 +1,7 @@
---
name: Bug report
-about: Create a report to help us improve
+about: Create a report to help us improve Oh My Zsh
+labels: 'Type: support'
---
@@ -10,29 +11,26 @@ an issue where no sections have been filled will be deleted without comment.
-->
**Describe the bug**
-
+A clear description of what the bug is.
**To Reproduce**
-
**Expected behavior**
-
+A brief description of what should happen.
-**Screenshots or recordings**
-
+**Screenshots and/or Recordings**
+If applicable, add screenshots to help explain your problem.
+You can also record an asciinema session: https://asciinema.org/
-**System:**
- - OS: [e.g. macOS]
- - Zsh version [e.g. 5.6]
+**Desktop (please complete the following information):**
+ - OS / Distro: [e.g. Arch Linux, macOS]
+ - Latest ohmyzsh Update?: [e.g. Yes/No]
+ - ZSH Version: [e.g. 5.6]
- Terminal emulator [e.g. iTerm2]
**Additional context**
-
+Add any other context about the problem here. This can be themes, plugins, custom configs.
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
index d9c324a55..346eabaea 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -11,16 +11,16 @@ an issue where no sections have been filled will be deleted without comment.
-->
**Is your feature request related to a particular plugin or theme? If so, specify it.**
-
+The name of the plugin or theme that you would like us to improve. [...]
**Is your feature request related to a problem? Please describe.**
-
+A description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
-
+A description of what you want to happen.
**Describe alternatives you've considered**
-
+A description of any alternative solutions or features you've considered. This can also include other plugins or aliases.
**Additional context**
-
+Add any other context or screenshots about the feature request here. Also if you have any PRs related to this issue that are already open that you would like us to look at.
diff --git a/.github/ISSUE_TEMPLATE/support.md b/.github/ISSUE_TEMPLATE/support.md
index 3c69a7d5e..d2638412e 100644
--- a/.github/ISSUE_TEMPLATE/support.md
+++ b/.github/ISSUE_TEMPLATE/support.md
@@ -5,8 +5,6 @@ labels: 'Type: support'
---
-
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 000000000..6bcb90efe
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,17 @@
+## Standards checklist:
+
+- [ ] The PR title is descriptive.
+- [ ] The PR doesn't replicate another PR which is already open.
+- [ ] I have read the contribution guide and followed all the instructions.
+- [ ] The code follows the code style guide detailed in the wiki.
+- [ ] The code is mine or it's from somewhere with an MIT-compatible license.
+- [ ] The code is efficient, to the best of my ability, and does not waste computer resources.
+- [ ] The code is stable and I have tested it myself, to the best of my abilities.
+
+## Changes:
+
+- [...]
+
+## Other comments:
+
+...
From bfec31666aa9e61cc869fa6e93a031b53fe47d44 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20=C5=A0abata?=
Date: Mon, 10 Feb 2020 19:16:02 +0100
Subject: [PATCH 241/302] systemd: refactor and add latest commands (#6250)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Order systemctl commands alphabetically
Simplifying the plugin maintenance.
Signed-off-by: Petr Šabata
* Include the latest systemctl commands
Based on systemd-233. I'm still keeping the old, now unsupported
commands for backwards compatibility as well.
Signed-off-by: Petr Šabata
* Add daemon-reload (#3701)
Closes #3701
Co-authored-by: Javier Tia
---
plugins/systemd/systemd.plugin.zsh | 65 +++++++++++++++++++++++++++---
1 file changed, 59 insertions(+), 6 deletions(-)
diff --git a/plugins/systemd/systemd.plugin.zsh b/plugins/systemd/systemd.plugin.zsh
index 7cd27d450..201ffd998 100644
--- a/plugins/systemd/systemd.plugin.zsh
+++ b/plugins/systemd/systemd.plugin.zsh
@@ -1,12 +1,65 @@
user_commands=(
- list-units is-active status show help list-unit-files
- is-enabled list-jobs show-environment cat list-timers)
+ cat
+ get-default
+ help
+ is-active
+ is-enabled
+ is-failed
+ is-system-running
+ list-dependencies
+ list-jobs
+ list-sockets
+ list-timers
+ list-unit-files
+ list-units
+ show
+ show-environment
+ status)
sudo_commands=(
- start stop reload restart try-restart isolate kill
- reset-failed enable disable reenable preset mask unmask
- link load cancel set-environment unset-environment
- edit)
+ add-requires
+ add-wants
+ cancel
+ daemon-reexec
+ daemon-reload
+ default
+ disable
+ edit
+ emergency
+ enable
+ halt
+ hibernate
+ hybrid-sleep
+ import-environment
+ isolate
+ kexec
+ kill
+ link
+ list-machines
+ load
+ mask
+ poweroff
+ preset
+ preset-all
+ reboot
+ reenable
+ reload
+ reload-or-restart
+ reset-failed
+ rescue
+ restart
+ revert
+ set-default
+ set-environment
+ set-property
+ start
+ stop
+ suspend
+ switch-root
+ try-reload-or-restart
+ try-restart
+ unmask
+ unset-environment)
for c in $user_commands; do; alias sc-$c="systemctl $c"; done
for c in $sudo_commands; do; alias sc-$c="sudo systemctl $c"; done
From 22cf7159ec09722421ffe355e852410823d7f49d Mon Sep 17 00:00:00 2001
From: Isaac Cook
Date: Mon, 10 Feb 2020 13:31:55 -0600
Subject: [PATCH 242/302] kube-ps1: add example for common pitfall (#8318)
I ran into this issue, looks like maybe a few other people did as well.
https://github.com/jonmosco/kube-ps1/issues/28#issuecomment-359761463
A simple clarification seems helpful.
---
plugins/kube-ps1/README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/plugins/kube-ps1/README.md b/plugins/kube-ps1/README.md
index 82c0a77e6..fdc1a94e8 100644
--- a/plugins/kube-ps1/README.md
+++ b/plugins/kube-ps1/README.md
@@ -55,6 +55,8 @@ plugins=(
# After the "source Oh My Zsh" line
PROMPT=$PROMPT'$(kube_ps1) '
+# Or in double quotes, don't forget to escape
+PROMPT=$PROMPT"\$(kube_ps1) "
```
Note: The `PROMPT` example above was tested with the theme `robbyrussell`.
From 1c300d3a76a786a83e8a70b7a399db94c8bcf5b7 Mon Sep 17 00:00:00 2001
From: Evan Chiu
Date: Sun, 10 Apr 2016 17:32:37 -0700
Subject: [PATCH 243/302] lib: add git function to determine repository name
(#4989)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Closes #4989
Co-authored-by: Marc Cornellà
---
lib/git.zsh | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/lib/git.zsh b/lib/git.zsh
index 2054fe272..00cb00b19 100644
--- a/lib/git.zsh
+++ b/lib/git.zsh
@@ -199,3 +199,12 @@ function git_current_user_name() {
function git_current_user_email() {
command git config user.email 2>/dev/null
}
+
+# Output the name of the root directory of the git repository
+# Usage example: $(git_repo_name)
+function git_repo_name() {
+ local repo_path
+ if repo_path="$(git rev-parse --show-toplevel 2>/dev/null)" && [[ -n "$repo_path" ]]; then
+ echo ${repo_path:t}
+ fi
+}
From d88fbe625f0a7c6f7296a58e0cd919903cd81511 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gr=C3=A9gory=20DAVID?=
<632571+groolot@users.noreply.github.com>
Date: Mon, 10 Feb 2020 21:18:14 +0100
Subject: [PATCH 244/302] systemadmin: fix header line sorting in pscpu (#6167)
Inside `pscpu` and `pscpu10` aliases, remove sorting of the header line.
---
plugins/systemadmin/systemadmin.plugin.zsh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/plugins/systemadmin/systemadmin.plugin.zsh b/plugins/systemadmin/systemadmin.plugin.zsh
index bdc2219fa..ded25c3a9 100644
--- a/plugins/systemadmin/systemadmin.plugin.zsh
+++ b/plugins/systemadmin/systemadmin.plugin.zsh
@@ -28,8 +28,8 @@ alias mkdir='mkdir -pv'
alias psmem='ps -e -orss=,args= | sort -b -k1,1n'
alias psmem10='ps -e -orss=,args= | sort -b -k1,1n| head -10'
# get top process eating cpu if not work try excute : export LC_ALL='C'
-alias pscpu='ps -e -o pcpu,cpu,nice,state,cputime,args|sort -k1 -nr'
-alias pscpu10='ps -e -o pcpu,cpu,nice,state,cputime,args|sort -k1 -nr | head -10'
+alias pscpu='ps -e -o pcpu,cpu,nice,state,cputime,args|sort -k1,1n -nr'
+alias pscpu10='ps -e -o pcpu,cpu,nice,state,cputime,args|sort -k1,1n -nr | head -10'
# top10 of the history
alias hist10='print -l ${(o)history%% *} | uniq -c | sort -nr | head -n 10'
From f362b69df696866704fc1b0b1bcb9a7d2a780b2a Mon Sep 17 00:00:00 2001
From: Yuan Liu
Date: Mon, 10 Feb 2020 12:19:03 -0800
Subject: [PATCH 245/302] common-aliases: fix loading of is-at-least function
(#6215)
---
plugins/common-aliases/common-aliases.plugin.zsh | 1 +
1 file changed, 1 insertion(+)
diff --git a/plugins/common-aliases/common-aliases.plugin.zsh b/plugins/common-aliases/common-aliases.plugin.zsh
index 785a09c63..ce1995c03 100644
--- a/plugins/common-aliases/common-aliases.plugin.zsh
+++ b/plugins/common-aliases/common-aliases.plugin.zsh
@@ -50,6 +50,7 @@ alias mv='mv -i'
# zsh is able to auto-do some kungfoo
# depends on the SUFFIX :)
+autoload -Uz is-at-least
if is-at-least 4.2.0; then
# open browser on urls
if [[ -n "$BROWSER" ]]; then
From 83aa984d1a11199d5bb23fb1e462f48e9b4edc88 Mon Sep 17 00:00:00 2001
From: Henry Darnell
Date: Mon, 10 Feb 2020 18:39:20 -0600
Subject: [PATCH 246/302] Add dotnet watch and dotnet watch run (#8612)
---
plugins/dotnet/README.md | 20 +++++++++++---------
plugins/dotnet/dotnet.plugin.zsh | 2 ++
2 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/plugins/dotnet/README.md b/plugins/dotnet/README.md
index 7a6d6a995..a663fc88d 100644
--- a/plugins/dotnet/README.md
+++ b/plugins/dotnet/README.md
@@ -10,12 +10,14 @@ plugins=(... dotnet)
## Aliases
-| Alias | Command | Description |
-|-------|--------------|-------------------------------------------------------------------|
-| dn | dotnet new | Create a new .NET project or file. |
-| dr | dotnet run | Build and run a .NET project output. |
-| dt | dotnet test | Run unit tests using the test runner specified in a .NET project. |
-| ds | dotnet sln | Modify Visual Studio solution files. |
-| da | dotnet add | Add a package or reference to a .NET project. |
-| dp | dotnet pack | Create a NuGet package. |
-| dng | dotnet nuget | Provides additional NuGet commands. |
\ No newline at end of file
+| Alias | Command | Description |
+|-------|------------------|-------------------------------------------------------------------|
+| dn | dotnet new | Create a new .NET project or file. |
+| dr | dotnet run | Build and run a .NET project output. |
+| dt | dotnet test | Run unit tests using the test runner specified in a .NET project. |
+| dw | dotnet watch | Watch for source file changes and restart the dotnet command. |
+| dwr | dotnet watch run | Watch for source file changes and restart the `run` command. |
+| ds | dotnet sln | Modify Visual Studio solution files. |
+| da | dotnet add | Add a package or reference to a .NET project. |
+| dp | dotnet pack | Create a NuGet package. |
+| dng | dotnet nuget | Provides additional NuGet commands. |
\ No newline at end of file
diff --git a/plugins/dotnet/dotnet.plugin.zsh b/plugins/dotnet/dotnet.plugin.zsh
index 8b9a45a97..ed6c68e5d 100644
--- a/plugins/dotnet/dotnet.plugin.zsh
+++ b/plugins/dotnet/dotnet.plugin.zsh
@@ -111,6 +111,8 @@ compdef _dotnet dotnet
# --------------------------------------------------------------------- #
alias dr='dotnet run'
alias dt='dotnet test'
+alias dw='dotnet watch'
+alias dwr='dotnet watch run'
alias ds='dotnet sln'
alias da='dotnet add'
alias dp='dotnet pack'
From 05cae34676ac3a22fb8a0adca8ab9b5301f48fb9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Tue, 11 Feb 2020 17:43:59 +0100
Subject: [PATCH 247/302] Detect dependency plugins in candy-kingdom and kiwi
themes
Fixes #5029
Fixes #5342
---
themes/candy-kingdom.zsh-theme | 24 +++++++++++++-----------
themes/kiwi.zsh-theme | 4 +---
2 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/themes/candy-kingdom.zsh-theme b/themes/candy-kingdom.zsh-theme
index 30ce785c0..ad03cc320 100644
--- a/themes/candy-kingdom.zsh-theme
+++ b/themes/candy-kingdom.zsh-theme
@@ -1,16 +1,14 @@
-# neuralsanwich.zsh-theme
-
-if [ "x$OH_MY_ZSH_HG" = "x" ]; then
- OH_MY_ZSH_HG="hg"
-fi
-
-function hg_prompt_info {
- $OH_MY_ZSH_HG prompt --angle-brackets "\
+if ! hg prompt 2>/dev/null; then
+ function hg_prompt_info { }
+else
+ function hg_prompt_info {
+ hg prompt --angle-brackets "\
< on %{$fg[magenta]%}%{$reset_color%}>\
< at %{$fg[yellow]%}%{$reset_color%}>\
%{$fg[green]%}%{$reset_color%}<
patches: >" 2>/dev/null
-}
+ }
+fi
function box_name {
[ -f ~/.box-name ] && cat ~/.box-name || echo ${SHORT_HOST:-$HOST}
@@ -26,5 +24,9 @@ ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[red]%}?"
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[orange]%}!"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%})"
-local return_status="%{$fg[red]%}%(?..✘)%{$reset_color%}"
-RPROMPT='${return_status}$(battery_time_remaining) $(battery_pct_prompt)%{$reset_color%}'
+RPROMPT='%{$fg[red]%}%(?..✘)%{$reset_color%}'
+
+# Add battery status if the battery plugin is enabled
+if (( $+functions[battery_pct_prompt] )); then
+ RPROMPT+='$(battery_time_remaining) $(battery_pct_prompt)%{$reset_color%}'
+fi
diff --git a/themes/kiwi.zsh-theme b/themes/kiwi.zsh-theme
index f93de2b75..94f0ffcbf 100644
--- a/themes/kiwi.zsh-theme
+++ b/themes/kiwi.zsh-theme
@@ -1,6 +1,4 @@
-#
-# Kiwi ZSH Theme
-#
+(( $+functions[battery_pct_prompt] )) || function battery_pct_prompt { }
PROMPT='%{$fg_bold[green]%}┌[%{$fg_bold[cyan]%}kiwish-4.2%{$fg_bold[green]%}]-(%{$fg_bold[white]%}%2~%{$fg_bold[green]%})-$(git_prompt_info)$(svn_prompt_info)$(battery_pct_prompt)
└> % %{$reset_color%}'
From 9dffb3191d5d87509830bcf5367551c2637827bb Mon Sep 17 00:00:00 2001
From: Umberto Nicoletti
Date: Tue, 11 Feb 2020 18:46:56 +0100
Subject: [PATCH 248/302] vagrant: obey VAGRANT_CWD when completing vagrant
commands (#7219)
---
plugins/vagrant/_vagrant | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/plugins/vagrant/_vagrant b/plugins/vagrant/_vagrant
index 2efb4473d..79c4c6fe6 100644
--- a/plugins/vagrant/_vagrant
+++ b/plugins/vagrant/_vagrant
@@ -69,8 +69,8 @@ __box_list ()
__vm_list ()
{
- _wanted application expl 'command' compadd $(command grep Vagrantfile -oe '^[^#]*\.vm\.define *[:"]\([a-zA-Z0-9_-]\+\)' 2>/dev/null | awk '{print substr($2, 2)}')
- _wanted application expl 'command' compadd $(command ls .vagrant/machines/ 2>/dev/null)
+ _wanted application expl 'command' compadd $(command grep "${VAGRANT_CWD:-.}/Vagrantfile" -oe '^[^#]*\.vm\.define *[:"]\([a-zA-Z0-9_-]\+\)' 2>/dev/null | awk '{print substr($2, 2)}')
+ _wanted application expl 'command' compadd $(command ls "${VAGRANT_CWD:-.}/.vagrant/machines/" 2>/dev/null)
}
__vagrant-box ()
From bc67a55fe8ff6fce8fdc2c002dbb7159c6008aa0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Tue, 11 Feb 2020 19:35:17 +0100
Subject: [PATCH 249/302] jump: fix issues in plugin and document CTRL+G key
binding
- Fixes `readlink -e` dependency which isn't supported in macOS
(fixes #3235).
- Uses native zsh wildcard expansion instead of calls to `ls`.
- Prepends commands with `command` and `builtin` to bypass aliases
and functions.
- Documents CTRL+G key binding to substitute mark name in the command
line with the mark path (https://github.com/ohmyzsh/ohmyzsh/pull/2045#issuecomment-22826540).
---
plugins/jump/README.md | 12 ++++++++++++
plugins/jump/jump.plugin.zsh | 21 ++++++++-------------
2 files changed, 20 insertions(+), 13 deletions(-)
diff --git a/plugins/jump/README.md b/plugins/jump/README.md
index ed6415289..1b0ce68c0 100644
--- a/plugins/jump/README.md
+++ b/plugins/jump/README.md
@@ -17,3 +17,15 @@ plugins=(... jump)
| `mark [mark-name]` | Create a mark with the given name or with the name of the current directory if none is provided |
| `unmark ` | Remove the given mark |
| `marks` | List the existing marks and the directories they point to |
+
+## Key bindings
+
+Pressing `CTRL`+`G` substitutes the written mark name for the full path of the mark.
+For example, with a mark named `mymark` pointing to `/path/to/my/mark`:
+```zsh
+$ cp /tmp/file mymark
+```
+will become:
+```zsh
+$ cp /tmp/file /path/to/my/mark
+```
diff --git a/plugins/jump/jump.plugin.zsh b/plugins/jump/jump.plugin.zsh
index d161a6da0..4f9134fcd 100644
--- a/plugins/jump/jump.plugin.zsh
+++ b/plugins/jump/jump.plugin.zsh
@@ -9,22 +9,23 @@
export MARKPATH=$HOME/.marks
jump() {
- cd -P "$MARKPATH/$1" 2>/dev/null || {echo "No such mark: $1"; return 1}
+ builtin cd -P "$MARKPATH/$1" 2>/dev/null || {echo "No such mark: $1"; return 1}
}
mark() {
- if [[ ( $# == 0 ) || ( "$1" == "." ) ]]; then
- MARK=$(basename "$PWD")
+ if [[ $# -eq 0 || "$1" = "." ]]; then
+ MARK=${PWD:t}
else
MARK="$1"
fi
- if read -q \?"Mark $PWD as ${MARK}? (y/n) "; then
- mkdir -p "$MARKPATH"; ln -sfn "$PWD" "$MARKPATH/$MARK"
+ if read -q "?Mark $PWD as ${MARK}? (y/n) "; then
+ command mkdir -p "$MARKPATH"
+ command ln -sfn "$PWD" "$MARKPATH/$MARK"
fi
}
unmark() {
- rm -i "$MARKPATH/$1"
+ LANG= command rm -i "$MARKPATH/$1"
}
marks() {
@@ -44,13 +45,7 @@ marks() {
}
_completemarks() {
- if [[ $(ls "${MARKPATH}" | wc -l) -gt 1 ]]; then
- reply=($(ls $MARKPATH/**/*(-) | grep : | sed -E 's/(.*)\/([_a-zA-Z0-9\.\-]*):$/\2/g'))
- else
- if readlink -e "${MARKPATH}"/* &>/dev/null; then
- reply=($(ls "${MARKPATH}"))
- fi
- fi
+ reply=("${MARKPATH}"/*(N:t))
}
compctl -K _completemarks jump
compctl -K _completemarks unmark
From 3c5bbcf5b99d2b7dc0cbba6d154328344633bd72 Mon Sep 17 00:00:00 2001
From: hqingyi
Date: Fri, 27 Nov 2015 19:29:15 +0800
Subject: [PATCH 250/302] jump: add support for directories starting with a dot
(#4661)
Closes #4661
---
plugins/jump/jump.plugin.zsh | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/plugins/jump/jump.plugin.zsh b/plugins/jump/jump.plugin.zsh
index 4f9134fcd..a21b7a181 100644
--- a/plugins/jump/jump.plugin.zsh
+++ b/plugins/jump/jump.plugin.zsh
@@ -29,14 +29,14 @@ unmark() {
}
marks() {
- local max=0
- for link in $MARKPATH/*(@); do
+ local link max=0
+ for link in $MARKPATH/{,.}*(@); do
if [[ ${#link:t} -gt $max ]]; then
max=${#link:t}
fi
done
local printf_markname_template="$(printf -- "%%%us " "$max")"
- for link in $MARKPATH/*(@); do
+ for link in $MARKPATH/{,.}*(@); do
local markname="$fg[cyan]${link:t}$reset_color"
local markpath="$fg[blue]$(readlink $link)$reset_color"
printf -- "$printf_markname_template" "$markname"
@@ -45,13 +45,13 @@ marks() {
}
_completemarks() {
- reply=("${MARKPATH}"/*(N:t))
+ reply=("${MARKPATH}"/{,.}*(@N:t))
}
compctl -K _completemarks jump
compctl -K _completemarks unmark
_mark_expansion() {
- setopt extendedglob
+ setopt localoptions extendedglob
autoload -U modify-current-argument
modify-current-argument '$(readlink "$MARKPATH/$ARG")'
}
From 561e7169acd02d5e27542a1d93f1f9533ba52fa6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Tue, 11 Feb 2020 20:12:01 +0100
Subject: [PATCH 251/302] jump: fix for `marks' and CTRL+G key binding
- marks printed an error when $MARKPATH didn't exist or didn't have any marks
in it.
- The CTRL+G key binding overwrote an argument when it couldn't match it to
an existing mark.
---
plugins/jump/jump.plugin.zsh | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/plugins/jump/jump.plugin.zsh b/plugins/jump/jump.plugin.zsh
index a21b7a181..c2da1144e 100644
--- a/plugins/jump/jump.plugin.zsh
+++ b/plugins/jump/jump.plugin.zsh
@@ -30,13 +30,13 @@ unmark() {
marks() {
local link max=0
- for link in $MARKPATH/{,.}*(@); do
+ for link in $MARKPATH/{,.}*(@N); do
if [[ ${#link:t} -gt $max ]]; then
max=${#link:t}
fi
done
local printf_markname_template="$(printf -- "%%%us " "$max")"
- for link in $MARKPATH/{,.}*(@); do
+ for link in $MARKPATH/{,.}*(@N); do
local markname="$fg[cyan]${link:t}$reset_color"
local markpath="$fg[blue]$(readlink $link)$reset_color"
printf -- "$printf_markname_template" "$markname"
@@ -53,7 +53,7 @@ compctl -K _completemarks unmark
_mark_expansion() {
setopt localoptions extendedglob
autoload -U modify-current-argument
- modify-current-argument '$(readlink "$MARKPATH/$ARG")'
+ modify-current-argument '$(readlink "$MARKPATH/$ARG" || echo "$ARG")'
}
zle -N _mark_expansion
bindkey "^g" _mark_expansion
From 17428f3c9a99c8d81e57bcf565d39011669e65ed Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Tue, 11 Feb 2020 20:16:43 +0100
Subject: [PATCH 252/302] lib: load bash completion functions automatically
Fixes #8614
---
lib/completion.zsh | 3 +++
1 file changed, 3 insertions(+)
diff --git a/lib/completion.zsh b/lib/completion.zsh
index c7db2eb7b..c932bc925 100644
--- a/lib/completion.zsh
+++ b/lib/completion.zsh
@@ -71,3 +71,6 @@ if [[ $COMPLETION_WAITING_DOTS = true ]]; then
zle -N expand-or-complete-with-dots
bindkey "^I" expand-or-complete-with-dots
fi
+
+# automatically load bash completion functions
+autoload -Uz bashcompinit && bashcompinit
From 1bd7a7ad21c51268ba0f9a0d8b643a82b5788a6a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Tue, 11 Feb 2020 13:32:13 +0100
Subject: [PATCH 253/302] Fix calculation for battery percentage (#4774)
Co-authored-by: Michael Wolman
---
plugins/battery/battery.plugin.zsh | 31 +++++++++++++++++++-----------
1 file changed, 20 insertions(+), 11 deletions(-)
diff --git a/plugins/battery/battery.plugin.zsh b/plugins/battery/battery.plugin.zsh
index 6b6684716..5322dd18a 100644
--- a/plugins/battery/battery.plugin.zsh
+++ b/plugins/battery/battery.plugin.zsh
@@ -169,8 +169,8 @@ fi
function battery_level_gauge() {
local gauge_slots=${BATTERY_GAUGE_SLOTS:-10};
- local green_threshold=${BATTERY_GREEN_THRESHOLD:-6};
- local yellow_threshold=${BATTERY_YELLOW_THRESHOLD:-4};
+ local green_threshold=${BATTERY_GREEN_THRESHOLD:-$(( gauge_slots * 0.6 ))};
+ local yellow_threshold=${BATTERY_YELLOW_THRESHOLD:-$(( gauge_slots * 0.4 ))};
local color_green=${BATTERY_COLOR_GREEN:-%F{green}};
local color_yellow=${BATTERY_COLOR_YELLOW:-%F{yellow}};
local color_red=${BATTERY_COLOR_RED:-%F{red}};
@@ -183,26 +183,35 @@ function battery_level_gauge() {
local charging_symbol=${BATTERY_CHARGING_SYMBOL:-'⚡'};
local battery_remaining_percentage=$(battery_pct);
+ local filled empty gauge_color
if [[ $battery_remaining_percentage =~ [0-9]+ ]]; then
- local filled=$(((( $battery_remaining_percentage + $gauge_slots - 1) / $gauge_slots)));
- local empty=$(($gauge_slots - $filled));
+ filled=$(( ($battery_remaining_percentage * $gauge_slots) / 100 ));
+ empty=$(( $gauge_slots - $filled ));
- if [[ $filled -gt $green_threshold ]]; then local gauge_color=$color_green;
- elif [[ $filled -gt $yellow_threshold ]]; then local gauge_color=$color_yellow;
- else local gauge_color=$color_red;
+ if [[ $filled -gt $green_threshold ]]; then
+ gauge_color=$color_green;
+ elif [[ $filled -gt $yellow_threshold ]]; then
+ gauge_color=$color_yellow;
+ else
+ gauge_color=$color_red;
fi
else
- local filled=$gauge_slots;
- local empty=0;
+ filled=$gauge_slots;
+ empty=0;
filled_symbol=${BATTERY_UNKNOWN_SYMBOL:-'.'};
fi
- local charging=' ' && battery_is_charging && charging=$charging_symbol;
+ local charging=' '
+ battery_is_charging && charging=$charging_symbol;
+ # Charging status and prefix
printf ${charging_color//\%/\%\%}$charging${color_reset//\%/\%\%}${battery_prefix//\%/\%\%}${gauge_color//\%/\%\%}
- printf ${filled_symbol//\%/\%\%}'%.0s' {1..$filled}
+ # Filled slots
+ [[ $filled -gt 0 ]] && printf ${filled_symbol//\%/\%\%}'%.0s' {1..$filled}
+ # Empty slots
[[ $filled -lt $gauge_slots ]] && printf ${empty_symbol//\%/\%\%}'%.0s' {1..$empty}
+ # Suffix
printf ${color_reset//\%/\%\%}${battery_suffix//\%/\%\%}${color_reset//\%/\%\%}
}
From 39e61614f206f6a552f53c8d1a8b956d8c9ab32f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Tue, 11 Feb 2020 13:49:04 +0100
Subject: [PATCH 254/302] Clean up Linux battery commands and syntax
---
plugins/battery/battery.plugin.zsh | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/plugins/battery/battery.plugin.zsh b/plugins/battery/battery.plugin.zsh
index 5322dd18a..c1037ad26 100644
--- a/plugins/battery/battery.plugin.zsh
+++ b/plugins/battery/battery.plugin.zsh
@@ -116,17 +116,17 @@ elif [[ "$OSTYPE" = freebsd* ]] ; then
elif [[ "$OSTYPE" = linux* ]] ; then
function battery_is_charging() {
- ! [[ $(acpi 2>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]]
+ ! acpi 2>/dev/null | command grep -q '^Battery.*Discharging'
}
function battery_pct() {
if (( $+commands[acpi] )) ; then
- echo "$(acpi 2>/dev/null | cut -f2 -d ',' | tr -cd '[:digit:]')"
+ acpi 2>/dev/null | cut -f2 -d ',' | tr -cd '[:digit:]'
fi
}
function battery_pct_remaining() {
- if [ ! $(battery_is_charging) ] ; then
+ if ! battery_is_charging; then
battery_pct
else
echo "External Power"
@@ -134,15 +134,17 @@ elif [[ "$OSTYPE" = linux* ]] ; then
}
function battery_time_remaining() {
- if [[ $(acpi 2>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]] ; then
- echo $(acpi 2>/dev/null | cut -f3 -d ',')
+ if ! battery_is_charging; then
+ acpi 2>/dev/null | cut -f3 -d ','
fi
}
function battery_pct_prompt() {
- b=$(battery_pct_remaining)
- if [[ $(acpi 2>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]] ; then
- if [ $b -gt 50 ] ; then
+ local b=$(battery_pct_remaining)
+ if battery_is_charging; then
+ echo "∞"
+ else
+ if [[ $b -gt 50 ]]; then
color='green'
elif [ $b -gt 20 ] ; then
color='yellow'
@@ -150,8 +152,6 @@ elif [[ "$OSTYPE" = linux* ]] ; then
color='red'
fi
echo "%{$fg[$color]%}$(battery_pct_remaining)%%%{$reset_color%}"
- else
- echo "∞"
fi
}
From 5f6f7b6e8de8e6b64f07deb6b185535a8cdbe03e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Tue, 11 Feb 2020 14:17:46 +0100
Subject: [PATCH 255/302] Various syntax fixes and function naming equivalence
- Fix code style
- Fix local definitions
- Don't declare unnecessary variables
- Use `command` before grep
---
plugins/battery/battery.plugin.zsh | 134 ++++++++++++++---------------
1 file changed, 63 insertions(+), 71 deletions(-)
diff --git a/plugins/battery/battery.plugin.zsh b/plugins/battery/battery.plugin.zsh
index c1037ad26..7c5bf6f82 100644
--- a/plugins/battery/battery.plugin.zsh
+++ b/plugins/battery/battery.plugin.zsh
@@ -11,22 +11,21 @@
# Modified to add support for FreeBSD #
###########################################
-if [[ "$OSTYPE" = darwin* ]] ; then
+if [[ "$OSTYPE" = darwin* ]]; then
- function battery_pct() {
- local smart_battery_status="$(ioreg -rc "AppleSmartBattery")"
- typeset -F maxcapacity=$(echo $smart_battery_status | grep '^.*"MaxCapacity"\ =\ ' | sed -e 's/^.*"MaxCapacity"\ =\ //')
- typeset -F currentcapacity=$(echo $smart_battery_status | grep '^.*"CurrentCapacity"\ =\ ' | sed -e 's/^.*CurrentCapacity"\ =\ //')
- integer i=$(((currentcapacity/maxcapacity) * 100))
- echo $i
+ function battery_is_charging() {
+ ioreg -rc AppleSmartBattery | command grep -q '^.*"ExternalConnected"\ =\ Yes'
}
- function plugged_in() {
- [ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ Yes') -eq 1 ]
+ function battery_pct() {
+ local smart_battery_status="$(ioreg -rc AppleSmartBattery)"
+ local -F maxcapacity=$(command grep '^.*"MaxCapacity"\ =\ ' <<< $smart_battery_status | sed -e 's/^.*"MaxCapacity"\ =\ //')
+ local -F currentcapacity=$(command grep '^.*"CurrentCapacity"\ =\ ' <<< $smart_battery_status | sed -e 's/^.*CurrentCapacity"\ =\ //')
+ echo $(( (currentcapacity/maxcapacity) * 100 ))
}
function battery_pct_remaining() {
- if plugged_in ; then
+ if battery_is_charging; then
echo "External Power"
else
battery_pct
@@ -35,9 +34,9 @@ if [[ "$OSTYPE" = darwin* ]] ; then
function battery_time_remaining() {
local smart_battery_status="$(ioreg -rc "AppleSmartBattery")"
- if [[ $(echo $smart_battery_status | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then
- timeremaining=$(echo $smart_battery_status | grep '^.*"AvgTimeToEmpty"\ =\ ' | sed -e 's/^.*"AvgTimeToEmpty"\ =\ //')
- if [ $timeremaining -gt 720 ] ; then
+ if [[ $(echo $smart_battery_status | command grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]]; then
+ timeremaining=$(echo $smart_battery_status | command grep '^.*"AvgTimeToEmpty"\ =\ ' | sed -e 's/^.*"AvgTimeToEmpty"\ =\ //')
+ if [ $timeremaining -gt 720 ]; then
echo "::"
else
echo "~$((timeremaining / 60)):$((timeremaining % 60))"
@@ -48,11 +47,11 @@ if [[ "$OSTYPE" = darwin* ]] ; then
}
function battery_pct_prompt () {
- if [[ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then
+ if ioreg -rc AppleSmartBattery | command grep -q '^.*"ExternalConnected"\ =\ No'; then
b=$(battery_pct_remaining)
- if [ $b -gt 50 ] ; then
+ if [[ $b -gt 50 ]]; then
color='green'
- elif [ $b -gt 20 ] ; then
+ elif [[ $b -gt 20 ]]; then
color='yellow'
else
color='red'
@@ -63,24 +62,20 @@ if [[ "$OSTYPE" = darwin* ]] ; then
fi
}
- function battery_is_charging() {
- [[ $(ioreg -rc "AppleSmartBattery"| grep '^.*"IsCharging"\ =\ ' | sed -e 's/^.*"IsCharging"\ =\ //') == "Yes" ]]
- }
-
-elif [[ "$OSTYPE" = freebsd* ]] ; then
+elif [[ "$OSTYPE" = freebsd* ]]; then
function battery_is_charging() {
[[ $(sysctl -n hw.acpi.battery.state) -eq 2 ]]
}
function battery_pct() {
- if (( $+commands[sysctl] )) ; then
- echo "$(sysctl -n hw.acpi.battery.life)"
+ if (( $+commands[sysctl] )); then
+ sysctl -n hw.acpi.battery.life
fi
}
function battery_pct_remaining() {
- if [ ! $(battery_is_charging) ] ; then
+ if ! battery_is_charging; then
battery_pct
else
echo "External Power"
@@ -88,39 +83,40 @@ elif [[ "$OSTYPE" = freebsd* ]] ; then
}
function battery_time_remaining() {
+ local remaining_time
remaining_time=$(sysctl -n hw.acpi.battery.time)
- if [[ $remaining_time -ge 0 ]] ; then
- # calculation from https://www.unix.com/shell-programming-and-scripting/23695-convert-minutes-hours-minutes-seconds.html
- ((hour=$remaining_time/60))
- ((minute=$remaining_time-$hour*60))
- echo $hour:$minute
+ if [[ $remaining_time -ge 0 ]]; then
+ ((hour = $remaining_time / 60 ))
+ ((minute = $remaining_time % 60 ))
+ printf %02d:%02d $hour $minute
fi
}
function battery_pct_prompt() {
+ local b color
b=$(battery_pct_remaining)
- if [ ! $(battery_is_charging) ] ; then
- if [ $b -gt 50 ] ; then
+ if battery_is_charging; then
+ echo "∞"
+ else
+ if [[ $b -gt 50 ]]; then
color='green'
- elif [ $b -gt 20 ] ; then
+ elif [[ $b -gt 20 ]]; then
color='yellow'
else
color='red'
fi
echo "%{$fg[$color]%}$(battery_pct_remaining)%%%{$reset_color%}"
- else
- echo "∞"
fi
}
-elif [[ "$OSTYPE" = linux* ]] ; then
+elif [[ "$OSTYPE" = linux* ]]; then
function battery_is_charging() {
! acpi 2>/dev/null | command grep -q '^Battery.*Discharging'
}
function battery_pct() {
- if (( $+commands[acpi] )) ; then
+ if (( $+commands[acpi] )); then
acpi 2>/dev/null | cut -f2 -d ',' | tr -cd '[:digit:]'
fi
}
@@ -140,13 +136,14 @@ elif [[ "$OSTYPE" = linux* ]] ; then
}
function battery_pct_prompt() {
- local b=$(battery_pct_remaining)
+ local b color
+ b=$(battery_pct_remaining)
if battery_is_charging; then
echo "∞"
else
if [[ $b -gt 50 ]]; then
color='green'
- elif [ $b -gt 20 ] ; then
+ elif [[ $b -gt 20 ]]; then
color='yellow'
else
color='red'
@@ -157,53 +154,50 @@ elif [[ "$OSTYPE" = linux* ]] ; then
else
# Empty functions so we don't cause errors in prompts
- function battery_pct_remaining() {
- }
-
- function battery_time_remaining() {
- }
-
- function battery_pct_prompt() {
- }
+ function battery_is_charging { false }
+ function battery_pct \
+ battery_pct_remaining \
+ battery_time_remaining \
+ battery_pct_prompt { }
fi
function battery_level_gauge() {
- local gauge_slots=${BATTERY_GAUGE_SLOTS:-10};
- local green_threshold=${BATTERY_GREEN_THRESHOLD:-$(( gauge_slots * 0.6 ))};
- local yellow_threshold=${BATTERY_YELLOW_THRESHOLD:-$(( gauge_slots * 0.4 ))};
- local color_green=${BATTERY_COLOR_GREEN:-%F{green}};
- local color_yellow=${BATTERY_COLOR_YELLOW:-%F{yellow}};
- local color_red=${BATTERY_COLOR_RED:-%F{red}};
- local color_reset=${BATTERY_COLOR_RESET:-%{%f%k%b%}};
- local battery_prefix=${BATTERY_GAUGE_PREFIX:-'['};
- local battery_suffix=${BATTERY_GAUGE_SUFFIX:-']'};
- local filled_symbol=${BATTERY_GAUGE_FILLED_SYMBOL:-'▶'};
- local empty_symbol=${BATTERY_GAUGE_EMPTY_SYMBOL:-'▷'};
- local charging_color=${BATTERY_CHARGING_COLOR:-$color_yellow};
- local charging_symbol=${BATTERY_CHARGING_SYMBOL:-'⚡'};
+ local gauge_slots=${BATTERY_GAUGE_SLOTS:-10}
+ local green_threshold=${BATTERY_GREEN_THRESHOLD:-$(( gauge_slots * 0.6 ))}
+ local yellow_threshold=${BATTERY_YELLOW_THRESHOLD:-$(( gauge_slots * 0.4 ))}
+ local color_green=${BATTERY_COLOR_GREEN:-%F{green}}
+ local color_yellow=${BATTERY_COLOR_YELLOW:-%F{yellow}}
+ local color_red=${BATTERY_COLOR_RED:-%F{red}}
+ local color_reset=${BATTERY_COLOR_RESET:-%{%f%k%b%}}
+ local battery_prefix=${BATTERY_GAUGE_PREFIX:-'['}
+ local battery_suffix=${BATTERY_GAUGE_SUFFIX:-']'}
+ local filled_symbol=${BATTERY_GAUGE_FILLED_SYMBOL:-'▶'}
+ local empty_symbol=${BATTERY_GAUGE_EMPTY_SYMBOL:-'▷'}
+ local charging_color=${BATTERY_CHARGING_COLOR:-$color_yellow}
+ local charging_symbol=${BATTERY_CHARGING_SYMBOL:-'⚡'}
- local battery_remaining_percentage=$(battery_pct);
+ local battery_remaining_percentage=$(battery_pct)
local filled empty gauge_color
if [[ $battery_remaining_percentage =~ [0-9]+ ]]; then
- filled=$(( ($battery_remaining_percentage * $gauge_slots) / 100 ));
- empty=$(( $gauge_slots - $filled ));
+ filled=$(( ($battery_remaining_percentage * $gauge_slots) / 100 ))
+ empty=$(( $gauge_slots - $filled ))
if [[ $filled -gt $green_threshold ]]; then
- gauge_color=$color_green;
+ gauge_color=$color_green
elif [[ $filled -gt $yellow_threshold ]]; then
- gauge_color=$color_yellow;
+ gauge_color=$color_yellow
else
- gauge_color=$color_red;
+ gauge_color=$color_red
fi
else
- filled=$gauge_slots;
- empty=0;
- filled_symbol=${BATTERY_UNKNOWN_SYMBOL:-'.'};
+ filled=$gauge_slots
+ empty=0
+ filled_symbol=${BATTERY_UNKNOWN_SYMBOL:-'.'}
fi
local charging=' '
- battery_is_charging && charging=$charging_symbol;
+ battery_is_charging && charging=$charging_symbol
# Charging status and prefix
printf ${charging_color//\%/\%\%}$charging${color_reset//\%/\%\%}${battery_prefix//\%/\%\%}${gauge_color//\%/\%\%}
@@ -214,5 +208,3 @@ function battery_level_gauge() {
# Suffix
printf ${color_reset//\%/\%\%}${battery_suffix//\%/\%\%}${color_reset//\%/\%\%}
}
-
-
From b8b87629157b30fc00d0b4af62dd0cf422896346 Mon Sep 17 00:00:00 2001
From: Bruce Weirdan
Date: Thu, 24 Dec 2015 04:11:22 +0200
Subject: [PATCH 256/302] Report only active battery (#4726)
On a system with multiple batteries (like thinkpads) report percentage
and time remaining only for the active battery (the one being
discharged).
Ideally we should report all batteries, but acpi only shows time remaining
for the active battery. Also callers of these functions expect a single
return value. This is still better than reporting 596% remaining (like it
did on my laptop).
For the reference, the output of acpi command with multiple batteries looks
like this:
Battery 0: Unknown, 5%
Battery 1: Discharging, 86%, 03:14:04 remaining
---
plugins/battery/battery.plugin.zsh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/battery/battery.plugin.zsh b/plugins/battery/battery.plugin.zsh
index 7c5bf6f82..d1adcd0b6 100644
--- a/plugins/battery/battery.plugin.zsh
+++ b/plugins/battery/battery.plugin.zsh
@@ -117,7 +117,7 @@ elif [[ "$OSTYPE" = linux* ]]; then
function battery_pct() {
if (( $+commands[acpi] )); then
- acpi 2>/dev/null | cut -f2 -d ',' | tr -cd '[:digit:]'
+ acpi 2>/dev/null | command grep -E '^Battery.*(Disc|C)harging' | cut -f2 -d ',' | tr -cd '[:digit:]'
fi
}
From 15a03744a9e87b8dd371a4fbac456a73d27d32d5 Mon Sep 17 00:00:00 2001
From: GregoireW
Date: Thu, 17 Oct 2019 11:30:24 +0200
Subject: [PATCH 257/302] Remove invalid batteries (#8275)
---
plugins/battery/battery.plugin.zsh | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/plugins/battery/battery.plugin.zsh b/plugins/battery/battery.plugin.zsh
index d1adcd0b6..6fe801c9f 100644
--- a/plugins/battery/battery.plugin.zsh
+++ b/plugins/battery/battery.plugin.zsh
@@ -112,12 +112,12 @@ elif [[ "$OSTYPE" = freebsd* ]]; then
elif [[ "$OSTYPE" = linux* ]]; then
function battery_is_charging() {
- ! acpi 2>/dev/null | command grep -q '^Battery.*Discharging'
+ ! acpi 2>/dev/null | command grep -v "rate information unavailable" | command grep -q '^Battery.*Discharging'
}
function battery_pct() {
if (( $+commands[acpi] )); then
- acpi 2>/dev/null | command grep -E '^Battery.*(Disc|C)harging' | cut -f2 -d ',' | tr -cd '[:digit:]'
+ acpi 2>/dev/null | command grep -v "rate information unavailable" | command grep -E '^Battery.*(Disc|C)harging' | cut -f2 -d ',' | tr -cd '[:digit:]'
fi
}
@@ -131,7 +131,7 @@ elif [[ "$OSTYPE" = linux* ]]; then
function battery_time_remaining() {
if ! battery_is_charging; then
- acpi 2>/dev/null | cut -f3 -d ','
+ acpi 2>/dev/null | command grep -v "rate information unavailable" | cut -f3 -d ','
fi
}
From e178ae39b41e554722c205d107a664dced1761b9 Mon Sep 17 00:00:00 2001
From: Mazin Ahmed
Date: Wed, 12 Feb 2020 20:51:40 +0400
Subject: [PATCH 258/302] dotenv: prompt before executing dotenv file (#8606)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Co-authored-by: Marc Cornellà
---
plugins/dotenv/dotenv.plugin.zsh | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/plugins/dotenv/dotenv.plugin.zsh b/plugins/dotenv/dotenv.plugin.zsh
index 89763d0ee..d4a6db8f8 100644
--- a/plugins/dotenv/dotenv.plugin.zsh
+++ b/plugins/dotenv/dotenv.plugin.zsh
@@ -1,5 +1,12 @@
source_env() {
if [[ -f $ZSH_DOTENV_FILE ]]; then
+ # confirm before sourcing .env file
+ local confirmation
+ echo -n "dotenv: source '$ZSH_DOTENV_FILE' file in the directory? (Y/n) "
+ if read -k 1 confirmation && [[ $confirmation = [nN] ]]; then
+ return
+ fi
+
# test .env syntax
zsh -fn $ZSH_DOTENV_FILE || echo "dotenv: error when sourcing '$ZSH_DOTENV_FILE' file" >&2
From 3ec04997ebc413ddc95b7c11743b525d7fc7c4ab Mon Sep 17 00:00:00 2001
From: Henry Chang
Date: Sun, 26 Mar 2017 18:29:36 -0700
Subject: [PATCH 259/302] Add zsh-interactive-cd plugin
---
plugins/zsh-interactive-cd/README.md | 23 +++
.../zsh-interactive-cd.plugin.zsh | 147 ++++++++++++++++++
2 files changed, 170 insertions(+)
create mode 100644 plugins/zsh-interactive-cd/README.md
create mode 100644 plugins/zsh-interactive-cd/zsh-interactive-cd.plugin.zsh
diff --git a/plugins/zsh-interactive-cd/README.md b/plugins/zsh-interactive-cd/README.md
new file mode 100644
index 000000000..c8337fbc8
--- /dev/null
+++ b/plugins/zsh-interactive-cd/README.md
@@ -0,0 +1,23 @@
+# zsh-interactive-cd
+
+This plugin adds a fish-like interactive tab completion for the `cd` command.
+
+To use it, add `zsh-interactive-cd` to the plugins array of your zshrc file:
+```zsh
+plugins=(... zsh-interactive-cd)
+```
+
+![demo](https://user-images.githubusercontent.com/1441704/74360670-cb202900-4dc5-11ea-9734-f60caf726e85.gif)
+
+## Usage
+
+Press tab for completion as usual, it'll launch fzf automatically. Check fzf’s [readme](https://github.com/junegunn/fzf#search-syntax) for more search syntax usage.
+
+## Requirements
+
+This plugin requires [fzf](https://github.com/junegunn/fzf). Install it by following
+its [installation instructions](https://github.com/junegunn/fzf#installation).
+
+## Author
+
+[Henry Chang](https://github.com/changyuheng)
diff --git a/plugins/zsh-interactive-cd/zsh-interactive-cd.plugin.zsh b/plugins/zsh-interactive-cd/zsh-interactive-cd.plugin.zsh
new file mode 100644
index 000000000..0f15aeef0
--- /dev/null
+++ b/plugins/zsh-interactive-cd/zsh-interactive-cd.plugin.zsh
@@ -0,0 +1,147 @@
+# Copyright (c) 2017 Henry Chang
+
+__zic_fzf_prog() {
+ [ -n "$TMUX_PANE" ] && [ "${FZF_TMUX:-0}" != 0 ] && [ ${LINES:-40} -gt 15 ] \
+ && echo "fzf-tmux -d${FZF_TMUX_HEIGHT:-40%}" || echo "fzf"
+}
+
+__zic_matched_subdir_list() {
+ local dir length seg starts_with_dir
+ if [[ "$1" == */ ]]; then
+ dir="$1"
+ if [[ "$dir" != / ]]; then
+ dir="${dir: : -1}"
+ fi
+ length=$(echo -n "$dir" | wc -c)
+ if [ "$dir" = "/" ]; then
+ length=0
+ fi
+ find -L "$dir" -mindepth 1 -maxdepth 1 -type d 2>/dev/null \
+ | cut -b $(( ${length} + 2 ))- | sed '/^$/d' | while read -r line; do
+ if [[ "${line[1]}" == "." ]]; then
+ continue
+ fi
+ echo "$line"
+ done
+ else
+ dir=$(dirname -- "$1")
+ length=$(echo -n "$dir" | wc -c)
+ if [ "$dir" = "/" ]; then
+ length=0
+ fi
+ seg=$(basename -- "$1")
+ starts_with_dir=$( \
+ find -L "$dir" -mindepth 1 -maxdepth 1 -type d \
+ 2>/dev/null | cut -b $(( ${length} + 2 ))- | sed '/^$/d' \
+ | while read -r line; do
+ if [[ "${seg[1]}" != "." && "${line[1]}" == "." ]]; then
+ continue
+ fi
+ if [[ "$line" == "$seg"* ]]; then
+ echo "$line"
+ fi
+ done
+ )
+ if [ -n "$starts_with_dir" ]; then
+ echo "$starts_with_dir"
+ else
+ find -L "$dir" -mindepth 1 -maxdepth 1 -type d \
+ 2>/dev/null | cut -b $(( ${length} + 2 ))- | sed '/^$/d' \
+ | while read -r line; do
+ if [[ "${seg[1]}" != "." && "${line[1]}" == "." ]]; then
+ continue
+ fi
+ if [[ "$line" == *"$seg"* ]]; then
+ echo "$line"
+ fi
+ done
+ fi
+ fi
+}
+
+_zic_list_generator() {
+ __zic_matched_subdir_list "${(Q)@[-1]}" | sort
+}
+
+_zic_complete() {
+ setopt localoptions nonomatch
+ local l matches fzf tokens base
+
+ l=$(_zic_list_generator $@)
+
+ if [ -z "$l" ]; then
+ zle ${__zic_default_completion:-expand-or-complete}
+ return
+ fi
+
+ fzf=$(__zic_fzf_prog)
+
+ if [ $(echo $l | wc -l) -eq 1 ]; then
+ matches=${(q)l}
+ else
+ matches=$(echo $l \
+ | FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} \
+ --reverse $FZF_DEFAULT_OPTS $FZF_COMPLETION_OPTS \
+ --bind 'shift-tab:up,tab:down'" ${=fzf} \
+ | while read -r item; do
+ echo -n "${(q)item} "
+ done)
+ fi
+
+ matches=${matches% }
+ if [ -n "$matches" ]; then
+ tokens=(${(z)LBUFFER})
+ base="${(Q)@[-1]}"
+ if [[ "$base" != */ ]]; then
+ if [[ "$base" == */* ]]; then
+ base="$(dirname -- "$base")"
+ if [[ ${base[-1]} != / ]]; then
+ base="$base/"
+ fi
+ else
+ base=""
+ fi
+ fi
+ LBUFFER="${tokens[1]} "
+ if [ -n "$base" ]; then
+ base="${(q)base}"
+ if [ "${tokens[2][1]}" = "~" ]; then
+ base="${base/#$HOME/~}"
+ fi
+ LBUFFER="${LBUFFER}${base}"
+ fi
+ LBUFFER="${LBUFFER}${matches}/"
+ fi
+ zle redisplay
+ typeset -f zle-line-init >/dev/null && zle zle-line-init
+}
+
+zic-completion() {
+ setopt localoptions noshwordsplit noksh_arrays noposixbuiltins
+ local tokens cmd
+
+ tokens=(${(z)LBUFFER})
+ cmd=${tokens[1]}
+
+ if [[ "$LBUFFER" =~ "^\ *cd$" ]]; then
+ zle ${__zic_default_completion:-expand-or-complete}
+ elif [ "$cmd" = cd ]; then
+ _zic_complete ${tokens[2,${#tokens}]/#\~/$HOME}
+ else
+ zle ${__zic_default_completion:-expand-or-complete}
+ fi
+}
+
+[ -z "$__zic_default_completion" ] && {
+ binding=$(bindkey '^I')
+ # $binding[(s: :w)2]
+ # The command substitution and following word splitting to determine the
+ # default zle widget for ^I formerly only works if the IFS parameter contains
+ # a space via $binding[(w)2]. Now it specifically splits at spaces, regardless
+ # of IFS.
+ [[ $binding =~ 'undefined-key' ]] || __zic_default_completion=$binding[(s: :w)2]
+ unset binding
+}
+
+zle -N zic-completion
+bindkey '^I' zic-completion
From a6df94d2c677c6d28c5ee339975b7a56a2f67e21 Mon Sep 17 00:00:00 2001
From: Jonatan Ivanov
Date: Wed, 12 Feb 2020 12:52:47 -0800
Subject: [PATCH 260/302] gradle: run gradle command instead of alias (#8620)
- Similarly to the mvn plugin
- Without this fix, the shell crashes in some cases
---
plugins/gradle/gradle.plugin.zsh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/gradle/gradle.plugin.zsh b/plugins/gradle/gradle.plugin.zsh
index 6be583179..c651b91ca 100644
--- a/plugins/gradle/gradle.plugin.zsh
+++ b/plugins/gradle/gradle.plugin.zsh
@@ -7,7 +7,7 @@ gradle-or-gradlew() {
echo "executing gradlew instead of gradle";
./gradlew "$@";
else
- gradle "$@";
+ command gradle "$@";
fi
}
From 634a50936a28ba3a57a02c92e7fe76da2d60ecf8 Mon Sep 17 00:00:00 2001
From: Maxime Richard
Date: Thu, 13 Feb 2020 18:10:59 +0100
Subject: [PATCH 261/302] dotenv: add ZSH_DOTENV_PROMPT config (#8624)
---
plugins/dotenv/README.md | 6 ++++++
plugins/dotenv/dotenv.plugin.zsh | 13 ++++++++-----
2 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/plugins/dotenv/README.md b/plugins/dotenv/README.md
index cac552485..dbc02bf61 100644
--- a/plugins/dotenv/README.md
+++ b/plugins/dotenv/README.md
@@ -32,6 +32,8 @@ PORT=3001
```
You can even mix both formats, although it's probably a bad idea.
+## Plugin options
+
### ZSH_DOTENV_FILE
You can also modify the name of the file to be loaded with the variable `ZSH_DOTENV_FILE`.
@@ -43,6 +45,10 @@ For example, this will make the plugin look for files named `.dotenv` and load t
ZSH_DOTENV_FILE=.dotenv
```
+### ZSH_DOTENV_PROMPT
+
+Set `ZSH_DOTENV_PROMPT=false` in your zshrc file if you don't want the confirmation message.
+
## Version Control
**It's strongly recommended to add `.env` file to `.gitignore`**, because usually it contains sensitive information such as your credentials, secret keys, passwords etc. You don't want to commit this file, it's supposed to be local only.
diff --git a/plugins/dotenv/dotenv.plugin.zsh b/plugins/dotenv/dotenv.plugin.zsh
index d4a6db8f8..84815a416 100644
--- a/plugins/dotenv/dotenv.plugin.zsh
+++ b/plugins/dotenv/dotenv.plugin.zsh
@@ -1,10 +1,13 @@
source_env() {
if [[ -f $ZSH_DOTENV_FILE ]]; then
- # confirm before sourcing .env file
- local confirmation
- echo -n "dotenv: source '$ZSH_DOTENV_FILE' file in the directory? (Y/n) "
- if read -k 1 confirmation && [[ $confirmation = [nN] ]]; then
- return
+
+ if [ "$ZSH_DOTENV_PROMPT" != "false" ]; then
+ # confirm before sourcing file
+ local confirmation
+ echo -n "dotenv: source '$ZSH_DOTENV_FILE' file in the directory? (Y/n) "
+ if read -k 1 confirmation && [[ $confirmation = [nN] ]]; then
+ return
+ fi
fi
# test .env syntax
From f17e0219fdd38d9fabce2d96d0d283d98122733f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Thu, 13 Feb 2020 18:33:24 +0100
Subject: [PATCH 262/302] dotenv: fix prompt newline
---
plugins/dotenv/dotenv.plugin.zsh | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/plugins/dotenv/dotenv.plugin.zsh b/plugins/dotenv/dotenv.plugin.zsh
index 84815a416..54036bee3 100644
--- a/plugins/dotenv/dotenv.plugin.zsh
+++ b/plugins/dotenv/dotenv.plugin.zsh
@@ -1,11 +1,13 @@
source_env() {
if [[ -f $ZSH_DOTENV_FILE ]]; then
-
if [ "$ZSH_DOTENV_PROMPT" != "false" ]; then
# confirm before sourcing file
local confirmation
+ # print same-line prompt and output newline character if necessary
echo -n "dotenv: source '$ZSH_DOTENV_FILE' file in the directory? (Y/n) "
- if read -k 1 confirmation && [[ $confirmation = [nN] ]]; then
+ read -k 1 confirmation; [[ "$confirmation" != $'\n' ]] && echo
+ # only bail out if confirmation character is n
+ if [[ "$confirmation" = [nN] ]]; then
return
fi
fi
From 4fc570b0d4a14638322d904b48f237306ccf3adc Mon Sep 17 00:00:00 2001
From: Marco Seguri
Date: Thu, 13 Feb 2020 18:50:56 +0100
Subject: [PATCH 263/302] kubectl: avoid conflict with existing f aliases in
kca alias (#8625)
---
plugins/kubectl/kubectl.plugin.zsh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/kubectl/kubectl.plugin.zsh b/plugins/kubectl/kubectl.plugin.zsh
index cc447b87e..92688c53c 100644
--- a/plugins/kubectl/kubectl.plugin.zsh
+++ b/plugins/kubectl/kubectl.plugin.zsh
@@ -14,7 +14,7 @@ fi
alias k=kubectl
# Execute a kubectl command against all namespaces
-alias kca='f(){ kubectl "$@" --all-namespaces; unset -f f; }; f'
+alias kca='_kca(){ kubectl "$@" --all-namespaces; unset -f _kca; }; _kca'
# Apply a YML file
alias kaf='kubectl apply -f'
From 52f9238b16ddc8a97690b49c8b395e9fe1169b62 Mon Sep 17 00:00:00 2001
From: Roey Darwish Dror
Date: Thu, 13 Feb 2020 19:57:52 +0200
Subject: [PATCH 264/302] fzf: support for NixOS and Void Linux (#8618)
---
plugins/fzf/fzf.plugin.zsh | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/plugins/fzf/fzf.plugin.zsh b/plugins/fzf/fzf.plugin.zsh
index c8aefd7ab..53bdcbc97 100644
--- a/plugins/fzf/fzf.plugin.zsh
+++ b/plugins/fzf/fzf.plugin.zsh
@@ -10,6 +10,7 @@ function setup_using_base_dir() {
if [[ -z "${fzf_base}" ]]; then
fzfdirs=(
"${HOME}/.fzf"
+ "${HOME}/.nix-profile/share/fzf"
"/usr/local/opt/fzf"
"/usr/share/fzf"
"/usr/local/share/examples/fzf"
@@ -31,8 +32,8 @@ function setup_using_base_dir() {
fi
if [[ -d "${fzf_base}" ]]; then
- # Fix fzf shell directory for Archlinux package
- if [[ ! -d "${fzf_base}/shell" ]] && [[ -f /etc/arch-release ]]; then
+ # Fix fzf shell directory for Arch Linux, NixOS or Void Linux packages
+ if [[ ! -d "${fzf_base}/shell" ]]; then
fzf_shell="${fzf_base}"
else
fzf_shell="${fzf_base}/shell"
From 72168aec3da727c4af715f095d27d429106ea79f Mon Sep 17 00:00:00 2001
From: Manuel Silva
Date: Sun, 16 Feb 2020 04:26:20 +1100
Subject: [PATCH 265/302] cloudapp: fix copy-paste mistake in README (#8629)
---
plugins/cloudapp/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/cloudapp/README.md b/plugins/cloudapp/README.md
index 62975a631..6c7f9bc6c 100644
--- a/plugins/cloudapp/README.md
+++ b/plugins/cloudapp/README.md
@@ -5,7 +5,7 @@
To use it, add `cloudapp` to the plugins array of your `~/.zshrc` file:
```
-plugins=(... dash)
+plugins=(... cloudapp)
```
## Requirements
From aa4146a9a4b75bc998d74750b4f75131973ccf01 Mon Sep 17 00:00:00 2001
From: Roman
Date: Sat, 15 Feb 2020 18:28:02 +0100
Subject: [PATCH 266/302] git: add alias for git stash --include-untracked
(#8617)
---
plugins/git/README.md | 1 +
plugins/git/git.plugin.zsh | 1 +
2 files changed, 2 insertions(+)
diff --git a/plugins/git/README.md b/plugins/git/README.md
index 7878f747b..42a583de8 100644
--- a/plugins/git/README.md
+++ b/plugins/git/README.md
@@ -154,6 +154,7 @@ plugins=(... git)
| gstl | git stash list |
| gstp | git stash pop |
| gsts | git stash show --text |
+| gstu | git stash --include-untracked |
| gstall | git stash --all |
| gsu | git submodule update |
| gsw | git switch |
diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh
index d8c4cffd1..380ab76d8 100644
--- a/plugins/git/git.plugin.zsh
+++ b/plugins/git/git.plugin.zsh
@@ -236,6 +236,7 @@ alias gstd='git stash drop'
alias gstl='git stash list'
alias gstp='git stash pop'
alias gsts='git stash show --text'
+alias gstu='git stash --include-untracked'
alias gstall='git stash --all'
alias gsu='git submodule update'
alias gsw='git switch'
From 0bcecf2f636b8070639b6db44b8541015f574365 Mon Sep 17 00:00:00 2001
From: Harry
Date: Sat, 15 Feb 2020 19:19:57 +0100
Subject: [PATCH 267/302] dotnet: use official dotnet completion (#8518)
---
plugins/dotnet/README.md | 2 +-
plugins/dotnet/dotnet.plugin.zsh | 121 +++++--------------------------
2 files changed, 18 insertions(+), 105 deletions(-)
diff --git a/plugins/dotnet/README.md b/plugins/dotnet/README.md
index a663fc88d..7554b4e3c 100644
--- a/plugins/dotnet/README.md
+++ b/plugins/dotnet/README.md
@@ -20,4 +20,4 @@ plugins=(... dotnet)
| ds | dotnet sln | Modify Visual Studio solution files. |
| da | dotnet add | Add a package or reference to a .NET project. |
| dp | dotnet pack | Create a NuGet package. |
-| dng | dotnet nuget | Provides additional NuGet commands. |
\ No newline at end of file
+| dng | dotnet nuget | Provides additional NuGet commands. |
diff --git a/plugins/dotnet/dotnet.plugin.zsh b/plugins/dotnet/dotnet.plugin.zsh
index ed6c68e5d..6bd4b7af8 100644
--- a/plugins/dotnet/dotnet.plugin.zsh
+++ b/plugins/dotnet/dotnet.plugin.zsh
@@ -1,114 +1,27 @@
-# --------------------------------------------------------------------- #
-# Aliases and Completions for .NET Core (https://dotnet.microsoft.com/) #
-# Author: Shaun Tabone (https://github.com/xontab) #
-# --------------------------------------------------------------------- #
+# This scripts is copied from (MIT License):
+# https://github.com/dotnet/toolset/blob/master/scripts/register-completions.zsh
-# Helper function to cache and load completions
-local cache_base_path="${ZSH_CACHE_DIR}/dotnet_"
-_dotnet_cache_completion() {
- local cache="${cache_base_path}$(echo $1)_completion"
- if [[ ! -f $cache ]]; then
- $2 $cache
- fi
+_dotnet_zsh_complete()
+{
+ local completions=("$(dotnet complete "$words")")
- [[ -f $cache ]] && cat $cache
+ # If the completion list is empty, just continue with filename selection
+ if [ -z "$completions" ]
+ then
+ _arguments '*::arguments: _normal'
+ return
+ fi
+
+ # This is not a variable assigment, don't remove spaces!
+ _values = "${(ps:\n:)completions}"
}
-_dotnet_cache_completion_cleanup() {
- local cache="${cache_base_path}$(echo $1)_completion"
- rm -f $cache
-}
+compdef _dotnet_zsh_complete dotnet
-# --------------------------------------------------------------------- #
-# dotnet new #
-# ALIAS: dn #
-# --------------------------------------------------------------------- #
-_dotnet_new_completion() {
- if [ $commands[dotnet] ]; then
- dotnet new -l | tail -n +21 | sed 's/ \+/:/g' | cut -d : -f 2 >$1
- fi
-}
-
-_dotnet_new_completion_cached() {
- _dotnet_cache_completion 'new' _dotnet_new_completion
-}
-
-_dotnet_cache_completion_cleanup 'new'
+# Aliases bellow are here for backwards compatibility
+# added by Shaun Tabone (https://github.com/xontab)
alias dn='dotnet new'
-
-# --------------------------------------------------------------------- #
-# dotnet #
-# --------------------------------------------------------------------- #
-_dotnet() {
- if [ $CURRENT -eq 2 ]; then
- _arguments \
- '--diagnostics[Enable diagnostic output.]' \
- '--help[Show command line help.]' \
- '--info[Display .NET Core information.]' \
- '--list-runtimes[Display the installed runtimes.]' \
- '--list-sdks[Display the installed SDKs.]' \
- '--version[Display .NET Core SDK version in use.]'
-
- _values \
- 'add[Add a package or reference to a .NET project.]' \
- 'build[Build a .NET project.]' \
- 'build-server[Interact with servers started by a build.]' \
- 'clean[Clean build outputs of a .NET project.]' \
- 'help[Show command line help.]' \
- 'list[List project references of a .NET project.]' \
- 'msbuild[Run Microsoft Build Engine (MSBuild) commands.]' \
- 'new[Create a new .NET project or file.]' \
- 'nuget[Provides additional NuGet commands.]' \
- 'pack[Create a NuGet package.]' \
- 'publish[Publish a .NET project for deployment.]' \
- 'remove[Remove a package or reference from a .NET project.]' \
- 'restore[Restore dependencies specified in a .NET project.]' \
- 'run[Build and run a .NET project output.]' \
- 'sln[Modify Visual Studio solution files.]' \
- 'store[Store the specified assemblies in the runtime package store.]' \
- 'test[Run unit tests using the test runner specified in a .NET project.]' \
- 'tool[Install or manage tools that extend the .NET experience.]' \
- 'vstest[Run Microsoft Test Engine (VSTest) commands.]' \
- 'dev-certs[Create and manage development certificates.]' \
- 'fsi[Start F# Interactive / execute F# scripts.]' \
- 'sql-cache[SQL Server cache command-line tools.]' \
- 'user-secrets[Manage development user secrets.]' \
- 'watch[Start a file watcher that runs a command when files change.]'
- return
- fi
-
- if [ $CURRENT -eq 3 ]; then
- case ${words[2]} in
- "new")
- compadd -X ".NET Installed Templates" $(_dotnet_new_completion_cached)
- return
- ;;
- "sln")
- _values \
- 'add[Add one or more projects to a solution file.]' \
- 'list[List all projects in a solution file.]' \
- 'remove[Remove one or more projects from a solution file.]'
- return
- ;;
- "nuget")
- _values \
- 'delete[Deletes a package from the server.]' \
- 'locals[Clears or lists local NuGet resources such as http requests cache, packages folder, plugin operations cache or machine-wide global packages folder.]' \
- 'push[Pushes a package to the server and publishes it.]'
- return
- ;;
- esac
- fi
-
- _arguments '*::arguments: _normal'
-}
-
-compdef _dotnet dotnet
-
-# --------------------------------------------------------------------- #
-# Other Aliases #
-# --------------------------------------------------------------------- #
alias dr='dotnet run'
alias dt='dotnet test'
alias dw='dotnet watch'
From fbbfd0f8a89dfca51bee7b36c774c718207c5bb1 Mon Sep 17 00:00:00 2001
From: Alexandre GOMES
Date: Mon, 17 Feb 2020 17:44:48 +0100
Subject: [PATCH 268/302] arcanist: add `arc diff --create` alias (#8610)
---
plugins/arcanist/arcanist.plugin.zsh | 1 +
1 file changed, 1 insertion(+)
diff --git a/plugins/arcanist/arcanist.plugin.zsh b/plugins/arcanist/arcanist.plugin.zsh
index 3f4eb07f4..8918bffdd 100644
--- a/plugins/arcanist/arcanist.plugin.zsh
+++ b/plugins/arcanist/arcanist.plugin.zsh
@@ -9,6 +9,7 @@ alias arco='arc cover'
alias arci='arc commit'
alias ard='arc diff'
+alias ardc='arc diff --create'
alias ardnu='arc diff --nounit'
alias ardnupc='arc diff --nounit --plan-changes'
alias ardpc='arc diff --plan-changes'
From 1381da15a458112eace99a997b961b6e522c4a7c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Mon, 17 Feb 2020 17:47:43 +0100
Subject: [PATCH 269/302] arcanist: document aliases
---
plugins/arcanist/README.md | 28 ++++++++++++++++++++++++++--
1 file changed, 26 insertions(+), 2 deletions(-)
diff --git a/plugins/arcanist/README.md b/plugins/arcanist/README.md
index f2ca8cf55..9c15f09b5 100644
--- a/plugins/arcanist/README.md
+++ b/plugins/arcanist/README.md
@@ -1,5 +1,29 @@
## arcanist
-**Maintainer:** [@emzar](https://github.com/emzar)
-
This plugin adds many useful aliases for [arcanist](https://github.com/phacility/arcanist).
+
+To use it, add `arcanist` to the plugins array of your zshrc file:
+
+```zsh
+plugins=(... arcanist)
+```
+
+## Aliases
+
+| Alias | Command |
+|---------|------------------------------------|
+| ara | `arc amend` |
+| arb | `arc branch` |
+| arco | `arc cover` |
+| arci | `arc commit` |
+| ard | `arc diff` |
+| ardc | `arc diff --create` |
+| ardnu | `arc diff --nounit` |
+| ardnupc | `arc diff --nounit --plan-changes` |
+| ardpc | `arc diff --plan-changes` |
+| are | `arc export` |
+| arh | `arc help` |
+| arl | `arc land` |
+| arli | `arc lint` |
+| arls | `arc list` |
+| arpa | `arc patch` |
From 47eae26bf6fb378c8186602eab4c998916ac5b34 Mon Sep 17 00:00:00 2001
From: Kshitij Nikhal
Date: Tue, 18 Feb 2020 03:20:54 -0600
Subject: [PATCH 270/302] web-search: add wolframalpha search engine (#8638)
---
plugins/web-search/README.md | 1 +
plugins/web-search/web-search.plugin.zsh | 2 ++
2 files changed, 3 insertions(+)
diff --git a/plugins/web-search/README.md b/plugins/web-search/README.md
index d04042506..9c01f0724 100644
--- a/plugins/web-search/README.md
+++ b/plugins/web-search/README.md
@@ -39,6 +39,7 @@ Available search contexts are:
| `qwant` | `https://www.qwant.com/?q=` |
| `givero` | `https://www.givero.com/search?q=` |
| `stackoverflow` | `https://stackoverflow.com/search?q=` |
+| `wolframalpha` | `https://wolframalpha.com/input?i=` |
Also there are aliases for bang-searching DuckDuckGo:
diff --git a/plugins/web-search/web-search.plugin.zsh b/plugins/web-search/web-search.plugin.zsh
index 5b76eeae2..f975bad7a 100644
--- a/plugins/web-search/web-search.plugin.zsh
+++ b/plugins/web-search/web-search.plugin.zsh
@@ -19,6 +19,7 @@ function web_search() {
qwant "https://www.qwant.com/?q="
givero "https://www.givero.com/search?q="
stackoverflow "https://stackoverflow.com/search?q="
+ wolframalpha "https://www.wolframalpha.com/input/?i="
)
# check whether the search engine is supported
@@ -55,6 +56,7 @@ alias goodreads='web_search goodreads'
alias qwant='web_search qwant'
alias givero='web_search givero'
alias stackoverflow='web_search stackoverflow'
+alias wolframalpha='web_search wolframalpha'
#add your own !bang searches here
alias wiki='web_search duckduckgo \!w'
From d49397a01d0cc704008d6f1089ef6a7270d17116 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Tue, 18 Feb 2020 19:14:30 +0100
Subject: [PATCH 271/302] af-magic: fix dashed separator sizing and refactor
Fixes #8081
---
themes/af-magic.zsh-theme | 39 +++++++++++++++++++++------------------
1 file changed, 21 insertions(+), 18 deletions(-)
diff --git a/themes/af-magic.zsh-theme b/themes/af-magic.zsh-theme
index 30e997f8c..4d1a40947 100644
--- a/themes/af-magic.zsh-theme
+++ b/themes/af-magic.zsh-theme
@@ -2,29 +2,28 @@
# Repo: https://github.com/andyfleming/oh-my-zsh
# Direct Link: https://github.com/andyfleming/oh-my-zsh/blob/master/themes/af-magic.zsh-theme
-if [ $UID -eq 0 ]; then NCOLOR="red"; else NCOLOR="green"; fi
-local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
+
+# settings
+typeset +H return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
+typeset +H my_gray="$FG[237]"
+typeset +H my_orange="$FG[214]"
+
+# separator dashes size
+function afmagic_dashes {
+ [[ -n "${VIRTUAL_ENV-}" && -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" && "$PS1" = \(* ]] \
+ && echo $(( COLUMNS - ${#VIRTUAL_ENV} - 3 )) \
+ || echo $COLUMNS
+}
# primary prompt
-PROMPT='$FG[237]${(l.COLUMNS..-.)}%{$reset_color%}
-$FG[032]%~\
-$(git_prompt_info)$(hg_prompt_info) \
-$FG[105]%(!.#.»)%{$reset_color%} '
-PROMPT2='%{$fg[red]%}\ %{$reset_color%}'
+PS1='$FG[237]${(l.$(afmagic_dashes)..-.)}%{$reset_color%}
+$FG[032]%~$(git_prompt_info)$(hg_prompt_info) $FG[105]%(!.#.»)%{$reset_color%} '
+PS2='%{$fg[red]%}\ %{$reset_color%}'
RPS1='${return_code}'
-
-# color vars
-eval my_gray='$FG[237]'
-eval my_orange='$FG[214]'
-
# right prompt
-if type "virtualenv_prompt_info" > /dev/null
-then
- RPROMPT="${RPROMPT}"'$FG[078]$(virtualenv_prompt_info)%{$reset_color%} $my_gray%n@%m%{$reset_color%}%'
-else
- RPROMPT="${RPROMPT}"'$my_gray%n@%m%{$reset_color%}%'
-fi
+(( $+functions[virtualenv_prompt_info] )) && RPS1+='$(virtualenv_prompt_info)'
+RPS1+=' $my_gray%n@%m%{$reset_color%}%'
# git settings
ZSH_THEME_GIT_PROMPT_PREFIX="$FG[075]($FG[078]"
@@ -37,3 +36,7 @@ ZSH_THEME_HG_PROMPT_PREFIX="$FG[075]($FG[078]"
ZSH_THEME_HG_PROMPT_CLEAN=""
ZSH_THEME_HG_PROMPT_DIRTY="$my_orange*%{$reset_color%}"
ZSH_THEME_HG_PROMPT_SUFFIX="$FG[075])%{$reset_color%}"
+
+# virtualenv settings
+ZSH_THEME_VIRTUALENV_PREFIX=" $FG[075]["
+ZSH_THEME_VIRTUALENV_PREFIX="]%{$reset_color%}"
From e8609b857caf730c626ab27910ece30420bc6693 Mon Sep 17 00:00:00 2001
From: Ujwal Dhakal
Date: Wed, 19 Feb 2020 01:50:52 +0545
Subject: [PATCH 272/302] git: add `grename` to rename a local branch and in
the origin remote (#8622)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Co-authored-by: Marc Cornellà
---
plugins/git/README.md | 357 +++++++++++++++++++------------------
plugins/git/git.plugin.zsh | 14 ++
2 files changed, 193 insertions(+), 178 deletions(-)
diff --git a/plugins/git/README.md b/plugins/git/README.md
index 42a583de8..009a74016 100644
--- a/plugins/git/README.md
+++ b/plugins/git/README.md
@@ -10,195 +10,196 @@ plugins=(... git)
## Aliases
-| Alias | Command |
-|:---------------------|:------------------------------------------------------------------------------------------------------------------------------|
-| g | git |
-| ga | git add |
-| gaa | git add --all |
-| gapa | git add --patch |
-| gau | git add --update |
-| gav | git add --verbose |
-| gap | git apply |
-| gb | git branch |
-| gba | git branch -a |
-| gbd | git branch -d |
+| Alias | Command |
+|:---------------------|:---------------------------------------------------------------------------------------------------------------------------------|
+| g | git |
+| ga | git add |
+| gaa | git add --all |
+| gapa | git add --patch |
+| gau | git add --update |
+| gav | git add --verbose |
+| gap | git apply |
+| gb | git branch |
+| gba | git branch -a |
+| gbd | git branch -d |
| gbda | git branch --no-color --merged \| command grep -vE "^(\+|\*\|\s*(master\|develop\|dev)\s*$)" \| command xargs -n 1 git branch -d |
-| gbD | git branch -D |
-| gbl | git blame -b -w |
-| gbnm | git branch --no-merged |
-| gbr | git branch --remote |
-| gbs | git bisect |
-| gbsb | git bisect bad |
-| gbsg | git bisect good |
-| gbsr | git bisect reset |
-| gbss | git bisect start |
-| gc | git commit -v |
-| gc! | git commit -v --amend |
-| gcn! | git commit -v --no-edit --amend |
-| gca | git commit -v -a |
-| gca! | git commit -v -a --amend |
-| gcan! | git commit -v -a --no-edit --amend |
-| gcans! | git commit -v -a -s --no-edit --amend |
-| gcam | git commit -a -m |
-| gcsm | git commit -s -m |
-| gcb | git checkout -b |
-| gcf | git config --list |
-| gcl | git clone --recurse-submodules |
-| gclean | git clean -id |
-| gpristine | git reset --hard && git clean -dfx |
-| gcm | git checkout master |
-| gcd | git checkout develop |
-| gcmsg | git commit -m |
-| gco | git checkout |
-| gcount | git shortlog -sn |
-| gcp | git cherry-pick |
-| gcpa | git cherry-pick --abort |
-| gcpc | git cherry-pick --continue |
-| gcs | git commit -S |
-| gd | git diff |
-| gdca | git diff --cached |
-| gdcw | git diff --cached --word-diff |
-| gdct | git describe --tags $(git rev-list --tags --max-count=1) |
-| gds | git diff --staged |
-| gdt | git diff-tree --no-commit-id --name-only -r |
-| gdv | git diff -w $@ \| view - |
-| gdw | git diff --word-diff |
-| gf | git fetch |
-| gfa | git fetch --all --prune |
-| gfg | git ls-files \| grep |
-| gfo | git fetch origin |
-| gg | git gui citool |
-| gga | git gui citool --amend |
-| ggf | git push --force origin $(current_branch) |
-| ggfl | git push --force-with-lease origin $(current_branch) |
-| ggl | git pull origin $(current_branch) |
-| ggp | git push origin $(current_branch) |
-| ggpnp | ggl && ggp |
-| ggpull | git pull origin "$(git_current_branch)" |
-| ggpur | ggu |
-| ggpush | git push origin "$(git_current_branch)" |
-| ggsup | git branch --set-upstream-to=origin/$(git_current_branch) |
-| ggu | git pull --rebase origin $(current_branch) |
-| gpsup | git push --set-upstream origin $(git_current_branch) |
-| ghh | git help |
-| gignore | git update-index --assume-unchanged |
-| gignored | git ls-files -v \| grep "^[[:lower:]]" |
-| git-svn-dcommit-push | git svn dcommit && git push github master:svntrunk |
-| gk | gitk --all --branches |
-| gke | gitk --all $(git log -g --pretty=%h) |
-| gl | git pull |
-| glg | git log --stat |
-| glgp | git log --stat -p |
-| glgg | git log --graph |
-| glgga | git log --graph --decorate --all |
-| glgm | git log --graph --max-count=10 |
-| glo | git log --oneline --decorate |
-| glol | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' |
-| glols | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --stat |
-| glod | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' |
-| glods | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short |
-| glola | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --all |
-| glog | git log --oneline --decorate --graph |
-| gloga | git log --oneline --decorate --graph --all |
-| glp | `_git_log_prettily` |
-| gm | git merge |
-| gmom | git merge origin/master |
-| gmt | git mergetool --no-prompt |
-| gmtvim | git mergetool --no-prompt --tool=vimdiff |
-| gmum | git merge upstream/master |
-| gma | git merge --abort |
-| gp | git push |
-| gpd | git push --dry-run |
-| gpf | git push --force-with-lease |
-| gpf! | git push --force |
-| gpoat | git push origin --all && git push origin --tags |
-| gpu | git push upstream |
-| gpv | git push -v |
-| gr | git remote |
-| gra | git remote add |
-| grb | git rebase |
-| grba | git rebase --abort |
-| grbc | git rebase --continue |
-| grbd | git rebase develop |
-| grbi | git rebase -i |
-| grbm | git rebase master |
-| grbs | git rebase --skip |
-| grev | git revert |
-| grh | git reset |
-| grhh | git reset --hard |
-| groh | git reset origin/$(git_current_branch) --hard |
-| grm | git rm |
-| grmc | git rm --cached |
-| grmv | git remote rename |
-| grrm | git remote remove |
-| grs | git restore |
-| grset | git remote set-url |
-| grss | git restore --source |
-| grt | cd "$(git rev-parse --show-toplevel \|\| echo .)" |
-| gru | git reset -- |
-| grup | git remote update |
-| grv | git remote -v |
-| gsb | git status -sb |
-| gsd | git svn dcommit |
-| gsh | git show |
-| gsi | git submodule init |
-| gsps | git show --pretty=short --show-signature |
-| gsr | git svn rebase |
-| gss | git status -s |
-| gst | git status |
-| gsta | git stash push |
-| gsta | git stash save |
-| gstaa | git stash apply |
-| gstc | git stash clear |
-| gstd | git stash drop |
-| gstl | git stash list |
-| gstp | git stash pop |
-| gsts | git stash show --text |
-| gstu | git stash --include-untracked |
-| gstall | git stash --all |
-| gsu | git submodule update |
-| gsw | git switch |
-| gswc | git switch -c |
-| gts | git tag -s |
-| gtv | git tag \| sort -V |
-| gtl | gtl(){ git tag --sort=-v:refname -n -l ${1}* }; noglob gtl |
-| gunignore | git update-index --no-assume-unchanged |
-| gunwip | git log -n 1 \| grep -q -c "\-\-wip\-\-" && git reset HEAD~1 |
-| gup | git pull --rebase |
-| gupv | git pull --rebase -v |
-| gupa | git pull --rebase --autostash |
-| gupav | git pull --rebase --autostash -v |
-| glum | git pull upstream master |
-| gwch | git whatchanged -p --abbrev-commit --pretty=medium |
-| gwip | git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign -m "--wip-- [skip ci]" |
+| gbD | git branch -D |
+| gbl | git blame -b -w |
+| gbnm | git branch --no-merged |
+| gbr | git branch --remote |
+| gbs | git bisect |
+| gbsb | git bisect bad |
+| gbsg | git bisect good |
+| gbsr | git bisect reset |
+| gbss | git bisect start |
+| gc | git commit -v |
+| gc! | git commit -v --amend |
+| gcn! | git commit -v --no-edit --amend |
+| gca | git commit -v -a |
+| gca! | git commit -v -a --amend |
+| gcan! | git commit -v -a --no-edit --amend |
+| gcans! | git commit -v -a -s --no-edit --amend |
+| gcam | git commit -a -m |
+| gcsm | git commit -s -m |
+| gcb | git checkout -b |
+| gcf | git config --list |
+| gcl | git clone --recurse-submodules |
+| gclean | git clean -id |
+| gpristine | git reset --hard && git clean -dfx |
+| gcm | git checkout master |
+| gcd | git checkout develop |
+| gcmsg | git commit -m |
+| gco | git checkout |
+| gcount | git shortlog -sn |
+| gcp | git cherry-pick |
+| gcpa | git cherry-pick --abort |
+| gcpc | git cherry-pick --continue |
+| gcs | git commit -S |
+| gd | git diff |
+| gdca | git diff --cached |
+| gdcw | git diff --cached --word-diff |
+| gdct | git describe --tags $(git rev-list --tags --max-count=1) |
+| gds | git diff --staged |
+| gdt | git diff-tree --no-commit-id --name-only -r |
+| gdv | git diff -w $@ \| view - |
+| gdw | git diff --word-diff |
+| gf | git fetch |
+| gfa | git fetch --all --prune |
+| gfg | git ls-files \| grep |
+| gfo | git fetch origin |
+| gg | git gui citool |
+| gga | git gui citool --amend |
+| ggf | git push --force origin $(current_branch) |
+| ggfl | git push --force-with-lease origin $(current_branch) |
+| ggl | git pull origin $(current_branch) |
+| ggp | git push origin $(current_branch) |
+| ggpnp | ggl && ggp |
+| ggpull | git pull origin "$(git_current_branch)" |
+| ggpur | ggu |
+| ggpush | git push origin "$(git_current_branch)" |
+| ggsup | git branch --set-upstream-to=origin/$(git_current_branch) |
+| ggu | git pull --rebase origin $(current_branch) |
+| gpsup | git push --set-upstream origin $(git_current_branch) |
+| ghh | git help |
+| gignore | git update-index --assume-unchanged |
+| gignored | git ls-files -v \| grep "^[[:lower:]]" |
+| git-svn-dcommit-push | git svn dcommit && git push github master:svntrunk |
+| gk | gitk --all --branches |
+| gke | gitk --all $(git log -g --pretty=%h) |
+| gl | git pull |
+| glg | git log --stat |
+| glgp | git log --stat -p |
+| glgg | git log --graph |
+| glgga | git log --graph --decorate --all |
+| glgm | git log --graph --max-count=10 |
+| glo | git log --oneline --decorate |
+| glol | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' |
+| glols | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --stat |
+| glod | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' |
+| glods | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short |
+| glola | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --all |
+| glog | git log --oneline --decorate --graph |
+| gloga | git log --oneline --decorate --graph --all |
+| glp | `_git_log_prettily` |
+| gm | git merge |
+| gmom | git merge origin/master |
+| gmt | git mergetool --no-prompt |
+| gmtvim | git mergetool --no-prompt --tool=vimdiff |
+| gmum | git merge upstream/master |
+| gma | git merge --abort |
+| gp | git push |
+| gpd | git push --dry-run |
+| gpf | git push --force-with-lease |
+| gpf! | git push --force |
+| gpoat | git push origin --all && git push origin --tags |
+| gpu | git push upstream |
+| gpv | git push -v |
+| gr | git remote |
+| gra | git remote add |
+| grb | git rebase |
+| grba | git rebase --abort |
+| grbc | git rebase --continue |
+| grbd | git rebase develop |
+| grbi | git rebase -i |
+| grbm | git rebase master |
+| grbs | git rebase --skip |
+| grev | git revert |
+| grh | git reset |
+| grhh | git reset --hard |
+| groh | git reset origin/$(git_current_branch) --hard |
+| grm | git rm |
+| grmc | git rm --cached |
+| grmv | git remote rename |
+| grrm | git remote remove |
+| grs | git restore |
+| grset | git remote set-url |
+| grss | git restore --source |
+| grt | cd "$(git rev-parse --show-toplevel \|\| echo .)" |
+| gru | git reset -- |
+| grup | git remote update |
+| grv | git remote -v |
+| gsb | git status -sb |
+| gsd | git svn dcommit |
+| gsh | git show |
+| gsi | git submodule init |
+| gsps | git show --pretty=short --show-signature |
+| gsr | git svn rebase |
+| gss | git status -s |
+| gst | git status |
+| gsta | git stash push |
+| gsta | git stash save |
+| gstaa | git stash apply |
+| gstc | git stash clear |
+| gstd | git stash drop |
+| gstl | git stash list |
+| gstp | git stash pop |
+| gsts | git stash show --text |
+| gstu | git stash --include-untracked |
+| gstall | git stash --all |
+| gsu | git submodule update |
+| gsw | git switch |
+| gswc | git switch -c |
+| gts | git tag -s |
+| gtv | git tag \| sort -V |
+| gtl | gtl(){ git tag --sort=-v:refname -n -l ${1}* }; noglob gtl |
+| gunignore | git update-index --no-assume-unchanged |
+| gunwip | git log -n 1 \| grep -q -c "\-\-wip\-\-" && git reset HEAD~1 |
+| gup | git pull --rebase |
+| gupv | git pull --rebase -v |
+| gupa | git pull --rebase --autostash |
+| gupav | git pull --rebase --autostash -v |
+| glum | git pull upstream master |
+| gwch | git whatchanged -p --abbrev-commit --pretty=medium |
+| gwip | git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign -m "--wip-- [skip ci]" |
### Deprecated
These are aliases that have been removed, renamed, or otherwise modified in a way that may, or may not, receive further support.
-| Alias | Command | Modification |
-| :----- | :----------------------------------------------------------------------------------| --------------------------------------------------------------------------------------------------- |
-| gap | git add --patch | new alias `gapa` |
-| gcl | git config --list | new alias `gcf` |
-| gdc | git diff --cached | new alias `gdca` |
-| gdt | git difftool | no replacement |
-| ggpull | git pull origin $(current_branch) | new alias `ggl` (`ggpull` still exists for now though) |
-| ggpur | git pull --rebase origin $(current_branch) | new alias `ggu` (`ggpur` still exists for now though) |
-| ggpush | git push origin $(current_branch) | new alias `ggp` (`ggpush` still exists for now though) |
-| gk | gitk --all --branches | now aliased to `gitk --all --branches` |
-| glg | git log --stat --max-count = 10 | now aliased to `git log --stat --color` |
-| glgg | git log --graph --max-count = 10 | now aliased to `git log --graph --color` |
-| gwc | git whatchanged -p --abbrev-commit --pretty = medium | new alias `gwch` |
+| Alias | Command | Modification |
+| :----- | :----------------------------------------------------- | :----------------------------------------------------- |
+| gap | `git add --patch` | new alias `gapa` |
+| gcl | `git config --list` | new alias `gcf` |
+| gdc | `git diff --cached` | new alias `gdca` |
+| gdt | `git difftool` | no replacement |
+| ggpull | `git pull origin $(current_branch)` | new alias `ggl` (`ggpull` still exists for now though) |
+| ggpur | `git pull --rebase origin $(current_branch)` | new alias `ggu` (`ggpur` still exists for now though) |
+| ggpush | `git push origin $(current_branch)` | new alias `ggp` (`ggpush` still exists for now though) |
+| gk | `gitk --all --branches` | now aliased to `gitk --all --branches` |
+| glg | `git log --stat --max-count = 10` | now aliased to `git log --stat --color` |
+| glgg | `git log --graph --max-count = 10` | now aliased to `git log --graph --color` |
+| gwc | `git whatchanged -p --abbrev-commit --pretty = medium` | new alias `gwch` |
## Functions
### Current
-| Command | Description |
-|:-----------------------|:----------------------------------------|
-| current_branch | Return the name of the current branch |
-| git_current_user_name | Returns the `user.name` config value |
-| git_current_user_email | Returns the `user.email` config value |
+| Command | Description |
+|:-----------------------|:---------------------------------------------------------|
+| `grename ` | Rename `old` branch to `new`, including in origin remote |
+| current_branch | Return the name of the current branch |
+| git_current_user_name | Returns the `user.name` config value |
+| git_current_user_email | Returns the `user.email` config value |
### Work in Progress (WIP)
diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh
index 380ab76d8..ffb3e506a 100644
--- a/plugins/git/git.plugin.zsh
+++ b/plugins/git/git.plugin.zsh
@@ -256,3 +256,17 @@ alias glum='git pull upstream master'
alias gwch='git whatchanged -p --abbrev-commit --pretty=medium'
alias gwip='git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign -m "--wip-- [skip ci]"'
+
+function grename() {
+ if [[ -z "$1" || -z "$2" ]]; then
+ echo "Usage: $0 old_branch new_branch"
+ return 1
+ fi
+
+ # Rename branch locally
+ git branch -m "$1" "$2"
+ # Rename branch in origin remote
+ if git push origin :"$1"; then
+ git push --set-upstream origin "$2"
+ fi
+}
From de261bd29cb5920b9ad37e67fe5e29ae3c348cfd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Tue, 18 Feb 2020 22:28:58 +0100
Subject: [PATCH 273/302] af-magic: fix virtualenv prompt suffix
---
themes/af-magic.zsh-theme | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/themes/af-magic.zsh-theme b/themes/af-magic.zsh-theme
index 4d1a40947..148991fec 100644
--- a/themes/af-magic.zsh-theme
+++ b/themes/af-magic.zsh-theme
@@ -39,4 +39,4 @@ ZSH_THEME_HG_PROMPT_SUFFIX="$FG[075])%{$reset_color%}"
# virtualenv settings
ZSH_THEME_VIRTUALENV_PREFIX=" $FG[075]["
-ZSH_THEME_VIRTUALENV_PREFIX="]%{$reset_color%}"
+ZSH_THEME_VIRTUALENV_SUFFIX="]%{$reset_color%}"
From eeb49bf5b0b8b700713e5b91464003cc09d1b44d Mon Sep 17 00:00:00 2001
From: Sir Mobus Gochfulshigan Dorphin Esquire XXIII
Date: Tue, 18 Feb 2020 17:04:14 -0500
Subject: [PATCH 274/302] systemd: add prompt function to show systemd units'
status (#7657)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Co-authored-by: Marc Cornellà
---
plugins/systemd/README.md | 41 ++++++++++++++++++++++++++++++
plugins/systemd/systemd.plugin.zsh | 15 +++++++++++
2 files changed, 56 insertions(+)
diff --git a/plugins/systemd/README.md b/plugins/systemd/README.md
index d91329290..3fa1d2118 100644
--- a/plugins/systemd/README.md
+++ b/plugins/systemd/README.md
@@ -51,3 +51,44 @@ plugins=(... systemd)
You can use the above aliases as `--user` by using the prefix `scu` instead of `sc`.
For example: `scu-list-units` will be aliased to `systemctl --user list-units`.
+
+### Unit Status Prompt
+
+You can add a token to your prompt in a similar way to the gitfast plugin. To add the token
+to your prompt, drop `$(systemd_prompt_info [unit]...)` into your prompt (more than one unit
+may be specified).
+
+The plugin will add the following to your prompt for each `$unit`.
+```
+:
+```
+You can control these parts with the following variables:
+
+- ``: Set `$ZSH_THEME_SYSTEMD_PROMPT_PREFIX`.
+
+- ``: Set `$ZSH_THEME_SYSTEMD_PROMPT_SUFFIX`.
+
+- ``: name passed as parameter to the function. If you want it to be in ALL CAPS,
+ you can set the variable `$ZSH_THEME_SYSTEMD_PROMPT_CAPS` to a non-empty string.
+
+- ``: shown if the systemd unit is active.
+ Set `$ZSH_THEME_SYSTEMD_PROMPT_ACTIVE`.
+
+- ``: shown if the systemd unit is *not* active.
+ Set `$ZSH_THEME_SYSTEMD_PROMPT_NOTACTIVE`.
+
+For example, if your prompt contains `PROMPT='$(systemd_prompt_info dhcpd httpd)'` and you set the following variables:
+
+```
+ZSH_THEME_SYSTEMD_PROMPT_PREFIX="["
+ZSH_THEME_SYSTEMD_PROMPT_SUFFIX="]"
+ZSH_THEME_SYSTEMD_PROMPT_ACTIVE="+"
+ZSH_THEME_SYSTEMD_PROMPT_NOTACTIVE="X"
+ZSH_THEME_SYSTEMD_PROMPT_CAPS=1
+```
+
+If `dhcpd` is running, and `httpd` is not, then your prompt will look like this:
+
+```
+[DHCPD: +][HTTPD: X]
+```
diff --git a/plugins/systemd/systemd.plugin.zsh b/plugins/systemd/systemd.plugin.zsh
index 201ffd998..f2d1d6f1c 100644
--- a/plugins/systemd/systemd.plugin.zsh
+++ b/plugins/systemd/systemd.plugin.zsh
@@ -73,3 +73,18 @@ alias sc-mask-now="sc-mask --now"
alias scu-enable-now="scu-enable --now"
alias scu-disable-now="scu-disable --now"
alias scu-mask-now="scu-mask --now"
+
+function systemd_prompt_info {
+ local unit
+ for unit in $@; do
+ echo -n "$ZSH_THEME_SYSTEMD_PROMPT_PREFIX"
+ [[ -n "$ZSH_THEME_SYSTEMD_PROMPT_CAPS" ]] && echo "${(U)unit}:" || echo "$unit:"
+ if systemctl is-active $unit &>/dev/null; then
+ echo -n "$ZSH_THEME_SYSTEMD_PROMPT_ACTIVE"
+ else
+ echo -n "$ZSH_THEME_SYSTEMD_PROMPT_NOTACTIVE"
+ fi
+ echo -n "$ZSH_THEME_SYSTEMD_PROMPT_SUFFIX"
+ done
+}
+
From c1b798aff39942b2f23a0a5f2ef206ebc8ce4970 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Wed, 19 Feb 2020 00:16:54 +0100
Subject: [PATCH 275/302] agnoster: fix bzr prompt with breezy installed
(#8646)
* Change indentation to 2 spaces in prompt_bzr function
* Check if in a bzr repository and optimize bzr calls in prompt_bzr
---
themes/agnoster.zsh-theme | 40 ++++++++++++++++++++++-----------------
1 file changed, 23 insertions(+), 17 deletions(-)
diff --git a/themes/agnoster.zsh-theme b/themes/agnoster.zsh-theme
index 518a14a37..8c700d06a 100644
--- a/themes/agnoster.zsh-theme
+++ b/themes/agnoster.zsh-theme
@@ -140,24 +140,30 @@ prompt_git() {
}
prompt_bzr() {
- (( $+commands[bzr] )) || return
- if (bzr status >/dev/null 2>&1); then
- status_mod=`bzr status | head -n1 | grep "modified" | wc -m`
- status_all=`bzr status | head -n1 | wc -m`
- revision=`bzr log | head -n2 | tail -n1 | sed 's/^revno: //'`
- if [[ $status_mod -gt 0 ]] ; then
- prompt_segment yellow black
- echo -n "bzr@"$revision "✚ "
- else
- if [[ $status_all -gt 0 ]] ; then
- prompt_segment yellow black
- echo -n "bzr@"$revision
- else
- prompt_segment green black
- echo -n "bzr@"$revision
- fi
- fi
+ (( $+commands[bzr] )) || return
+
+ # Test if bzr repository in directory hierarchy
+ local dir="$PWD"
+ while [[ ! -d "$dir/.bzr" ]]; do
+ [[ "$dir" = "/" ]] && return
+ dir="${dir:h}"
+ done
+
+ local bzr_status status_mod status_all revision
+ if bzr_status=$(bzr status 2>&1); then
+ status_mod=$(echo -n "$bzr_status" | head -n1 | grep "modified" | wc -m)
+ status_all=$(echo -n "$bzr_status" | head -n1 | wc -m)
+ revision=$(bzr log -r-1 --log-format line | cut -d: -f1)
+ if [[ $status_mod -gt 0 ]] ; then
+ prompt_segment yellow black "bzr@$revision ✚"
+ else
+ if [[ $status_all -gt 0 ]] ; then
+ prompt_segment yellow black "bzr@$revision"
+ else
+ prompt_segment green black "bzr@$revision"
+ fi
fi
+ fi
}
prompt_hg() {
From 443ad8802415c111e8d59e110337e3fe12e2e698 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Wed, 19 Feb 2020 16:53:10 +0100
Subject: [PATCH 276/302] avit: replace custom prompt functions with OMZ ones
Fixes #8637
---
themes/avit.zsh-theme | 24 +++++++-----------------
1 file changed, 7 insertions(+), 17 deletions(-)
diff --git a/themes/avit.zsh-theme b/themes/avit.zsh-theme
index aec14e4a6..3179bd837 100644
--- a/themes/avit.zsh-theme
+++ b/themes/avit.zsh-theme
@@ -1,12 +1,12 @@
# AVIT ZSH Theme
PROMPT='
-$(_user_host)${_current_dir} $(git_prompt_info) $(_ruby_version)
+$(_user_host)${_current_dir} $(git_prompt_info) $(ruby_prompt_info)
%{$fg[$CARETCOLOR]%}▶%{$resetcolor%} '
PROMPT2='%{$fg[$CARETCOLOR]%}◀%{$reset_color%} '
-RPROMPT='$(_vi_status)%{$(echotc UP 1)%}$(_git_time_since_commit) $(git_prompt_status) ${_return_status}%{$(echotc DO 1)%}'
+RPROMPT='$(vi_mode_prompt_info)%{$(echotc UP 1)%}$(_git_time_since_commit) $(git_prompt_status) ${_return_status}%{$(echotc DO 1)%}'
local _current_dir="%{$fg_bold[blue]%}%3~%{$reset_color%} "
local _return_status="%{$fg_bold[red]%}%(?..⍉)%{$reset_color%}"
@@ -32,20 +32,6 @@ function _user_host() {
fi
}
-function _vi_status() {
- if {echo $fpath | grep -q "plugins/vi-mode"}; then
- echo "$(vi_mode_prompt_info)"
- fi
-}
-
-function _ruby_version() {
- if {echo $fpath | grep -q "plugins/rvm"}; then
- echo "%{$fg[grey]%}$(rvm_prompt_info)%{$reset_color%}"
- elif {echo $fpath | grep -q "plugins/rbenv"}; then
- echo "%{$fg[grey]%}$(rbenv_prompt_info)%{$reset_color%}"
- fi
-}
-
# Determine the time since last commit. If branch is clean,
# use a neutral color, otherwise colors will vary according to time.
function _git_time_since_commit() {
@@ -84,9 +70,9 @@ fi
MODE_INDICATOR="%{$fg_bold[yellow]%}❮%{$reset_color%}%{$fg[yellow]%}❮❮%{$reset_color%}"
+# Git prompt settings
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
-
ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}✗%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_CLEAN=" %{$fg[green]%}✔%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[green]%}✚ "
@@ -96,6 +82,10 @@ ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg[blue]%}▴ "
ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg[cyan]%}§ "
ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[white]%}◒ "
+# Ruby prompt settings
+ZSH_THEME_RUBY_PROMPT_PREFIX="%{$fg[grey]%}"
+ZSH_THEME_RUBY_PROMPT_SUFFIX="%{$reset_color%}"
+
# Colors vary depending on time lapsed.
ZSH_THEME_GIT_TIME_SINCE_COMMIT_SHORT="%{$fg[green]%}"
ZSH_THEME_GIT_TIME_SHORT_COMMIT_MEDIUM="%{$fg[yellow]%}"
From 77813a330bbc716503dcc4d8d98b6d8ae6f74d03 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Wed, 19 Feb 2020 17:24:20 +0100
Subject: [PATCH 277/302] avit: clean up theme code
---
themes/avit.zsh-theme | 51 +++++++++++++++----------------------------
1 file changed, 17 insertions(+), 34 deletions(-)
diff --git a/themes/avit.zsh-theme b/themes/avit.zsh-theme
index 3179bd837..4f82f3414 100644
--- a/themes/avit.zsh-theme
+++ b/themes/avit.zsh-theme
@@ -1,27 +1,20 @@
# AVIT ZSH Theme
+# settings
+typeset +H _current_dir="%{$fg_bold[blue]%}%3~%{$reset_color%} "
+typeset +H _return_status="%{$fg_bold[red]%}%(?..⍉)%{$reset_color%}"
+typeset +H _hist_no="%{$fg[grey]%}%h%{$reset_color%}"
+
PROMPT='
$(_user_host)${_current_dir} $(git_prompt_info) $(ruby_prompt_info)
-%{$fg[$CARETCOLOR]%}▶%{$resetcolor%} '
+%{%F{%(!.red.white)}%}▶%{$resetcolor%} '
-PROMPT2='%{$fg[$CARETCOLOR]%}◀%{$reset_color%} '
+PROMPT2='%{%F{%(!.red.white)}%}◀%{$reset_color%} '
RPROMPT='$(vi_mode_prompt_info)%{$(echotc UP 1)%}$(_git_time_since_commit) $(git_prompt_status) ${_return_status}%{$(echotc DO 1)%}'
-local _current_dir="%{$fg_bold[blue]%}%3~%{$reset_color%} "
-local _return_status="%{$fg_bold[red]%}%(?..⍉)%{$reset_color%}"
-local _hist_no="%{$fg[grey]%}%h%{$reset_color%}"
-
-function _current_dir() {
- local _max_pwd_length="65"
- if [[ $(echo -n $PWD | wc -c) -gt ${_max_pwd_length} ]]; then
- echo "%{$fg_bold[blue]%}%-2~ ... %3~%{$reset_color%} "
- else
- echo "%{$fg_bold[blue]%}%~%{$reset_color%} "
- fi
-}
-
function _user_host() {
+ local me
if [[ -n $SSH_CONNECTION ]]; then
me="%n@%m"
elif [[ $LOGNAME != $USER ]]; then
@@ -35,39 +28,29 @@ function _user_host() {
# Determine the time since last commit. If branch is clean,
# use a neutral color, otherwise colors will vary according to time.
function _git_time_since_commit() {
-# Only proceed if there is actually a commit.
+ local last_commit now seconds_since_last_commit
+ local minutes hours commit_age
+ # Only proceed if there is actually a commit.
if last_commit=$(git log --pretty=format:'%at' -1 2> /dev/null); then
now=$(date +%s)
seconds_since_last_commit=$((now-last_commit))
# Totals
minutes=$((seconds_since_last_commit / 60))
- hours=$((seconds_since_last_commit/3600))
+ hours=$((seconds_since_last_commit / 3600))
- # Sub-hours and sub-minutes
- days=$((seconds_since_last_commit / 86400))
- sub_hours=$((hours % 24))
- sub_minutes=$((minutes % 60))
-
- if [ $hours -ge 24 ]; then
- commit_age="${days}d"
- elif [ $minutes -gt 60 ]; then
- commit_age="${sub_hours}h${sub_minutes}m"
+ if [[ $hours -ge 24 ]]; then
+ commit_age="$(( hours / 24 ))d"
+ elif [[ $hours -gt 0 ]]; then
+ commit_age+="$(( hours % 24 ))h$(( minutes % 60 ))m"
else
commit_age="${minutes}m"
fi
- color=$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL
- echo "$color$commit_age%{$reset_color%}"
+ echo "${ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL}${commit_age}%{$reset_color%}"
fi
}
-if [[ $USER == "root" ]]; then
- CARETCOLOR="red"
-else
- CARETCOLOR="white"
-fi
-
MODE_INDICATOR="%{$fg_bold[yellow]%}❮%{$reset_color%}%{$fg[yellow]%}❮❮%{$reset_color%}"
# Git prompt settings
From d76258ff554ea58d9865b9864f5fff1dd8d2e4bb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Wed, 19 Feb 2020 18:19:46 +0100
Subject: [PATCH 278/302] avit: add years since last commit if appropriate
---
themes/avit.zsh-theme | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/themes/avit.zsh-theme b/themes/avit.zsh-theme
index 4f82f3414..51701572b 100644
--- a/themes/avit.zsh-theme
+++ b/themes/avit.zsh-theme
@@ -29,7 +29,7 @@ function _user_host() {
# use a neutral color, otherwise colors will vary according to time.
function _git_time_since_commit() {
local last_commit now seconds_since_last_commit
- local minutes hours commit_age
+ local minutes hours days years commit_age
# Only proceed if there is actually a commit.
if last_commit=$(git log --pretty=format:'%at' -1 2> /dev/null); then
now=$(date +%s)
@@ -37,12 +37,16 @@ function _git_time_since_commit() {
# Totals
minutes=$((seconds_since_last_commit / 60))
- hours=$((seconds_since_last_commit / 3600))
+ hours=$((minutes / 60))
+ days=$((hours / 24))
+ years=$((days / 365))
- if [[ $hours -ge 24 ]]; then
- commit_age="$(( hours / 24 ))d"
+ if [[ $years -gt 0 ]]; then
+ commit_age="${years}y$((days % 365 ))d"
+ elif [[ $days -gt 0 ]]; then
+ commit_age="${days}d$((hours % 24))h"
elif [[ $hours -gt 0 ]]; then
- commit_age+="$(( hours % 24 ))h$(( minutes % 60 ))m"
+ commit_age+="${hours}h$(( minutes % 60 ))m"
else
commit_age="${minutes}m"
fi
From 6adad5c300a6bfde33b593489cc1c3b645b721e8 Mon Sep 17 00:00:00 2001
From: Willy Weiskopf
Date: Wed, 16 Jul 2014 22:21:09 -0600
Subject: [PATCH 279/302] Move random theme functionality into "random" theme
The statements for selecting a random theme in oh-my-zsh.sh and the themes
plugin are duplicate. Most people eventually settle on a theme, making those
lines in oh-my-zsh.sh superfluous. To address those, it may makes sense to put
the random theme functionality into a theme of its own (since themes are just
zsh scripts.
---
oh-my-zsh.sh | 25 ++++++-------------------
plugins/themes/themes.plugin.zsh | 24 +++++++++++-------------
themes/random.zsh-theme | 10 ++++++++++
3 files changed, 27 insertions(+), 32 deletions(-)
create mode 100644 themes/random.zsh-theme
diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh
index c3fae6efb..30259372c 100644
--- a/oh-my-zsh.sh
+++ b/oh-my-zsh.sh
@@ -97,25 +97,12 @@ done
unset config_file
# Load the theme
-if [[ "$ZSH_THEME" == "random" ]]; then
- if [[ "${(t)ZSH_THEME_RANDOM_CANDIDATES}" = "array" ]] && [[ "${#ZSH_THEME_RANDOM_CANDIDATES[@]}" -gt 0 ]]; then
- themes=($ZSH/themes/${^ZSH_THEME_RANDOM_CANDIDATES}.zsh-theme)
+if [ ! "$ZSH_THEME" = "" ]; then
+ if [ -f "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme" ]; then
+ source "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme"
+ elif [ -f "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme" ]; then
+ source "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme"
else
- themes=($ZSH/themes/*zsh-theme)
- fi
- N=${#themes[@]}
- ((N=(RANDOM%N)+1))
- RANDOM_THEME=${themes[$N]}
- source "$RANDOM_THEME"
- echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..."
-else
- if [ ! "$ZSH_THEME" = "" ]; then
- if [ -f "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme" ]; then
- source "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme"
- elif [ -f "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme" ]; then
- source "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme"
- else
- source "$ZSH/themes/$ZSH_THEME.zsh-theme"
- fi
+ source "$ZSH/themes/$ZSH_THEME.zsh-theme"
fi
fi
diff --git a/plugins/themes/themes.plugin.zsh b/plugins/themes/themes.plugin.zsh
index 2cd0ee327..ac4ccc980 100644
--- a/plugins/themes/themes.plugin.zsh
+++ b/plugins/themes/themes.plugin.zsh
@@ -1,19 +1,17 @@
function theme
{
- if [ -z "$1" ] || [ "$1" = "random" ]; then
- themes=($ZSH/themes/*zsh-theme)
- N=${#themes[@]}
- ((N=(RANDOM%N)+1))
- RANDOM_THEME=${themes[$N]}
- source "$RANDOM_THEME"
- echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..."
+ if [ -z "$1" ]; then
+ 1="random"
+ fi
+
+ if [ -f "$ZSH_CUSTOM/$1.zsh-theme" ]
+ then
+ source "$ZSH_CUSTOM/$1.zsh-theme"
+ elif [ -f "$ZSH_CUSTOM/themes/$1.zsh-theme" ]
+ then
+ source "$ZSH_CUSTOM/themes/$1.zsh-theme"
else
- if [ -f "$ZSH_CUSTOM/themes/$1.zsh-theme" ]
- then
- source "$ZSH_CUSTOM/themes/$1.zsh-theme"
- else
- source "$ZSH/themes/$1.zsh-theme"
- fi
+ source "$ZSH/themes/$1.zsh-theme"
fi
}
diff --git a/themes/random.zsh-theme b/themes/random.zsh-theme
new file mode 100644
index 000000000..739567662
--- /dev/null
+++ b/themes/random.zsh-theme
@@ -0,0 +1,10 @@
+if [[ "${(t)ZSH_THEME_RANDOM_CANDIDATES}" = "array" ]] && [[ "${#ZSH_THEME_RANDOM_CANDIDATES[@]}" -gt 0 ]]; then
+ themes=($ZSH/themes/${^ZSH_THEME_RANDOM_CANDIDATES}.zsh-theme)
+else
+ themes=($ZSH/themes/*zsh-theme)
+fi
+N=${#themes[@]}
+((N=(RANDOM%N)+1))
+RANDOM_THEME=${themes[$N]}
+source "$RANDOM_THEME"
+echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..."
From b297bf92964e04e24f960f4e38acdb9b740d2d9f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Wed, 19 Feb 2020 18:42:05 +0100
Subject: [PATCH 280/302] Add themes in $ZSH_CUSTOM to the pool of candidates
Also add comments and unset leftover variables, and print only the
name of the theme loaded.
When looking for $ZSH_CUSTOM themes, the chosen algorithm is to add
the theme names to the pool disregarding the path, and then source
whatever theme is selected with the same logic as the init script,
which is to source first custom themes even if there is another
default theme of the same name.
Co-authored-by: Mihai Serban
---
themes/random.zsh-theme | 38 +++++++++++++++++++++++++++++++-------
1 file changed, 31 insertions(+), 7 deletions(-)
diff --git a/themes/random.zsh-theme b/themes/random.zsh-theme
index 739567662..92d2a6847 100644
--- a/themes/random.zsh-theme
+++ b/themes/random.zsh-theme
@@ -1,10 +1,34 @@
-if [[ "${(t)ZSH_THEME_RANDOM_CANDIDATES}" = "array" ]] && [[ "${#ZSH_THEME_RANDOM_CANDIDATES[@]}" -gt 0 ]]; then
- themes=($ZSH/themes/${^ZSH_THEME_RANDOM_CANDIDATES}.zsh-theme)
+# Make themes a unique array
+typeset -Ua themes
+
+if [[ "${(t)ZSH_THEME_RANDOM_CANDIDATES}" = array && ${#ZSH_THEME_RANDOM_CANDIDATES[@]} -gt 0 ]]; then
+ # Use ZSH_THEME_RANDOM_CANDIDATES if properly defined
+ themes=($ZSH_THEME_RANDOM_CANDIDATES)
else
- themes=($ZSH/themes/*zsh-theme)
+ # Look for themes in $ZSH_CUSTOM and $ZSH and add only the theme name (:t)
+ themes=(
+ "$ZSH_CUSTOM"/*.zsh-theme(N:t:r)
+ "$ZSH_CUSTOM"/themes/*.zsh-theme(N:t:r)
+ "$ZSH"/themes/*.zsh-theme(N:t:r)
+ )
fi
+
+# Choose a theme out of the pool of candidates
N=${#themes[@]}
-((N=(RANDOM%N)+1))
-RANDOM_THEME=${themes[$N]}
-source "$RANDOM_THEME"
-echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..."
+(( N = (RANDOM%N) + 1 ))
+RANDOM_THEME="${themes[$N]}"
+unset N themes
+
+# Source theme
+if [[ -f "$ZSH_CUSTOM/$RANDOM_THEME.zsh-theme" ]]; then
+ source "$ZSH_CUSTOM/$RANDOM_THEME.zsh-theme"
+elif [[ -f "$ZSH_CUSTOM/themes/$RANDOM_THEME.zsh-theme" ]]; then
+ source "$ZSH_CUSTOM/themes/$RANDOM_THEME.zsh-theme"
+elif [[ -f "$ZSH/themes/$RANDOM_THEME.zsh-theme" ]]; then
+ source "$ZSH/themes/$RANDOM_THEME.zsh-theme"
+else
+ echo "[oh-my-zsh] Random theme '${RANDOM_THEME}' not found"
+ return 1
+fi
+
+echo "[oh-my-zsh] Random theme '${RANDOM_THEME}' loaded"
From f4b4a446aca37987bc2612d6115d156417628364 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Wed, 19 Feb 2020 19:32:28 +0100
Subject: [PATCH 281/302] Polish themes plugin and error out if theme not found
---
plugins/themes/_theme | 3 ---
plugins/themes/themes.plugin.zsh | 29 ++++++++++++++++-------------
2 files changed, 16 insertions(+), 16 deletions(-)
delete mode 100644 plugins/themes/_theme
diff --git a/plugins/themes/_theme b/plugins/themes/_theme
deleted file mode 100644
index 8214ddb0d..000000000
--- a/plugins/themes/_theme
+++ /dev/null
@@ -1,3 +0,0 @@
-#compdef theme
-
-_arguments "1: :($(lstheme | tr "\n" " "))"
diff --git a/plugins/themes/themes.plugin.zsh b/plugins/themes/themes.plugin.zsh
index ac4ccc980..1fbde5b64 100644
--- a/plugins/themes/themes.plugin.zsh
+++ b/plugins/themes/themes.plugin.zsh
@@ -1,24 +1,27 @@
-function theme
-{
- if [ -z "$1" ]; then
- 1="random"
- fi
+function theme {
+ : ${1:=random} # Use random theme if none provided
- if [ -f "$ZSH_CUSTOM/$1.zsh-theme" ]
- then
+ if [[ -f "$ZSH_CUSTOM/$1.zsh-theme" ]]; then
source "$ZSH_CUSTOM/$1.zsh-theme"
- elif [ -f "$ZSH_CUSTOM/themes/$1.zsh-theme" ]
- then
+ elif [[ -f "$ZSH_CUSTOM/themes/$1.zsh-theme" ]]; then
source "$ZSH_CUSTOM/themes/$1.zsh-theme"
- else
+ elif [[ -f "$ZSH/themes/$1.zsh-theme" ]]; then
source "$ZSH/themes/$1.zsh-theme"
+ else
+ echo "$0: Theme '$1' not found"
+ return 1
fi
}
-function lstheme
-{
+function _theme {
+ _arguments "1: :($(lstheme))"
+}
+
+compdef _theme theme
+
+function lstheme {
# Resources:
# http://zsh.sourceforge.net/Doc/Release/Expansion.html#Modifiers
# http://zsh.sourceforge.net/Doc/Release/Expansion.html#Glob-Qualifiers
- print -l {$ZSH,$ZSH_CUSTOM}/themes/*.zsh-theme(N:t:r)
+ print "$ZSH_CUSTOM"/*.zsh-theme(N:t:r) {"$ZSH_CUSTOM","$ZSH"}/themes/*.zsh-theme(N:t:r)
}
From 3d4890dcc07478e7129de1e79afedafd3f08ffbc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Wed, 19 Feb 2020 19:53:37 +0100
Subject: [PATCH 282/302] Add blacklist variable for random theme
Co-authored-by: Fran Garcia
---
themes/random.zsh-theme | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/themes/random.zsh-theme b/themes/random.zsh-theme
index 92d2a6847..43f6cbb60 100644
--- a/themes/random.zsh-theme
+++ b/themes/random.zsh-theme
@@ -5,19 +5,23 @@ if [[ "${(t)ZSH_THEME_RANDOM_CANDIDATES}" = array && ${#ZSH_THEME_RANDOM_CANDIDA
# Use ZSH_THEME_RANDOM_CANDIDATES if properly defined
themes=($ZSH_THEME_RANDOM_CANDIDATES)
else
- # Look for themes in $ZSH_CUSTOM and $ZSH and add only the theme name (:t)
+ # Look for themes in $ZSH_CUSTOM and $ZSH and add only the theme name
themes=(
"$ZSH_CUSTOM"/*.zsh-theme(N:t:r)
"$ZSH_CUSTOM"/themes/*.zsh-theme(N:t:r)
"$ZSH"/themes/*.zsh-theme(N:t:r)
)
+ # Remove blacklisted themes from the list
+ for theme in ${ZSH_THEME_RANDOM_BLACKLIST[@]}; do
+ themes=("${(@)themes:#$theme}")
+ done
fi
# Choose a theme out of the pool of candidates
N=${#themes[@]}
(( N = (RANDOM%N) + 1 ))
RANDOM_THEME="${themes[$N]}"
-unset N themes
+unset N themes theme
# Source theme
if [[ -f "$ZSH_CUSTOM/$RANDOM_THEME.zsh-theme" ]]; then
From f9a2d8cae39a0fb42e22aa17222c7da7b44b7ede Mon Sep 17 00:00:00 2001
From: Andy Pickle <39109475+pickleat@users.noreply.github.com>
Date: Mon, 24 Feb 2020 13:13:16 -0600
Subject: [PATCH 283/302] vscode: add documentation for running in macOS
(#8674)
---
plugins/vscode/README.md | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/plugins/vscode/README.md b/plugins/vscode/README.md
index 2c6530650..469c57ea8 100644
--- a/plugins/vscode/README.md
+++ b/plugins/vscode/README.md
@@ -8,6 +8,15 @@ To start using it, add the `vscode` plugin to your `plugins` array in `~/.zshrc`
plugins=(... vscode)
```
+## Requirements
+
+To use VS Code in the terminal **in macOS**, first you need to install the `code` command in the PATH,
+otherwise you might receive this message: `zsh: command not found: code`.
+
+[As the docs say](https://code.visualstudio.com/docs/setup/mac#_launching-from-the-command-line), open
+the Command Palette via (F1 or ⇧⌘P) and type shell command to find the Shell Command:
+> Install 'code' command in PATH
+
## VS Code Insiders
🍏 **If you are only using [VS Code Insiders](https://code.visualstudio.com/insiders/), the plugin will automatically bind to your Insiders installation.**
From 40b013f5f119be27bd2fdece431cf4979193bd25 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Mon, 24 Feb 2020 20:25:27 +0100
Subject: [PATCH 284/302] lib: delete upgrade lock in upgrade_oh_my_zsh
Provides a different solution to #8332 and #8333
---
lib/functions.zsh | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/lib/functions.zsh b/lib/functions.zsh
index 61dfa4780..91e9cf895 100644
--- a/lib/functions.zsh
+++ b/lib/functions.zsh
@@ -3,11 +3,12 @@ function zsh_stats() {
}
function uninstall_oh_my_zsh() {
- env ZSH=$ZSH sh $ZSH/tools/uninstall.sh
+ env ZSH="$ZSH" sh "$ZSH/tools/uninstall.sh"
}
function upgrade_oh_my_zsh() {
- env ZSH=$ZSH sh $ZSH/tools/upgrade.sh
+ env ZSH="$ZSH" sh "$ZSH/tools/upgrade.sh"
+ rm -rf "$ZSH/log/update.lock"
}
function take() {
From 0e57142729656bd0bd81a39704328330f9db4557 Mon Sep 17 00:00:00 2001
From: Jonathan Chang <31893406+cccntu@users.noreply.github.com>
Date: Tue, 25 Feb 2020 03:39:10 +0800
Subject: [PATCH 285/302] installer: remove redundant cp command (#8668)
---
tools/install.sh | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/tools/install.sh b/tools/install.sh
index ae248be89..bdf9f18e9 100755
--- a/tools/install.sh
+++ b/tools/install.sh
@@ -129,10 +129,9 @@ setup_zshrc() {
echo "${GREEN}Using the Oh My Zsh template file and adding it to ~/.zshrc.${RESET}"
- cp "$ZSH/templates/zshrc.zsh-template" ~/.zshrc
sed "/^export ZSH=/ c\\
export ZSH=\"$ZSH\"
-" ~/.zshrc > ~/.zshrc-omztemp
+" "$ZSH/templates/zshrc.zsh-template" > ~/.zshrc-omztemp
mv -f ~/.zshrc-omztemp ~/.zshrc
echo
From 7290a08bf6098993b783877c8feab4c33cf49c38 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Tue, 25 Feb 2020 11:54:52 +0100
Subject: [PATCH 286/302] battery: fix floating point output in macOS
Fixes #8676
---
plugins/battery/battery.plugin.zsh | 32 ++++++++++++++++--------------
1 file changed, 17 insertions(+), 15 deletions(-)
diff --git a/plugins/battery/battery.plugin.zsh b/plugins/battery/battery.plugin.zsh
index 6fe801c9f..857ab6e8c 100644
--- a/plugins/battery/battery.plugin.zsh
+++ b/plugins/battery/battery.plugin.zsh
@@ -21,7 +21,8 @@ if [[ "$OSTYPE" = darwin* ]]; then
local smart_battery_status="$(ioreg -rc AppleSmartBattery)"
local -F maxcapacity=$(command grep '^.*"MaxCapacity"\ =\ ' <<< $smart_battery_status | sed -e 's/^.*"MaxCapacity"\ =\ //')
local -F currentcapacity=$(command grep '^.*"CurrentCapacity"\ =\ ' <<< $smart_battery_status | sed -e 's/^.*CurrentCapacity"\ =\ //')
- echo $(( (currentcapacity/maxcapacity) * 100 ))
+ local -i pct=$(( (currentcapacity/maxcapacity) * 100 ))
+ echo $pct
}
function battery_pct_remaining() {
@@ -47,16 +48,17 @@ if [[ "$OSTYPE" = darwin* ]]; then
}
function battery_pct_prompt () {
+ local battery_pct color
if ioreg -rc AppleSmartBattery | command grep -q '^.*"ExternalConnected"\ =\ No'; then
- b=$(battery_pct_remaining)
- if [[ $b -gt 50 ]]; then
+ battery_pct=$(battery_pct_remaining)
+ if [[ $battery_pct -gt 50 ]]; then
color='green'
- elif [[ $b -gt 20 ]]; then
+ elif [[ $battery_pct -gt 20 ]]; then
color='yellow'
else
color='red'
fi
- echo "%{$fg[$color]%}[$(battery_pct_remaining)%%]%{$reset_color%}"
+ echo "%{$fg[$color]%}[${battery_pct}%%]%{$reset_color%}"
else
echo "∞"
fi
@@ -93,19 +95,19 @@ elif [[ "$OSTYPE" = freebsd* ]]; then
}
function battery_pct_prompt() {
- local b color
- b=$(battery_pct_remaining)
+ local battery_pct color
+ battery_pct=$(battery_pct_remaining)
if battery_is_charging; then
echo "∞"
else
- if [[ $b -gt 50 ]]; then
+ if [[ $battery_pct -gt 50 ]]; then
color='green'
- elif [[ $b -gt 20 ]]; then
+ elif [[ $battery_pct -gt 20 ]]; then
color='yellow'
else
color='red'
fi
- echo "%{$fg[$color]%}$(battery_pct_remaining)%%%{$reset_color%}"
+ echo "%{$fg[$color]%}${battery_pct}%%%{$reset_color%}"
fi
}
@@ -136,19 +138,19 @@ elif [[ "$OSTYPE" = linux* ]]; then
}
function battery_pct_prompt() {
- local b color
- b=$(battery_pct_remaining)
+ local battery_pct color
+ battery_pct=$(battery_pct_remaining)
if battery_is_charging; then
echo "∞"
else
- if [[ $b -gt 50 ]]; then
+ if [[ $battery_pct -gt 50 ]]; then
color='green'
- elif [[ $b -gt 20 ]]; then
+ elif [[ $battery_pct -gt 20 ]]; then
color='yellow'
else
color='red'
fi
- echo "%{$fg[$color]%}$(battery_pct_remaining)%%%{$reset_color%}"
+ echo "%{$fg[$color]%}${battery_pct}%%%{$reset_color%}"
fi
}
From b72607bc8e83c9ffc02409ae8a7fed6a8866e022 Mon Sep 17 00:00:00 2001
From: Yahav Itzhak
Date: Tue, 25 Feb 2020 13:00:25 +0200
Subject: [PATCH 287/302] Add JFrog CLI plugin (#8250)
---
plugins/jfrog/README.md | 11 +++++++++++
plugins/jfrog/jfrog.plugin.zsh | 10 ++++++++++
2 files changed, 21 insertions(+)
create mode 100644 plugins/jfrog/README.md
create mode 100644 plugins/jfrog/jfrog.plugin.zsh
diff --git a/plugins/jfrog/README.md b/plugins/jfrog/README.md
new file mode 100644
index 000000000..1d858620b
--- /dev/null
+++ b/plugins/jfrog/README.md
@@ -0,0 +1,11 @@
+# JFrog CLI
+
+This plugin provides completion for [JFrog CLI](https://github.com/jfrog/jfrog-cli).
+
+JFrog CLI provides a simple interface that automates access to [Artifactory](https://jfrog.com/artifactory), [Xray](https://jfrog.com/xray), [Bintray](https://jfrog.com/bintray) and [Mission Control](https://jfrog.com/mission-control) through their respective REST APIs.
+
+To use it, add `jfrog` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... jfrog)
+```
diff --git a/plugins/jfrog/jfrog.plugin.zsh b/plugins/jfrog/jfrog.plugin.zsh
new file mode 100644
index 000000000..064ffa2db
--- /dev/null
+++ b/plugins/jfrog/jfrog.plugin.zsh
@@ -0,0 +1,10 @@
+_jfrog() {
+ local -a opts
+ opts=("${(@f)$(_CLI_ZSH_AUTOCOMPLETE_HACK=1 ${words[@]:0:#words[@]-1} --generate-bash-completion)}")
+ _describe 'values' opts
+ if [[ $compstate[nmatches] -eq 0 && $words[$CURRENT] != -* ]]; then
+ _files
+ fi
+}
+
+compdef _jfrog jfrog
\ No newline at end of file
From d959283898f4c969579346a6d3596d9dd8fa3532 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Tue, 25 Feb 2020 12:21:06 +0100
Subject: [PATCH 288/302] avit: fix prompt sequence (fixes #8678)
---
themes/avit.zsh-theme | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/themes/avit.zsh-theme b/themes/avit.zsh-theme
index 51701572b..0261f0ff3 100644
--- a/themes/avit.zsh-theme
+++ b/themes/avit.zsh-theme
@@ -7,9 +7,9 @@ typeset +H _hist_no="%{$fg[grey]%}%h%{$reset_color%}"
PROMPT='
$(_user_host)${_current_dir} $(git_prompt_info) $(ruby_prompt_info)
-%{%F{%(!.red.white)}%}▶%{$resetcolor%} '
+%{%(!.%F{red}.%F{white})%}▶%{$resetcolor%} '
-PROMPT2='%{%F{%(!.red.white)}%}◀%{$reset_color%} '
+PROMPT2='%{%(!.%F{red}.%F{white})%}◀%{$reset_color%} '
RPROMPT='$(vi_mode_prompt_info)%{$(echotc UP 1)%}$(_git_time_since_commit) $(git_prompt_status) ${_return_status}%{$(echotc DO 1)%}'
From 3e9e385d98da148a7ad8e8d99da35ce6b7aae9ca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Tue, 25 Feb 2020 15:41:17 +0100
Subject: [PATCH 289/302] battery: remove redundant grep calls in battery_pct
function
---
plugins/battery/battery.plugin.zsh | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/plugins/battery/battery.plugin.zsh b/plugins/battery/battery.plugin.zsh
index 857ab6e8c..4c4d0d4fc 100644
--- a/plugins/battery/battery.plugin.zsh
+++ b/plugins/battery/battery.plugin.zsh
@@ -18,11 +18,10 @@ if [[ "$OSTYPE" = darwin* ]]; then
}
function battery_pct() {
- local smart_battery_status="$(ioreg -rc AppleSmartBattery)"
- local -F maxcapacity=$(command grep '^.*"MaxCapacity"\ =\ ' <<< $smart_battery_status | sed -e 's/^.*"MaxCapacity"\ =\ //')
- local -F currentcapacity=$(command grep '^.*"CurrentCapacity"\ =\ ' <<< $smart_battery_status | sed -e 's/^.*CurrentCapacity"\ =\ //')
- local -i pct=$(( (currentcapacity/maxcapacity) * 100 ))
- echo $pct
+ local battery_status="$(ioreg -rc AppleSmartBattery)"
+ local -i capacity=$(sed -n -e '/MaxCapacity/s/^.*"MaxCapacity"\ =\ //p' <<< $battery_status)
+ local -i current=$(sed -n -e '/CurrentCapacity/s/^.*"CurrentCapacity"\ =\ //p' <<< $battery_status)
+ echo $(( current * 100 / capacity ))
}
function battery_pct_remaining() {
From 609890847d3e3b222431952ee7be99803bd16ccc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Tue, 25 Feb 2020 22:23:37 +0100
Subject: [PATCH 290/302] npm: hardcode completion function and delete cached
one (#8679)
Fixes #8665
---
plugins/npm/npm.plugin.zsh | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/plugins/npm/npm.plugin.zsh b/plugins/npm/npm.plugin.zsh
index f62174a4f..87c68f3fb 100644
--- a/plugins/npm/npm.plugin.zsh
+++ b/plugins/npm/npm.plugin.zsh
@@ -1,14 +1,16 @@
(( $+commands[npm] )) && {
- __NPM_COMPLETION_FILE="${ZSH_CACHE_DIR:-$ZSH/cache}/npm_completion"
+ rm -f "${ZSH_CACHE_DIR:-$ZSH/cache}/npm_completion"
- if [[ ! -f $__NPM_COMPLETION_FILE ]]; then
- npm completion >! $__NPM_COMPLETION_FILE 2>/dev/null
- [[ $? -ne 0 ]] && rm -f $__NPM_COMPLETION_FILE
- fi
-
- [[ -f $__NPM_COMPLETION_FILE ]] && source $__NPM_COMPLETION_FILE
-
- unset __NPM_COMPLETION_FILE
+ _npm_completion() {
+ local si=$IFS
+ compadd -- $(COMP_CWORD=$((CURRENT-1)) \
+ COMP_LINE=$BUFFER \
+ COMP_POINT=0 \
+ npm completion -- "${words[@]}" \
+ 2>/dev/null)
+ IFS=$si
+ }
+ compdef _npm_completion npm
}
# Install dependencies globally
From 1a880fdb9b88c0c98a23d7b2ed2ddb42caef6662 Mon Sep 17 00:00:00 2001
From: Michael Dorst
Date: Tue, 25 Feb 2020 13:42:39 -0800
Subject: [PATCH 291/302] installer: add option to install without replacing
.zshrc (#8209)
* Add option to install OMZ without replacing .zshrc
tools/install.sh respects REPLACE_RC environment variable
--noreplace-rc flag sets REPLACE_RC='no'
* Change REPLACE_RC=no to KEEP_ZSHRC=yes
Change --noreplace-rc to --keep-zshrc
---
tools/install.sh | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/tools/install.sh b/tools/install.sh
index bdf9f18e9..08f3db1e3 100755
--- a/tools/install.sh
+++ b/tools/install.sh
@@ -20,12 +20,14 @@
# BRANCH - branch to check out immediately after install (default: master)
#
# Other options:
-# CHSH - 'no' means the installer will not change the default shell (default: yes)
-# RUNZSH - 'no' means the installer will not run zsh after the install (default: yes)
+# CHSH - 'no' means the installer will not change the default shell (default: yes)
+# RUNZSH - 'no' means the installer will not run zsh after the install (default: yes)
+# KEEP_ZSHRC - 'yes' means the installer will not replace an existing .zshrc (default: no)
#
# You can also pass some arguments to the install script to set some these options:
# --skip-chsh: has the same behavior as setting CHSH to 'no'
# --unattended: sets both CHSH and RUNZSH to 'no'
+# --keep-zshrc: sets KEEP_ZSHRC to 'yes'
# For example:
# sh install.sh --unattended
#
@@ -40,6 +42,7 @@ BRANCH=${BRANCH:-master}
# Other options
CHSH=${CHSH:-yes}
RUNZSH=${RUNZSH:-yes}
+KEEP_ZSHRC=${KEEP_ZSHRC:-no}
command_exists() {
@@ -111,6 +114,11 @@ setup_zshrc() {
# Must use this exact name so uninstall.sh can find it
OLD_ZSHRC=~/.zshrc.pre-oh-my-zsh
if [ -f ~/.zshrc ] || [ -h ~/.zshrc ]; then
+ # Skip this if the user doesn't want to replace an existing .zshrc
+ if [ $KEEP_ZSHRC = yes ]; then
+ echo "${YELLOW}Found ~/.zshrc.${RESET} ${GREEN}Keeping...${RESET}"
+ return
+ fi
if [ -e "$OLD_ZSHRC" ]; then
OLD_OLD_ZSHRC="${OLD_ZSHRC}-$(date +%Y-%m-%d_%H-%M-%S)"
if [ -e "$OLD_OLD_ZSHRC" ]; then
@@ -227,6 +235,7 @@ main() {
case $1 in
--unattended) RUNZSH=no; CHSH=no ;;
--skip-chsh) CHSH=no ;;
+ --keep-zshrc) KEEP_ZSHRC=yes ;;
esac
shift
done
From 01bfb57446fdc77e8b4ae696729688284392c0e6 Mon Sep 17 00:00:00 2001
From: wallace11 <11wallace11@gmail.com>
Date: Thu, 27 Feb 2020 00:59:59 +0900
Subject: [PATCH 292/302] zsh-interactive-cd: add vi-mode support (#8681)
---
plugins/zsh-interactive-cd/zsh-interactive-cd.plugin.zsh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/plugins/zsh-interactive-cd/zsh-interactive-cd.plugin.zsh b/plugins/zsh-interactive-cd/zsh-interactive-cd.plugin.zsh
index 0f15aeef0..b0520c239 100644
--- a/plugins/zsh-interactive-cd/zsh-interactive-cd.plugin.zsh
+++ b/plugins/zsh-interactive-cd/zsh-interactive-cd.plugin.zsh
@@ -144,4 +144,5 @@ zic-completion() {
}
zle -N zic-completion
-bindkey '^I' zic-completion
+bindkey -M emacs '^I' zic-completion
+bindkey -M viins '^I' zic-completion
From 6cb8ff391d0258434485dbe246f9885ba85cf839 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Thu, 27 Feb 2020 15:21:10 +0100
Subject: [PATCH 293/302] vagrant: document aliases
---
plugins/vagrant/README.md | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/plugins/vagrant/README.md b/plugins/vagrant/README.md
index f6ea87b0e..331bfa143 100644
--- a/plugins/vagrant/README.md
+++ b/plugins/vagrant/README.md
@@ -8,3 +8,33 @@ To use it, add `vagrant` to the plugins array in your zshrc file:
plugins=(... vagrant)
```
+## Aliases
+
+| Alias | Command |
+|---------|------------------------------|
+| `vgi` | `vagrant init` |
+| `vup` | `vagrant up` |
+| `vd` | `vagrant destroy` |
+| `vdf` | `vagrant destroy -f` |
+| `vssh` | `vagrant ssh` |
+| `vsshc` | `vagrant ssh-config` |
+| `vrdp` | `vagrant rdp` |
+| `vh` | `vagrant halt` |
+| `vssp` | `vagrant suspend` |
+| `vst` | `vagrant status` |
+| `vre` | `vagrant resume` |
+| `vgs` | `vagrant global-status` |
+| `vpr` | `vagrant provision` |
+| `vr` | `vagrant reload` |
+| `vrp` | `vagrant reload --provision` |
+| `vp` | `vagrant push` |
+| `vsh` | `vagrant share` |
+| `vba` | `vagrant box add` |
+| `vbr` | `vagrant box remove` |
+| `vbl` | `vagrant box list` |
+| `vbo` | `vagrant box outdated` |
+| `vbu` | `vagrant box update` |
+| `vpli` | `vagrant plugin install` |
+| `vpll` | `vagrant plugin list` |
+| `vplun` | `vagrant plugin uninstall` |
+| `vplu` | `vagrant plugin update` |
From bccfe1389c97379388a148b3a48a63d7272ec017 Mon Sep 17 00:00:00 2001
From: Mauricio Wolff
Date: Fri, 28 Feb 2020 03:06:20 +1100
Subject: [PATCH 294/302] updater: add --autostash to git pull (#7172)
If I have custom configs (like theme customizations) I have to stash my changes and get them back after the update.
By adding the --autostash on upgrade.sh, if I have any changes not commited they'll be reapplied after the upgrade, allowing me to have temporary customizations without any harm to the upgrade process.
---
tools/upgrade.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/upgrade.sh b/tools/upgrade.sh
index 3005e6542..0dc84e214 100644
--- a/tools/upgrade.sh
+++ b/tools/upgrade.sh
@@ -38,7 +38,7 @@ if [ -n "$remote" ]; then
fi
printf "${BLUE}%s${NORMAL}\n" "Updating Oh My Zsh"
-if git pull --rebase --stat origin master
+if git pull --rebase --autostash --stat origin master
then
printf '%s' "$GREEN"
printf '%s\n' ' __ __ '
From 6b54302b90720437300967b3506bffe00a3e243c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20B=C4=9Blohl=C3=A1vek?=
Date: Fri, 20 Jan 2017 11:05:01 +0100
Subject: [PATCH 295/302] python: add alias to run the proper IPython based on
virtualenv
Current state: a user invokes `ipython` and is provided with the IPython
instance regarding the `$PATH`.
Proposed state: a user invokes `ipython` (which is a new alias in the
*python plugin*) and is provided with the proper IPython instance regarding
the currently activated virtualenv.
Example: the user's default Python is 2.7 with installed IPython 2.7. User
activates Python 3.5 virtualenv where he installs IPython 3.5. After
activating the environment, one expects `ipython` to run the version 3.5,
which does not happen by default. Instead, IPython 2.7 is used, which in
counter-intuitive and often causes problem.
Closes #5797
---
plugins/python/README.md | 1 +
plugins/python/python.plugin.zsh | 2 ++
2 files changed, 3 insertions(+)
diff --git a/plugins/python/README.md b/plugins/python/README.md
index 2d955c5cb..e391bcfd4 100644
--- a/plugins/python/README.md
+++ b/plugins/python/README.md
@@ -14,3 +14,4 @@ plugins=(... python)
| `pyfind` | Finds .py files recursively in the current directory |
| `pyclean [dirs]` | Deletes byte-code and cache files from a list of directories or the current one |
| `pygrep ` | Looks for `text` in .py files |
+| `ipython` | Runs the appropriate `ipython` version according to the activated virtualenv |
diff --git a/plugins/python/python.plugin.zsh b/plugins/python/python.plugin.zsh
index f39cd80b7..62855fca2 100644
--- a/plugins/python/python.plugin.zsh
+++ b/plugins/python/python.plugin.zsh
@@ -14,3 +14,5 @@ function pyclean() {
# Grep among .py files
alias pygrep='grep -r --include="*.py"'
+# Run proper IPython regarding current virtualenv (if any)
+alias ipython="python -c 'import IPython; IPython.terminal.ipapp.launch_new_instance()'"
From 011c7153d589b52eb1d48fdf22d4f1438449be2b Mon Sep 17 00:00:00 2001
From: Ciacho
Date: Wed, 27 Jan 2016 21:39:53 +0100
Subject: [PATCH 296/302] nmap: add alias for ICMP scan (#4807)
Closes #4807
---
plugins/nmap/README.md | 54 +++++++++++++++---------------------
plugins/nmap/nmap.plugin.zsh | 2 +-
2 files changed, 23 insertions(+), 33 deletions(-)
diff --git a/plugins/nmap/README.md b/plugins/nmap/README.md
index 5cd646277..0a60068c2 100644
--- a/plugins/nmap/README.md
+++ b/plugins/nmap/README.md
@@ -1,37 +1,27 @@
-# Nmap aliases plugin
+# Nmap plugin
-Adds some useful aliases for nmap similar to the profiles in zenmap.
+Adds some useful aliases for [Nmap](https://nmap.org/) similar to the profiles in zenmap.
-Nmap options are:
- * -sS - TCP SYN scan
- * -v - verbose
- * -T1 - timing of scan. Options are paranoid (0), sneaky (1), polite (2), normal (3), aggressive (4), and insane (5)
- * -sF - FIN scan (can sneak through non-stateful firewalls)
- * -PE - ICMP echo discovery probe
- * -PP - timestamp discovery probe
- * -PY - SCTP init ping
- * -g - use given number as source port
- * -A - enable OS detection, version detection, script scanning, and traceroute (aggressive)
- * -O - enable OS detection
- * -sA - TCP ACK scan
- * -F - fast scan
- * --script=vulscan - also access vulnerabilities in target
+To use it, add `nmap` to the plugins array in your zshrc file:
-## Aliases explained
+```zsh
+plugins=(... nmap)
+```
- * nmap_open_ports - Scan for open ports on target
- * nmap_list_interfaces - List all network interfaces on host where the command runs
- * nmap_slow - Slow scan that avoids to spam the targets logs
- * nmap_fin - Scan to see if hosts are up with TCP FIN scan
- * nmap_full - Aggressive full scan that scans all ports, tries to determine OS and service versions
- * nmap_check_for_firewall - TCP ACK scan to check for firewall existence
- * nmap_ping_through_firewall - Host discovery with SYN and ACK probes instead of just pings to avoid firewall
- restrictions
- * nmap_fast - Fast scan of the top 300 popular ports
- * nmap_detect_versions - Detects versions of services and OS, runs on all ports
- * nmap_check_for_vulns - Uses vulscan script to check target services for vulnerabilities
- * nmap_full_udp - Same as full but via UDP
- * nmap_traceroute - Try to traceroute using the most common ports
- * nmap_full_with_scripts - Same as nmap_full but also runs all the scripts
- * nmap_web_safe_osscan - Little "safer" scan for OS version as connecting to only HTTP and HTTPS ports doesn't look so attacking.
+## Aliases
+- `nmap_open_ports`: scan for open ports on target.
+- `nmap_list_interfaces`: list all network interfaces on host where the command runs.
+- `nmap_slow`: slow scan that avoids to spam the targets logs.
+- `nmap_fin`: scan to see if hosts are up with TCP FIN scan.
+- `nmap_full`: aggressive full scan that scans all ports, tries to determine OS and service versions.
+- `nmap_check_for_firewall`: TCP ACK scan to check for firewall existence.
+- `nmap_ping_through_firewall`: host discovery with SYN and ACK probes instead of just pings to avoid firewall restrictions.
+- `nmap_fast`: fast scan of the top 300 popular ports.
+- `nmap_detect_versions`: detects versions of services and OS, runs on all ports.
+- `nmap_check_for_vulns`: uses vulscan script to check target services for vulnerabilities.
+- `nmap_full_udp`: same as full but via UDP.
+- `nmap_traceroute`: try to traceroute using the most common ports.
+- `nmap_full_with_scripts`: same as nmap_full but also runs all the scripts.
+- `nmap_web_safe_osscan`: little "safer" scan for OS version as connecting to only HTTP and HTTPS ports doesn't look so attacking.
+- `nmap_ping_scan`: ICMP scan for active hosts.
diff --git a/plugins/nmap/nmap.plugin.zsh b/plugins/nmap/nmap.plugin.zsh
index 8c691bdaa..406870f00 100644
--- a/plugins/nmap/nmap.plugin.zsh
+++ b/plugins/nmap/nmap.plugin.zsh
@@ -29,4 +29,4 @@ alias nmap_full_udp="sudo nmap -sS -sU -T4 -A -v -PE -PS22,25,80 -PA21,23,80,443
alias nmap_traceroute="sudo nmap -sP -PE -PS22,25,80 -PA21,23,80,3389 -PU -PO --traceroute "
alias nmap_full_with_scripts="sudo nmap -sS -sU -T4 -A -v -PE -PP -PS21,22,23,25,80,113,31339 -PA80,113,443,10042 -PO --script all "
alias nmap_web_safe_osscan="sudo nmap -p 80,443 -O -v --osscan-guess --fuzzy "
-
+alias nmap_ping_scan="nmap -n -sP"
From dbd2f77bd9c13f017550ee6dae37ff95a2c3d183 Mon Sep 17 00:00:00 2001
From: Julian Parsert
Date: Thu, 27 Feb 2020 17:28:08 +0000
Subject: [PATCH 297/302] norm: add hg prompt (#6725)
---
themes/norm.zsh-theme | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/themes/norm.zsh-theme b/themes/norm.zsh-theme
index 13077ccf5..bd7ca568a 100644
--- a/themes/norm.zsh-theme
+++ b/themes/norm.zsh-theme
@@ -1,4 +1,7 @@
-PROMPT='%{$fg[yellow]%}λ %m %{$fg[green]%}%c %{$fg[yellow]%}→ $(git_prompt_info)%{$reset_color%}'
+PROMPT='%{$fg[yellow]%}λ %m %{$fg[green]%}%c %{$fg[yellow]%}→ $(git_prompt_info)$(hg_prompt_info)%{$reset_color%}'
ZSH_THEME_GIT_PROMPT_PREFIX="λ %{$fg[blue]%}git %{$fg[red]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$fg[yellow]%} → %{$reset_color%}"
+ZSH_THEME_HG_PROMPT_PREFIX="λ %{$fg[blue]%}hg %{$fg[red]%}"
+ZSH_THEME_HG_PROMPT_SUFFIX="%{$fg[yellow]%} → %{$reset_color%}"
+
From 573901dd46d657c4c3d14f6e03a85f1522fb299b Mon Sep 17 00:00:00 2001
From: Adrien Plazas
Date: Thu, 27 Feb 2020 18:45:53 +0100
Subject: [PATCH 298/302] jhbuild: add shell alias (#3707)
This adds "jhsh" as an alias for "jhbuild shell" to the JHBuild plugin.
---
plugins/jhbuild/jhbuild.plugin.zsh | 2 ++
1 file changed, 2 insertions(+)
diff --git a/plugins/jhbuild/jhbuild.plugin.zsh b/plugins/jhbuild/jhbuild.plugin.zsh
index fed1bc9fc..05e56039d 100644
--- a/plugins/jhbuild/jhbuild.plugin.zsh
+++ b/plugins/jhbuild/jhbuild.plugin.zsh
@@ -23,6 +23,8 @@ alias jhu='jhbuild update'
alias jhuo='jhbuild updateone'
# Uninstall
alias jhun='jhbuild uninstall'
+# Shell
+alias jhsh='jhbuild shell'
From ee7a9f6fe679239f7c21f32df135f9c79b606336 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Miguel=20Vaello=20Mart=C3=ADnez?=
Date: Thu, 30 Jun 2016 12:25:00 +0200
Subject: [PATCH 299/302] jhbuild: add some missing commands and update README
(#5195)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Commands: make, tinderbox.
Closes #5195
Co-authored-by: Marc Cornellà
---
plugins/jhbuild/README.md | 34 ++++++++++++++++++++++++++++--
plugins/jhbuild/jhbuild.plugin.zsh | 14 ++++++------
2 files changed, 40 insertions(+), 8 deletions(-)
diff --git a/plugins/jhbuild/README.md b/plugins/jhbuild/README.md
index 910526966..3220e0daf 100644
--- a/plugins/jhbuild/README.md
+++ b/plugins/jhbuild/README.md
@@ -1,4 +1,34 @@
-## JHBuild
+# JHBuild
+
+This plugin adds some [JHBuild](https://developer.gnome.org/jhbuild/) aliases.
+
+To use it, add `jhbuild` to the plugins array of your zshrc file:
+
+```zsh
+plugins=(... jhbuild)
+```
+
**Maintainer:** [Miguel Vaello](https://github.com/miguxbe)
-This plugin adds some jhbuild aliases and increase the completion function provided by zsh.
+## Aliases
+
+| Alias | Command |
+|---------|---------------------------|
+| `jh` | `jhbuild` |
+| `jhb` | `jhbuild build` |
+| `jhbo` | `jhbuild buildone` |
+| `jhckb` | `jhbuild checkbranches` |
+| `jhckm` | `jhbuild checkmodulesets` |
+| `jhi` | `jhbuild info` |
+| `jhl` | `jhbuild list` |
+| `jhc` | `jhbuild clean` |
+| `jhco` | `jhbuild cleanone` |
+| `jhm` | `jhbuild make` |
+| `jhr` | `jhbuild run` |
+| `jhrd` | `jhbuild rdepends` |
+| `jhsd` | `jhbuild sysdeps` |
+| `jhu` | `jhbuild update` |
+| `jhuo` | `jhbuild updateone` |
+| `jhun` | `jhbuild uninstall` |
+| `jhsh` | `jhbuild shell` |
+| `jht` | `jhbuild tinderbox` |
diff --git a/plugins/jhbuild/jhbuild.plugin.zsh b/plugins/jhbuild/jhbuild.plugin.zsh
index 05e56039d..416745d27 100644
--- a/plugins/jhbuild/jhbuild.plugin.zsh
+++ b/plugins/jhbuild/jhbuild.plugin.zsh
@@ -1,5 +1,6 @@
-# Aliases
-#
+# JHBuild Aliases
+
+# Base
alias jh='jhbuild'
# Build
alias jhb='jhbuild build'
@@ -7,12 +8,14 @@ alias jhbo='jhbuild buildone'
# Checks
alias jhckb='jhbuild checkbranches'
alias jhckm='jhbuild checkmodulesets'
-# Info & list
+# Info & List
alias jhi='jhbuild info'
alias jhl='jhbuild list'
# Clean
alias jhc='jhbuild clean'
alias jhco='jhbuild cleanone'
+# Make
+alias jhm='jhbuild make'
# Run
alias jhr='jhbuild run'
# Depends
@@ -25,6 +28,5 @@ alias jhuo='jhbuild updateone'
alias jhun='jhbuild uninstall'
# Shell
alias jhsh='jhbuild shell'
-
-
-
+# Tinderbox
+alias jht='jhbuild tinderbox'
From 79fff1ee492a2c4d8ab09678bd5e7440cfbf03dd Mon Sep 17 00:00:00 2001
From: Guillermo del Fresno
Date: Thu, 27 Feb 2020 14:55:14 -0300
Subject: [PATCH 300/302] macports: add rdeps and rdependents completion
(#4717)
---
plugins/macports/_port | 2 ++
1 file changed, 2 insertions(+)
diff --git a/plugins/macports/_port b/plugins/macports/_port
index 06d7fb426..6a9ebe0c6 100644
--- a/plugins/macports/_port
+++ b/plugins/macports/_port
@@ -41,6 +41,8 @@ subcmds=(
'patch'
'pkg'
'provides'
+'rdependents'
+'rdeps'
'rpmpackage'
'search'
'selfupdate'
From 2c0315dba4297ec2e87d6f503a6d907c33f51958 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?=
Date: Thu, 27 Feb 2020 19:26:03 +0100
Subject: [PATCH 301/302] ng: refactor README
---
plugins/ng/README.md | 37 +++++--------------------------------
1 file changed, 5 insertions(+), 32 deletions(-)
diff --git a/plugins/ng/README.md b/plugins/ng/README.md
index 94a450c18..29ac15aa4 100644
--- a/plugins/ng/README.md
+++ b/plugins/ng/README.md
@@ -1,37 +1,10 @@
-## NG Plugin
+# ng plugin
-This [ng plugin](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/ng)
- adds completion support for Angular's CLI (named ng).
+This plugin adds autocompletion support for [Angular's CLI](https://github.com/angular/angular-cli)
+(named `ng`).
-Ng is hosted on [ng home](https://github.com/catull/angular-cli)
-
-It is used to generate Angular 2 app "stubs", build those apps, configure them,
-test them, lint them etc.
-
-Ahem, "stubs" is not what Angular engineers refer to the items ng can generate
-for you.
-
-"Stubs" can be any one of:
-- class
-- component
-- directive
-- enum
-- module
-- pipe
-- route
-- service
-
-At the moment, `ng completion` creates a very rough completion for Zsh and
-Bash.
-
-It is missing most of the options and a few arguments.
-In future, this plugin may be shortened to simply being
+To use it, add `ng` to the plugins array of your zshrc file:
```zsh
-eval `ng completion`
+plugins=(... ng)
```
-
-There is hope this materialises in the 21st century.
-
-### CONTRIBUTOR
- - Carlo Dapor ([catull](https://github.com/catull))
From 368198b7616eb69b396de86d9ec4ff0f35bd72f0 Mon Sep 17 00:00:00 2001
From: Chai Feng
Date: Fri, 28 Feb 2020 05:47:06 +0800
Subject: [PATCH 302/302] Fix an issue with escape characters (#7979)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Co-authored-by: Francisco de Zuviría
---
plugins/copybuffer/copybuffer.plugin.zsh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/plugins/copybuffer/copybuffer.plugin.zsh b/plugins/copybuffer/copybuffer.plugin.zsh
index cc205d40f..483ed5a5f 100644
--- a/plugins/copybuffer/copybuffer.plugin.zsh
+++ b/plugins/copybuffer/copybuffer.plugin.zsh
@@ -1,9 +1,9 @@
# copy the active line from the command line buffer
-# onto the system clipboard (requires clipcopy plugin)
+# onto the system clipboard
copybuffer () {
if which clipcopy &>/dev/null; then
- echo $BUFFER | clipcopy
+ printf "%s" "$BUFFER" | clipcopy
else
echo "clipcopy function not found. Please make sure you have Oh My Zsh installed correctly."
fi