mirror of
https://github.com/nushell/nushell.git
synced 2025-06-05 01:26:42 +02:00
<!-- 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 <!-- Thank you for improving Nushell. Please, check our [contributing guide](../CONTRIBUTING.md) and talk to the core team before making major changes. Description of your pull request goes here. **Provide examples and/or screenshots** if your changes affect the user experience. --> Move `ansi link` from extra to default feature, close #10792 # 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. -->
122 lines
2.8 KiB
Rust
122 lines
2.8 KiB
Rust
mod bits;
|
|
mod conversions;
|
|
mod filters;
|
|
mod formats;
|
|
mod math;
|
|
mod platform;
|
|
mod strings;
|
|
|
|
pub use bits::Bits;
|
|
pub use bits::BitsAnd;
|
|
pub use bits::BitsInto;
|
|
pub use bits::BitsNot;
|
|
pub use bits::BitsOr;
|
|
pub use bits::BitsRol;
|
|
pub use bits::BitsRor;
|
|
pub use bits::BitsShl;
|
|
pub use bits::BitsShr;
|
|
pub use bits::BitsXor;
|
|
|
|
pub use math::MathCos;
|
|
pub use math::MathCosH;
|
|
pub use math::MathSin;
|
|
pub use math::MathSinH;
|
|
pub use math::MathTan;
|
|
pub use math::MathTanH;
|
|
|
|
pub use math::MathExp;
|
|
pub use math::MathLn;
|
|
|
|
pub use math::MathArcCos;
|
|
pub use math::MathArcCosH;
|
|
pub use math::MathArcSin;
|
|
pub use math::MathArcSinH;
|
|
pub use math::MathArcTan;
|
|
pub use math::MathArcTanH;
|
|
|
|
use nu_protocol::engine::{EngineState, StateWorkingSet};
|
|
|
|
pub fn add_extra_command_context(mut engine_state: EngineState) -> EngineState {
|
|
let delta = {
|
|
let mut working_set = StateWorkingSet::new(&engine_state);
|
|
|
|
macro_rules! bind_command {
|
|
( $command:expr ) => {
|
|
working_set.add_decl(Box::new($command));
|
|
};
|
|
( $( $command:expr ),* ) => {
|
|
$( working_set.add_decl(Box::new($command)); )*
|
|
};
|
|
}
|
|
|
|
bind_command!(conversions::Fmt);
|
|
|
|
bind_command!(
|
|
filters::UpdateCells,
|
|
filters::EachWhile,
|
|
filters::Roll,
|
|
filters::RollDown,
|
|
filters::RollUp,
|
|
filters::RollLeft,
|
|
filters::RollRight,
|
|
filters::Rotate
|
|
);
|
|
|
|
bind_command!(platform::ansi::Gradient);
|
|
|
|
bind_command!(
|
|
strings::format::Format,
|
|
strings::encode_decode::EncodeHex,
|
|
strings::encode_decode::DecodeHex,
|
|
strings::str_::case::Str,
|
|
strings::str_::case::StrCamelCase,
|
|
strings::str_::case::StrKebabCase,
|
|
strings::str_::case::StrPascalCase,
|
|
strings::str_::case::StrScreamingSnakeCase,
|
|
strings::str_::case::StrSnakeCase,
|
|
strings::str_::case::StrTitleCase
|
|
);
|
|
|
|
bind_command!(formats::ToHtml, formats::FromUrl);
|
|
// Bits
|
|
bind_command! {
|
|
Bits,
|
|
BitsAnd,
|
|
BitsInto,
|
|
BitsNot,
|
|
BitsOr,
|
|
BitsRol,
|
|
BitsRor,
|
|
BitsShl,
|
|
BitsShr,
|
|
BitsXor
|
|
}
|
|
|
|
// Math
|
|
bind_command! {
|
|
MathArcSin,
|
|
MathArcCos,
|
|
MathArcTan,
|
|
MathArcSinH,
|
|
MathArcCosH,
|
|
MathArcTanH,
|
|
MathSin,
|
|
MathCos,
|
|
MathTan,
|
|
MathSinH,
|
|
MathCosH,
|
|
MathTanH,
|
|
MathExp,
|
|
MathLn
|
|
};
|
|
|
|
working_set.render()
|
|
};
|
|
|
|
if let Err(err) = engine_state.merge_delta(delta) {
|
|
eprintln!("Error creating extra command context: {err:?}");
|
|
}
|
|
|
|
engine_state
|
|
}
|