Skip to content

Commit

Permalink
Add support for stacks to have parents
Browse files Browse the repository at this point in the history
This enables the REPL loop to minimize environment variable cloning.

Use mutexes instead

extra fixes

fix up rebase-related errors

Make sure to drop all the stack references properly
  • Loading branch information
Raphael Gaschignard authored and rtpg committed Jan 28, 2024
1 parent 859f7b3 commit 0db4ee9
Show file tree
Hide file tree
Showing 4 changed files with 217 additions and 69 deletions.
18 changes: 7 additions & 11 deletions crates/nu-cli/src/prompt_update.rs
Original file line number Diff line number Diff line change
Expand Up @@ -99,12 +99,10 @@ fn get_prompt_string(
pub(crate) fn update_prompt(
config: &Config,
engine_state: &EngineState,
stack: &Stack,
stack: &mut Stack,
nu_prompt: &mut NushellPrompt,
) {
let mut stack = stack.clone();

let left_prompt_string = get_prompt_string(PROMPT_COMMAND, config, engine_state, &mut stack);
let left_prompt_string = get_prompt_string(PROMPT_COMMAND, config, engine_state, stack);

// Now that we have the prompt string lets ansify it.
// <133 A><prompt><133 B><command><133 C><command output>
Expand All @@ -120,20 +118,18 @@ pub(crate) fn update_prompt(
left_prompt_string
};

let right_prompt_string =
get_prompt_string(PROMPT_COMMAND_RIGHT, config, engine_state, &mut stack);
let right_prompt_string = get_prompt_string(PROMPT_COMMAND_RIGHT, config, engine_state, stack);

let prompt_indicator_string =
get_prompt_string(PROMPT_INDICATOR, config, engine_state, &mut stack);
let prompt_indicator_string = get_prompt_string(PROMPT_INDICATOR, config, engine_state, stack);

let prompt_multiline_string =
get_prompt_string(PROMPT_MULTILINE_INDICATOR, config, engine_state, &mut stack);
get_prompt_string(PROMPT_MULTILINE_INDICATOR, config, engine_state, stack);

let prompt_vi_insert_string =
get_prompt_string(PROMPT_INDICATOR_VI_INSERT, config, engine_state, &mut stack);
get_prompt_string(PROMPT_INDICATOR_VI_INSERT, config, engine_state, stack);

let prompt_vi_normal_string =
get_prompt_string(PROMPT_INDICATOR_VI_NORMAL, config, engine_state, &mut stack);
get_prompt_string(PROMPT_INDICATOR_VI_NORMAL, config, engine_state, stack);

// apply the other indicators
nu_prompt.update_all_prompt_strings(
Expand Down
Loading

0 comments on commit 0db4ee9

Please sign in to comment.