mirror of
https://github.com/nushell/nushell.git
synced 2025-08-18 20:58:41 +02:00
refactor: run env_change
hooks before pre_prompt
hooks (#16356)
Change the order of hook evaluations, run `env_change` before `pre_prompt`. New order of execution is: `env_change` -> `pre_prompt` -> `PROMPT_COMMAND`
This commit is contained in:
@@ -325,7 +325,19 @@ fn loop_iteration(ctx: LoopContext) -> (bool, Stack, Reedline) {
|
|||||||
perf!("reset signals", start_time, use_color);
|
perf!("reset signals", start_time, use_color);
|
||||||
|
|
||||||
start_time = std::time::Instant::now();
|
start_time = std::time::Instant::now();
|
||||||
// Right before we start our prompt and take input from the user, fire the "pre_prompt" hook
|
// Check all the environment variables they ask for
|
||||||
|
// fire the "env_change" hook
|
||||||
|
if let Err(error) = hook::eval_env_change_hook(
|
||||||
|
&engine_state.get_config().hooks.env_change.clone(),
|
||||||
|
engine_state,
|
||||||
|
&mut stack,
|
||||||
|
) {
|
||||||
|
report_shell_error(engine_state, &error)
|
||||||
|
}
|
||||||
|
perf!("env-change hook", start_time, use_color);
|
||||||
|
|
||||||
|
start_time = std::time::Instant::now();
|
||||||
|
// Next, right before we start our prompt and take input from the user, fire the "pre_prompt" hook
|
||||||
if let Err(err) = hook::eval_hooks(
|
if let Err(err) = hook::eval_hooks(
|
||||||
engine_state,
|
engine_state,
|
||||||
&mut stack,
|
&mut stack,
|
||||||
@@ -337,18 +349,6 @@ fn loop_iteration(ctx: LoopContext) -> (bool, Stack, Reedline) {
|
|||||||
}
|
}
|
||||||
perf!("pre-prompt hook", start_time, use_color);
|
perf!("pre-prompt hook", start_time, use_color);
|
||||||
|
|
||||||
start_time = std::time::Instant::now();
|
|
||||||
// Next, check all the environment variables they ask for
|
|
||||||
// fire the "env_change" hook
|
|
||||||
if let Err(error) = hook::eval_env_change_hook(
|
|
||||||
&engine_state.get_config().hooks.env_change.clone(),
|
|
||||||
engine_state,
|
|
||||||
&mut stack,
|
|
||||||
) {
|
|
||||||
report_shell_error(engine_state, &error)
|
|
||||||
}
|
|
||||||
perf!("env-change hook", start_time, use_color);
|
|
||||||
|
|
||||||
let engine_reference = Arc::new(engine_state.clone());
|
let engine_reference = Arc::new(engine_state.clone());
|
||||||
let config = stack.get_config(engine_state);
|
let config = stack.get_config(engine_state);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user