mirror of
https://github.com/nushell/nushell.git
synced 2025-06-10 20:16:48 +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. --> This PR replaces the default `input` implementation with `reedline`. It provides a fully backwards compatible implementation, by leveraging left prompt provided through `input "my-prompt> "` provided by reedline. The default indicator is hidden to be fully backwards compatible, the multiline indicator is kept. The legacy implementation will be used when the user passes options truncating input such as `--bytes-until` or `--numchar` or `--suppress-output` which I didn't find a straightforward implementation through reedline. # User-Facing Changes No breaking change. - Adds ability to enter multi-line input with reedline. - Adds ability to pass a command history through the pipe `["command", "history"] | input`- Adds ability to pass a history file through the params `input --history-file path/to/history` # 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 toolkit.nu; toolkit test stdlib"` 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. --> --------- Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
239 lines
7.3 KiB
TOML
239 lines
7.3 KiB
TOML
[package]
|
|
authors = ["The Nushell Project Developers"]
|
|
description = "Nushell's built-in commands"
|
|
edition = "2024"
|
|
license = "MIT"
|
|
name = "nu-command"
|
|
repository = "https://github.com/nushell/nushell/tree/main/crates/nu-command"
|
|
version = "0.104.2"
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[lib]
|
|
bench = false
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
nu-cmd-base = { path = "../nu-cmd-base", version = "0.104.2" }
|
|
nu-color-config = { path = "../nu-color-config", version = "0.104.2" }
|
|
nu-engine = { path = "../nu-engine", version = "0.104.2", default-features = false }
|
|
nu-glob = { path = "../nu-glob", version = "0.104.2" }
|
|
nu-json = { path = "../nu-json", version = "0.104.2" }
|
|
nu-parser = { path = "../nu-parser", version = "0.104.2" }
|
|
nu-path = { path = "../nu-path", version = "0.104.2" }
|
|
nu-pretty-hex = { path = "../nu-pretty-hex", version = "0.104.2" }
|
|
nu-protocol = { path = "../nu-protocol", version = "0.104.2", default-features = false }
|
|
nu-system = { path = "../nu-system", version = "0.104.2" }
|
|
nu-table = { path = "../nu-table", version = "0.104.2" }
|
|
nu-term-grid = { path = "../nu-term-grid", version = "0.104.2" }
|
|
nu-utils = { path = "../nu-utils", version = "0.104.2", default-features = false }
|
|
nu-ansi-term = { workspace = true }
|
|
nuon = { path = "../nuon", version = "0.104.2" }
|
|
|
|
alphanumeric-sort = { workspace = true }
|
|
base64 = { workspace = true }
|
|
bracoxide = { workspace = true }
|
|
brotli = { workspace = true }
|
|
byteorder = { workspace = true }
|
|
bytesize = { workspace = true }
|
|
calamine = { workspace = true, features = ["dates"] }
|
|
chardetng = { workspace = true }
|
|
chrono = { workspace = true, features = [
|
|
"std",
|
|
"unstable-locales",
|
|
"clock",
|
|
], default-features = false }
|
|
chrono-humanize = { workspace = true }
|
|
chrono-tz = { workspace = true }
|
|
crossterm = { workspace = true, optional = true }
|
|
csv = { workspace = true }
|
|
devicons = { workspace = true }
|
|
dialoguer = { workspace = true, default-features = false, features = [
|
|
"fuzzy-select",
|
|
] }
|
|
digest = { workspace = true, default-features = false }
|
|
dtparse = { workspace = true }
|
|
encoding_rs = { workspace = true }
|
|
fancy-regex = { workspace = true }
|
|
filesize = { workspace = true }
|
|
filetime = { workspace = true }
|
|
human-date-parser = { workspace = true }
|
|
indexmap = { workspace = true }
|
|
indicatif = { workspace = true }
|
|
itertools = { workspace = true }
|
|
log = { workspace = true }
|
|
lscolors = { workspace = true, default-features = false, features = [
|
|
"nu-ansi-term",
|
|
] }
|
|
md5 = { workspace = true }
|
|
mime = { workspace = true }
|
|
mime_guess = { workspace = true }
|
|
multipart-rs = { workspace = true, optional = true }
|
|
native-tls = { workspace = true, optional = true }
|
|
notify-debouncer-full = { workspace = true, default-features = false, optional = true }
|
|
num-format = { workspace = true }
|
|
num-traits = { workspace = true }
|
|
oem_cp = { workspace = true }
|
|
open = { workspace = true, optional = true }
|
|
os_pipe = { workspace = true, optional = true }
|
|
pathdiff = { workspace = true }
|
|
percent-encoding = { workspace = true }
|
|
print-positions = { workspace = true }
|
|
quick-xml = { workspace = true }
|
|
rand = { workspace = true, optional = true }
|
|
getrandom = { workspace = true, optional = true }
|
|
rayon = { workspace = true }
|
|
reedline = { workspace = true, optional = true }
|
|
roxmltree = { workspace = true }
|
|
rusqlite = { workspace = true, features = [
|
|
"bundled",
|
|
"backup",
|
|
"chrono",
|
|
], optional = true }
|
|
rustls = { workspace = true, optional = true, features = ["ring"] }
|
|
rustls-native-certs = { workspace = true, optional = true }
|
|
rmp = { workspace = true }
|
|
scopeguard = { workspace = true }
|
|
serde = { workspace = true, features = ["derive"] }
|
|
serde_json = { workspace = true, features = ["preserve_order"] }
|
|
serde_urlencoded = { workspace = true }
|
|
serde_yaml = { workspace = true }
|
|
sha2 = { workspace = true }
|
|
sysinfo = { workspace = true }
|
|
tabled = { workspace = true, features = ["ansi"], default-features = false }
|
|
titlecase = { workspace = true }
|
|
toml = { workspace = true, features = ["preserve_order"] }
|
|
unicode-segmentation = { workspace = true }
|
|
update-informer = { workspace = true, optional = true }
|
|
ureq = { workspace = true, default-features = false, features = [
|
|
"charset",
|
|
"gzip",
|
|
"json",
|
|
], optional = true }
|
|
url = { workspace = true }
|
|
uu_cp = { workspace = true, optional = true }
|
|
uu_mkdir = { workspace = true, optional = true }
|
|
uu_mktemp = { workspace = true, optional = true }
|
|
uu_mv = { workspace = true, optional = true }
|
|
uu_touch = { workspace = true, optional = true }
|
|
uu_uname = { workspace = true, optional = true }
|
|
uu_whoami = { workspace = true, optional = true }
|
|
uuid = { workspace = true, features = [
|
|
"v1",
|
|
"v3",
|
|
"v4",
|
|
"v5",
|
|
"v7",
|
|
], optional = true }
|
|
v_htmlescape = { workspace = true }
|
|
wax = { workspace = true }
|
|
which = { workspace = true, optional = true }
|
|
unicode-width = { workspace = true }
|
|
data-encoding = { version = "2.9.0", features = ["alloc"] }
|
|
web-time = { workspace = true }
|
|
webpki-roots = { workspace = true, optional = true }
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
winreg = { workspace = true }
|
|
|
|
[target.'cfg(all(not(windows), not(target_arch = "wasm32")))'.dependencies]
|
|
uucore = { workspace = true, features = ["mode"] }
|
|
|
|
[target.'cfg(unix)'.dependencies]
|
|
umask = { workspace = true }
|
|
nix = { workspace = true, default-features = false, features = [
|
|
"user",
|
|
"resource",
|
|
"pthread",
|
|
] }
|
|
|
|
[target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies]
|
|
procfs = { workspace = true }
|
|
|
|
[target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies.trash]
|
|
optional = true
|
|
workspace = true
|
|
|
|
[target.'cfg(windows)'.dependencies.windows]
|
|
features = [
|
|
"Win32_Foundation",
|
|
"Win32_Storage_FileSystem",
|
|
"Win32_System_Environment",
|
|
"Win32_System_SystemServices",
|
|
"Win32_Security",
|
|
"Win32_System_Threading",
|
|
]
|
|
workspace = true
|
|
|
|
[features]
|
|
default = ["os", "rustls-tls"]
|
|
os = [
|
|
# include other features
|
|
"js",
|
|
"network",
|
|
"nu-protocol/os",
|
|
"nu-utils/os",
|
|
|
|
# os-dependant dependencies
|
|
"crossterm",
|
|
"notify-debouncer-full",
|
|
"open",
|
|
"os_pipe",
|
|
"reedline",
|
|
"uu_cp",
|
|
"uu_mkdir",
|
|
"uu_mktemp",
|
|
"uu_mv",
|
|
"uu_touch",
|
|
"uu_uname",
|
|
"uu_whoami",
|
|
"which",
|
|
]
|
|
|
|
# The dependencies listed below need 'getrandom'.
|
|
# They work with JS (usually with wasm-bindgen) or regular OS support.
|
|
# Hence they are also put under the 'os' feature to avoid repetition.
|
|
js = ["getrandom", "getrandom/js", "rand", "uuid"]
|
|
|
|
# These dependencies require networking capabilities, especially the http
|
|
# interface requires openssl which is not easy to embed into wasm,
|
|
# using rustls could solve this issue.
|
|
network = [
|
|
# these two don't require openssl
|
|
"multipart-rs",
|
|
"uuid",
|
|
"ureq",
|
|
"update-informer"
|
|
]
|
|
|
|
native-tls = [
|
|
"dep:native-tls",
|
|
"update-informer/native-tls",
|
|
"ureq/native-tls",
|
|
]
|
|
rustls-tls = [
|
|
"dep:rustls",
|
|
"dep:rustls-native-certs",
|
|
"dep:webpki-roots",
|
|
"update-informer/rustls-tls",
|
|
"ureq/tls", # ureq 3 will has the feature rustls instead
|
|
]
|
|
|
|
plugin = ["nu-parser/plugin", "os"]
|
|
sqlite = ["rusqlite"]
|
|
trash-support = ["trash"]
|
|
|
|
[dev-dependencies]
|
|
nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.104.2" }
|
|
nu-test-support = { path = "../nu-test-support", version = "0.104.2" }
|
|
|
|
dirs = { workspace = true }
|
|
mockito = { workspace = true, default-features = false }
|
|
rstest = { workspace = true, default-features = false }
|
|
rstest_reuse = { workspace = true }
|
|
pretty_assertions = { workspace = true }
|
|
tempfile = { workspace = true }
|
|
rand_chacha = { workspace = true }
|