summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorromkatv <roman.perepelitsa@gmail.com>2019-11-21 11:24:29 +0300
committerromkatv <roman.perepelitsa@gmail.com>2019-11-21 11:24:29 +0300
commitfdb90994c9ba7863b97621ab75f6e2bd7b9dc530 (patch)
tree66087cbfff8dd2e15be08c2cfb8b990b191f32bf
parent8a759305ddd673160acdd3f5314d85054fc6f655 (diff)
add `p10k reload` and call it from all standard configs
-rw-r--r--config/p10k-classic.zsh4
-rw-r--r--config/p10k-lean.zsh4
-rw-r--r--config/p10k-pure.zsh4
-rw-r--r--config/p10k-rainbow.zsh4
-rw-r--r--internal/configure.zsh2
-rw-r--r--internal/p10k.zsh21
6 files changed, 35 insertions, 4 deletions
diff --git a/config/p10k-classic.zsh b/config/p10k-classic.zsh
index 421e5df9..17ec57a9 100644
--- a/config/p10k-classic.zsh
+++ b/config/p10k-classic.zsh
@@ -912,6 +912,10 @@
# can slow down prompt by 1-2 milliseconds, so it's better to keep it turned off unless you
# really need it.
typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true
+
+ # If p10k is already loaded, reload configuration.
+ # This works even with POWERLEVEL9K_DISABLE_HOT_RELOAD=true.
+ (( ! $+functions[p10k] )) || p10k reload
}
(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]}
diff --git a/config/p10k-lean.zsh b/config/p10k-lean.zsh
index e9b76643..4064bdf7 100644
--- a/config/p10k-lean.zsh
+++ b/config/p10k-lean.zsh
@@ -888,6 +888,10 @@
# can slow down prompt by 1-2 milliseconds, so it's better to keep it turned off unless you
# really need it.
typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true
+
+ # If p10k is already loaded, reload configuration.
+ # This works even with POWERLEVEL9K_DISABLE_HOT_RELOAD=true.
+ (( ! $+functions[p10k] )) || p10k reload
}
(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]}
diff --git a/config/p10k-pure.zsh b/config/p10k-pure.zsh
index ab210957..026eeca9 100644
--- a/config/p10k-pure.zsh
+++ b/config/p10k-pure.zsh
@@ -149,6 +149,10 @@
# can slow down prompt by 1-2 milliseconds, so it's better to keep it turned off unless you
# really need it.
typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true
+
+ # If p10k is already loaded, reload configuration.
+ # This works even with POWERLEVEL9K_DISABLE_HOT_RELOAD=true.
+ (( ! $+functions[p10k] )) || p10k reload
}
(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]}
diff --git a/config/p10k-rainbow.zsh b/config/p10k-rainbow.zsh
index af3bbb22..0b6a5f51 100644
--- a/config/p10k-rainbow.zsh
+++ b/config/p10k-rainbow.zsh
@@ -939,6 +939,10 @@
# can slow down prompt by 1-2 milliseconds, so it's better to keep it turned off unless you
# really need it.
typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true
+
+ # If p10k is already loaded, reload configuration.
+ # This works even with POWERLEVEL9K_DISABLE_HOT_RELOAD=true.
+ (( ! $+functions[p10k] )) || p10k reload
}
(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]}
diff --git a/internal/configure.zsh b/internal/configure.zsh
index eb991ff1..d66bce6e 100644
--- a/internal/configure.zsh
+++ b/internal/configure.zsh
@@ -71,7 +71,7 @@ function p9k_configure() {
)
local ret=$?
case $ret in
- 0) source $__p9k_cfg_path;;
+ 0) source $__p9k_cfg_path; _p9k__force_must_init=1;;
69) return 0;;
*) return $ret;;
esac
diff --git a/internal/p10k.zsh b/internal/p10k.zsh
index a5ea9383..28b33e1f 100644
--- a/internal/p10k.zsh
+++ b/internal/p10k.zsh
@@ -4228,7 +4228,8 @@ _p9k_precmd_impl() {
instant_prompt_disabled=1
else
source "$__p9k_cfg_path"
- _POWERLEVEL9K_DISABLE_HOT_RELOAD=0 _p9k_must_init
+ _p9k__force_must_init=1
+ _p9k_must_init
fi
;;
2)
@@ -4607,6 +4608,7 @@ _p9k_init_vars() {
typeset -gA _p9k__dotnet_stat_cache
typeset -gA _p9k__dir_stat_cache
typeset -gi _p9k__expanded
+ typeset -gi _p9k__force_must_init
typeset -g P9K_VISUAL_IDENTIFIER
typeset -g P9K_CONTENT
@@ -5314,7 +5316,8 @@ _p9k_init_ssh() {
}
_p9k_must_init() {
- (( _POWERLEVEL9K_DISABLE_HOT_RELOAD )) && return 1
+ (( _POWERLEVEL9K_DISABLE_HOT_RELOAD && !_p9k__force_must_init )) && return 1
+ _p9k__force_must_init=0
local IFS sig
if [[ -n $_p9k__param_sig ]]; then
IFS=$'\2' sig="${(e)_p9k__param_pat}"
@@ -5741,6 +5744,7 @@ typeset -gr __p9k_p10k_usage="Usage: %2Fp10k%f %Bcommand%b [options]
Commands:
%Bconfigure%b run interactive configuration wizard
+ %Breload%b reload configuration
%Bsegment%b print a user-defined prompt segment
%Bdisplay%b show, hide or toggle prompt parts
%Bhelp%b print this help message
@@ -5822,6 +5826,10 @@ typeset -gr __p9k_p10k_configure_usage="Usage: %2Fp10k%f %Bconfigure%b
Run interactive configuration wizard."
+typeset -gr __p9k_p10k_reload_usage="Usage: %2Fp10k%f %Breload%b
+
+Reload configuration."
+
typeset -gr __p9k_p10k_finalize_usage="Usage: %2Fp10k%f %Bfinalize%b
Perform the final stage of initialization. Must be called at the very end of zshrc."
@@ -5962,7 +5970,14 @@ function p10k() {
return 1
fi
p9k_configure "$@" || return
- _p9k_deinit
+ ;;
+ reload)
+ if (( ARGC > 1 )); then
+ print -rP -- $__p9k_p10k_reload_usage >&2
+ return 1
+ fi
+ (( $+_p9k__force_must_init )) || return 0
+ _p9k__force_must_init=1
;;
help)
local var=__p9k_p10k_$2_usage