summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMonson Shao <holymonson@gmail.com>2020-07-03 12:16:58 +0800
committerMarc Cornellà <hello@mcornella.com>2021-10-04 16:24:05 +0200
commitbe4a952972de03d501fbff79435ae41594f06bac (patch)
tree7c4889006414d4d26433284c7d0f07b8971dede0
parent56ab66b19429e5609e4331a987368ce2c844c7be (diff)
downloadzsh-be4a952972de03d501fbff79435ae41594f06bac.tar.gz
zsh-be4a952972de03d501fbff79435ae41594f06bac.tar.bz2
zsh-be4a952972de03d501fbff79435ae41594f06bac.zip
feat(cli)!: add `omz reload` command and deprecate `zsh_reload` plugin (#9078)
BREAKING CHANGE: the `zsh_reload` plugin is deprecated. Instead of using its `src` function, use `omz reload` or `exec zsh` to reload zsh after making changes to your `.zshrc` file. Closes #9078
-rw-r--r--lib/cli.zsh12
-rw-r--r--plugins/zsh_reload/README.md22
-rw-r--r--plugins/zsh_reload/zsh_reload.plugin.zsh25
3 files changed, 18 insertions, 41 deletions
diff --git a/lib/cli.zsh b/lib/cli.zsh
index cadc82e27..773891fce 100644
--- a/lib/cli.zsh
+++ b/lib/cli.zsh
@@ -26,6 +26,7 @@ function _omz {
'help:Usage information'
'plugin:Manage plugins'
'pr:Manage Oh My Zsh Pull Requests'
+ 'reload:Reload the current zsh session'
'theme:Manage themes'
'update:Update Oh My Zsh'
)
@@ -159,6 +160,7 @@ Available commands:
changelog Print the changelog
plugin <command> Manage plugins
pr <command> Manage Oh My Zsh Pull Requests
+ reload Reload the current zsh session
theme <command> Manage themes
update Update Oh My Zsh
@@ -598,6 +600,16 @@ function _omz::pr::test {
)
}
+function _omz::reload {
+ # Delete current completion cache
+ command rm -f $_comp_dumpfile $ZSH_COMPDUMP
+
+ # Old zsh versions don't have ZSH_ARGZERO
+ local zsh="${ZSH_ARGZERO:-${functrace[-1]%:*}}"
+ # Check whether to run a login shell
+ [[ "$zsh" = -* || -o login ]] && exec -l "${zsh#-}" || exec "$zsh"
+}
+
function _omz::theme {
(( $# > 0 && $+functions[_omz::theme::$1] )) || {
cat >&2 <<EOF
diff --git a/plugins/zsh_reload/README.md b/plugins/zsh_reload/README.md
index d31a827fe..0b2e2a775 100644
--- a/plugins/zsh_reload/README.md
+++ b/plugins/zsh_reload/README.md
@@ -1,23 +1,3 @@
# zsh_reload plugin
-The zsh_reload plugin defines a function to reload the zsh session with
-just a few keystrokes.
-
-To use it, add `zsh_reload` to the plugins array in your zshrc file:
-
-```zsh
-plugins=(... zsh_reload)
-```
-
-## Usage
-
-To reload the zsh session, just run `src`:
-
-```zsh
-$ vim ~/.zshrc # enabled a plugin
-$ src
-re-compiling /home/user/.zshrc.zwc: succeeded
-re-compiling /home/user/.oh-my-zsh/cache/zcomp-host.zwc: succeeded
-
-# you now have a fresh zsh session. happy hacking!
-```
+**This plugin is deprecated.** Use `omz reload` or `exec zsh` instead.
diff --git a/plugins/zsh_reload/zsh_reload.plugin.zsh b/plugins/zsh_reload/zsh_reload.plugin.zsh
index 0d29a7ce3..6a058ec5e 100644
--- a/plugins/zsh_reload/zsh_reload.plugin.zsh
+++ b/plugins/zsh_reload/zsh_reload.plugin.zsh
@@ -1,22 +1,7 @@
-src() {
- local cache="$ZSH_CACHE_DIR"
- autoload -U compinit zrecompile
- compinit -i -d "$cache/zcomp-$HOST"
-
- for f in ${ZDOTDIR:-~}/.zshrc "$cache/zcomp-$HOST"; do
- zrecompile -p $f && command rm -f $f.zwc.old
- done
+print ${(%):-"%F{yellow}The \`zsh_reload\` plugin is deprecated and will be removed."}
+print ${(%):-"Use \`%Bomz reload%b\` or \`%Bexec zsh%b\` instead.%f"}
- # Use $SHELL if it's available and a zsh shell
- local shell="$ZSH_ARGZERO"
- if [[ "${${SHELL:t}#-}" = zsh ]]; then
- shell="$SHELL"
- fi
-
- # Remove leading dash if login shell and run accordingly
- if [[ "${shell:0:1}" = "-" ]]; then
- exec -l "${shell#-}"
- else
- exec "$shell"
- fi
+src() {
+ print ${(%):-"%F{yellow}$0 is deprecated. Use \`%Bomz reload%b\` or \`%Bexec zsh%b\` instead.%f\n"}
+ omz reload
}