mirror of
https://github.com/nushell/nushell.git
synced 2025-01-10 16:28:50 +01:00
62bd6fe08b
# Description Adds an `is_glob` function to the nu-glob crate that takes a string pattern and returns whether or not it's a glob that would be expanded by nu-glob. Right now, this just means checking if it contains `*`, `?`, or `[`. Previously, this same code was duplicated in the following places: - `ls`: Determining whether to read a folder's contents or expand a glob - `run_external.rs` in nu-command: Arguments to externals only have n-dots and tilde expansion applied if they weren't globs - `glob_from` in nu-engine: - `glob_from` can get the prefix in a simpler way for non-globs - If the canonical path for a non-glob path contains glob metacharacters, it needs to be escaped - `completion_common.rs` in nu-cli: File/folder completions containing glob metacharacters need to be wrapped in quotes All of these locations can use `nu_glob::is_glob` now instead of rolling their own checks. This does mean that nu-cli now has a dependency on nu-glob. # User-Facing Changes Users of nu-glob will now be able to check if a given pattern is a glob expanded by nu-glob. For users of Nushell, completion suggestions for files containing `]` will no longer be wrapped in quotes if they contain no other glob metacharacters. This is because unmatched `]`s are ignored by nu-glob, but we used to consider such file completions contaminated anyway. # Tests + Formatting This is a very basic function, so I just added some doctests. # After Submitting This is meant to be used in https://github.com/nushell/nushell/pull/14674.
52 lines
2.0 KiB
TOML
52 lines
2.0 KiB
TOML
[package]
|
|
authors = ["The Nushell Project Developers"]
|
|
description = "CLI-related functionality for Nushell"
|
|
repository = "https://github.com/nushell/nushell/tree/main/crates/nu-cli"
|
|
edition = "2021"
|
|
license = "MIT"
|
|
name = "nu-cli"
|
|
version = "0.101.1"
|
|
|
|
[lib]
|
|
bench = false
|
|
|
|
[dev-dependencies]
|
|
nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.101.1" }
|
|
nu-command = { path = "../nu-command", version = "0.101.1" }
|
|
nu-test-support = { path = "../nu-test-support", version = "0.101.1" }
|
|
rstest = { workspace = true, default-features = false }
|
|
tempfile = { workspace = true }
|
|
|
|
[dependencies]
|
|
nu-cmd-base = { path = "../nu-cmd-base", version = "0.101.1" }
|
|
nu-engine = { path = "../nu-engine", version = "0.101.1", features = ["os"] }
|
|
nu-glob = { path = "../nu-glob", version = "0.101.1" }
|
|
nu-path = { path = "../nu-path", version = "0.101.1" }
|
|
nu-parser = { path = "../nu-parser", version = "0.101.1" }
|
|
nu-plugin-engine = { path = "../nu-plugin-engine", version = "0.101.1", optional = true }
|
|
nu-protocol = { path = "../nu-protocol", version = "0.101.1", features = ["os"] }
|
|
nu-utils = { path = "../nu-utils", version = "0.101.1" }
|
|
nu-color-config = { path = "../nu-color-config", version = "0.101.1" }
|
|
nu-ansi-term = { workspace = true }
|
|
reedline = { workspace = true, features = ["bashisms", "sqlite"] }
|
|
|
|
chrono = { default-features = false, features = ["std"], workspace = true }
|
|
crossterm = { workspace = true }
|
|
fancy-regex = { workspace = true }
|
|
fuzzy-matcher = { workspace = true }
|
|
is_executable = { workspace = true }
|
|
log = { workspace = true }
|
|
miette = { workspace = true, features = ["fancy-no-backtrace"] }
|
|
lscolors = { workspace = true, default-features = false, features = ["nu-ansi-term"] }
|
|
percent-encoding = { workspace = true }
|
|
sysinfo = { workspace = true }
|
|
unicode-segmentation = { workspace = true }
|
|
uuid = { workspace = true, features = ["v4"] }
|
|
which = { workspace = true }
|
|
|
|
[features]
|
|
plugin = ["nu-plugin-engine"]
|
|
system-clipboard = ["reedline/system_clipboard"]
|
|
|
|
[lints]
|
|
workspace = true |