mirror of
https://github.com/nushell/nushell.git
synced 2024-12-23 23:49:44 +01:00
properly convert env for buffer editor (#11636)
<!-- if this PR closes one or more issues, you can automatically link the PR with them by using one of the [*linking keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword), e.g. - this PR should close #xxxx - fixes #xxxx you can also mention related issues, PRs or discussions! --> # Description environment variables were not correctly passed to `buffer_editor`. Previously the conversion (if you can call it that) is incorrectly done by `.as_string()`, which works for the most part, but ignores important things like `PATH`, which are not strings in value form by default (this issue was introduced in #10269, merged in #10535) # User-Facing Changes <!-- List of all changes that impact the user experience here. This helps us keep track of breaking changes. --> # Tests + Formatting <!-- Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass (on Windows make sure to [enable developer mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging)) - `cargo run -- -c "use std testing; testing run-tests --path crates/nu-std"` to run the tests for the standard library > **Note** > from `nushell` you can also use the `toolkit` as follows > ```bash > use toolkit.nu # or use an `env_change` hook to activate it automatically > toolkit check pr > ``` --> # After Submitting <!-- If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. -->
This commit is contained in:
parent
a4809d2f08
commit
cffce7f4b2
@ -11,7 +11,7 @@ use miette::{ErrReport, IntoDiagnostic, Result};
|
|||||||
use nu_cmd_base::util::get_guaranteed_cwd;
|
use nu_cmd_base::util::get_guaranteed_cwd;
|
||||||
use nu_cmd_base::{hook::eval_hook, util::get_editor};
|
use nu_cmd_base::{hook::eval_hook, util::get_editor};
|
||||||
use nu_color_config::StyleComputer;
|
use nu_color_config::StyleComputer;
|
||||||
use nu_engine::convert_env_values;
|
use nu_engine::{convert_env_values, env_to_strings};
|
||||||
use nu_parser::{lex, parse, trim_quotes_str};
|
use nu_parser::{lex, parse, trim_quotes_str};
|
||||||
use nu_protocol::{
|
use nu_protocol::{
|
||||||
config::NuCursorShape,
|
config::NuCursorShape,
|
||||||
@ -300,12 +300,9 @@ pub fn evaluate_repl(
|
|||||||
|
|
||||||
line_editor = if let Ok((cmd, args)) = buffer_editor {
|
line_editor = if let Ok((cmd, args)) = buffer_editor {
|
||||||
let mut command = std::process::Command::new(&cmd);
|
let mut command = std::process::Command::new(&cmd);
|
||||||
command.args(args).envs(
|
command
|
||||||
engine_state
|
.args(args)
|
||||||
.render_env_vars()
|
.envs(env_to_strings(engine_state, stack)?);
|
||||||
.into_iter()
|
|
||||||
.filter_map(|(k, v)| v.as_string().ok().map(|v| (k, v))),
|
|
||||||
);
|
|
||||||
line_editor.with_buffer_editor(command, temp_file.clone())
|
line_editor.with_buffer_editor(command, temp_file.clone())
|
||||||
} else {
|
} else {
|
||||||
line_editor
|
line_editor
|
||||||
|
Loading…
Reference in New Issue
Block a user