forked from extern/nushell
f310a9be8c
This commit uses the new `CwdAwareHinter` in reedline. Closes #8883. # Description Currently, the history based hints show results from all directories, while most commands make sense only in the directory they were run in. This PR makes hints take the current directory into account. # User-Facing Changes Described above. I haven't yet added a config option for this, because I personally believe folks won't be against it once they try it out. We can add it if people complain, there's some time before the next release. Fish has this without a config option too. # Tests + Formatting If tests are needed, I'll need help as I'm not well versed with the codebase.
177 lines
5.8 KiB
TOML
177 lines
5.8 KiB
TOML
[package]
|
|
authors = ["The Nushell Project Developers"]
|
|
build = "scripts/build.rs"
|
|
default-run = "nu"
|
|
description = "A new type of shell"
|
|
documentation = "https://www.nushell.sh/book/"
|
|
edition = "2021"
|
|
exclude = ["images"]
|
|
homepage = "https://www.nushell.sh"
|
|
license = "MIT"
|
|
name = "nu"
|
|
repository = "https://github.com/nushell/nushell"
|
|
rust-version = "1.60"
|
|
version = "0.86.1"
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[package.metadata.binstall]
|
|
pkg-url = "{ repo }/releases/download/{ version }/{ name }-{ version }-{ target }.{ archive-format }"
|
|
pkg-fmt = "tgz"
|
|
|
|
[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
|
|
pkg-fmt = "zip"
|
|
|
|
[workspace]
|
|
members = [
|
|
"crates/nu-cli",
|
|
"crates/nu-engine",
|
|
"crates/nu-parser",
|
|
"crates/nu-system",
|
|
"crates/nu-cmd-base",
|
|
"crates/nu-cmd-extra",
|
|
"crates/nu-cmd-lang",
|
|
"crates/nu-cmd-dataframe",
|
|
"crates/nu-command",
|
|
"crates/nu-protocol",
|
|
"crates/nu-plugin",
|
|
"crates/nu_plugin_inc",
|
|
"crates/nu_plugin_gstat",
|
|
"crates/nu_plugin_example",
|
|
"crates/nu_plugin_query",
|
|
"crates/nu_plugin_custom_values",
|
|
"crates/nu_plugin_formats",
|
|
"crates/nu-std",
|
|
"crates/nu-utils",
|
|
]
|
|
|
|
[dependencies]
|
|
nu-cli = { path = "./crates/nu-cli", version = "0.86.1" }
|
|
nu-color-config = { path = "./crates/nu-color-config", version = "0.86.1" }
|
|
nu-cmd-base = { path = "./crates/nu-cmd-base", version = "0.86.1" }
|
|
nu-cmd-lang = { path = "./crates/nu-cmd-lang", version = "0.86.1" }
|
|
nu-cmd-dataframe = { path = "./crates/nu-cmd-dataframe", version = "0.86.1", features = ["dataframe"], optional = true }
|
|
nu-cmd-extra = { path = "./crates/nu-cmd-extra", version = "0.86.1", optional = true }
|
|
nu-command = { path = "./crates/nu-command", version = "0.86.1" }
|
|
nu-engine = { path = "./crates/nu-engine", version = "0.86.1" }
|
|
nu-explore = { path = "./crates/nu-explore", version = "0.86.1" }
|
|
nu-json = { path = "./crates/nu-json", version = "0.86.1" }
|
|
nu-parser = { path = "./crates/nu-parser", version = "0.86.1" }
|
|
nu-path = { path = "./crates/nu-path", version = "0.86.1" }
|
|
nu-plugin = { path = "./crates/nu-plugin", optional = true, version = "0.86.1" }
|
|
nu-pretty-hex = { path = "./crates/nu-pretty-hex", version = "0.86.1" }
|
|
nu-protocol = { path = "./crates/nu-protocol", version = "0.86.1" }
|
|
nu-system = { path = "./crates/nu-system", version = "0.86.1" }
|
|
nu-table = { path = "./crates/nu-table", version = "0.86.1" }
|
|
nu-term-grid = { path = "./crates/nu-term-grid", version = "0.86.1" }
|
|
nu-std = { path = "./crates/nu-std", version = "0.86.1" }
|
|
nu-utils = { path = "./crates/nu-utils", version = "0.86.1" }
|
|
nu-ansi-term = "0.49.0"
|
|
reedline = { version = "0.25.0", features = ["bashisms", "sqlite"] }
|
|
|
|
crossterm = "0.27"
|
|
ctrlc = "3.4"
|
|
log = "0.4"
|
|
miette = { version = "5.10", features = ["fancy-no-backtrace"] }
|
|
mimalloc = { version = "0.1.37", default-features = false, optional = true }
|
|
serde_json = "1.0"
|
|
simplelog = "0.12"
|
|
time = "0.3"
|
|
|
|
[target.'cfg(not(target_os = "windows"))'.dependencies]
|
|
# Our dependencies don't use OpenSSL on Windows
|
|
openssl = { version = "0.10", features = ["vendored"], optional = true }
|
|
signal-hook = { version = "0.3", default-features = false }
|
|
|
|
[target.'cfg(windows)'.build-dependencies]
|
|
winresource = "0.1"
|
|
|
|
[target.'cfg(target_family = "unix")'.dependencies]
|
|
nix = { version = "0.27", default-features = false, features = [
|
|
"signal",
|
|
"process",
|
|
"fs",
|
|
"term",
|
|
] }
|
|
|
|
[dev-dependencies]
|
|
nu-test-support = { path = "./crates/nu-test-support", version = "0.86.1" }
|
|
assert_cmd = "2.0"
|
|
criterion = "0.5"
|
|
pretty_assertions = "1.4"
|
|
rstest = { version = "0.18", default-features = false }
|
|
serial_test = "2.0"
|
|
tempfile = "3.8"
|
|
|
|
[features]
|
|
plugin = [
|
|
"nu-plugin",
|
|
"nu-cli/plugin",
|
|
"nu-parser/plugin",
|
|
"nu-command/plugin",
|
|
"nu-protocol/plugin",
|
|
"nu-engine/plugin",
|
|
]
|
|
default = ["plugin", "which-support", "trash-support", "sqlite", "mimalloc"]
|
|
stable = ["default"]
|
|
wasi = ["nu-cmd-lang/wasi"]
|
|
# NOTE: individual features are also passed to `nu-cmd-lang` that uses them to generate the feature matrix in the `version` command
|
|
|
|
# Enable to statically link OpenSSL (perl is required, to build OpenSSL https://docs.rs/openssl/latest/openssl/);
|
|
# otherwise the system version will be used. Not enabled by default because it takes a while to build
|
|
static-link-openssl = ["dep:openssl", "nu-cmd-lang/static-link-openssl"]
|
|
|
|
mimalloc = ["nu-cmd-lang/mimalloc", "dep:mimalloc"]
|
|
|
|
# Stable (Default)
|
|
which-support = ["nu-command/which-support", "nu-cmd-lang/which-support"]
|
|
trash-support = ["nu-command/trash-support", "nu-cmd-lang/trash-support"]
|
|
|
|
# Extra feature for nushell
|
|
extra = ["dep:nu-cmd-extra", "nu-cmd-lang/extra"]
|
|
|
|
# Dataframe feature for nushell
|
|
dataframe = ["dep:nu-cmd-dataframe", "nu-cmd-lang/dataframe"]
|
|
|
|
# SQLite commands for nushell
|
|
sqlite = ["nu-command/sqlite", "nu-cmd-lang/sqlite"]
|
|
|
|
[profile.release]
|
|
opt-level = "s" # Optimize for size
|
|
strip = "debuginfo"
|
|
lto = "thin"
|
|
|
|
# build with `cargo build --profile profiling`
|
|
# to analyze performance with tooling like linux perf
|
|
[profile.profiling]
|
|
inherits = "release"
|
|
strip = false
|
|
debug = true
|
|
|
|
# build with `cargo build --profile ci`
|
|
# to analyze performance with tooling like linux perf
|
|
[profile.ci]
|
|
inherits = "dev"
|
|
strip = false
|
|
debug = false
|
|
|
|
# Main nu binary
|
|
[[bin]]
|
|
name = "nu"
|
|
path = "src/main.rs"
|
|
bench = false
|
|
|
|
# To use a development version of a dependency please use a global override here
|
|
# changing versions in each sub-crate of the workspace is tedious
|
|
[patch.crates-io]
|
|
reedline = { git = "https://github.com/nushell/reedline.git", branch = "main" }
|
|
# nu-ansi-term = {git = "https://github.com/nushell/nu-ansi-term.git", branch = "main"}
|
|
# uu_cp = { git = "https://github.com/uutils/coreutils.git", branch = "main" }
|
|
|
|
# Criterion benchmarking setup
|
|
# Run all benchmarks with `cargo bench`
|
|
# Run individual benchmarks like `cargo bench -- <regex>` e.g. `cargo bench -- parse`
|
|
[[bench]]
|
|
name = "benchmarks"
|
|
harness = false
|