nushell/crates
Wind 387328fe73
Glob: don't allow implicit casting between glob and string (#11992)
# Description
As title, currently on latest main, nushell confused user if it allows
implicit casting between glob and string:
```nushell
let x = "*.txt"
def glob-test [g: glob] { open $g } 
glob-test $x
```
It always expand the glob although `$x` is defined as a string.
This pr implements a solution from @kubouch :
> We could make it really strict and disallow all autocasting between
globs and strings because that's what's causing the "magic" confusion.
Then, modify all builtins that accept globs to accept oneof(glob,
string) and the rules would be that globs always expand and strings
never expand

# User-Facing Changes
After this pr, user needs to use `into glob` to invoke `glob-test`, if
user pass a string variable:
```nushell
let x = "*.txt"
def glob-test [g: glob] { open $g } 
glob-test ($x | into glob)
```
Or else nushell will return an error.
```
 3 │ glob-test $x
   ·           ─┬
   ·            ╰── can't convert string to glob
```

# Tests + Formatting
Done

# After Submitting
Nan
2024-02-28 23:05:35 +08:00
..
nu_plugin_custom_values Bidirectional communication and streams for plugins (#11911) 2024-02-25 16:32:50 -06:00
nu_plugin_example Remove Record::from_raw_cols_vals_unchecked (#11810) 2024-02-18 14:20:22 +02:00
nu_plugin_formats Add Value::coerce_str (#11885) 2024-02-18 17:47:10 +01:00
nu_plugin_gstat Name the Value conversion functions more clearly (#11851) 2024-02-17 18:14:16 +00:00
nu_plugin_inc Name the Value conversion functions more clearly (#11851) 2024-02-17 18:14:16 +00:00
nu_plugin_python Bidirectional communication and streams for plugins (#11911) 2024-02-25 16:32:50 -06:00
nu_plugin_query Add Value::coerce_str (#11885) 2024-02-18 17:47:10 +01:00
nu_plugin_stream_example Bidirectional communication and streams for plugins (#11911) 2024-02-25 16:32:50 -06:00
nu-cli Fix completions for directories with hidden files (#11921) 2024-02-26 12:14:19 -06:00
nu-cmd-base remove unused dependencies (#11938) 2024-02-22 16:31:37 -06:00
nu-cmd-dataframe Add columns to dataframe that are present in the schema but not present the Dataframe when applying schema. (#11987) 2024-02-26 17:22:33 -06:00
nu-cmd-extra add binary data handling to bits commands (#11854) 2024-02-28 20:43:50 +08:00
nu-cmd-lang Glob: don't allow implicit casting between glob and string (#11992) 2024-02-28 23:05:35 +08:00
nu-color-config open, rm, umv, cp, rm and du: Don't globs if inputs are variables or string interpolation (#11886) 2024-02-23 09:17:09 +08:00
nu-command Glob: don't allow implicit casting between glob and string (#11992) 2024-02-28 23:05:35 +08:00
nu-engine Remove some unnecessary static Vecs (#11947) 2024-02-24 20:58:01 +01:00
nu-explore Add Value::coerce_str (#11885) 2024-02-18 17:47:10 +01:00
nu-glob bump to dev release of nushell 0.90.2 (#11793) 2024-02-07 16:26:03 -06:00
nu-json bump to dev release of nushell 0.90.2 (#11793) 2024-02-07 16:26:03 -06:00
nu-lsp remove unused dependencies (#11938) 2024-02-22 16:31:37 -06:00
nu-parser Glob: don't allow implicit casting between glob and string (#11992) 2024-02-28 23:05:35 +08:00
nu-path bump to dev release of nushell 0.90.2 (#11793) 2024-02-07 16:26:03 -06:00
nu-plugin Bidirectional communication and streams for plugins (#11911) 2024-02-25 16:32:50 -06:00
nu-pretty-hex bump to dev release of nushell 0.90.2 (#11793) 2024-02-07 16:26:03 -06:00
nu-protocol Glob: don't allow implicit casting between glob and string (#11992) 2024-02-28 23:05:35 +08:00
nu-std open, rm, umv, cp, rm and du: Don't globs if inputs are variables or string interpolation (#11886) 2024-02-23 09:17:09 +08:00
nu-system bump to dev release of nushell 0.90.2 (#11793) 2024-02-07 16:26:03 -06:00
nu-table Bump fancy-regex from 0.12.0 to 0.13.0 (#11893) 2024-02-19 09:54:37 +08:00
nu-term-grid bump to dev release of nushell 0.90.2 (#11793) 2024-02-07 16:26:03 -06:00
nu-test-support Bump tempfile from 3.9.0 to 3.10.0 (#11977) 2024-02-26 15:38:11 +08:00
nu-utils fix format date based on users locale (#11908) 2024-02-20 11:08:49 -06:00
README.md Remove old nushell/merge engine-q 2022-02-07 14:54:06 -05:00

Nushell core libraries and plugins

These sub-crates form both the foundation for Nu and a set of plugins which extend Nu with additional functionality.

Foundational libraries are split into two kinds of crates:

  • Core crates - those crates that work together to build the Nushell language engine
  • Support crates - a set of crates that support the engine with additional features like JSON support, ANSI support, and more.

Plugins are likewise also split into two types:

  • Core plugins - plugins that provide part of the default experience of Nu, including access to the system properties, processes, and web-connectivity features.
  • Extra plugins - these plugins run a wide range of different capabilities like working with different file types, charting, viewing binary data, and more.