mirror of
https://github.com/nushell/nushell.git
synced 2024-11-07 09:04:18 +01:00
c7e0d4b1e5
<!-- 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. --> With the introduction of the system clipboard to nushell, many commands changed their behavior from using a local cut buffer to the system clipboard, perhaps surprisingly for many users. (See #11907) This PR changes most of them back to using the local cut buffer and introduces three commands (`CutSelectionSystem`, `CopySelectionSystem` and `PasteSystem`) to explicitly use the system clipboard. # User-Facing Changes <!-- List of all changes that impact the user experience here. This helps us keep track of breaking changes. --> Users who in the meantime already used the system clipboard now default back to the local clipboard. To be able to use the system clipboard again they have to append the suffix `system` to their current edit command specified in their keybindings. # 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 > ``` --> The commands themselves are tested in `reedline`. The changes introduces in nushell are minimal and simply forward from a match on the keybinding name to the command. # 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>
209 lines
6.3 KiB
TOML
209 lines
6.3 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.74.1"
|
|
version = "0.91.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-color-config",
|
|
"crates/nu-explore",
|
|
"crates/nu-json",
|
|
"crates/nu-lsp",
|
|
"crates/nu-pretty-hex",
|
|
"crates/nu-protocol",
|
|
"crates/nu-plugin",
|
|
"crates/nu_plugin_inc",
|
|
"crates/nu_plugin_gstat",
|
|
"crates/nu_plugin_example",
|
|
"crates/nu_plugin_stream_example",
|
|
"crates/nu_plugin_query",
|
|
"crates/nu_plugin_custom_values",
|
|
"crates/nu_plugin_formats",
|
|
"crates/nu-std",
|
|
"crates/nu-table",
|
|
"crates/nu-term-grid",
|
|
"crates/nu-test-support",
|
|
"crates/nu-utils",
|
|
]
|
|
|
|
[workspace.dependencies]
|
|
chrono = { default-features = false, version = "0.4" }
|
|
crossterm = "0.27"
|
|
ctrlc = "3.4"
|
|
fancy-regex = "0.13"
|
|
log = "0.4"
|
|
miette = "7.2"
|
|
nix = { version = "0.27", default-features = false }
|
|
nu-ansi-term = "0.50.0"
|
|
once_cell = "1.18"
|
|
pathdiff = "0.2"
|
|
percent-encoding = "2"
|
|
reedline = "0.30.0"
|
|
rstest = { version = "0.18", default-features = false }
|
|
serde_json = "1.0"
|
|
sysinfo = "0.30"
|
|
tempfile = "3.10"
|
|
unicode-segmentation = "1.11"
|
|
uuid = "1.6.0"
|
|
which = "6.0.0"
|
|
|
|
[dependencies]
|
|
nu-cli = { path = "./crates/nu-cli", version = "0.91.1" }
|
|
nu-cmd-base = { path = "./crates/nu-cmd-base", version = "0.91.1" }
|
|
nu-cmd-lang = { path = "./crates/nu-cmd-lang", version = "0.91.1" }
|
|
nu-cmd-dataframe = { path = "./crates/nu-cmd-dataframe", version = "0.91.1", features = [
|
|
"dataframe",
|
|
], optional = true }
|
|
nu-cmd-extra = { path = "./crates/nu-cmd-extra", version = "0.91.1" }
|
|
nu-command = { path = "./crates/nu-command", version = "0.91.1" }
|
|
nu-engine = { path = "./crates/nu-engine", version = "0.91.1" }
|
|
nu-explore = { path = "./crates/nu-explore", version = "0.91.1" }
|
|
nu-lsp = { path = "./crates/nu-lsp/", version = "0.91.1" }
|
|
nu-parser = { path = "./crates/nu-parser", version = "0.91.1" }
|
|
nu-path = { path = "./crates/nu-path", version = "0.91.1" }
|
|
nu-plugin = { path = "./crates/nu-plugin", optional = true, version = "0.91.1" }
|
|
nu-protocol = { path = "./crates/nu-protocol", version = "0.91.1" }
|
|
nu-std = { path = "./crates/nu-std", version = "0.91.1" }
|
|
nu-utils = { path = "./crates/nu-utils", version = "0.91.1" }
|
|
|
|
reedline = { workspace = true, features = ["bashisms", "sqlite"] }
|
|
|
|
crossterm = { workspace = true }
|
|
ctrlc = { workspace = true }
|
|
log = { workspace = true }
|
|
miette = { workspace = true, features = ["fancy-no-backtrace", "fancy"] }
|
|
mimalloc = { version = "0.1.37", default-features = false, optional = true }
|
|
serde_json = { workspace = true }
|
|
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 }
|
|
|
|
[target.'cfg(windows)'.build-dependencies]
|
|
winresource = "0.1"
|
|
|
|
[target.'cfg(target_family = "unix")'.dependencies]
|
|
nix = { workspace = true, default-features = false, features = [
|
|
"signal",
|
|
"process",
|
|
"fs",
|
|
"term",
|
|
] }
|
|
|
|
[dev-dependencies]
|
|
nu-test-support = { path = "./crates/nu-test-support", version = "0.91.1" }
|
|
assert_cmd = "2.0"
|
|
dirs-next = "2.0"
|
|
divan = "0.1.14"
|
|
pretty_assertions = "1.4"
|
|
rstest = { workspace = true, default-features = false }
|
|
serial_test = "3.0"
|
|
tempfile = { workspace = true }
|
|
|
|
[features]
|
|
plugin = [
|
|
"nu-plugin",
|
|
"nu-cli/plugin",
|
|
"nu-parser/plugin",
|
|
"nu-command/plugin",
|
|
"nu-protocol/plugin",
|
|
"nu-engine/plugin",
|
|
]
|
|
default = ["default-no-clipboard", "system-clipboard"]
|
|
# Enables convenient omitting of the system-clipboard feature, as it leads to problems in ci on linux
|
|
# See https://github.com/nushell/nushell/pull/11535
|
|
default-no-clipboard = [
|
|
"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"]
|
|
system-clipboard = ["reedline/system_clipboard", "nu-cli/system-clipboard"]
|
|
|
|
# Stable (Default)
|
|
which-support = ["nu-command/which-support", "nu-cmd-lang/which-support"]
|
|
trash-support = ["nu-command/trash-support", "nu-cmd-lang/trash-support"]
|
|
|
|
# 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", branch = "main" }
|
|
# nu-ansi-term = {git = "https://github.com/nushell/nu-ansi-term.git", branch = "main"}
|
|
|
|
# Run all benchmarks with `cargo bench`
|
|
# Run individual benchmarks like `cargo bench -- <regex>` e.g. `cargo bench -- parse`
|
|
[[bench]]
|
|
name = "benchmarks"
|
|
harness = false
|